RepeatMasker是重復序列檢測的常用工具,通過與參考數(shù)據(jù)庫的相似性比對來準確識別或屏蔽基因組中的重復序列,屬于同源預測注釋的方式。下文除了RepeatMasker的使用,也提到了一些在安裝和使用過程中可能會碰到的問題。
基因組組裝完成后,進行基因預測和注釋。由于基因組中存在重復序列結構區(qū),特別是高等真核生物,重復序列占了相當大的比例,會影響基因預測的質量,也會帶來不必要的資源消耗。因此在基因預測前,首先要檢測并屏蔽基因組中的重復序列(真核生物很必要,原核生物可忽略)。對于這種情況,只是為了屏蔽重復序列降低后續(xù)基因預測的壓力,重復序列的檢測可以不必太糾結。
但有時候我們注釋基因組的重復序列結構,也可能是專注于某些特定研究,例如,某些重復元件可能參與了重要功能,我們期望定位它們的位置。這種情況下,需要識別精準。
RepeatMasker提供了在線服務器,將基因組序列上傳后即可在線運行。
RepeatMasker在線鏈接:http://www.repeatmasker.org/cgi-bin/WEBRepeatMasker/
RepeatMasker本地安裝及使用:在正式安裝RepeatMasker主程序之前,需要提前配置好其依賴的工具。
這些依賴的工具可以手動安裝,也可以用conda 自動安裝。
RepeatMaskr本地配置:
1、TRF
TRF(Tandem Repeats Finder)在RepeatMasker安裝前必需要提前配置好,這個可以使用conda直接安裝。
conda install TRF
2、序列搜索引擎(4選1即可)
RepeatMasker需要序列搜索引擎,以實現(xiàn)輸入基因組序列和參考庫中序列的比對,在RepeatMasker安裝前必需要提前配置好。RepeatMasker主要通過以下4種工具實現(xiàn)序列比對功能,CrossMatch、RMBlast、ABBlast、HMMER,因此我們需要從中至少選1個。
選擇了RMBlast,這個也可以使用conda直接安裝。
conda install RMBlast
3、RepeatMasker
前兩個工具配置好后,正式安裝RepeatMasker,conda搞不定了,需要源碼編譯。
wget http://www.repeatmasker.org/RepeatMasker-open-4-0-6.tar.gz
tar xzvf RepeatMasker-open-4-0-6.tar.gz
cd RepeatMasker
chmod -R 755 *
./configure ?。?zhí)行后,根據(jù)提示信息一步步來。
首先是perl環(huán)境,默認自動檢測,或者手動更改perl主程序路徑后回車繼續(xù)。

然后是TRF,默認自動檢測,或者手動更改TRF主程序所在路徑后(可通過which trf獲取,比方說我conda安裝的trf程序所在“/home/my/software/Miniconda3/bin”),回車繼續(xù)。

再然后是序列搜索引擎,因為剛才安裝的是RMBlast,所以我們這里選擇2。然后在接下來的新界面中,將RMBlast主程序所在路徑輸入后(可通過which rpsblast獲取,比方說我conda安裝的rpsblast程序所在“/home/my/software/Miniconda3/bin”),回車返回主界面后,再選擇5,就完成了。
你也可以指定多種序列搜索引擎后,再選擇5,不過實際運行時,一次只能選擇一種序列比對方式。


RepeatMasker提示安裝完成后,最后配置環(huán)境變量。
#例如,我的RepeatMasker安裝路徑是在“/home/my/software/RepeatMasker”
export PATH=/home/my/software/RepeatMasker:$PATH
#這時候沒啥問題的話應該可以看到幫助界面了
RepeatMasker -h

