티스토리 툴바

Fork me on GitHub
-축 결 혼-
2013/05/21 16:38 | blogging
정신없이 달려오다. 잠시 쉼표를 찍고 다시 달리려 합니다. 넵 저 금번 토요일에 장가갑니다. ㅋㅋㅋ
 
 
저작자 표시 비영리 동일 조건 변경 허락
Posted in : blogging at 2013/05/21 16:38
Currently 댓글이 하나 달렸습니다 comments want to say something now?
개인 유전체 데이터의 시각화 2
2013/04/24 14:13 | 유전자정보분석
저번 시간에 이어 두번째 개인 유전체 데이터의 시각화에 대한 이야기 입니다. 오늘은 Genome browser를 비롯한 다양한 시각화 방법에 대해서 알아보겠습니다.  지난 시간을 정리 한다면 다음의 두 가지로 요약될 수 있습니다.

  • 테이블 형태의 개인 유전체 데이터 시각화 : 일반인들에게 익숙하고 요약된 정보를 보여주는데에 적합
  • Ideogram을 이용한 개인 유전체 데이터 시각화: 유전체 데이터를 시각화함에 있어 염색체 모양을 이용하는 방법 
Linear genome browser
지도는 위도/경도의 두개의 값을 통해서 특정한 위치에 접근이 가능한것처럼 genome 데이터는 염색체번호 염색체상의 일련의 linear한 위치로 접근이 가능하다. 앞에 놓인 자(scale)를 보면 쉽게 이해가 갈것이다. 많은 genome browser들이 바로 이러한 컨셉을 기반으로 정보를 visualization하며, 대표적으로 UCSC에서 만든 UCSC Genome Browser가 있다. 이러한 linear genome browser는 다음과 같은 특징을 가지고 있다. 
  • linear한 좌표를 이용하여 정보를 표시
  • 좌표 하단에 여러개의 트랙에 정보를 표시하는 형태로 정보를 전달
  • 각 트랙에는 다양한 타입의 정보를 통합하여 표시
  • 사용자는 중 인/아웃 기능을 통해 레벨에 따른 다양한 정보를 표시 (네이봉지도를 보면 줌아웃하면 개략적인 정보만 보이다 좀인하면 디테일하게 보이듯이) 


환상 (써클) 모양 browser
linear를 구부려서 양말단을 이어주면 바로 환상의 browser가 된다. 대표적으로 Circos나 MitoWheel 등이 있다. 미생물처럼 비교적 크기가 작거나 암 유전체에서 rearrangement 정보를 표시하는데 그만이다. 또한 두 종을 각각 반원에 표시하여 두종간의 homologous segment를 표시하는 등의 다양게 활용이 가능하다.


지도와 같은 Browser
지금까지 linear하게 즉, X값만을 이용하여 genome 정보를 표시하는데 반해 지도와 같이 x, y의 좌표를 모두 이용하여 정보를 표시하는 방법이다. 

직접 genome browser 만들기
jBrowse는 데이터를 직접 커스터마이즈하여 자신의 데이터를 볼 수 있도록 해준다. 현재 genomeunzipped에서 개인 유전체 데이터를 브라우징하는데에 사용하고 있다.

결론
바빠서 마무리 못함. 


저작자 표시 비영리 동일 조건 변경 허락
Posted in : 유전자정보분석 at 2013/04/24 14:13
Currently 댓글이 없습니다. comments want to say something now?
GenomeCloud 내부를 파헤치자
2013/04/24 12:28 | blogging
많은 분들이 GenomeCloud가 내부적으로 어떻게 클라우드 자원을 관리하고 유전체 데이터를 분석하는지에 대해서 궁금해 하셔서 간단하게 기술적인 설명을 해볼까한다. 일반 생물학 연구자들도 한번쯤 읽어두면 자신의 데이터가 어떻게 분석되는지 연구에 활용하려면 GenomeCloud를 어떤식으로 해야 할지에 대한 폭 넓은 안목을 가지게 될 수 있으니 강추!!! (-.-;;)

1. ucloud biz (클라우드 자원)
CPU/메모리/디스크/OS/네트워크 등의 개별 자원을 제공하는 서비스로 GenomeCloud는 분석할 대상에 따라 개별 자원들을 조립하여 사용합니다. 분석에 대한 요청이 들어오면 개별자원을 조립하고 분석을 수행한 후 다시 개별 자원을 반납하게 됩니다.


ucloud는  하나의 가상서버(Virtual Machine)에 대해서 다양한 CPU/메모리/디스크/OS 등을 조합하여 자신이 원하는 사양을 직접 조립할 수 있도록 하고 있는데 유전체 분석의 각 단계별로 최적의 하드웨어 조합을 찾아내어 사용합니다.

2. ucloud biz API (클라우드 자원 핸들링)
앞서 필요한 각각의 자원이 어떠한 것들이 있는지? 개별 자원을 생성하고 서로 연결하는 작업은 ucloud API라는 것을 통해 프로그래밍적으로 활용할 수 있습니다.  이는 직접 웹페이지에서 클릭을 통해서 자원을 생성하고 연결하는 작업을 할 수 있지만 요청이 들어올때마다 사람이 직접 클릭해서 자원을 만들거나 삭제하는건 불가능하기에 공개된 API를 통해 자동으로 모든 작업이 수행됩니다.

