Bioinformatics Programming Course Introduction

 

주최

생물정보연구소

강사

원세연 박사

(생물정보연구소, email address)

기간

2007. 2. 1 - 2007. 3. 1

시간

목요일 6:00pm - 9:00pm

장소

성북정보도서관 세미나실 I

 

 

 
코스의 개요 및 목적
 

본 코스는 biological data를 다루고 분석하는데 가장 널리 쓰이는 script 언어인 perl에 대해서 컴퓨터 프로그래밍의 기초부터 시작하는 코스입니다. 본 코스에서 전달하고자 하는 내용은, biological data의 분석에 있어서 웹 브라우저를 사용하는 한계를 넘어서기 위한 현재 우리가 가진 가장 효율적인 방법이며, 다른 방법은 사실상 존재하지 않습니다. 따라서, 오늘날 쏟아져 나오는 biological data를 제대로 다루어보고 싶은 경우라면 본 코스에서 다루는 것은 반드시 가지고 있어야 하는 지식입니다. 본 코스는 프로그래밍에 완전한 초보자를 대상으로 하며, 예를 들어 DNA sequence와 protein sequence의 차이가 무엇인지 알고 있는 경우라면 누구나 수강을 할 수가 있습니다. 우선 위의 주교재의 내용을 최대한 완전히 소화할 수 있도록 안내를 하며, 이곳에 있는 주교재 저자의 강의 노트를 그대로 사용합니다. 본격적인 수준의 bioinformatics work에 필수적이라 할 수 있는 것들을 여러 가지 더 살펴보게 되는데, DBMS와의 연결, XML 데이터의 이용, gene ontology의 이용, 그리고 web과의 연결에 대한 것들입니다. Lecture Schedule 페이지에서 각 강의의 주제들을 살펴볼 수 있습니다.

perl은 배우기 쉽고 쓰기 쉬우며, bioinformatics work에 적합한 기능들을 가진 프로그래밍 언어입니다. 코스에서 전달하는 수준은 한 마디로 컴퓨터 프로그래밍에 대해서 완전한 문외한이라 가정을 하고 출발을 합니다. 그리고 bioinformatics work에 공통적으로 필요한 것들을 bioinformatics 분야 전문가들이 미리 만들어서 잘 정리를 해놓은 라이브러리인 bioperl에 대해서도 살펴보는데, 복잡하고 까다로운 일들의 상당 부분을 이를 사용해서 손쉽게 해결을 할 수가 있습니다. 아래 "프로그래밍이 필요한 이유"에 좀더 긴 설명을 적어놓았지만, 대부분의 본격적인 bioinformatics work은 perl과 같은 script 언어를 이용해야만 해낼 수 있는 일입니다. 따라서, biological data를 얻어내고 분석하는 일을 수행하는 사람이라면, 이는 반드시 갖추어야 하는 기술입니다. 이로 인해서 선진국들의 생물분야 학과들에서는 정규 코스인 스탠포드 대학의 Genetics 211 코스, 단기 코스인 MIT의 Bioinformatics for Biologists 코스와 같이 이미 일반화 되어가고 있습니다.

