之前有过用二代测序的数据组装植物叶绿体基因组昆虫线粒体的经历,用的是单位的超算(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的安装可以参考之前的教程:
https://www.jianshu.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 是要求给出图形式的组装评测结果