之前有過用二代測序的數據組裝植物葉綠體基因組昆蟲線粒體的經歷,用的是單位的超算(Linux系統)。
用到的軟件為Getorganelle和Mitofinder,這里先介紹Getorganelle。
GetOrganelle
官網:https://github.com/Kinggerm/GetOrganelle
下面的教程基本來自于對官網教程的翻譯,如有需要可以去看官網原文。
This toolkit assemblies organelle genomes from genomic skimming data
GetOrganelle的主要用途是用基因組測序數據組裝完整的細胞器基因組,需要調用的軟件包括SPAdes、Bowtie2、BLAST+、Bandage。
GetOrganelle對組裝植物質體基因組尤其好用。
GetOrganelle的安裝
最簡單的安裝GetOrganell和它依賴的軟件的方法就是用conda安裝:
conda install -c bioconda getorganelle
當然用conda安裝的前提是你已經安裝了miniconda,miniconda的安裝可以參考之前的教程:
http://www.lxweimin.com/p/9dc419c33f42
在成功安裝了GetOrganelle之后,需要下載并初始化你要用到的細胞器基因組的數據庫。
假如你要組裝動物的線粒體基因組和植物的質體基因組,就要用到動物線粒體基因組數據庫和植物的質體基因組:
get_organelle_config.py --add animal_mt,emplant_pt
細胞器基因組數據庫類型有:
embplant_pt 植物質體數據庫
embplant_mt 植物線粒體數據庫
embplant_nr 植物核基因數據庫
fungus_mt 真菌線粒體數據庫
fungus_nr 真菌核基因數據庫
animal_mt 動物線粒體數據庫
數據庫的默認下載路徑為~/.GetOrganelle
組裝細胞器基因組
這之后就可以進行細胞器基因組的組裝了,很簡單,只需要一行命令。
在組裝陸地植物的質體基因組的時候,一般需要2G 的 raw data (150bp paired reads),使用的命令為:
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -o plastome_output -R 15 -k 21,45,65,85,105 -F embplant_pt
我自己組裝昆蟲線粒體基因組用到的命令為:
get_organelle_from_reads.py -1 file_1.fastq.gz -2 file_2.fastq.gz -s reference.fasta -w 90 -R 30 -k 45,65,85,105,115 -F animal_mt -o outputfile
如果想查看每一個參數的用法,可以用命令;
get_organelle_from_reads.py -h
或者
get_organelle_from_reads.py --help
簡要介紹每個參數的意思:
-1:input file with forward paired-end reads
-2:input file with forward paired-end reads
-u:input files with unpaired (single-end) reads
測序公司一般采用的測序方法是雙向測序,每個樣本返回兩個數據, 一個正向測序的數據,一個反向測序的數據,-1和-2后就是兩個輸入文件,也就是正向和反向測序的原始文件。
如果不是雙向測序,而是單向的,那么測序返回的文件只有1個,就用-u 后接輸入文件。
-o:output directory 輸出文件的路徑
-s: input fasta format file as initial seed
-s 后面接種子文件,也就是已知的近緣物種的細胞器基因組序列,需要fasta格式。在組裝的過程中,GetOrganelle會把種子文件里的序列作為“餌”,釣取測序數據中的相似序列(可能不準確,但本人是這樣理解的)。如果你不提供種子文件,GetOrganelle會使用自身的種子文件數據庫。
-F:Target organelle genome types:
-F后接要組裝的細胞器基因組的類型,同前面提到的細胞器基因組數據庫類型。
-R: maximum extension rounds (suggested >2), default=15
-w:word size for extension. default: auto-estimated
-K:SPAdes kmer setting, default:21,55,85,115
-R、-w、-K都是與組裝過程相關的參數,我還沒有摸透組裝原理,不敢在這里誤人子弟。不過都有默認設置,拿不準的話就不用設置了,靠默認的設置就可以。
如果我們有很多測序數據需要組裝,那么就可以寫一個循環,寫在任務腳本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
get_organelle_from_reads.py -1 $file1 -2 $file2 -F animal_mt -w 0.65 -o ${file2:0:4}"out" -R 10 -k 21,45,65,85,105,107,127
? 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系統輸入運行腳本的命令。
評價細胞器基因組的組裝效果
GetOrganelle可以對組裝的效果進行評測,用到的命令為:
evaluate_assembly_using_mapping.py -f assemble.fasta -1 XXXX.R1.fq.gz -2 XXXX.R2.fq.gz -o XXXXoutput -c no --draw
-f 后接的是組裝出來的細胞器基因組序列
-1、-2后接原始數據,同前面提到的
-o 后接輸出路徑
-c 后接組裝的序列是否為環形
--draw 是要求給出圖形式的組裝評測結果