본 코스의 일차적인 목표는 주교재의 내용을 확실하게 전달을 하는 것입니다. 주교재의 내용을 통해서 얻을 수 있는 것을 한 마디로 요약을 하면, 아래 "프로그래밍이 필요한 이유"에도 적은 것처럼, 며칠 또는 몇 주일 동안 지루하게 마우스 클릭 및 손수 타이핑을 해야 할 일을, 몇 시간 혹은 그 이하의 프로그래밍으로 해결이 되게 해줍니다. 이러한 기술은 제대로 데이터 분석을 해볼 생물학자라면 반드시 갖추어야 하는 기술이며 다른 더 쉬운 해결책은 존재하지 않습니다. 그리고, 주교재 밖의 좀더 advanced한 내용들에 대해서도 물론 강의에서 제대로 설명은 하지만, 코스가 진행되는 동안에 다 소화를 해낼 수가 없는 경우를 감안하여 앞으로 더 시간을 가지고 공부를 해나갈 수 있도록 안내를 하게 됩니다. 즉, 본 코스로부터 각자 얻어낼 수 있는 것은 두 단계가 있게 되는데, 첫 단계는 "완벽한 초보자에서 출발하여 적어도 몇 줄짜리 perl script는 필요할 때마다 제법 짤 줄 아는 사람이 되기"이고, 둘째 단계는 "꽤 복잡한 수준의 일도 이것저것할 줄 알게 되기"입니다. 첫 단계만으로도 이전과는 할 수 있는 일에서 크게 달라지지만, 어느 단계까지 얻어내게 될 것인지는 각자의 노력에 달려 있을 것입니다. 그리고 첫 단계를 넘어서는 것이 오히려 어려운 일이며, 첫 단계를 넘어선 경우에는 두 번째 단계는 시간을 투자하면 대개는 올라설 수 있게 됩니다. 만약 코스가 열리는 5주 동안에 두 번째 단계까지 달성을 해내지 못한 경우일지라도, 코스가 끝난 뒤에 남게 되는 관련 자료들과 전체적인 윤곽에 대한 지식 등을 통해서 이를 결국 달성을 해낼 수 있을 것입니다. 본 코스를 바탕으로 하여, 자신의 속도에 맞추어서 향후 계속 되는 노력을 하게 되기를 바랍니다.


주교재
 
  1. Perl Programming for Biologists, Curtis Jamison, 2003, Wiley-Liss

Recommended Readings
 
  1. Beginning Perl for Bioinformatics, James Tisdall, 2001, O'Reilly
  2. Mastering Perl for Bioinformatics, James Tisdall, 2003, O'Reilly

프로그래밍이 필요한 이유
  생물학자가 왜 프로그래밍까지 직접 할 줄 알아야 하는 지에 대해서 조금 더 풀어서 적어보면, 우선 이것은 직접 알고리즘을 구현하거나 소프트웨어를 만들어내기 위한 것은 아니라는 점이 있습니다. perl(그리고 python도 그 다음으로 많이 사용되고 있습니다.)은 생물정보학에서는 주로 이른 바 glue language라 불리는 수단으로 사용이 됩니다. 즉, 기존에 나와 있는 여러 소프트웨어들을 벽돌이라고 하면 이들을 원하는 모양으로 쌓아서 무엇인가를 만들어내고자 할 때, 이 벽돌들을 서로 붙여주는 수단으로써 필요한 것입니다. 가장 간단한 예로, bioinformatics work에는 많은 반복되는 작업이 흔하게 있게 되는데, 이것을 웹 브라우저에서 마우스 클릭으로 해내야 한다고 가정을 해보기 바랍니다. 수천 수만 번의 반복작업이 되는데, 마우스 클릭으로는 몇 주일이 걸릴 일이 몇 십 분 정도 걸려서 간단한 몇 줄짜리 perl script를 직접 짜면 몇 시간만에 끝나는 일이 됩니다. 그리고 이런 perl script들은 자신이 직접 짜야 합니다. 각자의 연구에서 필요한 것들은 모두 조금씩 다른 것이고, 또 연구가 진행이 됨에 따라 새로운 것이 계속 더 필요하게 되는 것인데, "상업용으로 만들어서 파는 소프트웨어"가 존재할 수 없다는 것이 쉽게 이해가 될 것입니다. 물론 아주 공통적인 일에 대해서는 예를 들어 VectorNTI와 같이 user interface를 최대한 편리하게 만들어서 나온 것이 있지만, 이것이 위의 perl script를 대체하지는 못합니다. 사람에 따라 다르겠지만, 위와 같은 목적의 perl script를 짤 수 있게 되는 데에는 대개 몇 주일 혹은 몇 달 정도 걸릴 것입니다. 새로운 것을 배우는 것이야 항상 어려운 일이지만, 그로 인해 얻어질 수 있는 엄청난, 그리고 영원히 가질 수 있는 잇점을 생각해보기 바랍니다.

