宏基因组组装神器-MEGAHIT使用及常见问题
文章目录
- 简介
- 安装和使用
- 常见报错和解决方法
- 输出结果
- 参考
简介
宏基因组测序获得海量短片段测序数据,这些数据混合着环境中各种各样的微生物基因组序列,如何恢复出这些微生物基因组序列,基因组组装成为至关重要的一步。
在考虑如此复杂的数据之前,不妨先看看单个基因组组装的常规步骤:
- 首先,通过shotgun测序产生reads,然后利用连续reads之间的重叠信息(overlap)进行组装产生长片段Contig
- 其次,可以使用pair-end之间的位置信息确定Contig的方向和顺序,组装产生更长的片段Scaffold,
- 最后,可以基于大片段的文库组装连接Scaffold得到完整的染色体序列
需要说明的是,之所以可以使用pair-end的信息连接Contg,是因为一般在建库的时候长度要大于实际测序的总长度,例如建库常用500bp,而Illumina pair-end 150bp加到一起才300bp,因此中间200bp的位置信息在第一步组装成Contig时实际是没有利用到的。
组装算法大致可以分为三类: - 1.基于OLC(Overlap-Layout-Consensus),适用于测序量不大的长片短数据
- 2.基于kmer的DBG(de bruijn graph),适用测序量大的段片段数据
- 3.综合OLC和DBG法
MEGAHIT采取的算法则是基于迭代的kmer的DBG法,其特点是超快和超高效内存使用
- 1)把所有测序读段(reads)都分割为更小的片段k-mer:这里k为7,假如read的长度为n,则总共可产生n-k+1个k-mer;
- 2)把每个k-mer作为一个节点,然后判断k-mer之间是否有k-1碱基的重叠,如果有则将两个不同的节点连接起来。依次这样连接所有可连接的k-mer就形成了de Bruijn Graph;
- 3)依次合并相邻的k-mer,因为相邻的k-mer有k-1个碱基的重叠,就可进一步简化de Bruijn Graph形成简化后的图;
由于相邻k-mer之间的非配对碱基只有1个,那理论上相邻序列的组合情况只有四种,这大大减少了相邻序列配对的检测难度,因此de Bruijn方法是现阶段的主流组装方法。 - 4)使用一系列算法消除由测序错误而形成的tips,并合并bubbles(两条或多条路径序列,一般由SNP或者测序错误造成;
- 5)增加kmer长度,重新执行上述步骤,如果结果不好于上一步则终止迭代,否则继续迭代。
MEGAHIT paper
安装和使用
# 1.Conda安装conda install -c bioconda megahit
# 2. 查看安装版本megahit –v#MEGAHIT v1.2.9
- 输入文件:fastq/fasta格式的测序文件(单端或双端),可以是gz/bz2压缩文件
以常见的fastq格式文件为例:
- 使用
# 双端序列组装:megahit -1 pe_1.fq -2 pe_2.fq -o out#-1:pair-end 1序列,-2 pair-end 2序列,-o输出目录
# 单端序列:megahit -r single_end.fq -o out
# 交错的双端序列:megahit --12 interleaved.fq -o out
- 常用参数
两种设置kmer参数的方法:
1)–k-list:组装的kmer size列表,支持多kmer组装,不同kmer size之间逗号分隔,可设置的范围15-255,相邻kmer size间隔必须小于或等于28,默认为21,29,39,59,79,99,119,141
2)组合参数:–k-min:设置最小的kmer size,应小于255,必须为奇数,默认为21
–k-max:设置最大的kmer size,应小于255,必须为奇数,默认为141
–k-step:多kmer组装的kmer size间隔,应小于等于28必须为偶数,默认为12
示例:
megahit -r single_end.fq -o out --k-list 21,39,59megahit -r single_end.fq -o out --k-min 21 --k-max 141 --k-step 10
- 其他常用参数
1)-m/–memory:构建SdBG可以使用的最大内存,可设置0-1,也即占总内存的分数,默认为0.9
2)-t/–num-cpu-threads:程序运行使用的核数
3)–out-prefix:输出结果文件的前缀,例如contig文件会是OUT_DIR/OUT_PREFIX.contigs.fa
4)–min-contig-len输出的最短contigs,默认为200
5)–test 在自带测试数据上执行组装,常用于测试软件安装是否正常
示例:
megahit -r single_end.fq -o out –m 0.5 –t 10megahit --test
常见报错和解决方法
- std::bad_alloc/Exit code -6
解决方法:
1)指定大内存:-m 0.9
2)尝试使用大kmer组装,降低组装复杂度:例如设置–k-list 39,49,…,129,141
3)若上述都无效则需要加大服务器内存 - 从中断点继续运行
当组装大数据的时候可能由于内存不够或其他原因中断,此使可以使用
megahit --continue -o former_megahit_out -m 0.9
参数说明:
–continue:从中断处继续运行
-o former_megahit_out: 输出目录,必须是之前已经生成的目录,包含相关中间文件
-m 0.9:使用内存百分比,也可加其他参数
输出结果
MEGAHIT输出结果很简单,最重要的就是组装基因组final.contigs.fa文件
final.contigs.fa: 组装结果,fasta格式
log: megahit程序运行时的log日志,便于查看具体执行进度和排错
options.json: 执行组装程序参数的json格式
intermediate_contigs: 中间组装结果
参考
megahit github
megahit exit code 6
宏基因组组装神器-MEGAHIT使用及常见问题相关推荐
- 一文详解宏基因组组装工具Megahit安装及应用
要点 Megahit简介 Megahit的基本组装原理 Megahit的安装和使用 Megahit实战 hello,大家好,今天为大家带来关于宏基因组组装工具Megahit的超详细安装及应用教程. 我 ...
- NBT:牛瘤胃微生物组的4941个宏基因组组装基因组(MAG)
牛瘤胃微生物组的参考基因组集 用于瘤胃微生物组生物学和酶发现的4,941个瘤胃宏基因组组装基因组集 Compendium of 4,941 rumen metagenome-assembled gen ...
- iMeta | 青岛华大范广益组基于共标签测序数据的高质量宏基因组组装工具MetaTrass...
点击蓝字 关注我们 MetaTrass:基于共标签测序数据的人类肠道微生物高质量宏基因组组装工具 https://doi.org/10.1002/imt2.46 RESEARCH ARTICLE ●2 ...
- 链读测序技术在宏基因组组装研究中的应用
链读测序技术在宏基因组组装研究中的应用 链读测序(Linked-read sequencing)通过将相同的barcode与长DNA片段(10-100kb)的序列连接在一起,能够消除其中的一些错读,从 ...
- Nature子刊:宏基因组组装基因组实现谱系解析
宏基因组组装基因组实现谱系解析 MAGs achieve lineage resolution Nature Microbiology [IF: 17.745] DOI:https://doi.org ...
- Nature方法 | 三代长读长宏基因组组装软件metaFlye
简介 标题:metaFlye:基于重复图的可拓展长序列宏基因组序列组装 metaFlye: scalable long-read me ...
- NC:MetaSort通过降低微生物群落复杂度以突破宏基因组组装难题
点评:目前本领域研究最大的问题是缺少大量细菌基因组作为参考宏基因组序列.这一问题严重限制了研究的准确度和进一步功能研究.而目前的研究还主要集中在扩增子和宏基因组数据的宏观描述上,即使发布了大量宏基因组 ...
- 宏基因组组装质量评估新方法-MAGISTA
谷禾健康 尽管地球上微生物类群的繁多,但只有一小部分得到了培养和有效命名.因为大多数菌无法在非常特定的条件下培养分离鉴定. 在过去十年中,宏基因组研究的重要性已经凸显,因为它能够评估细菌基因库并发现当 ...
- 宏基因组实战3. MEGAHIT组装拼接及quast评估
前情提要 如果您在学习本教程中存在困难,可能因为缺少背景知识,建议先阅读本系统前期文章 宏基因组分析理论教程 微生物组入门圣经+宏基因组分析实操课程 1背景知识-Shell入门与本地blast实战 2 ...
最新文章
- 前辈说先学会了这些Python知识点,再谈学习人工智能、机器学习
- 2018年终总结之摄影作品展
- django-admin 设计User外键,设计model
- C语言:关于socket的基础知识点
- aspen怎么做灵敏度分析_数据分析终极难题:数据分析怎么做才能驱动业务?
- git删除本地分支、删除远程分支 复制分支
- Python生态概览(一):数据分析库、数据可视化库、文本处理库、机器学习库、深度学习库
- Intel® Math Kernel Library (Intel® MKL)
- 欧式空间与希尔伯特空间
- sqli-labs(18-22)
- 2019款Mac Pro到底有多强
- 赵小楼《天道》深度解析(75)客观是对现有事实的认可,嘴上认可可不行,得心里认,否则就是自欺
- 网上商城SSH三者间的牵线
- 人工智能导论练习题(上)
- 2023年选go还是python?
- 计算机ata考试教案,ATA办公软件考级教案(四).docx
- cmd脚本命令--之基本命令锦集
- SpringBoot模拟数据库开发
- 遥感技术及高分遥感影像在地震中的应用及高分二号获取
- 微信小程序商城怎么在线制作