RepeatMasker基因組重復(fù)序列檢測(cè)工具安裝及使用
一.?RepeatMasker簡(jiǎn)介:
基因組組裝完成后,進(jìn)行基因預(yù)測(cè)和注釋。由于基因組中存在重復(fù)序列結(jié)構(gòu)區(qū),特別是高等真核生物,重復(fù)序列占了相當(dāng)大的比例,會(huì)影響基因預(yù)測(cè)的質(zhì)量,也會(huì)帶來不必要的資源消耗,因此在基因預(yù)測(cè)前,首先要檢測(cè)并屏蔽基因組中的重復(fù)序列。
不過,也有一些人在注釋基因組重復(fù)序列結(jié)構(gòu)時(shí),也可能是專注于某些特定研究,例如,某些重復(fù)元件可能參與了重要功能,我們期望定位它們的位置,這種情況下需要識(shí)別精準(zhǔn)。
那么,這時(shí)候就得使用檢測(cè)重復(fù)序列的工具了,先來學(xué)習(xí)RepeatMasker。
RepeatMasker是重復(fù)序列檢測(cè)的常用工具,通過與數(shù)據(jù)庫相似性比對(duì)來準(zhǔn)確識(shí)別或屏蔽基因組中的重復(fù)序列,屬于同源預(yù)測(cè)注釋的方式,依賴于RepBase數(shù)據(jù)庫和第三方比對(duì)軟件(RMBlast、Crossmatch、HMMER、ABBlast),是重復(fù)序列注釋的重要軟件。
二.安裝:
首先是官網(wǎng):
http://www.repeatmasker.org/RepeatMasker/
通過WSL在個(gè)人電腦上安裝:
Conda install -c bioconda trf
Conda install -c bioconda rmblast
下載RepeatMasker-4.1.2-p1.tar.gz
tar -zxvf RepeatMasker-4.1.2-p1.tar.gz
./configure后,根據(jù)提示指定TRF和rmblast所在位置

在Libraries里會(huì)生成一個(gè)RepeatMaskerLib.h5文件,這就是Dfam+RepBase的整合。
三.運(yùn)行:
首先確定數(shù)據(jù)庫中是否收錄了目標(biāo)物種:
一些教程是利用./util/queryRepeatDatabase.pl -tree來查看,但我沒有找到queryRepeatDatabase.pl文件;
通過“Libraries/taxonomy.dat”查看物種信息,所有已收錄物種的名稱都存儲(chǔ)在該文件中,暫時(shí)找不到工具正確打開,按照文本文件去去打開后會(huì)有很多亂碼,查詢效果不佳,希望有了解的同學(xué)、老師看見后能夠告訴我;
命令行(參考一篇Cell文章):
RepeatMasker -nolow -no_is -norna -parallel 4 -lib /Libraries/RepeatMasker.lib genomic.fna -dir /zhushi/repeatmasker > repeatmasker.log >&1 &
參數(shù)詳解:
- nolow,不掩蓋低復(fù)雜度的DNA或簡(jiǎn)單的重復(fù)序列;
-no_is,跳過細(xì)菌插入元素檢驗(yàn);
-norna,不掩蓋小RNA(偽)基因;
-parallel 4,并行計(jì)算,多線程;
-lib [filename] Allows use of a custom library (e.g. from another species)
-dir,?輸出結(jié)果目錄;
參考的命令行并沒有-species參數(shù),且-species和-lib參數(shù)沖突,只能設(shè)置其中一個(gè),理解查詢了一下對(duì)這兩個(gè)參數(shù)還是有些不明白;
四.結(jié)果解讀:
大約32h后,程序結(jié)束,非常慢,下一次加線程數(shù),結(jié)果生成如下四個(gè)文件:

.*cat

記錄了輸入的基因組序列和數(shù)據(jù)庫中參考重復(fù)序列的比對(duì)詳情,該文件默認(rèn)生成。
會(huì)存在個(gè)別堿基的差異,其中“i”和“v”分別代表了堿基轉(zhuǎn)換(transitions)和顛換(transversions),“-”表示該位點(diǎn)存在堿基插入/刪除。
.*tbl文件, 重復(fù)序列統(tǒng)計(jì)文件:

包含了基因組長(zhǎng)度、GC含量、重復(fù)區(qū)長(zhǎng)度以及重復(fù)區(qū)各類別基本統(tǒng)計(jì)信息等。其中,“bases masked”就是重復(fù)序列的總長(zhǎng)度和在基因組中的占比,視物種而定,一般都是比較可靠的。
*.out文件, 重復(fù)序列統(tǒng)計(jì)文件:

一共十五列,每一列含義如下圖:

需要注意,部分注釋會(huì)在ID列會(huì)有*標(biāo)識(shí),表明該區(qū)域有兩條比對(duì),*標(biāo)記結(jié)果最佳,通常這部分大部分重疊或者是包含關(guān)系,可以選擇其中一個(gè);
通過這個(gè)*.out文件(或下文的gff文件),就可以去定位你期望關(guān)注的特殊類型的重復(fù)序列元件在基因組中的位置了,后續(xù)可再自寫腳本根據(jù)位置信息將這段序列提取出來,或者更進(jìn)一步研究它們的功能等。
生成gff3文件:
可以使用RepeatMasker提供的工具將結(jié)果轉(zhuǎn)化為gff3, 但是需要注意,這里的gff3不是標(biāo)準(zhǔn)的gff3
RepeatMasker/perl rmOutToGFF3.pl *.fa.out > *.gff3

*.masked文件, 屏蔽后的序列:
相較于原始輸入fasta文件中的序列,masked文件中將其中重復(fù)序列部分屏蔽為了N堿基,該文件默認(rèn)生成。
注意區(qū)分,這里有的N堿基是屏蔽的重復(fù)序列,而有的N堿基則是原來這個(gè)基因組fasta文件中就有的(一般為gap)。

該文件作為后續(xù)基因序列預(yù)測(cè)的輸入文件。這樣,基因預(yù)測(cè)時(shí)就不會(huì)再考慮這些重復(fù)序列區(qū)域(因?yàn)檫@些區(qū)域的堿基已經(jīng)屏蔽為了N堿基,不會(huì)被識(shí)別),縮小了基因組范圍,大大減少了資源消耗,提升準(zhǔn)確度。
*.polyout文件:
命令行中通過-poly參數(shù),可額外將預(yù)測(cè)結(jié)果.out中的微衛(wèi)星注釋識(shí)別出來,單獨(dú)整理為一張表,文件結(jié)構(gòu)同.out。

如果你不想將微衛(wèi)星視作嚴(yán)格的重復(fù)序列類型,可通過.polyout文件中的注釋位置,將.out中的微衛(wèi)星去除。那么,為什么不直接在.out中根據(jù)注釋作篩選呢?因?yàn)槲⑿l(wèi)星屬于“Simple_repeat”的一種,但.out中并非所有“Simple_repeat”都是微衛(wèi)星,所以直接去篩選很難操作。
當(dāng)然,也有很多人不將“Simple_repeat”視作嚴(yán)格的重復(fù)序列類型,如果你也這么認(rèn)為,直接在*.out中過濾掉所有注釋為“Simple_repeat”的結(jié)果就可以了。
五.報(bào)錯(cuò)信息:
一開始我在服務(wù)器上安裝,分別對(duì)以下幾個(gè)軟件、數(shù)據(jù)庫進(jìn)行配置:
1.Perl和Python3以及TRF非常好安裝,基本上在官網(wǎng)上下載后解壓就能用;
2.HMMER見我的公眾號(hào)另一篇文章基因功能預(yù)測(cè)工具-HMMER的安裝;
3.Dfam和Repeat(https://www.girinst.org/repbase/update/)數(shù)據(jù)庫:
Dfam數(shù)據(jù)庫內(nèi)容見我另一篇公眾號(hào)文章,Dfam-轉(zhuǎn)座元件TEs數(shù)據(jù)庫, 其中RepeatMasker/Libraries目錄下已經(jīng)有了需要的Dfam.h5文件;
Repeat數(shù)據(jù)庫進(jìn)入DOWNLOAD頁面下載,
tar -zxvf RepBaseRepeatMaskerEdition-20181026.tar.gz
將解壓出來的:RMRBSeqs.embl和README.RMRBSeqs文件放到RepeatMasker/Libraries目錄下;
4. h5py python 模塊,pip3 不是pip,因?yàn)橛胮ip3進(jìn)行安裝時(shí)報(bào)了錯(cuò),就用conda install h5py安裝在miniconda3/lib/python3.8/site-packages/目錄下(后面證實(shí)安裝錯(cuò)誤)。
然后正式開始安裝RepeatMasker:

tar -zxvf RepeatMasker-4.1.2-p1.tar.gz
./configure后,根據(jù)提示指定TRF和HMMER所在位置,然后開始報(bào)錯(cuò)了:

將miniconda3/lib/python3.8/site-packages/目錄下的h5py文件夾復(fù)制到RepeatMasker文件夾下,再次perl ./configure,最后提示如下:

雖然有黃色的cannot提示,先接著往下運(yùn)行,運(yùn)行時(shí)報(bào)錯(cuò):
運(yùn)行命令:RepeatMasker -nolow -no_is -norna -parallel 4 -lib /home/ /RepeatMasker/Libraries/RepeatMasker.lib canu_removedup.fa
報(bào)錯(cuò)信息:
RepeatMasker version 4.1.2-p1
Search Engine: HMMER [ 3.3.2 (Nov 2020) ]
Taxonomy::new() needs a path for a famdb file!
?at /public/home/lvqiang/software/RepeatMasker/RepeatMasker line 635.
后來我查了一下gitlib上issue欄目,作者這樣回復(fù):

還是沒有正確安裝h5py模塊,這次想辦法讓軟件去識(shí)別miniconda3/lib/python3.8/site-packages/目錄下的h5py模塊去,通過修改famdb.py文件,還是沒有成功。
錯(cuò)誤推測(cè):因?yàn)槲矣玫姆?wù)器系統(tǒng)安裝的是python2, 我在我目錄下安裝了python3,很有可能是兩個(gè)版本的python起了沖突,導(dǎo)致一些混亂,以后有網(wǎng)后,找個(gè)時(shí)間解決一下這個(gè)問題。
六.補(bǔ)充:
Repeat數(shù)據(jù)庫下載鏈接:
https://www.girinst.org/server/RepBase/protected/repeatmaskerlibraries/RepBaseRepeatMaskerEdition-20181026.tar.gz;
參數(shù):

參考:https://www.jianshu.com/p/ffdbedae80fa
七.遺留問題:
-species 和 -lib 參數(shù)設(shè)置;
Linux系統(tǒng)下h5py安裝模塊失??;
本文使用 文章同步助手 同步