如果提示有perl模塊未配置好,通過cpan命令安裝相應的perl模塊即可。
如果反復提示以下關于“Text::Soundex module”模塊的錯誤(即便你這個perl模塊確實安裝好了),建議將perl環(huán)境更改為/usr/bin下的perl(對,不建議使用conda中的perl),并sudo cpan重新安裝該模塊后,再重新安裝RepeatMasker(安裝時指定系統(tǒng)/usr/bin下的perl),就解決了。
4、數(shù)據(jù)庫文件(Repbase)
Repbase,是遺傳信息研究所發(fā)布的重復DNA數(shù)據(jù)庫,收錄了非常多的物種基因組的重復序列信息。在這里,我們將通過它對自己的物種基因組的重復序列進行檢測。
登錄REPBASE數(shù)據(jù)庫(https://www.girinst.org/server/RepBase/index.php),需注冊才能下載,非營利性組織可以免費使用,人工審批,需要等待1-2天時間。在官網(wǎng)上直接下載的肯定是最新版的。

當然如果你懶得注冊等待,隨便在網(wǎng)上一搜,現(xiàn)成的Repbase資源也有很多可直接下載,基本上都是個人分享的。缺點就是這些資源的時間可能比較久遠,版本較老數(shù)據(jù)庫不如現(xiàn)在的版本全是肯定的。
Repbase:百度網(wǎng)盤分享
鏈接:https://pan.baidu.com/s/1gNKFvcNLgGkafX1xv_PrMw
提取碼:9v62
在RepeatMasker安裝完畢后,將Repbase庫解壓放置到RepeatMasker安裝路徑下的“Libraries”中就可以了。
RepeatMasker使用:
接下來,我們使用某真菌基因組(真核生物,且基因組小,方便演示),測試RepeatMasker使用。
基因組獲取自NCBI,Assembly:GCA_900382705.2,物種Fusarium tricinctum。
首先確定數(shù)據(jù)庫中是否收錄了目標物種
(一)Repbase配置好后,直接通過安裝目錄中的“RepeatMasker/util/queryRepeatDatabase.pl”,即可查看當前庫中已存在的物種。
#查看物種列表
cd RepeatMasker
./util/queryRepeatDatabase.pl -tree > species.txt
less -S species.txt
#目標物種,這里為 Fusarium tricinctum,我們可直接查看 Fusarium 屬所有的
grep 'Fusarium' species.txt
(二)或者參看“RepeatMasker/Libraries/taxonomy.dat”中的物種信息,所有已收錄物種的名稱都存儲在該文件中。
#查看物種列表
cd RepeatMasker
./util/queryRepeatDatabase.pl -tree > species.txt
less -S species.txt
#目標物種,這里為 Fusarium tricinctum,我們可直接查看 Fusarium 屬所有的
grep 'Fusarium' species.txt
(三)還有一種方式,我們大可以直接在運行的時候,讓軟件自己判斷了。
也就是在正式使用RepeatMasker時(見下文使用示例),通過“-species”參數(shù)指定物種。對于常規(guī)的模式物種或類群,可以直接輸入通用的名稱;更保險的方式是在“-species”參數(shù)后接物種的拉丁名稱,由于屬名和種名之間有空格,所以需要用引號括起來。如果RepeatMasker沒有提示異常,即庫中存在目標物種,則將會正常運行,等待結果就可以了。

若無法在現(xiàn)有的Repbase庫中找到一個合適的參考集,除了使用近緣物種代替外,還可能需要考慮基于當前的全基因組序列,執(zhí)行重復序列的denovo預測,如RepeatModeler等工具,訓練重復序列集構建本地的repeat library,運行RepeatMasker時通過“-lib”參數(shù)指定本地的repeat library。
此外,也并不是說找到參考物種了,就是完全可行了。參考庫中的信息可能并不全,沒有將目標物種基因組覆蓋完全,由此會導致基因組重復序列識別的較少。可見下文的示例輸出結果部分,以一個示例提到了這個問題。
RepeatMasker使用示例
我們的物種數(shù)據(jù)庫中存在,就可以直接拿它的重復序列作參考了。
#查看幫助,各參數(shù)詳情不再細說了,大家自行了解
RepeatMasker -h
#一個簡單的示例
#基因組獲取自:https://www.ncbi.nlm.nih.gov/genome/68823?genome_assembly_id=380814
RepeatMasker -pa 4 -species "Fusarium tricinctum" -poly -html -gff -dir repeat1 GCA_900382705.2_FTRI.INRA104.GCA2018.2_genomic.fna 1>log.o.txt 2>log.e.txt
#需要注意的地方
#-dir 指定的輸出結果路徑,必須提前建立好,否則無結果
#一定要通過 -species 指定物種,否則默認比對的是人類重復序列數(shù)據(jù)庫
#如果使用本地的參考庫,通過 -lib 指定,替代 -species
#-s、-q、-qq 等參數(shù)可控制序列比對的靈敏度,如果你的目標物種和參考物種不是很近,可能需要提升靈敏度
這個真菌基因組不大,所以很快就完事了。
其它常見問題,可參閱官方文檔:http://www.repeatmasker.org/webrepeatmaskerhelp.html
主要結果
輸出結果細節(jié),可參閱官方文檔:http://www.repeatmasker.org/webrepeatmaskerhelp.html
以下簡要展示上述的示例命令所得的7個結果文件。

*.tbl
本次RepeatMasker運行的結果報告,該文件默認生成,包含了基因組長度、GC含量、重復區(qū)長度以及重復區(qū)各類別基本統(tǒng)計信息等。其中,“bases masked”就是重復序列的總長度和在基因組中的占比,視物種而定,一般都是比較可靠的。

然而這兒就碰到問題了。Fusarium tricinctum是一種霉菌,重復序列的比例不可能這么少(僅0.87%)。主要的原因可能是對該物種的研究相對較少,或者使用的數(shù)據(jù)庫版本較老,數(shù)據(jù)庫中該物種的重復序列信息不全(實際上,我使用了一個非常舊的Repbase庫)。可以嘗試使用最新版本的Repbase庫,同時多找?guī)讉€近緣物種的參考庫作比對,更改RepeatMasker參數(shù)把靈敏度調(diào)高(或者將RMBlast替換為更靈敏的工具)等,盡可能找到更多的重復序列。如果最大原因仍是數(shù)據(jù)庫本身不全所致,其實更改參數(shù)之類的提升效果也甚微了。此時可能需要考慮執(zhí)行重復序列的denovo預測,如RepeatScout、RepeatModeler等工具,訓練重復序列集構建repeat library,再通過RepeatMasker注釋重復序列。
*.cat
記錄了輸入的基因組序列和數(shù)據(jù)庫中參考重復序列的比對詳情,該文件默認生成。
會存在個別堿基的差異,其中“i”和“v”分別代表了堿基轉換(transitions)和顛換(transversions),“-”表示該位點存在堿基插入/刪除。

