之前详细介绍了宏基因组二、三代混合组装软件OPERA-MS的Nature Biotechnology文章。详见下文:

  • NBT:宏基因组二、三代混合组装软件OPERA-MS

今天带来软件的使用经验,主要参考如下官方文档:

https://github.com/CSB5/OPERA-MS

同时使用自己的数据进行经验分享。

简介

OPERA-MS是一种混合式宏基因组组装软件,结合了短读长和长读长技术的优点,可提供高质量的组装,解决了短读组装的低连续性和长读组装的低碱基对质量的问题。OPERA-MS已在使用不同的长读技术(包括牛津纳米孔,PacBio和Illumina合成长读长)测序的合成群落和真实群落中进行了广泛的测试,并且对读长数据中的噪声特别稳健。

OPERA-MS采用分段组装策略,该策略旨在利用低覆盖率的长读取数据来改善基因组组装。它从构建一个短读长的宏基因组拼接集(默认值:MEGAHIT)开始,该程序集可以很好地表示宏基因组中的基础序列,但可能会被片段化。然后,将长读取和短读取映射到拼接集,以识别重叠群之间的连通性并计算读取的覆盖率信息。这是OPERA-MS算法核心的基础,该算法将利用基于贝叶斯模型的方法利用覆盖率和连接性信息将重叠群准确地聚类到基因组中。OPERA-MS的另一个重要优点是,它可以对宏基因组中的菌株进行去卷积,可以选择使用参考基因组中的信息来对此进行支持。对于从容易出错的长读的拼接开始的流程来说,这从根本上是挑战。聚类后,OPERA-LG使用准确的支架(scaffold)对各个基因组进行进一步的延伸和缺口填充。

OPERA-MS可以从宏基因组数据集中组装几乎完整的基因组,而其长读长覆盖率仅为9倍。软件的设计是保守的,避免进行激进的组装,这是许多现代组装程序倾向于报告高连续性统计信息的策略。OPERA-MS用于人类肠道微生物组数据,可提供数百个高质量的草图基因组,其中大多数N50 > 100kbp。我们观察到完整质粒的装配,其中许多是新颖的,并且包含以前看不见的抗性基因组合。此外,即使在复杂的宏基因组中存在多种物种的菌株,OPERA-MS仍可以非常准确地组装基因组,从而使我们能够使用纵向数据将质粒与宿主基因组关联起来

使用

软件安装

# 下载软件并编译
git clone https://github.com/CSB5/OPERA-MS.git
cd OPERA-MS
make
# 检查依赖关系
perl OPERA-MS.pl check-dependency# 缺perl模块的安装
perl tools_opera_ms/install_perl_module.pl
export PERL5LIB="/home/$USER/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}";

内置测试数据运行

输入文件:

  • 短序列:

    —short-read1/2

  • 长序列:

    —long-read

  • (可选)预组装结果:

    —contig-file

  • 输出目录:

    —out-dir

  • 关闭有参聚类:

    —no-ref-clustering

输入预组装的重叠群,短和长读长序列。关闭有参聚类,24线程加速,输出至RESULTS目录,耗时1m31s。结果N50有39K

cd test_files
time perl ../OPERA-MS.pl \--contig-file contigs.fasta \--short-read1 R1.fastq.gz \--short-read2 R2.fastq.gz \--long-read long_read.fastq \--no-ref-clustering --num-processors 24 \--out-dir RESULTS 2> log.err
cat RESULTS/assembly.stats

计算共分为9步。

  1. MEGAHIT/Metaspades短序列组装,指定—contig-file则跳过

  2. 上读长比对

  3. 短读长比对

  4. 层级聚类

  5. 有参聚类

  6. 菌株聚类

  7. 其他聚类组装

  8. 补洞

  9. 纠错

不指定contig文件时,结果下降非常大;N50由271k下降到18k

输出结果

可以在指定的输出目录(即RESULTS)中找到以下输出文件。文件contigs.polished.fasta(如果未纠错组装的则为contigs.fasta)包含组装的contig,assembly.stats提供总体组装统计信息(例如组装统计,N50,最长的重叠群等),而contig_info.txt提供组装后的重叠群的详细概述。

最后,可以在目录RESULTS / opera_ms_clusters / all中找到OPERA-MS菌株水平聚类(每个菌株一个fasta文件),而cluster_info.txt提供了这些群落的组装统计的详细概述。请注意,这些簇是为产出高质量组装而构造的,因此是保守的。重叠群可以使用诸如MaxBin2或MetaBAT2之类的方法进一步进行分箱。

  • assembly.stats # 组装统计

  • contig_info.txt # 重叠群信息,如长度

  • contigs.fasta # 组装结果,重叠群

  • contigs.polished.fasta # 纠错后的重叠群

  • intermediate_files/ # 中间文件

  • opera-ms-utils.config # 参数文件

