SqueezeMeta是一个全自动的宏基因组数据处理流程,涵盖了组装、分箱、物种注释、功能注释以及各个样品具有的物种和功能丰度信息还有后续可视化等等。以往这些你都需要单独写脚本计算,每一步都很耗神费时......
SqueezeMeta简介
SqueezeMeta是用于宏基因组学/宏转录组学的全自动流程,涵盖了分析的所有步骤。 SqueezeMeta包含多元基因组支持,允许相关元基因组的共同组装以及通过分箱程序提取单个基因组。 因此,SqueezeMeta具有几个独特的特征:
- 带有把reads map到bin的共组装程序,用于估计每个元基因组中的基因丰度
- 通过合并单个元基因组,将大量的元基因组共同组装
包括分箱和分箱质量检查,用于检索单个基因组 - 结果存储在数据库中,可在其中轻松导出和共享结果,并可使用Web界面在任何位置对其进行检查
- 内部检查组装和装箱步骤可了解重叠群和箱体的一致性,从而可以发现潜在的嵌合体。
- 通过把cDNA的reads比对到参考元基因组来提供转录组支持
SqueezeMeta可以在三种不同的模式下运行:
-
顺序模式:所有样品均被单独处理并进行顺序分析。
-
组合模式:合并所有样本的读数并执行单个组合。然后将单个样品的读数映射到协同装配,以获得每个样品中的基因丰度。分箱方法允许获得基因组箱。
-
合并模式:如果有很多大样本可用,则由于内存需求,组装可能会崩溃。此模式允许使用Benjamin Tully所使用的一种程序来组合无限数量的样品,该程序用于分析TARA Oceans数据。简而言之,样品是单独组装的,并且所产生的重叠群将被合并为一个共同的组装。然后,以联合装配模式进行分析。不建议这样做(如果可能,请使用组合模式),因为产生嵌合重叠群的可能性更高。但是,当无法进行标准组装时,这是一个可行的选择。
-
Seqmerge模式:与合并模式相比,它用于处理更多样本。 seqmerge不是按单个步骤合并所有单个组装集(耗费计算资源),而是按顺序工作。首先,与合并模式一样,它单独组装所有样本。但随后它将合并两个最相似的组装集。使用Donovan Parks出色的CompareM软件,将以氨基酸一致性进行组装集的一致性计算。第一次合并后,它将再次评估相似性并合并,并以这种方式进行,直到所有元基因组都合并到一个。因此,对于n个元基因组,将需要n-1个合并步骤。
###下面是步骤总结
此处我只写一下自己使用的流程及遇到的坑,帮助后来的小伙伴快速掌握这个软件的使用流程。
想了解更多的童鞋请点击原文章链接
安装: 这里我选择简单无脑版—conda
conda create -n SqueezeMeta -c bioconda -c fpusan squeezemeta
conda activate SqueezeMeta
数据库下载,耗费了一个多星期才搞好o_O.
- 2020年3月中旬,download_databases.pl和make_databases.pl我都试了,刚开始是速度巨慢,后来是连不上服务器。尽管我尝试在本地用一些办法让它连上了国外的服务器下载再传到hpc上,但是下到半截又断了...... 我特喵的~
- 联系作者说可能是疫情影响了它们工作人员,他们服务器出了问题,没法及时解决。但是作者人很nice,积极帮我解决:
1.下载下面三个文件
https://saco.csic.es/index.php/s/RKQNjYYHWGn6Z3W
https://saco.csic.es/index.php/s/s8S9xosiLKMeMJT
https://saco.csic.es/index.php/s/kLtH4gFJNJTX4ed
2. SqueezeMetaDB.tar.gz文件稍大,记得检查完整
它的md5sum值:2d02374c7053a625bb7fc47aa85b839d.
把classifier.tar.gz 复制(注意是复制)到 SqueezeMeta/lib 文件夹 (我这里是 ~/miniconda2/envs/SqueezeMeta/SqueezeMeta/lib/)不要解压classifier.tar.gz.
解压 "SqueezeMetaDB.tar.gz" 和 "test.tar.gz" 到你想放置数据库的地方,暂且称作/path/to/SQMdata/
3. 现在应该有 /path/to/SQMdata/db 和 /path/to/SQMdata/test.
/path/to/SQMdata/db 文件夹有很多文件,其中包括 nr.dmnd.
4. 运行configure_nodb.pl /path/to/SQMdata/db.
会报error 500错误,没有影响
最后测试一下是否配置成功:test_install.pl 所有都OK就是好了
5. 最后注意一下, 解压 classifier.tar.gz 为 classifier ,然后把它放到安装的库中(我这里是~/miniconda2/envs/SqueezeMeta/SqueezeMeta/lib/)
因为运行完 configure_nodb.pl, ~/miniconda2/envs/SqueezeMeta/SqueezeMeta/lib/classifier 被删了,然后你再跑后面的会报错,提示找不到相关脚本,其实就是含有脚本的文件夹被删了
下面就是一些常规计算流程,有些小坑我已经写出来了
sample首先你需要准备一个sample文件,告诉系统你的原始数据在哪里。
第一列是你最终要使用的样品名称,第二列是真正的样品名称,第三列pair1和pair2表示正和反向测序的序列
- #第一步的megahit组装需要较多的内存,在普通计算节点我试了两次都报错,最后还是把任务提交到胖节点,一点问题没有。我六个样品,原始.gz文件~36GB,共组装模式下最高消耗了大概50GRAM(普通节点是有这么多内存的,可能是别人提交了任务,不够了)。同时第一步也是比较久的,32线程,三几天的样子
- #运行
#BSUB -J squeezemeta_PZH
#BSUB -n 32
#BSUB -R span[hosts=1]
#BSUB -o squeezemeta_PZH.out
#BSUB -e squeezemeta_PZH.err
#BSUB -q smp
source activate SqueezeMeta
cd /public/home/jkyin/yjk/PZH_meta/squeezemeta/
SqueezeMeta.pl -m coassembly -p PZH -s sample.txt -f ../raw/ -t 32
-
#我之前不知道那个classfier文件夹被删了,然后第二步就报错了。把我们下载并解压的classifer放到/public/home/jkyin/miniconda2/envs/SqueezeMeta/SqueezeMeta/lib/就好了
-
#这个软件可以从上次断掉的地方重启,嗯,比较好
-
#需要注意的是,在提交脚本文件时,不能在conda外环境提交,会报错说无法激活你所需的环境
#BSUB -J squeezemeta_PZH_restart1
#BSUB -n 32
#BSUB -R span[hosts=1]
#BSUB -o squeezemeta_PZH_restart1.out
#BSUB -e squeezemeta_PZH_restart1.err
#BSUB -q smp
source activate SqueezeMeta
cd /public/home/jkyin/yjk/PZH_meta/squeezemeta/
restart.pl PZH
- #第六步很慢,作者说是吃I/O的一步,换普通节点
- #同样慢
- #联系作者,他们又写了一个支持多线程的新 06.lca.pl, 把 这个新的06.lca.pl替代旧的就行了(在/public/home/jkyin/miniconda2/envs/SqueezeMeta/SqueezeMeta/scripts)
- 换了新的脚本之后10,000,000的orf大概跑了两天两夜。之前老脚本处理了近十天才2,000,000😶
- #再重启任务
#BSUB -J squeezemeta_PZH_restart1
#BSUB -n 32
#BSUB -R span[hosts=1]
#BSUB -o squeezemeta_PZH_restart1.out
#BSUB -e squeezemeta_PZH_restart1.err
#BSUB -q normal
source activate SqueezeMeta
cd /public/home/jkyin/yjk/PZH_meta/squeezemeta/
restart.pl PZH
- #第十步又报错:TERM_MEMLIMIT: job killed after reaching LSF memory usage limit.
- #我又把任务切到胖节点
#BSUB -J squeezemeta_PZH_restart1
#BSUB -n 32
#BSUB -R span[hosts=1]
#BSUB -o squeezemeta_PZH_restart1.out
#BSUB -e squeezemeta_PZH_restart1.err
#BSUB -q smp
source activate SqueezeMeta
cd /public/home/jkyin/yjk/PZH_meta/squeezemeta/
restart.pl PZH
- 终于,跑完了
- 除了上述方法,还可以单独在每一步重新运行。具体来讲就是~/miniconda3/envs/SqueezeMeta/SqueezeMeta/scripts文件夹中的脚本都可以单独运行
- 像这样
#先切到项目文件存在的目录
(base) [jkyin@mn02 squeezemeta]$ pwd
/public/home/jkyin/yjk/PZH_meta/squeezemeta
(base) [jkyin@mn02 squeezemeta]$ ll
total 1
drwxr-xr-x 7 jkyin LFRuan 4096 Apr 23 10:27 PZH
-rw-r--r-- 1 jkyin LFRuan 529 Mar 9 16:37 sample.txt
#然后比如要运行步骤4
(base) [jkyin@mn02 squeezemeta]$~/miniconda3/envs/SqueezeMeta/SqueezeMeta/scripts/04.rundiamond.pl PZH
- 重启也可以指定步骤
restart.pl -step 4 /path/to/your/project
下游分析及可视化
选择1:在R中分析
可以把项目文件夹中的SqueezeMeta_conf.pl、intermediate和results下载到本地分析
不然,在服务器上,你每次退出R的时候,花大半小时加载的项目文件对象就会消失。反正我还是觉得本地Rstudio顺手
- 首先你要安装SQMtools包
把~/miniconda3/envs/SqueezeMeta/lib/R/library/SQMtools这个文件夹下载到本地,不要搞错了。
千万不要搞成/miniconda3/envs/SqueezeMeta/SqueezeMeta/lib/SQMtools这个了,不然你死活都安装不上的😪
压缩为.zip结尾的文件
本地安装就可以了
下面可以去看作者给出的例子,很详细
还可以利用anvio可视化,作者同样给出了很好的例子
- 有问题,来这里提问,作者很nice
网友评论