빅데이터분석

Cloud Computing in Genomic Reserach - vagrant와 chef를 이용한

hongiiv 2014. 9. 26. 18:39
반응형
유전체학회 정기학술대회에 "Cloud Computing in Genomic Research"란 제목으로 발표를 했었는데 워낙 시간도 짧고 준비도 제대로 하지 못했던터라 이자리를 빌어 재탕 들어갑니다.

소프트웨어 전성시대 그러나 사실상

BGI의 경우 157대의 시퀀싱 장비가 가동중이며, 매일 6 TB의 유전체데이터를 생산하고 있습니다. 매일 전송되는 데이터는 1 TB에 이른다고 합니다. (출처: The Big Challenges of Big Data, 2013, Nature) 또한 시퀀싱 장비의 가격하락으로 그동안 시퀀싱센터라고 불리는 몇몇 대형 연구소에서나 생산되었던 데이터량보다는 이제는 작은 아카데믹 랩들이 생산하는 데이터가 늘어나고 있습니다.

하지만 컴퓨팅 파워와 소프트웨어/알고리즘의 부족은 유전체데이터를 활용하는데에 걸림돌이 되고있습니다. 여기서 클라우드가 이를 어떻게 해결할까에 대한 부분이 바로 이야기하고자 하는 부분입니다.  

우선 소프트웨어/알고리즘의 부족은 두가지로 해석할 수 있습니다. 첫째는 말그대로 시퀀싱장비에서나오는 데이터를 분석할 100% 만족할 만한 소프트웨어/알고리즘이 없다는 의미와 둘째로 많은 소프트웨어가 나오지만 사용할 줄 모른다는 것입니다.

일례로 Nature Protocol의 2007년부터 나온 논문들의 70%가 소스코드를 포함하고 있으며, abstract에 소스코드라는 단어가 포함된 논문은 2003년 60편에서 2013년 299편에 달하고 있습니다. 즉 많은 소프트웨어가 나오지만 옥석을 가려내거나 제대로된 설치 및 활용에 어려움이 따르고 있다는 것입니다.

클라우드로 S/W설치를 손쉽게 하자.

그렇다면 어떻게 S/W를 손쉽게 설치/활용할 수 있을까?라는 부분에 맞추어 클라우드가 어떻게 활용될 수 있는지 보도록 하겠습니다. 제가 내놓은 솔루션은 바로 Vagrant + Chef(cookbook) + 클라우드의 조합입니다. 

Vagrant는 Box라는게 있습니다. 바로 운영체제입니다. 사용자는 가상의 환경 (Vmware나 VirtualBox와 같은 로컬의 가상환경 또는 아마존, KT와 같은 클라우드 컴퓨팅)에 원하는 운영체제를 바로 구동이 가능합니다. 이렇게 구동된 운영체제에 Chef를 이용하여 원하는 일련의 S/W 설치에 관한 정보(cookbook)를 수행하면 바로 분석에 사용가능한 컴퓨팅 환경이 만들어지게 됩니다.

cookbook에는 bwa, bowtie, picard, gatk, tophat, samtools 등의 소프트웨어 설치/설정에 관한 recipes를 만들어 놓고 이를 묶어 nextgenseq라는 cookbook을 만들어 놓습니다. 그러면 이 cookbook만 실행하면 되는 거죠.

# Cookbook Name:: nextgenseq

# Recipe:: prereq


case node['platform']

when "ubuntu", "debian"

include_recipe "apt"

end


[node[:nextgenseq][:system_dir], node[:nextgenseq][:binary_dir]].each do |d|

directory d do

owner "root"

group "root"

mode  "0755"

action :create

end

end

위의 코드는 prereq라는 레시피입니다. 즉 nextgenseq이라는 쿡북에서 가장 먼저 해야할 일을 정의한것입니다. 프로그램은 어떤 사용자로 설치되어야하며, 어떠한 환경에서 실행되는지를 정의해 놓은 것이죠.

# Cookbook Name:: nextgenseq

# Recipe:: bwa


include_recipe "nextgenseq::prereq"

include_recipe "build-essential"


nextgenseq_package "bwa" do

source "http://downloads.sourceforge.net/project/bio-bwa/bwa-#{node[:nextgenseq][:bwa][:version]}.tar.bz2"

binaries %w{ bwa solid2fastq.pl qualfa2fq.pl }

action :install

provider :nextgenseq_make_and_copy

end

위의 코드는 bwa라는 레시피입니다. 간단히 sourceforge에서 지정한 버전의 bwa를 다운로드하고 설치하는 과정이 적혀 있는 것이죠. 이렇듯이 하나의 쿡북안에 분석에 필요한 S/W에 대한 일련의 과정을 정의해 놓으면 되는 것입니다. 

그렇다면 이런 쿡북은 자신이 직접 만들어야 할까요? 아니죠. 이런건 저와 같은 사람들이 만들어 놓으면 되는 것입니다. 분석할 데이터에 따라, 버전별로 이러한 쿡북들을 만들어 놓으면 사용자는 간단히 명령어 2~3줄로 자신이 원하는 컴퓨팅 사양에 자신이 원하는 툴들이 설정 완료되게 되는 거죠. 아래의 동영상으로 간단히 NGS 분석 환경을 만드는 것을 확인하세요.

조마간 분석 툴들을 다양한 NGS 응용(WGS, Somatic Call, RNA-Seq, De novo RNA-Seq, ChIP-Seq, SV Detection등) cookbook으로 다시 만나뵙겠습니다.



반응형