본문 바로가기

연구관련/Bioinfo류

생물정보학(bioinformatics)에 대하여

bioinformatics, 우리 말로 생물정보학으로 번역할 수 있는 분야는, 드디어 전산학이 생물학에 발을 들여 놓으면서 만들어진 분야이다. 이 글은 생물정보학이 무엇인지 알고 싶어하는 학부생 정도를 위하여 작성한다.

생물정보학은 '무엇'을 하는 분야인가 생물정보학은 생명체에 '정보' 형태로 있는 데이터, 또는 생명과학에 관련된 데이터를 다루는 분야이다. '정보' 형태의 데이터란 DNA와 RNA, 단백질의 '서열'이 가장 대표적이며, 그 이외의 데이터란 대표적으로 microarray data나 proteomics, 문헌 정보(pubmed) 정도를 꼽을 수 있다. 이와 같은 데이터를 다루는 방법에 따라 이 분야를 크게 몇 가지로 나누어 보자면
1. 알고리즘
2. 데이터 베이스 구축 및 웹 서비스 제공
정도 된다. 생물정보학에 관련된 알고리즘으로는, DNA/단백질의 서열 비교, 단백질/RNA 서열과 구조, 단백질/RNA의 특성을 서열로부터 추정해 내는 알고리즘, microarray data 분석, pubmed의 데이터를 이용한 text mining,  과 같은 것으로 크게 나눌 수 있다. 서열 비교는 전산학에서의 문자열 비교와 비슷하기는 한데 DNA/단백질 서열은 '정확히' 맞지 않아도 되기 때문에 조금 더 까다로워진다. 이 분야는 70~80년대에 많은 연구가 이루어져 현재 거의 끝난 상태로 보인다. 그 이외에 서열과 관련된 알고리즘을 예로 들자면, 서열로부터 구조 형태(2차 서열), 단백질의 상호작용, 특정 구조 그룹(motif), 단백질의 세포 내 위치(지질막 혹은 핵 혹은 미토콘드리아), 특정 효소의 기작이 될 수 있는지의 여부, 등을 예측하는 것을 들 수 있다. 나열한 것 말고도 많은 여러 가지가 있는데, 핵심은 생물학적인 의문을 서열을 분석하여 알아낼 수 있는가, 하는 것이다. microRNA의 target이 될 수 있는 mRNA를 선별하는 것이라던가, 하는 등 새롭게 밝혀지는 생물학적인 사실로 인해 필요한 알고리즘이 새로 탄생되곤 한다.

microarray 는 세포 안에 있는 대부분의 mRNA의 양을 측정하는 기술이다. 이것은 데이터가 좀 지저분하기 때문에 여러 통계 기법을 이용해 데이터를 깔끔하게 만들고, 그것으로부터 여러 machine learning 기법들을 이용하여 classifier를 찾아 내거나 network analysis 등을 하곤 한다. 즉, PCA, SVM, NMF, clustering 과 같은 기법들의 이용은 이 분야에서 거의 일상적으로 하는 일들이다.

pubmed의 문헌 정보를 이용한 text mining 은 다소 회의적인 시각도 존재하는데, 새로운 약의 타겟을 찾는다거나, 하는 류의 일을 하는 것으로 보이는데 이 분야는 내가 신경쓰고 보지 않아서 구체적으로 어떤 일들이 벌어지는지 잘 모르겠다.

다음으로 보자면, 데이터 베이스 구축 및 웹서비스 제공이 있다. 또한 특정 프로그램을 만들어서 베포하는 것도 포함시킬 수 있을 것이다. 대량의 실험 데이터를 갖게 되었다면, raw data 자체를 약간 보기 좋게 처리해서 그것을 '일목요연하게 볼 수 있고', download 받을 수 있는 형태로 제공하는 것이 1차적으로 하게 되는 웹서비스 제공인데, 이에 관련한 것은 대량의 raw data를 얻는 것에 많은 돈이 들기 때문에 한국에서는 흔지 않은 일로 보인다. 그 이외에 많은 DB나 웹서비스들은 raw data를 특정 방식이나 알고리즘으로 재처리하여 그 결과를 제공하는 형식이다. 예를 들면 여러 microarray 데이터를 분석하여 co-expression 정보를 제공하는 것과 같은.

