요즘 NGS data assemblers는 대부분 De bruijn graph 방식으로 assembly 하는데 선택 옵션 중의 하나가 k-mer size. 과연 어떠한 k-mer size를 정해야 하는가에 대해 고민하게 된다.
velvet의 경우 1.palindrome을 피하기 위해 홀수로 2.당연한 것이지만 read length보다는 작게해야 한다고 한다. 이 k-mer의 size는 specificity와 sensitivity의 trade-off 라고, 즉 k-mer의 길이가 길어지면 specificity가 높아지는 반면 sensitivity가 떨어진다. 이들이 경험적인 해결책으로 내놓은 것은 다음 공식을 따른다.
Ck = C*(L-k+1)/L
여기서 C는 standard coverage, Ck는 k-mer coverage, L은 read length, k는 k-mer size로 경험상 Ck가 최소 10은 되야 하고 20이 넘어가면 이는 "wasting" coverage가 된다고 한다(위 공식에서 풀어서 생각하면 일반적인 coverage를 구하기 위해 read count * read length / genome size를 하는데 read length 대신에 read에서 나올 수 있는 k-mer의 수를 곱해준 것으로 각 base에서 몇 개의 k-mer가 cover되는가, 즉 말그대로 k-mer coverage를 구하게 되는 것이다).
abstract를 보자면..
de novo assembly of transcriptome의 최적화를 위해 여기서는 두가지 방법을 제시한다. 한가지가 Multiple-k method, 다른 한가지가 STM(Scaffolding using Translation Mapping) method. Multiple-k method는 말그대로 k-mer size 다양하게 해서 assembly 한다는 것이고 STM method는 가장 유사하다고 여겨지는 이용가능한 reference proteome을 이용해서 같은 protein에 mapping되는 contig들을 scaffolding 하는것. 이 두 방법을 사용해서 catfish, 매기에 transcriptome 을 분석하였단다.
음.. 굉장히 별거 아닌거 같이 보인다.. k-mer 의 길이를 다양하게 하는 것은 velvet등의 assembler에서의 권장 사항이며 reference based assembly 역시 velvet에서 columbus라는 모듈로 나온것인데.. 뭐 끝까지 함 봐보자.
intro가 상당히 긴데 기억할 만한 것은 higher expressed 되는 transcript의 경우 k-mer 길이를 길게 함으로 해서 더욱 긴 contig를 만들수 있는데 반해 poorly expressed 되는 transcript경우에는 짧은 k-mer size가 났단다. 결국 이 k-mer의 길이의 선택은 어느것에 초점을 맞추느냐인 주관적인 문제라고. 음.. abstract 만 보고 reference based assembly에 대해 뻔하고 했는데.. 여기서도 다양한 선례를 보인다. 다만 선례들은 close relative genome을 이용했으므로 제한적이라는 것. genome을 사용했다는 건 reference로 사용한 genome의 evolutionary distance가 멀수록 nucleotide difference가 클 수 밖에 없으므로. 이 문제의 해결 방법으로 amino acid sequence를 이용한다는 것.
아하. 이 논문의 차별성은 보통은 다양한 k-mer 길이를 이용하여 테스트를 해보기는 하나 결국은 하나의 k-mer size를 정해서 분석하는데 반해 이 논문은 다양한 k-mer에서 나온 결과를 전부 이용한 다는 것이며, 보통 reference based assembly에서 genomics sequence가 사용되는데 반해 여기서는 amino acide sequence를 사용한다는 것.
아래 두 표에서 보듯이 k-mer size를 늘려가면 확실히 sensitivity는 줄어드나(table1에서 reference coverage 감소) contig의 average coverage는 늘어남을 알 수 있다(table2의 rpkm 값 증가). 여기서 집고 넘어가는 것 중에 하나가 k-mer size가 늘어날 수록 rpkm의 mean은 커지고 동시에 SD도 커진다는 것. 즉 k-mer size가 커지면 적은 수의 다양한 expression level을 보이는 transcript의 assembly가 된다는것. 곧 k-mer size마다 assembly 결과 특징이 다르다.
아래표는 모기의 trascriptome 데이터 가지고 evaluation을 해본 것이다.
그래서 이 논문에서는 다양한 k-mer size를 이용하는 두가지 방법을 제시. 하나가 subtractive Multiple-k 와 additive Multiple-k.
subtractive Multiple-k : 큰 k-mer size로 assembly 하고 나서 nonassembled read만 모아서 작은 k-mer size로 assembly
additive Multiple-k : subtractive Multiple-k와는 달리 큰 k-mer size로 assemble 했을때 contig 생성에 참여한 read를 제거하지 않고 다시 중복해서 작은 k-mer size로의 assembly에 사용. 이렇게 되면 contig에 redundancy가 생기게 되는데 CD-HIT-EST를 이용해서 clustering을 한뒤 가장 긴 contig만 남긴다.
위 표에서 볼수 있듯이 subtractive Multiple-k는 그다지 나아진 점이 없는걸로 보인다. 반면 additive Multiple-k의 결과는 상당히 개선됨을 보인다. 이 논문에서 찝어서 이야기 하는 것중 하나가 No. of transcript로 보면 Multiple-k가 19 k-mer보다 나은게 없어보이지만 100이상인 contig의 수가 2배 이상이라는 것(커버하는 transcript의 수는 비슷할지라도 그 transcript의 cover 면적은 Multiple-k가 훨씬 좋다는 것. 그렇다면 cover 했다는 definition이 뭐냐? blastn을 돌렸을때 query의 95%가 align에 참여하고 reference의 99% identity가 있을 경우를 의미 한다. 곧 query 대비 길이가 95%가 넘어가면 그 transcript를 커버했다고 보는 것).
STM method : initial assembly 결과 contig를 translation해서 reference proteome에서 orthologous region을 찾는것. 만약 서로 다른 contig의 translated amino acid가 하나의 protein에 mapping된다면 이를 scaffolding 하는 것이다. 이 과정에서 initially unassembled read를 사용하느냐 마느냐에 따라 STM+ 와 STM-로 나뉜다. 자세한 과정은 아래 그림을 참조한다.
아래 표가 simulated read를 STM method을 이용해서 assembly 한 결과. 에러는 적은데 반해 maximum length랑 N50이 커진 것을 알 수 있다. 그리고 이 STM method가 transcript length나 adundance에 bias가 있는지도 확인했는데 그런건 없단다.
마지막으로 STM method의 한계점에 대해서 이야기 하는데.. 어떻게 보면 STM method가 EST로 orthology 찾는거랑 비슷한데 다른 논문에서 말하길 비교하자고 하는 두 종 중 하나의 종의 transcriptome이 완성됐다면 그 정확도가 상당히 높다는 것. 또한 비교하고자 하는 종의 evolutionary distance가 멀어짐에 따라 prediction 할 수 있는 ortholog는 줄어들지만 accuracy는 거의 똑같다고. 곧 이를 STM method에 적용해서 보자면 complete transcriptome을 사용한다면 reference의 evolutionary distance에 상관없이 low error rate의 결과를 얻을 것이라는 것.
No comments:
Post a Comment