常用参数

显示帮助

perl ../OPERA-MS.pl --help
  • 参考基因组目录:

    —genome-db,使用GTDB的基因组数据库和分类信息,详见数据库部分

  • 关闭参考基因组聚类:

    —no-ref-clustering

  • 关闭菌株水平聚类:—no-strain-clustering

  • 关闭纠错:

    —no-polishing,默认使用短读长软件Pilon进行纠错,结果为contigs.polished.fasta

    样本高覆盖度和/或高度复杂时需要大量计算时间。

  • 长序列比对软件选择:

    —long-read-mapper,默认为 blasr,可选minimap2,仅测试了v2.11-r79

  • 短序列组装:

    —short-read-assembler,默认为 megahit ,可选spades

  • 禁用补洞:

    —no-gap-filling

  • kmer大小:

    —kmer-size,默认60

  • 重叠群长度阈值:

    —contig-len-thr,默认500,小于会被去除

  • 重叠末端截断长度:

    —contig-edge-len,计算重叠群覆盖度时,在每个重叠群末端过滤一定长度以避免低比对效率,默认为80

  • 重叠 —contig-window-len,用于覆盖度估计的窗口大小,默认为340。

    推荐使用最小长度 — 2 X 末端截断长度(500 - 2 X 80 = 340)

  • 使用预组装的重叠群:

    —contig-file,使用会跳过短序列组装步骤。

  • 线程数:

    —num-processors,默认为2,可以使用10-20等适合的计算资源加速

自定义参数分析

关闭参考聚类,和菌株层面聚类,关闭纠错(可显著减少计算时间),使用megahit组装,使用24个线程。耗时1min,N50 仅为 18k

perl ../OPERA-MS.pl \--short-read1 R1.fastq.gz \--short-read2 R2.fastq.gz \--long-read long_read.fastq \--short-read-assembler megahit \--num-processors 24 \--no-ref-clustering --no-strain-clustering --no-polishing \--out-dir RESULTS1 2> log.err
cat RESULTS1/assembly.stats

关闭参考聚类,和菌株层面聚类,组装方法改为spades(需要预安装,默认没有),使用24个线程。耗时4min,N50 40k

perl ../OPERA-MS.pl \--short-read1 R1.fastq.gz \--short-read2 R2.fastq.gz \--long-read long_read.fastq \--short-read-assembler spades \--num-processors 24 \--no-ref-clustering --no-strain-clustering --no-polishing \--out-dir RESULTS2 2> log.err
cat RESULTS2/assembly.stats

OPERA-MS旨在与深度的短读测序一起使用,但就长读测序可以在较低的覆盖范围内工作。实际上,建议短读覆盖率> 15倍,而OPERA-MS可以使用低至9倍的长读覆盖率来提高装配的连续性。基于此,我们建议至少9Gbp的短读长数据和3Gbp的长读长数据,以允许细菌基因组在宏基因组中相对丰度为1%时进行组装

测试数据结果评估

测试数据默认提供了contigs.fasta预组装的结果(pre),还有使用默认参数下利用三代提高的结果(default)。同时我还使用测试数据分别使用megahit和metaspades从头组装的结果。使用quast进行评估(安装方法为conda install quast):

quast.py --label "pre,default,megahit,metapasdes" \contigs.fasta \RESULTS/contigs.polished.fasta \RESULTS1/contigs.polished.fasta \RESULTS2/contigs.fasta \-o quast

可以看到基于预组装并结合三代修正的结果最高,重叠群最大997kb,N50高达391kb。然而奇怪的是我从头组装的结果N50却只有20k和28k,而作者预组装的有61k。是我的组装参数不对,还是作者使用了更大的测试数据集吗?

此外,我还用我自己的二、三代数据测试了metaspades和OPERA-MS,结果如下:

整体上在总长度方面metaspades更好。而N50则是opera-ms更好,但优势不明显。opera-ms及polished的结果基本一致,在长度上也重合。

辅助工具

OPERA-MS-UTILS脚本对组装进行后处理。实现简化的分析工具,可以计算短读序列和长读序列之间代表类群的一致性,从而对分箱、重叠群进行评估,从而可以评估分箱质量并从宏基因组中鉴定新物种的基因组。

这些工具的完整说明详见以下链接:

https://github.com/CSB5/OPERA-MS/wiki/OPERA-MS-Utilities

OPERA-MS-UTILS提供了不同的实用程序,对OPERA-MS组装,质控不同技术读长,并方便地执行必要的组装后宏基因组分析:

  • opera-ms-db:

    生成用于OPERA-MS基于参考聚类的自定义数据库

  • read-concordance:

    计算长和短读长测序数据之间的丰度分布相关性

  • binning:

    使用MetaBAT2或MaxBin2分箱OPERA-MS的重叠群

  • bin-evaluation:

    使用CheckM评估bin质量

  • novel-species:

    OPERA-MS宏基因组组装基因组(MAG)的新物种分析,以鉴定密切相关的物种和新物种的MAG

数据库下载

方法1. 程序命令下载数据库,国内dropbox可能无法下载

perl OPERA-MS.pl install-db

方法2. 手动构建,输入为gtdb的taxonomy和基因组文件

https://gtdb.ecogenomic.org/ —— Downloads —— GTDB Data Files —— lastest (2020年6月发行的95版)

mkdir -p gtdb/95/genomic_files_reps/ && cd gtdb/95/genomic_files_reps/
# 基因组32G
wget -c https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/genomic_files_reps/gtdb_genomes_reps.tar.gz
# 解压
tar xvzf gtdb_genomes_reps_r95.tar.gz
rename 's/_genomic.fna.gz//' gtdb_genomes_reps_r95/*
# 获得基因组ID
ls gtdb_genomes_reps_r95/GC*|cut -f 2 -d '/'|sed 's/_genomic.fna.gz//' > gtdb_genomes_reps_r95.id
cd ..# 物种注释
# 古菌3k
wget -c https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/ar122_taxonomy.tsv
# 细菌,190k
wget -c https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/bac120_taxonomy.tsv
# 合并,并修改与基因组文件名一致
cat ar122_taxonomy.tsv bac120_taxonomy.tsv | sed 's/^GB_//'> genome_taxonomy.tsv
# 筛选与解压一致的基因组
awk 'BEGIN{FS=OFS="\t"} NR==FNR{a[$1]=$0} NR>FNR{print a[$1]}' genome_taxonomy.tsv genomic_files_reps/gtdb_genomes_reps_r95.id > gtdb_genomes_reps_r95_taxonomy.tsv# 建索引
db=/home/meta/db/gtdb/95
python OPERA-MS-UTILS.py opera-ms-db \--genomes-dir ${db}/genomic_files_reps/gtdb_genomes_reps_r95 \--taxonomy ${db}/gtdb_genomes_reps_r95_taxonomy.tsv \--db-name db

复制文件结束后报错

Traceback (most recent call last):File "OPERA-MS-UTILS.py", line 287, in <module>main(args)File "OPERA-MS-UTILS.py", line 200, in mainopera_ms_db(args.genomes_dir, args.taxonomy, args.db_name, args.thread)File "OPERA-MS-UTILS.py", line 121, in opera_ms_dbread_taxonomy_file(genomes_dir, taxonomy, genome_db, genome_list, genome_size)File "OPERA-MS-UTILS.py", line 71, in read_taxonomy_filetax_info = line_list[1].split(";")
IndexError: list index out of range

猜你喜欢

10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑

系列教程:微生物组入门 Biostar 微生物组  宏基因组

专业技能:学术图表 高分文章 生信宝典 不可或缺的人

一文读懂:宏基因组 寄生虫益处 进化树

必备技能:提问 搜索  Endnote

文献阅读 热心肠 SemanticScholar Geenmedical

扩增子分析:图表解读 分析流程 统计绘图

16S功能预测   PICRUSt  FAPROTAX  Bugbase Tax4Fun

在线工具:16S预测培养基 生信绘图

科研经验:云笔记  云协作 公众号

编程模板: Shell  R Perl

生物科普:  肠道细菌 人体上的生命 生命大跃进  细胞暗战 人体奥秘

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

点击阅读原文,跳转最新文章目录阅读

OPERA-MS:宏基因组二、三代测序混合组装相关推荐

  1. NBT:宏基因组二、三代混合组装软件OPERA-MS

    文章目录 宏基因组二.三代测序混合组装软件OPERA-MS 热心肠日报 摘要 主要结果 图1. OPERA-MS工作流程图 图2. 宏基因组数据混合组装基因组评测 图3. 组装虚拟肠道微生物组 图4. ...

  2. 【生信】第一二三代测序技术原理的理解

    [生信]第一二三代测序技术原理的理解 本文部分图片来源网络或学术论文,文字部分来源网络与学术论文,仅供学习使用. 目录 [生信]第一二三代测序技术原理的理解 1.了解什么是DNA测序,什么是RNA测序 ...

  3. 从头测序+重测序 | 利用细菌二/三代测序组装全基因组草图,注释,并应用于遗传分析...

    这个问题部分地解决了: 仍存在的"Error"可能与原核特殊的密码子使用.基因组存在gap区.snpEff的进一步参数选择有关. 那么我们完成了什么?假设你分离到了一株菌,是一种当 ...

  4. Nature子刊:改进宏基因组的分箱和组装的新方法

    要点 尽管在宏基因组学分类方面有新进展,但是从宏基因组学数据重建微生物物种仍然具有挑战性.来自Nature Biotechnology 的一项最新研究开发了用于宏基因组分箱(VAMB)的变体自动编码器 ...

  5. iMeta | 青岛华大范广益组基于共标签测序数据的高质量宏基因组组装工具MetaTrass...

    点击蓝字 关注我们 MetaTrass:基于共标签测序数据的人类肠道微生物高质量宏基因组组装工具 https://doi.org/10.1002/imt2.46 RESEARCH ARTICLE ●2 ...

  6. NBT:主流高通量测序仪在人/细菌/宏基因组测序评测结果发布,华大智造表现优异...

    导读 高通量DNA测序技术(DNA-seq)是临床和基础生物医学研究的重要手段之一.作为一种常规的技术方法,DNA-seq在多个领域均有广泛应用,例如个体基因分型和变异鉴定,种群和物种水平的基因组特征 ...

  7. “鸟枪换炮”,nanopore测序在宏基因组中的应用

    "鸟枪换炮",nanopore测序在宏基因组中的应用 2003年使用一代测序破译sars病毒用了4个月,2020年初使用二代测序破译新冠病毒用了4天,现在使用使用nanompore ...

  8. 易基因 | 宏基因组测序带给了我们什么?

    关于宏基因组测序: 直接对提取的全宏基因组DNA建立随机小片段文库,能够获取更多的序列信息.通过组装.ORFs预测与注释,通过各种大型公共数据库进行相应注释,高精度解析微生物群落结构与功能,包括特色的 ...

  9. 你想要的宏基因组-微生物组知识全在这(2023.01)

    欢迎点击上方蓝色"宏基因组"关注我们! 宏基因组/微生物组是当今世界科研最热门的研究领域之一,为加强宏基因组学技术和成果交流传播,推动全球华人微生物组领域发展,中科院青年科研人员创 ...

最新文章

  1. 第k大的数python代码_【Python】【输出前m大的数】
  2. java 线程的函数_Java线程总结
  3. 随机模拟【1】:随机模拟的研究范围与特征
  4. python进阶 多线程编程 —— threading和queue库实现多线程编程
  5. Windows和Linux双启动,并用在Windows下配置CoLinux启动
  6. 【图像处理】——图像增强Python实现直方图均衡化
  7. 杯子 + Kronican
  8. 程序媛计划——mysql连接表
  9. yii2框架获取刚插入数据库的id (原创)
  10. 将PHP作为Shell脚本语言使用
  11. 比较器matlab,用于比较 MATLAB 对象的公共属性的比较器 - MATLAB - MathWorks 中国
  12. 如何将矩阵化为约旦标准型_【解题方法】矩阵初等变换的应用
  13. Solr搜索引擎——中文分词器
  14. python---windows中的文件路径书写的错误
  15. c语言如何用编译器编辑,C语言编译器怎么用,C语言编译器使用教程
  16. php 阿里云短信接口 demo最新
  17. 试着用人话说说 使命 愿景 价值观,以及人的三观
  18. SRM 719 div2 Hard (01Trie,最大异或和)
  19. 阿里云的WEB应用防火墙(WAF)能抵挡什么攻击
  20. 牛客网 15029 (栈)

热门文章

  1. 家庭收支记账软件 (GO语言实现)
  2. 【KSQL引擎 介绍】
  3. OTA线下攻防战 | 一点财经
  4. 深度解析:电商直播基地运营及盈利模式
  5. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。
  6. 《Oracle 10G 系统教程 中科院培训老师讲授》
  7. 智慧街道(乡镇)二三维网格化管理系统
  8. 神经网络的编程基础(转自吴恩达)
  9. mye连接mysql数据库_myeclipse连接数据库
  10. 力扣(83.643)补8.29