Tuesday, May 24, 2011

Full-length transcriptome assembly from RNA-Seq data without a reference genome

de novo transcriptome assembler 인 Trinity를 소개하는 논문. 일단은 full-length transcript의 de novo assembler로 Trinity의 방법을 소개하고 fission yeast, mouse, whitefly에 대해 테스트 해본다(참고로 whitefly는 reference genome이 없단다). 또한 다른 프로그램들 (abyss, trans-abyss, oases, SOAPdenovo)와도 비교 분석한다. 

<RNA-seq 분석(특히 full-length transcript reconstruction)의 challenge(이 리스트는 아마도 다음 논문에서 따온듯 하다)>
1. transcript 마다 expression 양이 다르다.
2.한 transcript에서 나온 read들이라도 coverage가 고르지 못하다
3.많이 발현되는 transcript의 시퀀싱 error가 있는 read가 적게 발현되는 transcript의 read보다 많을 수 있다(이는 아마도 유사한 sequence일때 문제가 되지 않을까 싶네).
4.가까이에 있는 transcript 들이 ovelap되서 잘못된 chimeric transcript로 예측할 수 있다.
5.alternative splicing을 고려한 data structure가 필요.
6.서로 다른 transcript 사이에 유사한 sequence가 있을때 생기는 ambiguity.

<RNA-seq 분석에 대한 두가지 접근법>
1.Mapping-first approach : Scripture, Cufflinks 프로그램이 그 예. 일단 reference에 mapping and merging.
2.Assembly-first method : ABySS, SOAPdenovo, Oases. 일단 asseble 먼저 하고 reference 있음 그담에 mapping.


<Trinity 소개>
아래 그림이 Trinity의 대략적 개요인데.. 이걸 보면 처음에.. 뭐지 이거.. 3개의 species에 대해서 test를 해봤다는건가 이렇게 생각이 드는데. 나름 위트있게 각 모듈의 이름과 그 과정을 잘 표현한 그림이다. Trinity는 3개의 모듈(어떻게 보면 프로세스)로 되어 있는데 1.Inchworm, 2.Chrysalis, 3.Butterfly 로 되어있다(그래서 프로그램 이름이 Trinity인거 같기도). 
각 단계별로 보자면
1.Inchworm : greedy k-mer-based approach 방식. 음 뭐냐면 read를 k-mer로 profiling해서 사전을 만들고 가장 frequency가 높은 k-mer를 seed로 삼아서 이 seed를 양방향으로 overlap 되는 것끼리(k-1 mer overlap) 연결시켜 contig를 만드는데 만약 k-1 overlap이 k-mer가 많을 시에는  k-mer 중 frequency가 높은 것을 연결한다. seed 선정부터 contig extend 까지 계속적으로 반복한다.
2.Chrysalis : clustering 후 complete de Bruijn graph를 생성. Inchworm 단계에서 생성된 contig를 clustering하는데 k-1 mer 이상 겹치는 contig들 또는 read에 의해 바로 연결되는 contig들을 grouping. 그 뒤 각 cluster(component)마다 de Bruijn graph를 생성한다.이때 node가 k-1mer이고 edge가 k mer이다. 각 edge는 read frequency로 weight를 구한다. 그 후 각 read들을 가장 많은 k-mer가 공통이 되는 component에 할당한다.
3.Butterfly : 생성된 component들에 read를 대입해서 가능한 모든 full-length transcript를 찾는다. 이는 두 단계로 구성되어 있는데 첫번째로 graph simplification 를 수행한다.  graph simplification은 Chrysalis에서 만든 graph의 node를 merging 하고 error로 판단되는 edge를 pruning 하는 것으로 이루어진다. 두번째로 plausible path scoring 작업을 한다. 이는 실제 read를 simplified 된 graph에 대입함으로써 path를 찾게 되어 full-length transcript를 생성하는 것이다.

더 자세한 내용은 논문 참조. 


No comments:

Post a Comment