빅데이터분석

Genomics와 빅데이터(하둡)

hongiiv 2012. 8. 2. 14:14
반응형
Follow the Data라는 블로그의 "What can big data (read Hadoop) do for genomics?"라는 흥미로운 글이 있어서 소개해 보려고 한다. Hadoop이 빅데이터의 관점에서 genomics에 어떻게 응용되고 있고 앞으로 어떻게 응용될지에 대한 글로 최근 임상에서의 빅데이터에 대한 관심이 모아지는 가운데에 임상중에서도 genomics에 포커싱된 글로서 간단히 다음과 같이 요약할 수 있다.

1) 지금까지 read mapping 부분에 하둡 적용이 두드러짐 (Crossbow, MyRNA)
2) 하둡을 인프라로 사용하기 시작함 (SeqPig, Hadoop-BAM)
3) 하둡을 다양한 데이터간의 통계적인 연관성을 보기 위한 빅데이터 처리에 활용 (NextBio, Google&ISB, SolveBio)
4) 하둡과 스트리밍 방식으로 데이터를 처리 고려 (eXpress, YARN, minION)

 
1. 클라우데라와 NextBio의 genomic 데이터 껴안기

몇일 전 1) 
Cludera와 Mount Sinai School of Medicine이 함께 빅데이터를 이용하여 의료 분야의 문제를 해결하기 위한 협력에 대한 기사와 2) NextBio가 인텔과 함께 의료분야에서의 빅데이터를 위한 하둡을 최적화하기로 했다는 내용이었다. Cloudera는 이쪽 분야 분들이라면 모두들 알고계신 업체지만 NextBio라는 회사는 오라일리에서 나온 "집단지성 프로그래밍(Programming Collective Intelligence)"를 집필한 사람이 근무하는 회사로 바이오데이터를 머신러닝을 통해 분석하고 데이터를 제공해주는 회사이다.

여기서 말하는 "빅 데이터"를 "하둡"으로 "의료"를 "genomics"또는 "genomic medicine"으로 한정해서 이야기를 해보려고 한다. (빅 데이터와 의료에 대한 전반적인 내용을 원한다면 GigaOm의 "Better medicine, brought to you by big data"를 읽어보는것이 나을 것이다.)

2. NGS를 위한 기존의 Hadoop/MapReduce

Read Mapping

이제 genomics 분야에서 next-generation sequencing(NGS)은 보편적인 없어서는 안될 기술로 자리잡았다. 이러한 NGS 데이터를 다루기 위한 기존의 하둡 기반의 프레임워크를 우선 살펴보면, Cloudburst나 Crossbow와 같은 패키지들이 "read mapping"에 하둡을 활용하고 있다. (read mapping이란 string matching이라고 보면되는데, 시퀀서에서 나온 DNA sequence를 이미 알려진 sequence에 일치시키는 것이다.)

Quantifying Gene Expression
Myrna나 Eoulsan도 같은 read mapping과 유전자의 발현량을을 측정하기 위한 기능들이 추가 되어있다.

De novo assemble
Contrail은 하둡 기반의 de novo 어셈블(read mapping은 이미 알려진 reference가 있어 여기에 string matching을 수행하는 반면 de novo는 reference가 없이 마치 직소 퍼즐을 맞추는 것과 같다.)을 수행한다.

이들은 모두 기존의 소프트웨어를 맵리듀스로 구현한 것으로 모두들 좋은 소프트웨어임을 분명하지만 널리 사용되고 있지 않은데, 그 이유중 하나는 바로 read mapping이 NGS 데이터를 다루는 여러 단계중 어렵게 Hadoop을 이용할 만큼의 bottleneck이 아니라는 점이다. 더욱이 최근 SeqAlto와 같이 기존보다 10~100배 이상 빠른 알고리즘이 나오고 있는 상황에서는 더욱 그렇다. 그러나 많은 양의 컴퓨터 RAM을 사용하는 de novo 어셈블의 경우는 가능성을 가지고 있다.

As a Infrastructure
하둡을 NGS를 위한 인프라스트럭처로 사용하고자 하는 Seal(일반적인 NGS 기능을 맵-리듀스 형태로 제공), Hadoop-BAM (BAM은 일반적으로 사용하는 sequence alignment format으로 이를 다루기 위한 라이브러리), SeqPig (Apache Pig를 이용하여 일반적인 Bioinformatics 파일 포맷을 import, export하는 라이브러리)와 같은 프로젝트들이 있다.

