之前有過用二代測序的數據組裝植物葉綠體基因組昆蟲線粒體的經歷,用的是單位的超算(Linux系統)。
這里的二代測序數據是全基因組的淺層測序數據,因為葉綠體和線粒體是多拷貝的,一般淺層測序數據就可以組裝出完整的葉綠體和線粒體基因組。我的單個樣本(昆蟲)測序數據大小是4G, 僅供參考。
用到的軟件為Getorganelle和Mitofinder,這里介紹Mitofinder。
Mitofinder
官網:https://github.com/RemiAllio/MitoFinder
下面的教程基本來自于對官網教程的翻譯,如有需要可以去看官網原文。
Mitofinder is a pipeline to assemble mitochondrail genomes and annotate mitochondrial genes from trimmed read sequencing data.
Mitofinder is also designed to find and annotate mitochpondrail sequences in existing genomic assemblies.
Mitofinder用來組裝和注釋線粒體基因組。
Mitofinder在整個流程中會調用的其他程序包括:
用于BLAST的:
用于組裝的:MEGAHIT、MetaSPAdes、IDBA-UD
用于tRNA 注釋的:MiTFi、tRNA-scan、ARWEN
下面介紹下Linux系統安裝和運行mitofinder的步驟:
Mitofinder的安裝
Mitofiinder最簡單的安裝方法就是用conda安裝。
Mitofinder是在python2.7下編寫的,所以安裝的時候建議用conda新建一個python2.7的環境,方法參考之前的教程:
http://www.lxweimin.com/p/3ef9e6041dee
當然,用coonda創建環境和安裝Mitofinder的前提是你已經安裝好了miniiconda
miniconda的安裝可以參考之前的教程:
http://www.lxweimin.com/p/9dc419c33f42
首先創建一個名為Mitofinder,安裝2.7版本的python的環境
conda create -n Mitofinder python=2.7
激活環境
conda activate Mitofinder
conda安裝mitofinder
conda install -c bioconda mitofinder
組裝并注釋線粒體基因組
用Mitofinder組裝和注釋線粒體基因組很簡單,只需要一行命令。
如果是雙向測序的原始數據,一個樣本兩個測序原始數據文件(left_reads.fastq.gz和right_reads.fastq.gz),用如下命令:
mitofinder -j [seqid] -1 [left_reads.fastq.gz] -2 [right_reads.fastq.gz] -r [genbank_reference.gb] -o [genetic_code] -p [threads] -m [memory]
如果是單向測序的原始數據,一個樣本一個測序原始數據文件(SE_reads.fastq.gz),用如下命令:
mitofinder -j [seqid] -s [SE_reads.fastq.gz] -r [genbank_reference.gb] -o [genetic_code] -p [threads] -m [memory]
如果已經組裝好了線粒體基因組,只需要測序,那么組裝好的線粒體基因組序列作為輸入文件,要求為fasta文件(assembly.fasta),用如下命令:
mitofinder -j [seqid] -a [assembly.fasta] -r [genbank_reference.gb] -o [genetic_code] -p [threads] -m [memory]
下面是我自己的例子:
~/Programfile/MitoFinder/mitofinder -j? XXXX -1 XXXX.fastq.gz -2 XXXX.fastq.gz -r reference.gb -o 5 -p 5 -m 10
各項參數的意義如下:
~/Programfile/MitoFinder/mitofinder:給出mitofinder所在的路徑
-j? 任務的id號,輸出的結果文件也用id號命名
-r 近緣物種的已經注釋的線粒體基因組文件,要求為.gb文件,可以自行去NCBI網站下載。
下載的方法參考之前的教程:http://www.lxweimin.com/p/910c92a0d03b
-o 指遺傳密碼類型,5代表無脊椎動物線粒體的遺傳密碼
-p 允許Mitofinder在運行時使用的最大線程數
-m 在組裝過程中(運行MEGAHIT 或 MetaSPAdes)允許使用的計算機最大存儲量
如果我們有很多測序數據需要組裝,那么就可以寫一個循環,寫在任務腳本run.sh文件里,然后直接運行run.sh文件就可以了。我用的循環如下(慚愧,不是我寫的,組上老師寫的,這里挪用一下)
解釋下上半部分:
-cwd #指定當前路徑為工作目錄,sge的日志會輸出到當前路徑
-S #指定遠程計算節點的shell路徑
-l #指定資源請求,多個請求用逗號(,)隔開
這一部分只針對我們單位系統的超算,不適用于大家,可以不看。
用到的循環如下:
for file1 in $(ls *.R1.fastq.gz)
? do
? for file2 in $(ls *.R2.fastq.gz)
? do
? if [ ${file1:0:4} == ${file2:0:4} ]; then
~/Programfile/MitoFinder/mitofinder -j ${file2:0:4} -1 $file1 -2 $file2 -r reference.gb -o 5 -p 5 -m 10
? fi
? done
? done
簡單解釋一下這個循環:
我這里用到的每個樣本的兩個測序原始數據文件命名為:XXXX.R1.fastq.gz和XXXX.R2.fastq.gz,
XXXX是4個字符,把所有的輸入文件都放在一個路徑下,如果XXXX.R1.fastq.gz和XXXX.R2.fastq.gz具有相同的XXXX(在循環中為${file1:0:4}
== ${file2:0:4}),就對它們執行組裝命令,輸出文件命名為XXXXout(在循環中為 ${file2:0:4}"out")。
然后運行任務腳本就可以了:
qsub run.sh
qsub只是我們單位超算運行任務腳本的命令,大家根據自己的linux系統輸入運行腳本的命令。
如果已經用別的軟件組裝好了線粒體基因組序列,只是用mitofinder進行注釋,在序列很多的情況下也可以用下面的循環:
for filename in *.fasta;
do
~/Programfile/MitoFinder/mitofinder -j ${filename#*.} -a ${filename} -r reference.gb -o 5;
done
j后面代表的是任務的名稱,也是后面result文件的名稱,${filename#*.} 意思是取輸入文件最后一個“.”前面的字符,如果輸入文件是F410.fasta. 這個任務的名稱就是F410
mitofinder也有在線注釋網站,詳情請看之前的這篇文章:http://www.lxweimin.com/p/d65238d6f445