2008년 2월 4일 월요일

454 pyrosequencing system(GS 20/GS FLX)에서 만들어지는 데이터

454 pyrosequencing의 원리에 대해서는 꽤 잘 알려져 있으므로 여기서는 다루지 않겠다. 다만 엔드 유저(장비 오퍼레이터가 아니라)의 입장에서 알아야 할 철저히 실무적인 이야기만 다루고자 한다.

표준 PicoTiterPlate는 70 x 75 mm의 크기이며, 가스켓을 사용하여 2, 4, 및 16개의 구획으로 나누어 서로 별도의 반응물을 로드할 수 있다. 이러한 구획 하나에서 한개씩의 SFF(Standard Flowgram Format) 파일이 만들어진다. 일반적으로 2분할 가스켓을 쓰게 되므로, 한번의 스탠다드 런을 수행하게 되면 두 개의 SFF file을 얻게 된다. PicoTiterPlate에 존재하는 모든 구멍(well; 직경 44미크론짜리 구멍이 50미크론 피치로 촘촘하게 배열)에 전부 비드를 채우게 되면 인접한 구멍에서 나오는 빛 신호의 간섭이 발생하므로, 구멍을 전부 채우지는 않는다. 하나의 플레이트에서 40만개의 read가 나오게 하는 것이 최적이므로, 표준 조건에서 만들어진 SFF file(2분할)는 각각 20만 read 정도를 포함하고 있다. 그렇다면 하나의 플레이트에서 약 100 Mb가 나온다는 계산은 어디에서 연유하는가?

400,000 reads x 250 bp/read = 100,000,000 bp = 100 Mb.

2008년에 나올 업그레이드 모델에서는 read length 400 bp, 1회 런닝에서 얻어지는 판독량은 1GB를 달성하게 된다고 하니 정말 대단한 발전이 아닐 수 없다!

Sanger sequencing에 의한 whole-genome shotgun project에서는 8-12x 정도의 coverage를 달성하는 것이 표준이었다. 하지만 454 system에서는 같은 coverage로는 충분한 assembly가 되지 않는다. 쉽게 이야기하면 Sanger sequencing에 비해 contig의 수는 더 많고, 길이는 더 짧다는 뜻이 된다. 이는 아마도 454 system에서 얻어지는 read의 길이가 현저히 짧기 때문일 것이다(수학적으로 증명 가능한 것으로 알고 있음). 게다가 454 system의 running cost가 더 적다 보니 여기에서는 20x sequencing coverage를 달성하는 것을 목표로 한다. 따라서 하나의 PicoTiterPlate에서 표준 런닝을 하여 100 Mb 어치의 결과를 얻으면 이는 5 Mb 정도의 세균 유전체에 대해 20배수를 확보한 셈이 된다. 5 Mb라 하면 세균 유전체로서는 중간 이상의 크기인 셈이다. 대장균이 4.6 Mb인 것을 감안한다면.

국내에서 454 시퀀싱을 하려면 마크로젠이나 NICEM, 또는 한국생명공학연구원 유전체연구단을 통하면 된다. 대개 결과는 contig sequence/quality file과 ace file 정도일 것이다. 하지만 조금 더 적극적인 유저라면 raw data인 SFF file을 입수하여 직접 GS assembler로 합체해 보는 것을 권한다. 하지만 소프트웨어의 라이센스 문제는 조금 더 알아보아야 되겠다. GS system을 구입한 곳에만 사용 권한을 주는 것인지...? 어차피 GS assembler에서 다룰 수 있는 데이터는 GS 장비가 있는 곳을 통해서만 생산되므로, GS assembler는 공개해도 별 문제가 없지 않나 하는 순진한 생각을 해 본다. 특히 GS FLX와 함께 2007년도 9월쯤 출시된 GUI 소프트웨어 버젼에서 많은 개선이 이루어진 것 같다. Sanger read와 GS raw data(SFF로서)를 혼합하여 합체하는데 적당한 도구가 없다는 것이 그동안의 어려운 점이었지만, 최신 소프트웨어에서는 이 기능이 추가되었다. 물론 Sanger read(ab1 file)을 그대로 넣는 것이 아니라 sequence/quality file로 전환하여 사용하게 되어 있다.

(그런데 무려 8개의 SFF file과 5만개의 ab1 file을 섞어서 합체했더니 오류가 나고 말았다! )

새 버전의 소프트웨어에 포함된 gsAssembler(GUI)와 runAssembly/runMapping(CLI)가 완전히 동등한지도 좀 더 공부를 해 봐야 되겠다. 똑같은 데이터를 투입했지만 결과가 조금 다르게 나온다던가, GUI에서는 합체에 따르는 몇가지 파라메터를 수정 가능하지만 CLI에서는 매뉴얼을 아무리 보아도 옵션을 통해 설정 변경을 할 수 있는 것 같지가 않다던가... 하지만 이렇게 떠들어 봐야 GS software를 GS 장비 구입자에게만 제공하는 것이 원칙이라고 하면 아무런 소용이 없는 것 아닌가? 이 문제에 대해서는 추후에 로슈 한국 지사에 물어봐야 되겠다.

다음 게시물에서는 GS data를 기반으로 하여 피니싱을 하는 일반적인 방법에 대해서 논해보고자 한다.

댓글 없음: