MicrobiomeAnalyst | 零代码分析宏基因组数据
MicrobiomeAnalyst 是一个方便易用的宏基因组数据分析网站,它可以使没有生物信息学研究背景的研究人员和临床医生通过可视化界面自由探索微生物组数据,包括数据预处理、统计分析、功能分析以及挖掘公共数据集。
MicrobiomeAnalyst 的分析流程主要包含四个模块:
1.标记基因数据分析 (MDP) ,用于分析标记基因数据;2.宏基因组数据分析 (SDP) ,用于分析宏基因组鸟枪法测序数据;3.探索公共数据库 (PPD) ,用于将标记基因数据与公共数据集进行可视化比较;4.物种富集分析 (TSEA) ,用于检验 OTU 表中是否富集某些预定义的物种集。
这四个模块共享相同的通用工作流程:数据预处理、数据分析和可视化探索。在数据预处理阶段,主要对数据进行质控过滤和标准化;下一步,对处理过的数据执行各种各样的统计分析和可视化,例如,查看总体的菌群分布特征、差异分析、相关性分析和功能预测等等。
例如,在 MDP 模块中,MicrobiomeAnalyst 总共包括了 19 种分析方法。每种方法的网页界面都支持自定义调整关键参数以交互式分析和进行结果可视化。
MicrobiomeAnalyst 使用动态导航跟踪条和实时的系统消息提醒来指引用户完成数据预处理和统计分析,已完成的步骤将被添加到页面顶部的导航条中。用户可以单击此轨道上的超链接返回到任意之前已完成的步骤。完成分析后,点击导航栏末端的「下载」链接,即可进入「结果下载」页面,批量下载分析过程中产生的所有结果和图像。不仅如此,MicrobiomeAnalyst 还会生成一份 PDF 报告,描述所有执行的分析步骤,并详细介绍相应的方法及其相关结果。
若发生报错,弹出的系统消息则会提供实时的反馈和建议。右侧的 R Command History
面板会实时显示底层的 R
命令。所以你也可以直接安装底层 R
包 MicrobiomeAnalystR (https://github.com/xia-lab/MicrobiomeAnalystR) ,然后用这些 R
代码在本地重现结果。这个特性的可以使整个流程更透明、灵活,更具可重复性。
MicrobiomeAnalyst 网址:https://www.microbiomeanalyst.ca/MicrobiomeAnalyst/home.xhtml
MicrobiomeAnalyst 的局限性: •不能处理原始测序数据,仅支持下游分析;•缺乏时间序列数据分析功能;•每次打开新的会话都需重新上传并重新执行数据预处理。这可能会影响某些分析结果的可重复性,例如随机森林的分类结果和 SparCC 分析的 P 值。
用 MicrobiomeAnalyst 进行 16s 数据下游分析
涉及到的 16s 数据下游分析主要包括四部分内容:
•组分和结构分析•多样性分析•差异菌群分析•预测代谢功能分析
1. 数据预处理
网站支持上传多种格式的 16s 数据:
•Tab
分隔的文本文件(丰度,分类和元数据文件)•BIOM 格式(至少包含丰度和分类信息)•Mothur 输出文件
具体格式参见:https://www.microbiomeanalyst.ca/MicrobiomeAnalyst/docs/DataFormat.xhtml
1.1 上传数据
1.2 数据完整性检查
在第二个选项卡中可看到文库大小以及 reads 数量信息,以帮助我们判断是否存在测序错误或测序数据量不足。
1.3 数据过滤
过滤特征(OTU)
•删除低质量或低置信度的特征•删除低丰度的特征•删除低变异的特征
包含六种不同的策略:基于丰度或基于一些统计值:平均值,中位数,IQR,标准差或变异系数。
过滤样本
我们可以通过 summary 或稀疏曲线来判断哪些样本需要剔除,这些样本将不会纳入下游分析(例如 alpha 和 beta 多样性)
1.4 数据标准化
下一步,我们需要进行标准化以解决测序深度不均匀的问题,这里提供了几种常见的标准化方法。
2. 数据可视化
2.1 绘制稀疏曲线
稀释曲线可以帮助我们确定 OTU 数量,观察每个样品的序列深度,确定样品是否达到测序瓶颈(随着序列深度的增加,OTU 数量不再增加)。如果序列深度没有达到瓶颈,则应考虑增加测序深度重新测序,或剔除该样本。
2.2 绘制堆积柱状图
2.3 绘制饼状图
饼状图可以很直观地表示微生物群落组成。
2.4 Heat tree
Heat tree 实际上就是系统发育树,颜色为菌群丰度。利用菌落的层次结构来定量(使用中位数丰度)和统计(使用非参数Wilcoxon秩和检验)检验微生物群落之间的分类学差异。
2.5 绘制系统发生树
进化树可以展示不同分组中不同级别,各物种之间的进化关系。
3. 群落分析
3.1 Alpha 多样性分析
Alpha 多样性分析即一个特定区域或生态系统内的多样性,是反映物种丰富度和均匀度的综合指标。网站支持 6 种主流的 alpha 多样性算法,例如,Chao1 指数和 ACE 指数主要描述群落丰富度,指数越大,丰富度越高;Shannon 指数和 Simpson 指数用于描述群落多样性,Shannon 指数值越高,多样性越高,Simpson 指数值越大,多样性越低。同时可选用参数或非参数检验进行组间统计显著性检验。
3.2 Beta 多样性分析
Beta 多样性用于评估微生物群落之间(样本之间)的差异。通过物种间距离比较两两样本在物种多样性方面的差异,其考虑了物种间的进化距离,指数越大表示样本间差异越大。分析结果通常分为加权(Weighted)和非加权(Unweighted)两种。加权 UniFrac 考虑序列的丰度,保留物种原度特征;非加权 UniFrac不 考虑序列的丰度,只考虑物种的有无,会扩大或缩小物种丰度的差异。
网站支持 5 种主流的距离算法,并可选用 PCoA 或 NMDS 进行可视化。也支持 3 种统计方法进行统计检验,包括 ANOSIM/adonis,PERMANOVA 和 PERMDISP。
3.3 核心微生物组分析
这部分分析可以确定核心分类单元或功能在整个实验中的相对丰度。
4. 聚类分析
4.1 热图和聚类分析
热图可以可视化高低丰度特征的相对模式,网站支持多种聚类算法,也可根据多种分类水平合并特征绘制热图。
4.2 绘制进化树
支持 5 种主流的距离算法(同 beta 多样性)绘制系统发育树。
4.3 相关性分析
相关性分析可以识别生化过程或物种之间的关系。
4.4 模式搜索
这里可以查看与感兴趣物种关联的物种之间相关系数,探究物种之间的关系。
5. 差异分析
5.1 单变量统计分析
网站支持 t检验/ANOVA 或 Mann-Whitney/KW 检验。
5.2 EdgeR
网站还支持用 EdgeR 进行差异分析。
6. 生物标志物分析
6.1 LEfSe 分析
LDA Effect Size(LEfSe)分析,采用线性判别分析(LDA)来估算每个组分(物种)丰度对差异效果影响的大小,找出对样本划分产生显著性差异影响的群落或物种。
6.2 随机森林
网站支持用随机森林建模,并输出混淆矩阵以及重要的特征值。
7. 功能预测分析
网站支持用 PICRUSt(Greengenes) 和 Tax4Fun(SILVA)基于 16s 数据进行功能预测分析。得到的 KO 丰度表将进入宏基因组分析模块 (SDP) 模块进行通路分析。
- nyoj------79拦截导弹
- HDUOJ-------2719The Seven Percent Solution
- Golang记录、计算函数执行耗时、运行时间的一个简单方法
- uva----11729 Commando war (突击战争)
- uva-----11292 The Dragon of Loowater
- golang简单位运算示例
- 学编程,学单词.....在学习中积累自己的单词(不断更新__ing)
- 初学java之事件响应(结合接口来设置在同一个界面上!)
- 初学java之触发响应事件举例子
- 初学java之(盒子分布)
- java(课程设计之记事本界面部分代码公布)
- HDUOJ---1236 排名(浙大考研题)
- HDUOJ----1234 开门人和关门人(浙江大学考研题)
- HDUOJ----2571(命运)(简单动态规划)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 再谈备份微博
- Scala中的IO操作及ArrayBuffer线程安全问题
- 关于数字雨特效的学习
- linux 之mysql——约束(constraint)详解
- NFS+NIS+Autofs 实现用户的集中化管理
- [docker]Tomcat安装及配置访问权限
- Nginx+Keepalived 保障HA高可用
- Hash一致性闭环算法 - ( 适用于Redis扩容、Nginx多级缓存 等等 )
- MySQl 事务测试
- 百万数据,SQL数据分流查询
- Linux 安装Apr - 提高Tomcat 的可伸缩性和性能
- Linux下MySQL的彻底卸载
- Excel生成导入SQL语句,快速创建批量 insert/update/delete
- MySQL 执行计划详解
- MySQL 5.7详细安装步骤