그 이외에도 여러 가지 일들을 하게 되는데, 핵심이 되는 것은 생물학적 데이터를 가공/처리 하는 일이다. 이 때 단순히 DB에 밀어 넣는다거나 하는 것이 문제가 아니라(그런 건 그냥 기본), 어떠한 생물학적 아이디어를 가지고 데이터를 처리하여 새로운 사실을 알아낼 것인가, 하는 것이 생물정보학의 핵심이라 할 수 있겠다. 물론 보기 좋고 end-user friendly한 웹 서비스를 제공하는 것도 좋은데, 그러한 것은 연구자가 할 일은 아닌 것으로 보인다.


조언 만약 생물정보학 쪽 진로를 생각하고 있다면 프로그래밍은 당연히 잘 해야 하고, 생물학적 지식도 어느 정도 쌓아 두는 것이 좋다. 전산 쪽은 알고리즘/데이터 구조 같은 가장 기본이 되는 것과 더불어, 리눅스에서 파이썬이나 C++ 중 적어도 하나를 이용하는데 불편함이 없어야 할 것 같다. 현재 나와 있는 많은 툴이나 라이브러리가 주로 리눅스에서 돌아가기 때문이다. 생물학 쪽은 적어도 세포생물학은 들어야 할테고, 좀 더 나아가자면 분자생물학/생화학/면역학 정도를 들어 두면 적당해 보인다. 진로는, 국내는 KRIBB의 산하에 있는 연구소나 몇몇 벤처 회사가 있는데, 삼성도 이 분야의 인력을 구하고 있는 것으로 알고 있다. 외국은 한국보다는 많은 것 같다.




참고로 나는 생물정보학이 '생물학적 관점'을 너무 배재하기 때문에 개인적으로 이 분야의 일을 좋아하지는 않지만, 생물정보학 자체를 싫어하지는 않는다. 내가 동물 실험을 싫어하지만 그렇다고 동물 실험 자체가 잘못되었다고 생각하지 않는 것처럼.

'연구관련 > Bioinfo류' 카테고리의 다른 글

정규화(normalization)  (18) 2010.04.19
drug 관련 싸이트  (0) 2010.04.06
생물정보학(bioinformatics)에 대하여  (2) 2010.01.12
outlier 빼고 상관계수 구하기 : Mahalanobis 거리  (1) 2010.01.04
ROC의 AUC 구하기  (17) 2010.01.04
cytoscape: network 연구 프로그램  (0) 2009.03.06
  • Goldbio 2010.01.15 14:06

    DNA 웍을 주로한는 분자생물학자, Protein structure 를 주로연구하는 구조 생물학자가 모두 '생물학자'의 범주에 속하듯, Large scale data analysis 를 통해 생물학을 연구하는 생물정보학자도 '생물학자'로 간주해야 한다고 생각합니다. 굳이 specific한 연구의 tool을 가지고 구분을 하자면 구분이 되지만, 생물학적 문제를 다루지 않는다면 그건 생물정보학자가 아닌, 그냥 프로그래머, Web 프로그래머, 시스템 엔지니어일 뿐이라고 생각합니다.

    최근 Evolution을 연구하는 '생물학자'들은 흔히 말하는 생물정보학적 방법들을 통해 연구를 하고 있는데, 이들은 생물정보학자이기도 하고 유전학자이기도 하고 생물학자이기도 하죠.

    생물정보학을 언급하신 대로 알고리즘 개발과 데이터베이스 구축, 웹서버 구축 등의 목적으로만 한정하신 건 생물정보학의 범위를 그야말로 computer science 의 관점에서만 규정하신 것이 아닌가 생각되네요.

    • Favicon of http://adnoctum.textcube.com adnoctum 2010.01.15 21:45

      아, 저는 Bioinformatics 라는 저널을 중심으로 말을 한 것이구요. 흔히 말하는 생물정보학이 풀고자 하는 문제들은 wet-work 하는 사람 입장에서 보면 생물학적으로 별로 의미없는 경우가 왕왕 있으니까요. 생물정보학을 다루는 주요 논문들은 생물학을 주요하게 다루지 않습니다. MSB나 PLoSCB 정도 되면 생물정보학이라기보다는 systems biology에 가까운 느낌이 들기 때문에 생물정보학이라고 하기엔 좀 무리가 있는 것 같습니다.


      참고로 제 전공은 생물학입니다. (하지만 Bioinformatics 정도에 나오는 알고리즘 논문 정도는 알아들을 수 있습니다)