查看原文
其他

宏基因组分析流程 MOCAT2 教程

鲍志炜 生信菜鸟团 2022-07-05

MOCAT2 是 2016 年发表在 Bioinfomatics 上的宏基因组序列组装和基因预测的软件流程。其从涵盖各种功能类别的 18 个数据库,生成和注释非冗余参考数据集,从而对宏基因组数据进行快速和全面的功能分析。MOCAT2 使用 Perl 5 和 Python 2.7 实现,并为 64 位 UNIX 系统设计,通过 LSF,PBS 或 SGE 调度算法提供对高性能集群的支持。

  • 官网:https://mocat.embl.de

The metagenomic analysis toolkit(MOCAT)主要通过以下步骤进行:将原始reads进行质控,然后组装成较长的contigs,在其基础上预测ORF(图1)。

除了注释 eggNOG 数据库外,在 MOCAT2 中还集成了 18 个涵盖不同功能分类的公共数据库来实现全面的功能分析(表1)。这些数据库既包括了一些广泛使用的蛋白质数据库,也有一些针对特定功能类别的数据库。

流程首先使用 CD-HIT 将组装后的reads聚类成非冗余基因集,称之为参考基因集 ,以避免将reads映射到多个数据库,增加计算负担。接下来,该基因集与 eggNOG 数据库比对,进行功能注释,在 MOCAT2 中 eggNOG 数据库除了具有广泛的直系同源组的分类学注释,还包括了来自其他数据库的序列注释,这样使得来自多个数据库的功能信息可以更有效地直接注释到参考基因集。这种间接注释的方法不仅速度提升了 10 倍,而且还能够注释较短的基因。为了进一步提高计算效率,MOCAT2 在注释步骤中使用 DIAMOND 进行比对。结合以上这些方法,与传统的基于 BLAST 的注释流程相比,MOCAT2 注释速度提高了 1400 多倍。

最后,进行定量功能组成,将每个样品的reads比对到带注释的参考基因集,并在各数据库的注释类别上进行分别总结。MOCAT2 还提供了几种菌群分类学注释方法,例如:specI 和 mOTU。

MOCAT 实战

