查看原文
其他

微生物组相关软件导读

2017-07-11 沈梦园 植物微生物组

以下软件导读整理自Biostack.org博客http://www.biostack.org/。 这个网站整理了许多生物学软件的简介、下载和安装、导读等,非常方便。

本文由沈梦园整理 http://mp.weixin.qq.com/s/cVVp2YEVKwg1bcTgCEj8sw

FASTQSim:高通量测序数据模拟应用,支持 illumina/ion/pacbio/roche平台,被广泛用于metagenome数据模拟,比如文章:Evaluating performance of metagenomic characterization algorithms using in silico datasets generated with FASTQSim

wgsim: 比较通用的序列模拟器,需要提供参考基因组,从提供的命令行参数可以看到,可以控制:双端序列的外部距离(等价于插入片段长度);序列长度;错误率;序列条数;突变率;Indel的比例等。 很适合模拟 metagenome 数据集,但是需要提供很多参考基因组;对于metagenome 数据的模拟,可以直接到 refseq下载想模拟的微生物基因组,一般下载细菌/古菌/病毒的序列,各占一定比例, 然后合并在一起,就可以模拟了, 可以参考 A comparative study of metagenomics analysis pipelines at the species level 这篇文章, 比例为:hg19 + 315 微生物基因组 (292 237 species: 74 bacteriophages, 69 viruses and 149 bacteria), 这里用的是 species,应该去除同一个种的不同 strain,但是真实的 metagenome 数据肯定会有很多同一个种的不同 strain,这也是metagenome 数据分析的难点:拼装的嵌合问题。因为NCBI新的拼装数据库不提供打包下载方法,下载Refseq也没有先前那么简单了,这里提供一个下载 Refseq 比较方便的程序:Kraken_db_install_scripts(https://github.com/mw55309/Kraken_db_install_scripts) 。

Blast2GO:一套集成的比较成熟的序列功能注释和分析平台, 可以整合NR, Swiss-prot 以及Interproscan的结果对序列进行功能Gene Ontology(GO)的功能分类。Blast2GO是针对实验人员设计的,具有友好直观的界面。在处理大量序列时,虽然可以提交上千条序列在线分析,但是很费时且不能有效的控制软件版本,所以本地安装并基于命令行的运行模式显得尤其必要。

Interproscan:组合了不同的蛋白质特征(protein signature)数据库,包括了 Pfam , PIR,SMART,Gene3D,TigrFam,SuperFamily,TMHMM,SignalPHMM,FPrintScan以及PatternScan等。通过InterPro,我们可以利用这些数据库更好的注释和了解蛋白质功能等详细信息,此外,我们也可以容易的和GO进行关联,极大的丰富蛋白质的GO功能注释。

KneadData:Huttenhower实验室出品,设计用来实现微生物组数据质量控制,尤其是metagenome 或者 metatranscriptome 数据, 也可以作为常规的污染序列去除工具,可以使用 bowtie2 或者 bmtagger作为序列比对引擎,经过具体测试 bmtagger 去除效率要比 bowtie2 好,bmtagger为人类微生物项目的SOP工具,KneadData 多线程处理效果不佳,按照下面思路也许重新基于bmtagger造一个小轮子更合适,(1)、对fastq文件切分 (2)、使用 parallel/xargs/gargs提交 (3)、合并结果文件 (4)、数据清理。

eggNOG:被广泛用于基因功能注释,提供了NCBI COG 提供的广泛的扩展,现在基于最新版本 eggNOG-4.5 开发了 GO 的功能注释可选防线, 先前主要是基于BLAST2GO、Interproscan,可以使用序列谱相似性搜索或者直接序列相似性搜索,可以用来注释基因组/转录组以及metagenome, 在线服务网站:http://beta-eggnogdb.embl.de/#/app/emapper, 本地话安装也不是很困难,但是和Interproscan一样,很耗磁盘空间。eggNOG注释文件就接近20G, eggNOG序列文件也接近 20G, 另外还有接近130G的HMM序列谱文件,内存消耗也是相当可观: 真核数据库需要90G内存, 细菌数据库需要32G内存,古菌序列搜索需要 10G,使用PCIe-SSD也许是一种解决低内存的方案, 安装和使用也比较简单。

Centrifuge:又是一款快速有效的 metagenome 序列分类 43 34147 43 14986 0 0 2905 0 0:00:11 0:00:05 0:00:06 3013的软件(reads 和 contig、整个染色体 ), 采用了结合BWT变换(Burrows-Wheeler transform,BWT)和 FM索引(Ferragina-Manzini ,FM)的策略对序列分类进行优化,通过基因组压缩策略有效降低了内存的需求,因此可以处理NT库级别的库索引,因为Kraken等基于Kmer的策略,所以并不需要这样的操作,但是需要存储很大的Kmer表,虽然速度快、准确性高(大的Kmer长度 k=31),但是敏感性很低,特别是针对多样性比较复杂的环境。Centrifuge 为 Johns Hopkins University CCB(The Center for Computational Biology)出品, 采用的软件架构和bowtie2、hisat2 等还是比较类似, 命令行接口也类似,学习成本比较低。当前库版本 p+h+v(Bacteria, Viruses, Human),大小13G, 包含了 28718 条核酸序列,14871个NCBI Taxonomy节点,8382 species , NT库 77G大小, 包含了 39648092 条核酸序列,1028487个物种信息。有意思的是 Centrifuge 竟然允许一条序列可以有多个taxonomy 标签,并允许通过设置阈值将多个hits回归到LCA模式,针对multi-hit 模式,通过EM算法可以进行丰度定量。 centrifuge-kreport 提供了将Centrifuge的结果转换成Kraken风格的结果,这点很值得赞, Kaiju也提供了 Kraken style格式文件,这样后端程序就比较统一,应该有一个标准才好。

STAMP:基于 raw counts 、简单易用的 metagenomic communities 生物学差异鉴定工具。对 metagenome 数据进行Profiling(物种系统分类谱,taxonomy profile 以及功能谱 functional profile )是解析metagenome 数据的第一步,但是深入了解环境样本的功能以及机理的一个重要手段就是比较,并通过控制变量因素(或者自然差异条件)预测哪些因素驱动 metagenomic communities 上的变化。现在metagenome 测序数据很容易给出物种分类和功能分类的信息并使用counts (reads数目)来进行表征, STAMP 提供比较友好的用户界面(官方提供 Windows 和 Linux 两个版本)、以及多种可选的统计策略(分为两个样本、两个分组以及多组统计等),数据可视化形式也多种多样(barplot、headtmap、PCA Plot等),Odd Ratio、 relative risk、以及差异丰度等对差异分类进行过滤, 没有生物信息学经验也可以很容易使用。

COGNIZER:快速注释模式,采用了NCBI COG 数据库 ftp://ftp.ncbi.nih.gov/pub/COG/COG/myva 作为RAPSearch的库索引进行序列相似性比对,然后与其他数据库进行关联,比如GO、KEGG 、Fig等,最大的问题可能就是库比较小, MOCAT2: a metagenomic assembly, annotation and profiling framework 文章也提及COG谱要比COGNIZER好点,原因可能就是库上,另外COG注释的一个数据库是 eggNOG, 库还是比较大,不过使用diamond软件,速度应该和 myva+RAPSearch相当, 但是二者肯定比使用 blastall 作为序列比对引擎快, 如果能认可使用 NCBI 的COG 序列库进行序列相似性搜索,COGNIZER 还是很不错。 RAPSearch2: 快速、高效 NGS reads 序列比对工具,无碰撞哈希表实现蛋白质序列库索引。RAPSearch 的升级版, RAPSearch2 改变了 RAPSearch 算法实现,由先前的suffix array 数据结构变更了collision-free hash table 对库做索引,进一步降低了内存使用情况, 从使用情况看,还是没有 Diamond 等后期新秀速度快,另外RAPSearch2实现了一个功能模块支持PEreads序列。

IDBA-UD: 针对单细胞以及元基因组的序列组装软件,IDBA家族的几个应用都在这个包里, 比如 idba/idba-trans/idba_hybrid等,而且如果执行 metatranscriptome 拼装,可以使用 idba-mt 以及 idba-mtp 等。metagenome 数据拼装除了 IDBA-UD,还有 Metavelvet,Omega 等, 另外一个对手是 MEGAHIT 被广泛用于 metagenome 数据组装。

IDBA-MT:元转录组数据拼装工具,metatranscriptome 的拼装软件不是很多,一般都是使用老牌的转录组拼装软件,比如 Trinity 、Oasoshttps://github.com/dzerbino/oases 等, 可以参考一些测评文章 : Comparison of assembly algorithms for improving rate of metatranscriptomic functional annotation 也有一些直接使用DNA的拼装软件,比如 IDBA-UD 、 Metavelvet ,针对 metatranscriptome 的拼装的最大问题就是嵌合体问题,所以针对metatranscriptome的组装软件都在尝试解决这些问题,有的需要使用 Paired-End 序列 IDBA-MT,也的需要辅助蛋白质序列,比如 IDBA-MTP 。IDBA-MT 的软件包托管在 Google Code https://code.google.com/archive/p/hku-idba-mt/source/default/source ,已经将其导入到了 Github页面https://github.com/jameslz/idba_mt-and-idba_mtp, 方便下载使用, IDBA-MT 需要先使用 IDBA-UD 完成组装在使用 IDBA-MT纠正一些嵌合体序列。

SortmeRNA: 快速准确筛选NGS序列集合中的rRNA序列。做未知物种(如果有参考序列可以了,自己做下索引)的RNA-seq时, 需要计算数据里面 rRNA含量以评估实验的质量。做 metatranscriptome 时,目的是了解环境样本的功能结构,也可以通过metatranscriptome 序列里的 16S rDNA 序列调查物种的信息,但是需要知道metatranscriptome 实验第一步就是要实验上过滤掉 rRNA (可以使用 Ribo-Zero rRNA Removal Kit http://www.illumina.com/products/by-type/molecular-biology-reagents/ribo-zero-rrna-removal-human-mouse-rat.html 之类试剂盒 ),所以 16S rDNA 序列谱是不完整的,只能参考。甚至 metagenome 数据分析时,也可以通过16S rDNA 序列调查物种的组成。这几个问题的核心都是鉴定序列集合中的rRNA序列, 这一类的工具也比较多,比如ribopicker ,kneaddata 甚至直接使用一些 rDNA 序列库做序列比对也可以实现,bwa/bowtie2/blat/usearch/blast等序列相似性比对引擎都可以用, SortMeRNA从速度、敏感性、易用性上来讲都很不错,软件提供的库也比较丰度,包含了:silva-bac-23s, silva-arc-16s,silva-arc-23s,silva-euk-18s,silva-euk-28s,rfam-5s,rfam-5.8s7个库,涵盖了 23S/16S/5S/5.8S等rRNA类型,输出结果也提供了 各个库的统计比例,以及rRNA基因序列/非rRNA 序列等, 也提供了 sam/blast等各种格式。SortMeRNA 也提供了几个不擅长的功能, 比如 otu-pick, 对了这里面输入文件需要 interleaved reads 格式,可以使用 seqtk 或者 seqtk_utils 程序解决。

Genix:细菌基因组在线自动化注释流程。已有的自动化细菌基因组注释流程很多,有 RAST 、BASys 、 Prokka,不管怎么样,只要有创新就可以发文章,给我们提供更多选择。Genix 提供Web版本以及源代码(ps. 不提供源代码的web 应用都是耍流氓) ,免费但是需要注册账户,数据库实现 Apache、Mysql、 SQLite、Perl、Python、Bash,Genix 流程根据提供的序列以及物种分类信息可以很方便的获得基因组注释信息,如果提供一些额外数据库提交信息,更是可以直接生成可提交的Genbank文件,对于服务器负荷来讲,和所有的在线服务一样,需要排队,一个一个来。Genix 主要是由了一下工具: 蛋白质编码基因预测 Prodigal;tRNA 基因预测 tRNAscan-SE;rRNA基因预测 RNAmmer;tmRNA基因预测 Aragorn;ncRNA预测 blastn + infernal + Rfam;数据可视化 JBrowse 基因组浏览器。序列库的选择是每个应用的都会关注的问题,因为序列比对计算上比较昂贵,但是可以选择一些加速序列比对算法,比如 Diamond 、Usearch等,但是通过减小数据库大小会带来很好的性能提升,最典型的就是根据物种去划分,比如Viruses/Archaea/Bacteria 分类,当然也可以自己提供序列集合。 eggNOG-4.0 以后也是这样做的,毕竟注释一个细菌基因组没有必要使用全部的Uniprot/eggNOG库,只需要细菌的那一部分就可以了。Genix会根据提供的物种 taxonomy 信息(NCBI Taxonomy 标识符) 自动下载Uniprot序列库,并使用 CD-HIT 对序列做冗余过滤,减小参考数据库的大小 如果物种未知怎么办,设置细菌的NCBI Taxonomy。相对于Prokka的一些特殊的地方在于基因预测模型优化上,原核微生物蛋白质编码基因相对真核简单很多,Prodigal 相对其它预测工具也是首选,但是也有一些错误的预测模型,Genix 对使用Antifam 对预测的预测模型进行过滤,并对后续的CDS序列校验以及起始密码纠正。

UNOISE2:通过对Illumina测序平台结果错误纠正进行微生物多样性分析。Usearch主要三点: 1. 序列相似性比对, 2. 微生物多样性数据处理,逐渐构成了小生态,3. 序列处理瑞士军刀, 三点上竞争对手都很多, 第一点上 diamond 、RAPSearch等都是竞争对手,第二点 Usearch 紧随其后,另外还有 [QIIME 、Mothur 等老牌工具, 第三个问题太多了,主要有 seqtk 、 seqkit 等。 不过这个帖子提到的是新出炉的 UNOISE2,就是错误纠正(这类工具也很多), 包括了去除测序错误的序列,嵌合体序列,Phix 污染序列以及低复杂度序列等, 然后就可以直接构建 OTU表了,UNOISE2 流程推荐直接从最原始的序列开始,合并双端序列、过滤、去冗余、错误纠正、序列比对、构建OTU表、一气呵成。 另外:可以增加调整序列方向这一步,需要参考序列库,比如 RDP 的序列库,或者使用 Silva 的库。不得不提 Usearch 工具使用序列: 32位版本不管是工业界还是学术界随便用,免费, 64位版本需要进行收费了,学术界要比工业界便宜不少,现在刚进入 9.0版本,销售策略也进行了调整,从先前按年订阅, 变成现在 按大版本号订阅 ,更人性化了。

MG-RAST:经典的Metagenome在线数据分析平台,完美解决物种组成和功能解析 。MG-RAST 提供在线的 Metagenome/Metatranscriptome 数据平台,直接原始的reads也支持拼装的contig,先不管分析内容的好坏,首先提供的project编号可以很方便的出现在文章中,给可重复性的研究也提供的有力保证。 此外在线 Metagenome/Metatranscriptome数据分析,EBI Metagenome 也有这样的优势,也是不错的选择。目前MG-RAST 收录已经完成了268,325个样本的数据分析, 版本刚刚升级到了4.0 版本,针对单样本分析,可以获得以下信息:1. 序列统计、质量控制(GC含量图,核酸组成、序列长度分布);2. 序列预测(功能分类 rRNA/ protein coding);3. 重复序列预测(使用 DRISEE);4. Kmer谱(rank abundance 可视化);5. 序列比对结果统计;6. COG/NOG 功能谱;7. KEGG 分类(KEGG Ortholog 分类);8. the SEED 注释;9. 物种组成分布;10. 多样性分析(稀释曲线/多样性指数)11. 元数据。所有的数据,包括绘制图表的数据都可以自己有下载,的确很方便,这也是那么受欢迎的原因,另外MG-RAST使用M5NR 非冗余数据库进行序列比对,这样减少了需要比对很多库的麻烦。

Resfams:基于HMM谱的抗性基因注释。抗生素抗性基因注释在病原微生物基因组测序、metagenome测序等项目中的关注度很高,先前有 Antibiotic Resistance Database (ARDB)、Resistance Database (CARD)等序列库用于抗性基因注释,Resfams 提供了基于谱序列相似性搜索的策略,用于基因序列注释(功能谱注释),对于拼装的序列来说,HMMER还是可以提供比较快的执行速度,但是对于 Metagenome项目来说, 如果不拼装,直接使用reads翻译的ORF注释的话,计算序列还是很大,基于序列相似性搜索的工具Diamond/Usearch等可以快速鉴定可能的抗性基因(使用阈值足够大确保不遗漏),然后在使用HMM谱过滤掉一些假阳性序列可以达到加速目的。

Reference

  1. http://mp.weixin.qq.com/s/cVVp2YEVKwg1bcTgCEj8sw

  2. http://www.biostack.org/


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

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