상당히라는 수식어가 아깝지 않을 정도로 괜찮은 책이다.
아직 바이오인포메틱스 쪽에 책이 많지 않아 이 책의 중요성이 큰 것 같다.
그리고 포커스를 펄로 구현하는 쪽으로 맞추어서 현업에 있는 사람들에게 큰 호응을 얻고 있는 것 같다. 펄이라는 스크립트 언어는 문법도 그리 어렵지 않고 원하는 것을 구현하기 그리 어렵지 않은 언어라서 많이 쓰이는 것 같다. 오라일리에서 나온 이 분야의 다른 책인 「바이오인포메틱스」라는 책은 유전학쪽의 지식 전달과 주로 기초적으로 우리가 얻고싶은 정보를 얻는 방법이라는 측면에서 초점을 맞춰서 진행했다면 이 책은 앞부터 펄의 문법부터 시작해서 실제로 유전정보 나열과 정렬 같은 것을 예제를 따라 해보는 아주 재미난 내용으로 구성되어 있다.
「바이오인포메틱스」라는 책이 생물학자들이 읽지 않아도 되는 책이라면 이 책은 전산학자와 생물학자 둘 다 읽어도 좋을만한 그런 책인 것 같다. 나도 빨리 더 깊이 읽고 예제도 직접해야 겠다는 생각이 들었다.
프로그램을 사용하는 개발자중 한번쯤은 ‘바이오인포매틱스’라는 용어를 접해봤으리라 생각한다. 그리고 이 용어를 그저 단순하게, ‘생물학+전산학’이라는 추상적인 개념으로 받아들인 독자가 많으리라 생각한다. 국내에서도 이미 바이오 벤처 기업들이 많이 생겨나고 있으며, 이 분야에 대한 관심이 집중되고 있다. 이 책은 그와 같은 추상적인 개념에서 실제 사용되는 프로그램을 작성해보면서 바이오인포매틱스 분야에 대해 조금 더 명료한 답을 제시해 줄 것이다.
이 책은 생물학과 관련된 개념에 대해서는 다루지 않는다. 즉, DNA 서열이나 RNA와 같은 생물학에서 사용되는 언어에 대한 설명은 따로 지면을 할애하여 설명하고 있지 않다는 말이다. 책의 주제가 ‘펄로 시작하는 바이오인포매틱스’인 만큼 펄이라는 언어로 생물학에서 주어지는 과제의 해결 방법을 제시하고 있다. 물론 생물학에 대한 고급 지식을 가지고 있는 독자라면 더욱 유용한 서적이 될 수 있으리라 생각한다. 이와 같은 생소한 용어들을 접할 때 전산학을 전공한 독자라면 조금 당황스러울지도 모르겠다. 하지만, 프로그램을 작성하는 면에서는 위와 같은 생물학 지식을 제외하고, 프로그램의 스펙을 명확히 알 수 있으므로 프로그램을 작성하는 데 별 무리는 없다.
앞서 말했던 것과 같이 이 책은 펄이라는 언어로 생물학 과제를 쉽고 효율적으로 해결할 수 있는 방법을 제시하는 서적이다. 입문 서적이므로 펄이라는 언어를 접해보지 못했거나 초보자라고 해도 책을 읽는 데에 부담이 없다. 펄 언어에 대해 초보 입장에서 설명을 하여, 펄 언어를 사용하는 방법에 대한 내용이 많이 실려 있기 때문이다.
이책의 구성은 다음과 같다.
1장 생물학과 전산학
이 장에서는 생물학과 컴퓨터 과학이 어떻게 접목되어 있는지 설명하고 분자 생물학의 몇 가지 주요한 개념에 대해 설명한다.
2장 펄 시작하기
펄을 설치하는 방법과 실행 방법을 설명한다.
3장 프로그래밍 기술
프로그래밍의 일반적인 방법을 설명한다.
4장 서열과 문자열
DNA를 RNA로 전사하는 방법과 서열을 연결하여 DNA의 역상보를 만들고 해석하는 방법에 대해 설명한다.
5장 모티프와 루프
펄 언어의 기초를 자세히 설명하여 키보드를 이용한 사용자 인터페이스, 파일에 데이터 쓰기등 펄의 문법과 사용법을 자세하게 설명한다.
6장 서브루틴과 버그
펄 디버거를 이용한 디버깅과 구조화된 프로그래밍을 하기위한 서브 루틴의 사용법에 대해 설명한다.
7장 변의와 임의화
펄에서 랜덤한 수를 발생하여 임의 사건으로 모형화하고, DNA서열 데이터의 조합을 생성하고, 반복적으로 DNA를 변이 시키기 위해 임의수를 사용한다.
8장 유전자 코드
유전자 코드를 사용해 DNA를 단백질로 변환하는 방법을 설명한다. 그리고, 해시 데이터, 정렬, 비정렬 배열, 이진 탐색, 관계형 데이터베이스와 같은 주제를 다루고 FASTA 포맷으로된 서열 데이터를 처리하는 방법을 설명한다.
9장 제한 지도와 정규표현식
10장 GenBank
11장 단백질 데이터 뱅크
12장 BLAST
특히 바이오인포매틱스에 관심이 있거나 관련 분야로 공부하고자 하는 독자가 있다면, 충분히 입문서로서 추천할 수 있는 책이라고 생각한다. 현재 바이오인포매틱스에 대해 구체적으로 다룬 서적은 드물어서 다른 서적과의 벤치마킹은 할 수 없지만, 책의 예제와 설명을 보면서 생물학 과제에 대해 추상적으로나마 알 수 있다. 또한 펄이라는 언어 역시 함께 배울수 있는 좋은 서적이라 생각한다.
생물학과 컴퓨터를 전공하는 분야의 사람들이라면 바이오인포매틱스라는 새로운 분야에 대하여 이야기를 들어왔을 것이라 생각한다. 실제로 현재 많은 생물학 연구에서 컴퓨터를 사용하는 것은 너무나 당연한 수순이 되었다. 예를 들면, 새로운 염기 서열을 해독하였을 때 이미 알려진 어떤 유전자와 상동성을 검색하는 것이나, 클로닝을 위한 적당한 제한 효소를 선택하는 일들은 컴퓨터를 이용해 데이터베이스를 검색하고 소프트웨어를 사용하는 예일 것이다.
하지만 이것은 단지 시작일 뿐 인간 유전체 해독과 같은 대형 프로젝트들이 진행되면서 대량의 결과들이 나오기 시작하고, 그것들을 다룰 수 있는 툴의 개발과 적절한 이용은 목표 달성에 있어 중요한 요소가 되었다. 이러한 툴을 개발하고 이를 적절히 활용하는 것은 시간과 자원을 절약할 수 있을 뿐만 아니라 연구를 올바른 방향으로 이끌 수 있는 필수적인 요소가 될 것이다.
십 수년 전만해도 분자 생물학, 유전공학, 클로닝과 같은 용어들이 화두였던 데 반해 이제는 마이크로어래이(microarray), 게노믹스(genomics), 프로테오믹스(proteomics)라는 용어들이 그 자리를 대체해 가고 있다. 그 만큼 연구 분야 및 방법론에 있어서 따라갈 수 없을 만큼 진보의 속도가 빨라지고 있는 것이 현실이다. 이러한 연구 방법론의 진보에 발을 맞추고, 바이오인포매틱스라는 분야에서 경쟁력을 갖추기 위해서는 새로운 지식을 빨리 습득하고 이를 교육 현장에 적용하는 것이 중요한 과제임을 늘 생각해오고 있었다.
그러한 이유로 필자는 바이오인포매틱스를 시작할 수 있는 실습서를 찾던 차에 프로그래밍 예제를 설명해 주면서 프로그래밍 실습 측면을 강조한 이 책을 접하게 되었다. 이 책은 ‘펄로 시작하는 바이오인포매틱스"이지만 좀더 엄밀히 말하자면 프로그래밍을 한번도 접해 보지 않은 사람에게 펄이라는 새로운 언어를 가르칠 뿐 아니라 생물학을 잘 모르는 사람에게 바이오인포매틱스, 심지어 생물학의 기초까지도 모두 가르쳐주는 책이다. 생물학자뿐 아니라 바이오인포매틱스에 관심 있는 전산학도, 화학도, 물리학도, 수학도 등이 충분히 소화해 낼 수 있는 난이도로 구성되어 있다.
이 책은 저자가 서문에서도 밝히고 있듯이 생물학과 관련된 어려운 내용은 될 수 있으면 생략하고 생물학 과제를 해결할 수 있는 프로그램을 실제로 익혀가며 조금씩 생물학적 지식에 접근해 갈 수 있도록 구성되었다. 이러한 접근 방식은 프로그래밍 언어를 가르치는 방법에도 적용되었다고 볼 수 있다. 생물학자에게 생소할 수도 있는 펄이라는 프로그래밍 언어를 프로그래밍에 대한 복잡한 개념의 이해 없이도 습득할 수 있도록 지식을 점차 확장시켜 나가는 방식을 취하고 있다. 필자의 문체 역시 보기 드물게 세련되고 기술적으로 쓰여졌다. 앞에서 설명했다시피 생물학과 프로그래밍이 접목되어 있는 전문서적임에도 불구하고 전개방식이 독특하다. 원서의 문체 역시 딱딱하지 않게 독자와 대화하듯이 기술되고 있다.
가끔 전문 용어를 자세히 설명하지 않고 뒤에 가서 좀더 자세히 부연 설명을 하는 경우가 있는 데, 이 역시 입문자를 위한 저자의 꼼꼼한 배려로 보인다. 너무 어려운 전산학 개념은 언급만 하고 넘어감으로써 책 전체의 내용이 너무 기술적인 내용을 설명하는 데 할애되지 않도록 한 점도 장점이라고 할 수 있다. 일단 용어에 의문을 갖고 어느 정도 실습 예제를 통해 맛을 보게 한 다음 뒷부분에서 구체적으로 설명하고 있다.
가끔 까다로운 내용들이 있는데 모든 것을 기초부터 전부 설명하려고 욕심을 내지는 않았다. 기본적인 주제를 아주 빨리 전개하는 저자의 기술이 탁월하다. 무엇보다도 뛰어난 점은 독자가 여러 바이오인포매틱스 실습문제를 통해 실제적인 지식을 익힐 수 있도록 했다는 것이다. 바이오인포매틱스를 가르치고자 하는 사람에게도 이론만 강의를 해야 하는 책보다 훨씬 활용하기 편한 교재라고 생각한다.
바이오인포매틱스 분야서는 펄 외에도 파이썬, C, 자바 등의 언어를 쓰기도 하고 이런 언어들 간의 장단점을 비교하기도 하지만 바이오인포매틱스에 관한 한 펄만큼 라이브러리가 많고 역사가 긴 언어는 없다. 그리고 그것이 현 시점에서는 가장 중요한 것이라 생각한다. 즉 공부를 하는 사람 입장에서는 전 세계에 있는 다른 전문가들이 만들어 놓은 소스코드를 읽고 개념을 이해하는 일이 가장 중요한 것이고 바로 그렇게 하는 것이 바이오인포매틱스를 시작하는 가장 좋은 출발점이라고 생각한다.
요약하자면 “펄로 시작하는 바이오인매틱스”는 이론과 실습을 병행하며 바이오인포매틱스에 대한 개념을 정립할 수 있을 뿐만 아니라 실제 연구 단계에서 활용할 수 있는 프로그래밍 기술을 익힐 수 있는 책이다. 이 책을 통해 웹을 뒤지면서 주석이 제대로 되어 있지 않은 다른 사람의 소스코드를 보면서 힘들게 공부해야 했을 많은 시간을 절약할 수 있을 것이다.