ucloud를 이용한 서비스를 만들고 싶다면 ucloud biz 개발자 센터로 

python으로 클라우드 자원을 핸들링하고자 한다면 ucloud biz API를 손쉽게 쓰게하는 python binding이 존재합니다.  간단히 ucloud 홈페이지에서 자신의 ucloud내 api key와 secret key를 가지고 다음과 같이 프로그래밍을 하면 현재 만들어진 서버의 목록이 나타납니다.


3. Deploy (클라우드 자원 셋팅)
ucloud API로 필요한 하드웨어 (깡통)를 만들게 되면 그 안에는 OS만 덜렁 설치되어 아무것도 할 수 없습니다. 따라서 유전체 분석에 필요한 소프트웨어나 레퍼런스 데이터 등을 실제 분석이 이루어지기 전에 설치/설정 해야하는데요. 바로 이러한 작업을 디플로이라고 합니다. 이러한 작업을 해주는 소프트웨어가 별도로 존재하는데요. 미리 컴퓨터에 해야할 작업을 정의해 두면 컴퓨터는 혼자서 그 작업들을 수행합니다. 

4. Job 분배
이제 바로 분석할 준비가 된 서버들이 생겨났으면, 각 서버는 자신이 해야할일(mapping이라던지 variant calling 등)을 할당 받습니다. 사용자가 분석을 의뢰하면 해당 요청에 대해서 자세하게 정의된 내용이 데이터베이스에 저장되고 분석할 서버들은 해당 요청을 데이터베이스로 부터 할당 받아서 실제 분석을 수행하게 됩니다. 이때 분석을 수행해야 하는 서버들은 해당 요청을 파싱하여 자신이 분석해야할 input data를 가져오고 어떤 프로그램을 어떠한 옵션으로 실행해서 어떠한 결과를 만들어내야 하는지를 파악하게 됩니다.

5. Job 실행
기본적으로 GenomeCloud는 현재 업계에서 검증되고 활발하게 사용되고 있는 소프트웨어를 사용합니다. 각각의 소프트웨어들은 참 다양하게 구현되어있습니다. 어떤놈은 perl로 또 어떤놈은 java로 이렇듯 다양한 소프트웨어들을 엮어 일련의 작업을 수행하도록 만드는 것이 바로 pipeline인데요. 이때 각각의 소프웨어를 컨틀롤하고 그들이 내뿜는 에러나 서로간의 인/아웃풋을 컨트롤 하고 최적화하여 수행하도록 합니다. 각각을 연결한 pipeline은 여러번의 테스트와 중간중간 customizing 통해 robust하게 돌아가도록 하고 있습니다.

6. Job 트래킹
각 서버는 해당 분석을 수행하면서 중간중간 어떠한 작업을 시작했고 어떠한 작업을 끝냈는지를 보고하게 됩니다. 이렇게 각 서버들이 보낸 정보를 취합하여 사용자에게는 웹페이지를 통해서 요청한 작업이 어떠한 상태인지 확인 할 수가 있게 됩니다.


7. Object storage 결과 저장
각 서버들은 분석이 완료되면 이전에 말했듯이 삭제(destory)가 됩니다. 기구한 운명이죠. 열심히 일하고 죽는... 따라서 삭제 되기전 자신의 분석 결과는 가격은 저렴하면서도 안정성이 높은 스토리지에 전송합니다. 흔히 object storage라고 불리는 서비스인데요. 컴퓨터는 없고 디스크만 있는 거라고 생각하시면 됩니다.  결과 파일을 저장하기 위해서 서버까지 계속 남겨두면 그만큼 비용이 지불되기 때문에 서버는 삭제하고 결과만 별도의 스토리지만 제공하는 서비스에 안전하게 보관하는 거죠.

클라우드를 만들고 직접 그 위에 서비스를 올리다
아무래도 클라우드 자원을 직접 만들고 관리하는 주체가 KT이다 보니 해당 부서와의 긴밀한 협조아래 유전체 분야의 데이터를 다루는데에 있어 클라우드가 잘 활용될 수 있도록  많은 시도를 하고 있습니다. 이는 기존의 아마존이나 타 클라우드 서비스를 기반으로 하고 있는 서비스들은 결코 따라올 수 없는 GenomeCloud만의 장점 중 하나라고 할 수 있습니다.

여담이지만, 이렇듯 유전체 데이터를 분석하는데에 있어서 최소한의 비용을 위해서 각각의 요소마다 어떻게 하면 비용도 줄이면서 효율성도 높일 수 있을지를 많이 고민해서 만들었고 그 결과 국내외 어디와 비교해도 꿀리지? 않을 저렴한 비용으로 연구자들에게  서비스가 가능하게 되었다는...

저작자 표시 비영리 동일 조건 변경 허락
Posted in : blogging at 2013/04/24 12:28
Currently 댓글이 없습니다. comments want to say something now?