*.out****和*****.out.html
這兩個文件中的信息是一致的,將基因組中預測得到的重復序列和參考序列相比的堿基替換頻率、插入/刪除率,以及重復序列的位置、結構、類型等信息展示出。其中,.out(默認生成)是純文本樣式,.out.html(-html參數(shù)生成)以網(wǎng)頁列表展示。

通過這個*.out文件(或下文的gff文件),就可以去定位你期望關注的特殊類型的重復序列元件在基因組中的位置了,后續(xù)可再自寫腳本根據(jù)位置信息將這段序列提取出來,或者更進一步研究它們的功能等。
*.out.gff
將*.out中的內(nèi)容,整理為標準gff文件的結構類型(-gff參數(shù)生成)。主要包含重復序列的位置、結構等信息。

*.polyout
命令行中通過-poly參數(shù),可額外將預測結果.out中的微衛(wèi)星注釋識別出來,單獨整理為一張表,文件結構同.out。

如果你不想將微衛(wèi)星視作嚴格的重復序列類型,可通過.polyout文件中的注釋位置,將.out中的微衛(wèi)星去除。那么,為什么不直接在.out中根據(jù)注釋作篩選呢?因為微衛(wèi)星屬于“Simple_repeat”的一種,但.out中并非所有“Simple_repeat”都是微衛(wèi)星,所以直接去篩選很難操作。當然,也有很多人不將“Simple_repeat”視作嚴格的重復序列類型,如果你也這么認為,直接在*.out中過濾掉所有注釋為“Simple_repeat”的結果就可以了。
.masked
相較于原始輸入fasta文件中的序列,..masked中將其中重復序列部分屏蔽為了N堿基,該文件默認生成。
注意區(qū)分,這里有的N堿基是屏蔽的重復序列,而有的N堿基則是原來這個基因組fasta文件中就有的(一般為gap)。

那么這個文件有什么作用呢?可以將該文件作為后續(xù)基因序列預測的輸入文件。這樣,基因預測時就不會再考慮這些重復序列區(qū)域(因為這些區(qū)域的堿基已經(jīng)屏蔽為了N堿基,不會被識別),縮小了基因組范圍,大大減少了資源消耗,提升準確度。
本文轉載自劉堯科學網(wǎng)博客。
鏈接地址:http://blog.sciencenet.cn/blog-3406804-1202555.html