零基础教程 | 叶绿体基因组组装 - GetOrganelle
关键词:零基础;叶绿体基因组;神器;国人佳作;一键成环。
软件官网:https://github.com/Kinggerm/GetOrganelle
GetOrganelle 这款软件是建军和郁文彬老师开发的,发表在 Genome Biology 上。个人有幸在去年年底见过两位,也了解到 GetOrganelle 软件,但一直没有实际应用场景。
以前对某个物种的群体重测序数据做过一些类似的叶绿体基因组组装工作,大体策略是使用近源物种叶绿体基因组为参考,进行有参考组装。绝大部分情况下,组装效果还是很不错的。今次项目重要,也有成熟软件可以选择,故决定学习一下 GetOrganelle 软件,争取高质量完成这一项目。
安装软件
使用 conda 安装,先创建一个环境
conda create -n getorganelle
激活环境,并安装软件,注意到,之前我已经配置好bioconda软件源
conda activate getorganelle
conda install getorganelle
参考软件官方说明,安装完成后,需要下载参考序列库
get_organelle_config.py --add embplant_pt,embplant_mt
发现依赖Bowtie2
没有解决
conda install bowtie2
重新下载参考序列库
get_organelle_config.py --add embplant_pt,embplant_mt
似乎还是一样的报错
ERROR: Bowtie2 is not available!
查看程序源码
which get_organelle_config.py
vim ~/anaconda3/envs/getorganelle/bin/get_organelle_config.py
按照代码,应该是可以拿到的
往下走,似乎是获取版本号的问题,难道的bowtie2版本不对?
查了下官网说明,似乎没有要求bowtie2的版本(?conda安装时,不会自动检测 bowtie2 依赖并解决?)
查看是如何检测版本
好,找到了
具体看到脚本
vim /home/chengjie_chen/anaconda3/envs/getorganelle/lib/python3.6/site-packages/GetOrganelleLib/pipe_control_func.py
检查了一圈,应该不存在环境问题
bowtie2调用的库文件需要调整,尝试软连接库,但似乎 12 不能应付 2 。更新一下试试
# 发现安装的似乎2.3.5,升级一下试试
conda update bowtie2
没问题了
重新下载参考序列库
get_organelle_config.py --add embplant_pt,embplant_mt
正常开始下载了,不过不知道要下载多久。考虑直接本地下载后上传,
# 注意到,其实可以本地 github 加速,20Mb+ 一下就下载完了
wget https://github.com/Kinggerm/GetOrganelleDB/releases/download/0.0.1/v0.0.1.tar.gz
tar -zxvf v0.0.1.tar.gz
get_organelle_config.py -a embplant_pt,embplant_mt --use-local ./0.0.1
运行Demo
参考官网说明,下载测试数据,正反向各8Mb
wget https://github.com/Kinggerm/GetOrganelleGallery/raw/master/Test/reads/Arabidopsis_simulated.1.fq.gz
wget https://github.com/Kinggerm/GetOrganelleGallery/raw/master/Test/reads/Arabidopsis_simulated.2.fq.gz
主要输出结果,
结果文件看起来有点复杂,没时间折腾,截图Manual。
查看 log 文件,看到有两个完整组装,即成环
上述图片中,我们也可以看到有两个.fasta文件,对应的,可以看看
看了下manual,了解了下质体组装的内容,可以认为两者都是正确组装。使用时选择一个常用的即可。只是常用的是哪一个?这是一个问题。对于研究较多的物种,应是可以参考;研究较少的,或许考虑做个多序列比对,mauve,mummer等,投票决定。
一个材料(注意就是一个植物或者一个叶片)中会同时存在两种组装,见文献
Palmer, J. Chloroplast DNA exists in two orientations. Nature 301, 92–93 (1983). https://doi.org/10.1038/301092a0
运行实际测试数据
开 20 个线程试试
get_organelle_from_reads.py -1 108.r1.fq.gz -2 108.r2.fq.gz -o plastome_output -R 15 -k 21,45,65,85,105 -t 20 -F embplant_pt
一共耗时 1415.10 s。速度不错,测序数据大体是 6G。看了下软件说明,似乎是会sample一下。
组装出来大量结果,
另外即 repeat_pattern 的问题,基于官网的文档,选择 IR 最长的后续使用
plastome_arch_info.py *.fasta -o plastome_arch.list
largest_size=`cat plastome_arch.list | sed -e 1d |awk 'NR==1{max=$6;next}{max=max>$6?max:$6}END{print max}'`
cat plastome_arch.list|awk '($6==size){print $1}' size=$largest_size
结果如下(默认 pattern1 就是 IR 最长?)
embplant_pt.K105.complete.graph1.1.repeat_pattern1.path_sequence.fasta
embplant_pt.K105.complete.graph1.2.repeat_pattern1.path_sequence.fasta
OK,应该没问题了。组装起来也很快,我已经跑上100+份材料的叶绿体组装了。后续看看结果再说。
写在最后
整体顺畅,我估计最多累计花了不到两个小时,就全部事情搞完,中间出门办了点事情。从GetOrganelle的了解,下载,安装,解决使用问题,输出结果,再到输出结果的了解,补充了一些叶绿体基因组的背景知识(其实就是看了两个letter文稿)。
怎么说呢,建军和郁老师开发的这款软件,应该算是神器了。回想小时候做叶绿体基因组,还是麻烦。而 GetOrganelle 几乎是一键成环,完美~
准备推文中间,忽然想到,看来,只是跑跑流程,确实已经没啥好出路,毕竟分分钟就跑起来....。比如我两个小时搞完,或许一些朋友要两周.....