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의 산하에 있는 연구소나 몇몇 벤처 회사가 있는데, 삼성도 이 분야의 인력을 구하고 있는 것으로 알고 있다. 외국은 한국보다는 많은 것 같다.
참고로 나는 생물정보학이 '생물학적 관점'을 너무 배재하기 때문에 개인적으로 이 분야의 일을 좋아하지는 않지만, 생물정보학 자체를 싫어하지는 않는다. 내가 동물 실험을 싫어하지만 그렇다고 동물 실험 자체가 잘못되었다고 생각하지 않는 것처럼.
생물정보학은 '무엇'을 하는 분야인가 생물정보학은 생명체에 '정보' 형태로 있는 데이터, 또는 생명과학에 관련된 데이터를 다루는 분야이다. '정보' 형태의 데이터란 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 |
outlier 빼고 상관계수 구하기 : Mahalanobis 거리 (1) | 2010.01.04 |
ROC의 AUC 구하기 (17) | 2010.01.04 |
cytoscape: network 연구 프로그램 (0) | 2009.03.06 |