Thursday, June 2, 2011

TopHat: discovering splice junction with RNA-Seq

항상 느끼는거지만 정석대로 가는게 젤 빠른 길인거 같다. 어떻게든 빨리 가볼려고 인터넷 뒤지고 뭐하고 해도 결국은 첫 시작점으로 돌아간다. 내가 자바스크립트 완벽 가이드를 산 것처럼. 여튼 trinity을 이해할려고 cufflinks를 보게됐고.. cufflinks를 보기 위해 tophat까지 왔다. 그렇다면 bowtie까지 가야 하는건가.. 다행히도 예전에 bowtie 논문을 조금 본 기억이 있는데.. 더 내려가진 않았으면 한다.


논문의 intro에서는 QPALMA 라는 프로그램이랑 비교한다. QPLAMA는 svm을 이용한 machine-learning 방법으로 기존에 알려져 있는 junction에 read가 mapping 되는걸로 training을 해서 새로운 exon 이랑 junction을 찾는단다. 근데 자기껀 아니라는 거다. 결국 자기네 건 training set이 필요 없단다. 그리고 훨 빠르단다. 
위 그림이 전체적인 tophat 알고리즘이다(그림만 보면 컨셉은 심플하다). 


세세하게 보자면 일단 Bowtie를 이용해서 mapping 한다. 그래서 mapping 안된 read를 IUM (initially unmapped) reads 라고 해서 따로 모아 놓는다. mapping 할 때 mismatch 나 뭐 이런 것들은 default 값으로 유지하는 것 같고 mapping redundancy는 10까지 허용. 그 이상은 버림. 10까지 허용하는 건 gene의 multi copy를 위한것. 글고 low complexity1에 의한 unmapping은 IUM read에 들어가지 않는다.
그담엔 Bowtie의 assembly 모듈을 이용해서 mapping된 read를 assemble 한단다. splice junction에 걸쳐진 read들은 IUM read로 빠졌을 거고 그렇다면 exon의 끝부분에는 read가 몇에 없을거고 게다가 quality도 나쁠거니까(read가 끝에 얼추 정확하게 맞는다는건 exon의 끝부분이 그 read의 끝부분일테니까).. 이런 단순 mapping에 의해서 exon의 끝부분 sequence를 잃을 수 있다는 생각에 default로다가 양쪽으로 45 bp 확장한다. 발현양이 적은건 부분부분 read가 mapping 될거라서 이런 single island가 가까우면 merge 한다(default 6, 허나 mammalian일 경우 70 추천). 
그 담은 각 island 마다 canonical intron2 donor 랑 acceptor를 찾는다(GT-AG).  70~20000bp(default) 안에 위치한 island 끼리의 canonical intron donor-acceptor 의 paring을 지어서 이 pair들에다가 IUM read를 맵핑한다. 중요한건 within single island 에서도 GT-AG pair를 찾는다는것. 단 속도를 높이기 위해 모든 single island에서 찾는건 아니고 depth가 높은 것에서만 찾는다.


마지막으로 Velvet+gmap이랑 자기네꺼랑 비교한다. 음 당연히 reference를 참고로 assembly 하는 TopHap이 performance가 좋단다.


음 일단은 parameter를 정리해야 할거 같다. parameter가 곧 알고리즘의 키가 되는 것이기 때문에(사실 항상 어떤 프로그램을 사용하기 전에 논문을 보는 이유가 이거다. 논문을 이해 못하면 프로그램을 제대로 사용 못하기 때문에)..


<possible parameter> 논문 보면서 예상되는 프로그램의 parameter


-D : single island로 assembly 된 것 중에도 alternative splicing에 의해 isoform이 있는 경우가 있기 때문에 single island에서도 canonical intron을 찾는데 speed를 위해 depth가 높은 island에서만 찾는다. 그 값을 정하는게 D
-s : read의 seed look up table을 만들때 사용하는 seed를 생성할 총 영역의 길이(5'쪽부터 얼마의 bp)
-k : junction의 seed라고 할 수 있다. junction에서 앞뒤로 k-mer, 즉 2k-mer를 junction의 seed로 해서 exact match되는 read의 seed index를 찾는다.
-minor isoform expression percentage : algorithm 수행후 찾아진 junction들 중에 그 expression이 주변 exon의 expression보다 15%가 안되면 report 자체를 안하는데 이 비율을 조정하는 값 
----------------------------------reference---------------------------------------


1.low complexity DNA : 항상 이 단어를 보면 그냥 당연스레 sequence complexity 가 낮은거, 그러니까 polyN 같은 걸 말하겠지 하고 그냥 넘어 갔는데. . 최소한 정확한 definition이라도 알아야 할거 같아서 링크를 건다. low complexity 를 찾는데 많이 쓰는 프로그램 중 하나가 repeatmasker 라고 링크 따라 가면 low complexity DNA에 대한 내용이 나온다. 음 대충 보니 poly-purine/ poly-pyrimidine 이랑 high AT/GC content를 이야기 하는거 같네. 


2. canonical intron, donor, acceptor : 위키 RNA splicing에 잘 나와있다. 넘 길어서 담에 봐야지

No comments:

Post a Comment