3. 하둡이 어떤 부분에 유용할까?
 
다양한 종류의 데이터 (임상, 환경적인 요인, 분자생물학, 미생물 등)간의 통계적 연관성 
이러한 데이터는 batch-processing 문제로 인해 하둡을 적용하는 적합하다. 이미 앞서 언급한 NexBio는 이 부분을 자신들의 비즈니스 모델의 코어로 하고 있다. (1) 서로 다른 조직에서의 유전자 발현 레벨 2) 질병, 혈압등의 컨디션, 임상 정보, 약물 데이터간의 연관성 계산 등) 나아가 이러한 컨셉은 환경적인 정보, 생활습관, 유전변이(SNV, structural variations, copy number vaiations 등), 개인 메타지놈 등의 정보와 결합되어져야 한다. 물론 이러한 데이터를간의 상관관계를 보기 위해 데이터를 수집하고 컴파일링하는것이 더 큰 문제일 수 있지만, 실제 관계를 보는 것보다 "빅 데이터" 문제가 더 힘든 문제이다.

신생 기업인 SolvBio는 바로 이러한 방법으로 암에 대한 이해를 돕고자 한다. 그들의 기사에 따르면 다음과 같이 이야기 하고 있다. "
기술은 점점 저렴해지면서 환자들은 게놈시퀀스, 조직, 염색질 상태, 분자 및 미생물, 병원균, 크로마틴 상태 등의 데이터를 측정 가능해졌다. 이러한 데이터는 대학이나 병원 또는 기업을 통해 환자의 동의하에 생성될 수 있으며, 그 결과 "데이터 토네이도"가 도래되고 이러한 엄청난 양의 데이터는 의학에 대한 통계적 학습을 의한 엄청난 기회가 될 것이다."

사실 마지막에 언급한 것은 이미 ISB(Institute for System Biology)와 구글이 최근 빅데이터/genomcis의 협업 사례가 있다. 그들은 이미 Cancer Regulome Explorer과 같은 툴을 통해 암에 대한 연구를 수행하기 시작했다. ISB는 random forest 알고리즘을 구글의 Google Compute Engine의 600,000 코어의 컴퓨팅을 활용하여 DNA, RNA, epigentic, 임상 암 데이터간의 연관 관계를 보는데에 사용했다.

batch processing을 넘어서 stream processing
Hadoop은 batch processing(일괄처리, 순차적으로 자료를 처리하는 방식으로 하나의 작업이 끝나기 전까지 다른 작업을 할 수 없다) 형태로 최근 YARN이라는 새로운 버전을 통해 HDFS에 저장된 데이터를 스트리밍 방식의 real-time 분석이 가능해졌다. 이러한 컨셉은 NGS 시퀀싱에도 적용 가능한데, 이미 eXpress에서 스트리밍으로 sequence 데이터로 발현량을 측정하는데 적용되어 있다.

예를 들어 지금까지의 NGS 데이터 처리는 align 단계를 마치고 나서 다음 단계로 넘어가는 batch processing 이었다면, align을 하는 순간에 그때 그때 생성된 결과를 바로 다음 단계로 streaming으로 넘겨서 처리하는 것으로 다음과 같이 bowite로 align된 데이터를 SAM/BAM 파일로 중간에 저장하지 않고 바로 express라는 발현량 확인 프로그램의 입력으로 전달하는 것이다. 이렇게 함으로써 처리 시간이나 중간 산물의 저장에 불필요한 데이터 저장 공간이 필요 없게 된다. 

$ bowtie -aS -X 800 --offrate 1 -v 3 transcripts -1 reads_1.fastq -2 reads_2.fastq | express transcripts.fasta

이부분은 우리가 유투부 동영상을 볼때 전체 파일을 다운로드 한 후 시청하는것이 아니라 데이터가 전송되는 순간 끊김없이 streaming으로 보는 것과 마찬가지로 데이터를 처리하는 것이다 (마치 유닉스의 파이프를 이용하듯이). IBM에서 나온 Large-scale DNA Seqeuncing Analysis in the Cloud: A Stream-based Apporach를 보면 마스터 노드가 데이터의 압축을 해제하면서 TCP를 통해 각 노드에 끊김없이 데이터를 전달하고 이를 각 노드가 분석한 후 다시 마스터에게 전달하여 merge하는 과정이 나온다.

Operator and data flow graph for our stream-base incremental processing implementation of SHRiMP

USB 메모리 형태의  MinION 나노포어 시퀀서의 경우 실시간으로 데이터를 생산해내는데 이때 시퀀서가 러닝중에 바로 분석을 할 수 있도록 응용될 수도 있다. 앞으로 전세계 동식물을 시퀀서를 이용해서 분자단위로 실시간으로 감시하는 것도 가능할 수 있겠다.

4. 국내편

삼성 SDS의 Bioinformatics file을 위한 NoSQL 데이터베이스
국내에서 얼마전 삼성 SDS에서 데이터 처리에 하둡을 이용한 부분(NoSQL을 이용한(
그루터의 cloudata) Biper)을 발표하는 기회가 있었다. 기존의 Bioinformatics 데이터 (SAM/BAM, VCF)와 그 인덱스 데이터를 하둡을 이용해 저장하고 쿼리(rage_query)하는 것으로 기존의 DB를 이용하는 것과 같은 속도를 보장하고 더불어 scale이나 비용면에서 효과를 보았다는 내용으로 기존의 Genome Browser에 적용하여 사용하고 있다고 한다. 이는 앞서 소개된 SeqPig가 기존의 데이터를 아파치 Pig를 통해 저장해서 관리하는 것과 SeqWare를 통해 HBase를 기반으로 저장 및 쿼리를 하는 것과 비슷한 컨셉이라고 할 수 있겠다.

인간 유전자 영역의 SNP 추출을 위한 클라우드 컴퓨팅 알고리즘

정보과학회에 실린 논문으로 SAM/BAM 파일로 부터 pipleup 과정과 SNP 검출 과정을 맵리듀스 형태의 알고리즘으로 구현한 것으로 이부분은 앞서 나온 Crossbow의 SOAPsnp을 이용하여 SNP을 calling하는 부분과 비슷한 컨셉이라고 할 수 있겠다.

차세대 시퀀싱 데이터에서 클라우드 스케일의 단위 반복 변이 추출 기법
위의 논문과 마찬가지로 SNP이 아닌 CNV영역을 검출하는 것으로 전체 커버리지 대비 loss나  gain 영역 즉 커버리지가 더 높은/혹은 낮은 부분을 윈도우 사이즈를 이동하면서 맵리듀스를 이용하여 계산한다.

서울의대 FX: an RNA-Seq analysis tool on the cloud
BMC Bioinformatics에 소개된 논문으로 NGS 데이터를 이용하여 유전자의 발현량을 확인하는 툴이다. GSNAP을 통해 alignment를 수행하고 이때 FASTQ 파일을 split하여 처리한 후 SNP, INDEL, Expression profiling을 아마존 기반의 클라우드 컴퓨팅에서 수행하며 기본적으로 Myrna와 같은 역할을 수행한다고 할 수 있다.

재미있는 건 서울의대 유전체의학연구소에서 나오는 DB나 툴 이름이 티아라, FX와 같이 걸 그룹의 이름을 내걸고 나온다는 것이다. 컨텐츠 한류처럼 바이오계에서도 한류가 되길...ㅋ

5. 본 글에서 언급된 소프트웨어 링크

Cloudburst
 - Highly Sensitive Short Read Mapping with MapReduce
Crossbow - Genotyping from short reads using cloud computing
Myrna - Calculating differential gene expression in large RNA-seq datasets
Eoulsan - Versatile framework based on Hadoop implementation
Contrail - Assembly of Large Genomes using Cloud Computing
SeqAlto - Fast and Accurate Read Alignment for Reseqeuencing
Seal - Suite of distributed application for manipulating and analyzing short read alignments
Hadoop-BAM - Directly manipulating NGS data in the cloud
SeqPig - Library of import/export functions for file formats commonly used in bioinformatics for Pig
Cancer Regulome Explorer - Explore, mine, and visualize complex datasets
eXpress - Streaming quantification for high-throughput 
sequencing
FX - RNA-Seq gene expression analysis toll, empowered by the concept of cloud-computing 
SeqWare - SeqWare Query Engine: storing and searching sequence data in the cloud 
반응형