한 가지 덧붙일 점은, 위의 "perl script 짜기"가 "전산과나 생물정보학과 출신 뽑아서 시키면 되는 일"이 아니라는 점입니다. 일종의 허드레 일인데, 이걸 하자고 사람을 따로 뽑는다는 것도 좀 그렇고, 대부분의 bioinformatics work이 연구가 진행됨에 따라 이것저것 자질구레한 것들이 계속 필요한 그런 종류의 일인데, 이걸 마치 심부름꾼처럼 계속 해주면서 오래 견뎌내지는 못한다고 합니다. 그래서 선진국들에서의 결론은 생물학자가 직접 필요할 때마다 "그때 그때 다른 것"을 만들어야 한다는 것으로 되어 있습니다. 세상 사람이 다 같을 터인데, 국내도 이 점이 달라질 수는 없을 것입니다. 그리고, 이처럼 perl script를 짤 수 있는 능력을 갖추게 되면 갑자기 할 수 있는 일이 확 달라지게 됩니다. 현재 국내에서는 제대로 biological data들을 대규모로 이용하는 연구들이 특히 약한데, 아마도 이렇게 "perl script 짜는 것을 배워야 한다"는 점 하나만 제대로 파급이 되어도 큰 물꼬를 열 수 있지 않을까 하는 생각도 하게 됩니다.


리눅스에 대해서
  결론부터 적으면, bioinformatics work은 linux로 하는 것으로 정해져 있습니다. 그 이유를 지금 제대로 풀어서 적을 수는 없으나, 한 마디로 말해 bioinformatics work과 같은 종류의 일에는 linux (즉, Unix)가 훨씬 더 낫기 때문입니다. 이에 따라서 본 코스에서도 리눅스 환경을 기본으로 합니다. (만약 리눅스 대신에 MS Windows를 사용하고자 하는 경우에는, 가능한 일이기는 하나 본 코스에서는 지원을 해주지 않습니다. 즉, 각자가 알아서 해야 합니다.)

그리고, 본 코스에서는 아래의 소프트웨어들을 필요로 하는데, 이의 설치 등에 대해서는 강의 시간에 안내를 하게 됩니다.


Prerequisites
  별도의 정해진 prerequisite은 없습니다. 생물학에 대해서는 기초적인 분자생물학 지식을 갖추고 있으면 강의를 이해하는 데에 도움이 될 것입니다. 수학과 통계학에 대해서는 고등학교 수학을 넘어서는 것은 갖추고 있지 않다고 가정을 하고 최대한 알기 쉽게 설명을 진행합니다. 전산학 및 컴퓨터 프로그래밍에 대해서도 아무런 사전 요구 사항이 없습니다. 리눅스에 대해서도 마찬가지입니다.

Course History
  1차: 2006년 2월 2일 - 2006년 3월 7일

Bioinformatics Course Series의 공통적인 사항들
  Bioinformatics Course Series

Exercises:

    본 사이트의 "Bioinformatics Exercises" 페이지에는 여러 가지 형태의 exercise들이 문제 은행 형태로 지속적으로 만들어져서 올려지게 됩니다. 이론적인 면에 대한 이해를 묻는 것들, bioinformatics 도구들의 사용에 등에 대한 것들, 그리고 biological research에서의 실제 상황을 경험해볼 수 있는 project 등으로 구성되어 있는데, 이들 중에서 각 코스의 주제에 해당하는 것들이 선별이 되어서 각 코스의 exercise로서 제시가 됩니다. 코스에서 얻을 수 있는 것의 적어도 절반은 이들을 해냄으로써 얻어질 수 있는 것이므로, 반드시 시도를 해보게 되기를 바랍니다.

수료증:

    Bioinformatics Course Series의 5개 이상의 코스의 exercise들에 대해서 각기 60점 이상인 경우에 수료증명서 발급의 대상이 됩니다. 수료증명서에는 코스명을 비롯한 수료의 근거가 되는 사항들이 나열이 되며, 날인된 공문서 형태로 수료자가 원하는 경우에 지속적으로 발급이 됩니다. 수료에는 상당히 엄격한 기준이 적용됩니다. 즉 코스의 내용을 제대로 이해하고 있으며 해당분야 bioinformatics work을 해낼 수 있다는 것이 확실할 때에만 기준을 통과할 수 있습니다. 시리즈 전체에 대해서만 수료증명서가 발급되며, 개별 코스에 대한 수료증명서는 발급되지 않습니다.

