안녕하세요.
Repeat-masking 을 하지 않은 유전체를 gene prediction pipeline 에 넣으면, 시간이 오래 걸리고 매우 많은, TE 유래의 ORF들이 prediction 됩니다. 이중에서 이후에 따로 repeatmasking 된 유전체 지역 region 들과 겹치면서 발현도 안 되는 ORF들을 골라내서 버릴 수 있다면 그렇게 하셔도 된다고 생각합니다. 유전체가 작고 TE content 가 비교적 낮은 경우에는 이렇게 해도 괜찮았습니다.
Hard repeat-masking (=repeat 부분을 아예 NNN으로 치환) 을 한 유전체를 gene prediction pipeline 에 넣으면, 예를 들어 tandem duplicated 유전자들이 LTR TE로 잘못 인식되어 masking 된다거나, masking 때문에 partial ORF만 잡힌다거나 등등 경우가 생길 수 았습니다. 다만 유전체가 비교적 큰 경우 (>1Gb) 그냥 hard-masked sequence 로 gene prediction 을 했을 때 BUSCO score 가 더 좋았던 경우도 있습니다.
MAKER2 에는 soft-masked (=repeat 부분을 NNN이 아니라 소문자로) 유전체 서열을 사용하는 옵션이 있는데, 이게 실제로 잘 작동하는지는 제가 해보았을 때는 잘 알 수 없었습니다.
어느 경우이든 RNA-seq 이나 Iso-seq data가 있으면 따로 reference-guided transcriptome assembly 를 해서 (이때는 물론 masking 되지 않은 genome 을 reference 로 쓰셔야 합니다) 발현이 되는 것이 확실한 protein-coding transcript model 들을 더해주면 좋습니다. (다만 RNA-seq 에서 transcriptome assmebly 를 할 경우 chimera transcript 같은 것들이 생길 수 있는데 ... ... ...)
...
MAKER2 는 결국 Augustus 를 기반으로 하는 pipeline 으로 알고 있습니다. 요즘은 BRAKER 라는 pipeline 도 많이 쓰더군요. Method 가 잘 쓰여진 genome paper 몇 개를 골라서 일단 따라하면서 그때그때 생기는 문제를 해결하시다 보면 ... 잘 될 것입니다.
Ab initio gene model prediction 은 다음 것들이 있으면 좋습니다:
1. BUSCO pipeline 에서 찾아낸 BUSCO들을 바탕으로 training 한 augustus parameter (BUSCO 설명서에 방법이 나와있었던 것으로 기억)
2. 근연종 중 이미 잘 확립된 유전체와 gene model 이 있을 경우 이들로부터 얻을 수 있는 homology hint
3. EST, transcriptome assembly, RNA/iso-seq 데이터로주터 얻을 수 있는 expression hint. 다만 short-read transcriptome assmebly 는 항상 틀릴 수 있다는 점을 유의...
-
레벨2
JJUUHH
(대학생)
-
22.07.19 21:44
안녕하세요 선생님. 정말 많은 도움 받고있어 감사할 따름입니다.
친절하신 답변 정말 감사합니다. 제가 이미 MAKER를 설치하였고 example data로 실행시켜보고자 시도 중인 상태인데 MAKER에 RepeatMasker를 이용한 masking 단계가 포함되어 있어 이 tool을 선택하여 사용하고 있습니다.
하지만 example data를 사용하여 MAKER 실행 과정 중 maker_opts.ctl file을 edit하는 와중 model_org= 부분에서 RepBase를 입력하라고 되어있는데 기존에 RepeatMasker 사용 시 Dfam database를 사용하고 있었습니다. (RepBase는 유료화 되었기 때문)
따라서 실행 시 그림과 같이 에러가 발생하는데 혹시 RepBase가 아닌 Dfam database를 사용할 수 있는 방법 아시나요?
export LIBDIR=/usr/local/RepeatMasker/libraries를 vi .bash_profile에 추가한 후 model_org 부분에 입력해도 똑같은 에러가 발생하고 그 아랫줄에 있는 rmlib 부분에는 fasta 파일을 입력하라고해서 이부분에 export 한 것을 입력해도 fasta file format이 아니라고 뜹니다.
혹시 해결방법 아실까요? 아니면 MAKER를 접고 다른 tool을 시도하는 것이 나은 선택지일까요?
> 하지만 example data를 사용하여 MAKER 실행 과정 중 maker_opts.ctl file을 edit하는 와중 model_org= 부분에서 RepBase를 입력하라고 되어있는데 기존에 RepeatMasker 사용 시 Dfam database를 사용하고 있었습니다. (RepBase는 유료화 되었기 때문)
> 따라서 실행 시 그림과 같이 에러가 발생하는데 혹시 RepBase가 아닌 Dfam database를 사용할 수 있는 방법 아시나요?
저는 Dfam 은 왠지 무거워 보여서 써보질 않았습니다.
대신 RepeatModeler 를 실행시켜서 (RepeatMasker 홈페이지에서 설치 방법 등이 나와있습니다) 제 유전체에 특이적인 TE/repeat 들을 우선 찾아낸 다음 (output 으로 fasta 파일 생성), 이걸 RepBase 2018년 경 유료화되기 전 마지막 버젼 (RepeatMasker download 페이지에 설명되어 있습니다) 에 포함된 fasta 파일들 중 제 유전체와 가장 관련이 있는 taxa 들만 고른 것에 더합니다. 그렇게 만들어진 fasta 파일을 RepeatMasker 에 "-lib" argument 로 전달해 주고 RepeatMasking 을 합니다.
이렇게 하는 편이 특히 non-model 유전체를 다룰 때는 기존에 알려지지 않은 TE/repeat 들까지 잡아낼 수 있어 더 낫다고 생각합니다. RepeatModeler 결과물이 결국 Dfam 에 축적이 되도록 되어 있는데, TE/repeat 들은 상당히 계통 특이적인 것들이 많기 때문에, 전체 Dfam 이나 RepBase 를 다 쓴다 해도 de novo TE detection 과정이 없다면, 특히 기존에 분석된 적 없는 새 유전체의 경우 놓치는 TE 들이 많게 됩니다.
Maker2 라면 아마 "model_org=" 는 공란으로 남겨두고 "rmlib=" 에 위에서 말씀드린 RepeatModer fasta output + RepBase fasta 를 합친 fasta 파일의 링크를 주고 실행해 보시기 바랍니다.
Dfam 을 써보고 싶으시다면, Maker2 파이프라인 안에 포함된 RepeatMasker 를 쓰는 대신 그냥 따로 RepeatMasker 를 Dfam 을 써서 수행하신 다음, 그 결과물 (.out 파일) 을 GFF 로 변환해서 "rm_gff=" argument 로 전달하면 어떨까 싶습니다 (방법은 "RepeatMasker output to GFF" 로 구글해보시면 많이 나옵니다) 이 경우 Maker2 는 RepeatMasker 를 다시 돌리지 않고, gff 파일에 있는 유전체 구간을 TE/repeat 로 인식하고 유전자 모델 예측을 수행하리라 생각합니다. (해보진 않았습니다).
Example data 로 Maker2 를 test 를 하시는 중이라면 그냥 RepeatMasker 에 해당하는 부분을 전부 공란으로 두고 (즉 RepeatMasking 과정은 skip) 실행해 보시면 어떻게 되나요?
BRAKER 등 다른 도구를 생각해보시는 것도 좋겠습니다만, 저는 논문에서 사람들이 쓰는 것만 보았고 직접 써보지는 않았습니다.
> MAKER 실행 과정 중 maker_opts.ctl file을 edit하는 와중 model_org= 부분에서 RepBase를 입력하라고 되어있는데
한가지 추가하자면 "model_org=" 에는 library 위치가 아니라 taxon, 즉 all, simple, human, mouse, zebrafish, fruit fly, nematode, ... 뭐 이런 것들을 입력하는 것으로 알고 있습니다.
Dfam 을 RepeatMasker ./configure 과정을 써서 설치했는데도 Maker2 가 인식하지 않는다면, 위 답변에서 말씀드린 2018년 10월 어느날의 RepBase 버젼을 RepeatMasker ./configure 과정을 써서 설치하신 다음 다시 해보시길 바랍니다.
* 보통 에러가 났을 때는, 에러 메시지로 구글을 해보면 비슷한 상황을 겪은 사람들을 많이 만날 수 있습니다. 다만 이 경우 Maker 팀 (Yandell 랩) 사람들이 답을 한 것이 있는지는 잘 모르겠네요.
-
레벨2
JJUUHH
(대학생)
-
22.07.20 22:44
감사합니다 선생님!
시도해보겠습니다! 많은 도움 주셔서 정말로 감사드립니다!
간단한 한가지 질문이 있는데 EST file이 mRNA data를 입력해야하는 것 같은데 이것 또한 필수적인 요소인가요?
mRNA data를 얻으려면 RNAseq이 수반되어야 한다고 생각하는데 맞을까요 선생님?
> 간단한 한가지 질문이 있는데 EST file이 mRNA data를 입력해야하는 것 같은데 이것 또한 필수적인 요소인가요?
> mRNA data를 얻으려면 RNAseq이 수반되어야 한다고 생각하는데 맞을까요 선생님?
Expression "hints" 와 homology "hints" 는 없어도 파이프라인은 돌아가지만, 있는 편이 월등히 더 좋습니다.
EST file 은 EST, full length cDNA, transcriptome assembly from RNA/iso-seq (다만 이 경우 충분히 필터링 해서 가능한 한 정확한 것만 고릅니다. De novo 가 아니라 refrence-guided assembly 를 한 것도 좋습니다 ... 라기보단 더 좋습니다)...
Maker2는 이런 expressed transcript hint 들을 직접 fasta 파일이나, genome 에 align 해서 그 coordinates 를 gff 형식으로 받습니다.
...
사실 RNA-seq 을 해서 유전체 서열에 mapping 한 결과 (.bam 파일) 를 바로 받아들일 수 있으면 편할 텐데, 이걸 하도록 만든 게 BRAKER/BRAKER2 인가 봅니다:
https://github.com/Gaius-Augustus/BRAKER#what-is-braker
MAKER2 는 RNA-seq mapping 결과 (.bam) 를 바로 받아들이는 옵션은 없는 듯 합니다. Stringtie2, Trinity 등을 써서 일단 transcript 를 조립한 다음 MAKER2 에 전달해야 합니다.
...
유전체가 아주 큰 경우 (예: 작년엔가 발표된 rye 유전체들 등등) 아예 ab initio gene model prediction (augustus/MAKER 등등) 보다 reference-guided transcriptome assembly (stringtie, trinity 등등) 에 더 의존해서 유전자 모델들을 만들기도 합니다. 일단 full-length ORF 가 있는 transcript 가 발현이 되면 아직까지는 그보다 좋은 증거/재료가 없으니까요.
reference-guided transcriptome assembly 를 하실 경우 유용한 도구/파이프라인들:
https://nbisweden.github.io/workshop-RNAseq/1906/lab_assembly.html#2_guided_assembly
https://github.com/trinityrnaseq/trinityrnaseq/wiki/Genome-Guided-Trinity-Transcriptome-Assembly
https://github.com/TransDecoder/TransDecoder/wiki#starting-from-a-genome-based-transcript-structure-gtf-file-eg-cufflinks-or-stringtie
http://cole-trapnell-lab.github.io/cufflinks/file_formats/#the-gffread-utility