软件安装

  1. 进入网站(https://mocat.embl.de/download.html)下载:

  1. 解压:unzip MOCAT2.zip

  2. 安装:perl setup.MOCAT.pl

  3. 更新环境变量:source ~/.bashrc

4GB 的文件已经包含用于注释的数据库和例子,在第三步安装时还有其他数据可供下载(下载速度非常非常慢),大家可按需选择:

DOWNLOAD EXTERNAL DATABASES
Would you like to download and install the hg19 reference database (approx 6.5GB)? (yes/no)
This database is provided as a database to screen reads against (e.g. remove human contaminants).
(yes/no):
yes

DOWNLOAD ARTICLE DATASETS AND EXAMPLE FILES
There are two different sample files that can be downloaded:
- The simulated metagenome (100 strains, used in MOCAT paper)
- The simulated metagenome (87 species, used in mOTU paper)
- the HMP mock community data

Would you like to download THE SIMULATED METAGENOME (100 strains) used inthe MOCAT paper (approx 3.5GB)? (yes/no)
no

Would you like to download THE SIMULATED METAGENOME (87 species) used in the mOTU paper (approx 2.3GB)? (yes/no)
no

Would you like to download THE MOCK COMMUNITY (approx 500 MB)? (yes/no)
no

Will you be running the SIMULATED METAGENOME or MOCK COMMUNITY on a system with less than 8 cores?
(yes/no)
no

为了解决下载速度慢的问题,我想了个笨办法,先用国外的服务器下好数据,上传到 docker hub,再用国内的镜像加速下载回来,速度还可以有 4-5M/s。在这个镜像中已经包含了所有的数据大约有 40 GB。

docker push zwbao/mocat:v1.1

除此之外还需要额外下载 MetaGeneMark 和 USEARCH,需要将程序放入/MOCAT/ext/的指定文件夹中。以 MetaGeneMark 软件为例:

cd /MOCAT/ext/metagenemark/
# 下载软件本体
wget -c http://topaz.gatech.edu/GeneMark/tmp/GMtool_qQCM5/MetaGeneMark_linux_64.tar.gz
# 下载密钥,官网获得
wget -c XX
# 解压 MetaGeneMark
tar -xf MetaGeneMark_linux_64.tar.gz
# 解压密钥
gunzip gm_key_64.gz
# 将所有内容拷贝至 /MOCAT/ext/metagenemark/
cp MetaGeneMark_linux_64/mgm/* ./
# 拷贝密钥至家目录
cp gm_key_64 ~/.gm_key

软件使用

准备工作

Project 目录结构如下:

[root@localhost tmp]# tree
.
|-- sample.file
|-- MOCAT.cfg
|-- NDME13466
|   |-- NDME13466.1.fq.gz
|   `-- NDME13466.2.fq.gz
`-- NDME13489
    |-- NDME13489.1.fq.gz
    `-- NDME13489.2.fq.gz

在一个 Project 目录中要有MOCAT.cfg文件和$SAMPLE_FILE文件。

sample.file文件的内容是保存测序数据的文件夹:

NDME13466
NDME13489

MOCAT.cfg文件是 MOCAT2 流程的配置文件,用于设置软件参数。可从MOCAT/article_datasets/make_and_annotate_gene_catalog MOCAT2 软件的示例数据中拷贝。

另一个需要注意的是,测序文件必须以.1.fq.gz.2.fq.gz结尾。

实战

实战1:将多个样本数据生成参考基因集并注释
## Process 数据预处理:
$ MOCAT.pl -sf $SAMPLE_FILE -rtf

## Assemble 组装(软件:SOAPDenovo)
$ MOCAT.pl -sf  $SAMPLE_FILE -a -r reads.processed  -cpu 40

## Revise Assembly 组装校正(软件:SOAPAligner2, BWA)
### Corrects assemblies for base pair and short indel errors
$ MOCAT.pl -sf $SAMPLE_FILE -ar -r reads.processed -cpu 40

## Predict genes 基因预测(软件:MetaGeneMark)
$ MOCAT.pl -sf $SAMPLE_FILE -gp assembly -cpu 40

## MAKE GENE CATALOG 构建基因集(软件:cd-hit)
MOCAT.pl -sf $SAMPLE_FILE -make_gene_catalog -assembly_type assembly -cpu 40

## ANNOTATE GENE CATALOG 基因集注释
MOCAT.pl -sf $SAMPLE_FILE -annotate_gene_catalog -blasttype blastp -cpu 40

## CREATE FUNCITONAL PROFILES BASED ON CATALOG 根据参考基因集进行功能注释
MOCAT.pl -sf $SAMPLE_FILE -s $SAMPLE_FILE.padded -identity 95
MOCAT.pl -sf $SAMPLE_FILE -f $SAMPLE_FILE.padded -identity 95
MOCAT.pl -sf $SAMPLE_FILE -p $SAMPLE_FILE.padded -identity 95 -mode functional
实战2:进行菌群分类注释
# Initial sample processing #
MOCAT.pl -sf $SAMPLE_FILE -rtf

# Generate mOTU profiles #
MOCAT.pl -sf $SAMPLE_FILE -s mOTU.v1.padded -r reads.processed -identity 97 -extracted_files
MOCAT.pl -sf $SAMPLE_FILE -f mOTU.v1.padded -r reads.processed -identity 97
MOCAT.pl -sf $SAMPLE_FILE -p mOTU.v1.padded -r reads.processed -identity 97 -mode mOTU -o $OUTPUT_FOLDER

# Generate taxonomic profiles #
MOCAT.pl -sf $SAMPLE_FILE -s RefMG.v1.padded -r mOTU.v1.padded -e -identity 97
MOCAT.pl -sf $SAMPLE_FILE -f RefMG.v1.padded -r mOTU.v1.padded -e -identity 97
MOCAT.pl -sf $SAMPLE_FILE -p RefMG.v1.padded -r mOTU.v1.padded -e -identity 97 -mode NCBI -previous_db_calc_tax_stats_file -o $OUTPUT_FOLDER

结果文件

  • 组装后的序列存放于:

SAMPLE/assembly.reads.processed.solexaqa.K*/SAMPLE.assembly.reads.processed.solexaqa.K*.scaftig.gz
  • 预测的基因存放于:

SAMPLE/gene.prediction.assembly.reads.processed.solexaqa.K*.MetaGeneMark.500/SAMPLE.gene.prediction.assembly.reads.processed.solexaqa.K*.MetaGeneMark.f*a
  • 聚类的基因集(参考基因集):

GENE_CATALOGS/my.samples/catalog/my.samples.fna
  • 聚类的蛋白(参考基因集翻译而成):

GENE_CATALOGS/my.samples/catalog/my.samples.faa
  • 参考基因集注释:

GENE_CATALOG_ANNOTATIONS/my.samples/my.samples.functional.map
  • 基因分析:

PROFILES/gene.profiles/my.samples/my.samples.*.zip
  • 功能分析:

PROFILES/functional.profiles/my.samples/my.samples.*.zip

一些报错及解决方法

  • 第二步组装校正报错( 查看 log 文件):

/mocat_test/MOCATJob_assembly_2samples_2019Apr13_182609: line 2: rsync: command not found

容器内没有安装 rsync 导致。安装 rsync:

apt-get install -y rsync

安装 Perl 模块 File::Sync

perl -MCPAN -e shell
# install File::Sync
  • 第三步基因预测需要安装 MetaGeneMark,在/MOCAT/ext/metagenemark/文件夹下一定要有MetaGeneMark_v1.modgmhmmp,在家目录下要有.gm_key,否则会报错。

  • 第四步构建基因集(cd-hit)报错:

/MOCAT//bin/cd-hit-est: error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory

缺少libgomp.so.1文件,安装动态库:

apt-get install libgomp1


猜你喜欢

宏基因组笔记 | 统计学方法

phyloseq | 用 R 分析微生物组数据及可视化(一)

phyloseq | 用 R 分析微生物组数据及可视化(二)

phyloseq | 用 R 分析微生物组数据及可视化(三)

宏基因组笔记 | 基础知识

通过 Python API 使用 QIIME 2

生信基础知识100讲

生信菜鸟团-专题学习目录(5)

生信菜鸟团-专题学习目录(6)

生信菜鸟团-专题学习目录(7)

还有更多文章,请移步公众号阅读

▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。


   


▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。


   


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存