생물학자로서 생물정보학을 제대로 시작하려면:

    생물정보학적인 일은 컴퓨터를 사용해서 하는 일이라는 것은 당연히 알고 있을 것입니다. 그런데 이때의 컴퓨터 사용법은 여러분이 지금까지 경험을 해왔던 것과는 상당히 다릅니다. 초급 수준의 프로그래밍이 가미된 것으로, 일반적인 PC사용법과는 달리 일부러 공부를 해야만 익힐 수가 있는 것들입니다. 다른 더 쉬운 대안은 없으며, 앞으로도 오랜 세월 동안은 생겨나지 않을 것입니다. 이는 computer science 그 자체의 한계와 함께, 우리가 수행해야 하는 일의 성격이 그러하기 때문인데, 더 자세한 이야기는 이곳에 적지는 않겠습니다. 선진국들에서 현재 벌어지고 있는 상황에서도 볼 수 있는 것처럼, 이것을 익히는 것이 생물학자들이 생물정보학적인 도구를 자신의 연구에 도입하고자 하는 과정에서 가장 넘기 힘든 장애로 작용을 하고 있습니다.

    다시 풀어서 적으면, 생물정보학적인 도구를 자신의 연구에 활용을 하기 위해서는 해당 분야의 도구들에 대한 지식과 함께, 어느 분야이든 무관하게 "컴퓨터로 많은 양의 데이터를 다루어야 한다는 점"으로 인해 공통적으로 요구되는 컴퓨터 사용 기술이 있습니다. 이 두 가지 모두를 갖추어야만 제대로 활용을 해낼 수가 있게 됩니다. 어떤 분야의 연구를 하든 무관하게, 그리고 본 시리즈의 어느 코스를 수강하든 무관하게, 누구나 반드시 갖추어야 하는 기술임을 인식하게 되기를 바랍니다. 그리고, 본 사이트의 Beginning Bioinformatics for Biologists 페이지에 생물 분야 전공자로서 생물정보학적인 도구들을 실제로 사용할 수 있도록 출발하는데 도움이 되고자 하는 목적의 일종의 온라인 책이 현재 작성이 되고 있으니 살펴보기 바랍니다.

Course mailing list:

    본 시리즈의 코스들에서는 email로 코스의 또 다른 부분이 진행되는데, 강의 내용 및 관련 주제들에 대한 여러 가지 정보가 email 및 웹을 통해서 다양하게 전달이 됩니다. 이 정보에는 관련 textbook들에 대한 안내, 공부 및 동향 파악을 위한 journal paper와 기타 문서들, 여러 관련 웹 resource들, 그리고 informal하게 적은 여러 가지 글 등, 다양한 것들이 포함됩니다. 또한, 코스가 종료된 이후에도 원하는 경우에는 old class mailing list 통해서 이와 같은 정보들을 계속 전달 받을 수 있습니다.

강의의 방식 및 기타 사항:

  • 본 코스는 빔 프로젝터로 스크린에 띄운 자료와 칠판을 함께 사용하는 일반적으로 볼 수 있는 강의의 형태입니다. 즉, 컴퓨터 실습실에서 실습을 하는 방식이 아닙니다.
  • 코스의 자료들은 별도의 웹 페이지에 올려집니다. 이 웹 페이지의 URL과  ID 및 password는 email로 전달이 됩니다.
  • email을 통해 강의의 또 다른 부분이 진행이 되며, email로 전달된 내용의 일부는 왼쪽 메뉴의 "Course Board"에도 일정 기간이 지난 뒤에 올려집니다.
  • bioinformatics.pe.kr로부터 오는 email을 스팸으로 취급을 해 버리는 곳들이 종종 있습니다. 요즘은 email 계정을 얻기가 매우 쉬우므로 이런 문제가 없는 email 계정을 본 코스를 수강하기 위해서 사용을 해야 합니다.
  • 강의 날짜는 왼쪽 메뉴의 Lecture Schedule 페이지에 나와 있으며, 마지막의 spare time slot은 불가피한 사정으로 강의가 연기가 될 경우를 대비한 것입니다.

 

Bioinformatics Information      Up

 

 

 

Last update: 11/15/2006