qiime 获取 alpha 和 beta 多样性指标数据
-
qiime 获取 alpha 和 beta 多样性指标数据
DATA_PATH:
/home/ice-melt/workspace/metagenomics可将目录中
phylogeny/rooted_tree_from_seqs.qza和dada2_denoise/atcc_table.qza两个文件拷贝到新目录中进行验证一、使用 pipeline 方式
qiime diversity core-metrics-phylogenetic \ --i-phylogeny phylogeny/rooted_tree_from_seqs.qza \ --i-table dada2_denoise/atcc_table.qza \ --p-sampling-depth 1103 \ --m-metadata-file my-metadata.tsv \ --output-dir core-metrics-results指标和可视化结果输出到
core-metrics-results目录二、如何自定义选定指标
根据 pipeline 方式的运行逻辑整理以下命令,首先进行特征表的降采样
qiime feature-table rarefy \ --i-table dada2_denoise/atcc_table.qza \ --p-sampling-depth 1103 \ --p-with-replacement False \ --o-rarefied-table rarefied_table.qzaatcc_table.qza是所有特征表数据,rarefied_table.qza是按指定深度过滤后的特征表数据采样深度为可调整参数,根据前一步图表结果用户分析指定,影响后续指标分析的准确性
该命令得到新特征表数据后进行多样性分析
2.1 非进化树的alpha多样性
alpha 多样性指标集合
{'ace', 'chao1', 'chao1_ci', 'berger_parker_d', 'brillouin_d', 'dominance', 'doubles', 'enspie', 'esty_ci', 'fisher_alpha', 'goods_coverage', 'heip_e', 'kempton_taylor_q', 'margalef', 'mcintosh_d', 'mcintosh_e', 'menhinick', 'michaelis_menten_fit', 'observed_otus', 'osd', 'pielou_e', 'robbins', 'shannon', 'simpson', 'simpson_e', 'singles', 'strong', 'gini_index', 'lladser_pe', 'lladser_ci'}alpha 多样性指标参考命令
qiime diversity alpha \ --i-table rarefied_table.qza \ --p-metric ace \ --o-alpha-diversity ace.qza具体指标可指定集合中的具体值,pipeline中默认运行 'observed_otus', 'shannon', 'pielou_e'
2.2 非进化树的beta多样性
beta 多样性指标集合
{'cityblock', 'euclidean', 'seuclidean', 'sqeuclidean', 'cosine', 'correlation', 'hamming', 'jaccard', 'chebyshev', 'canberra', 'braycurtis', 'mahalanobis', 'yule', 'matching', 'dice', 'kulsinski', 'rogerstanimoto', 'russellrao', 'sokalmichener', 'sokalsneath', 'wminkowski', 'aitchison', 'canberra_adkins'}beta 多样性指标参考命令
qiime diversity beta \ --i-table rarefied_table.qza \ --p-metric jaccard \ --p-pseudocount 1 \ --p-n-jobs 1 \ --o-distance-matrix jaccard.qza参数说明:
pseudocount参数只影响aitchison指标,默认值是1,参数可省略n-jobs参数指定线程数,默认值是1,参数可省略
具体指标可指定beta 多样性指标集合中的具体值,pipeline中默认运行 'jaccard', 'braycurtis'
2.3 基于进化树的alpha多样性
qiime diversity alpha-phylogenetic \ --i-table rarefied_table.qza \ --i-phylogeny phylogeny/rooted_tree_from_seqs.qza \ --p-metric faith_pd \ --o-alpha-diversity faith_pd.qza只有 faith_pd 一个指标参数
2.4 基于进化树的beta多样性
可选参数集合
{'unweighted_unifrac': unifrac.unweighted, 'weighted_unifrac': unifrac.weighted_unnormalized, 'weighted_normalized_unifrac': unifrac.weighted_normalized, 'generalized_unifrac': unifrac.generalized}参考命令:
qiime diversity beta-phylogenetic \ --i-table rarefied_table.qza \ --i-phylogeny phylogeny/rooted_tree_from_seqs.qza \ --p-metric unweighted_unifrac \ --variance-adjusted False\ --alpha float\ --bypass-tips False \ --o-alpha-diversity unweighted_unifrac.qza参数说明:
variance-adjusted可选,默认值 Falsealpha,当且仅当指标为generalized_unifrac时可选,此时默认值为1.0,当metric为其它指标时命令不能包含该参数bypass-tips可选,默认值 False
指标可从集合中选择,pipeline中默认运行 'unweighted_unifrac', 'weighted_unifrac'
-
基于进化树的beta多样性命令参数修改
参考命令:
qiime diversity beta-phylogenetic \ --i-table rarefied_table.qza \ --i-phylogeny phylogeny/rooted_tree_from_seqs.qza \ --p-metric unweighted_unifrac \ --p-variance-adjusted False\ --p-alpha 1.0\ --p-bypass-tips False \ --o-alpha-diversity unweighted_unifrac.qza注:qiime中,参数前需要加
p,进行标识,输入需要加i标识,输出加o进行标识 -
增加命令20200728
qiime数据分析PCoA
qiime diversity pcoa \ --i-distance-matrix core-metrics-results/bray_curtis_distance_matrix.qza \ --p-number_of_dimensions 5\ --o-pcoa bray_curtis_pcoa_results.qzai-distance-matrix:输入,必须是一个距离矩阵(beta多样性的结果都是距离矩阵,可用于此步骤的输入)p-number_of_dimensions:参数,默认不加入此参数,表示对距离矩阵求取所有维度的精确特征值和特征向量,增加此参数表示通过fsvd使用快速启发式特征分解,此时需要指定所需的维数,如果指定0,表示指定矩阵的维度o-pcoa:输出,pcoa分析的结果数据.qza,这个可以文件进行下一步操作,将数据转换成图形需要的数据结构
说明:入参为距离矩阵,目前只有beta多样性的输出结果中有距离矩阵
-
增加命令20200805
PCoA结果可视化
qiime emperor plot \ --i-pcoa bray_curtis_pcoa_results.qza \ --m-metadata-file metadata.tsv \ --o-visualization bray_curtis_pcoa_results.qzvi-pcoa: 输入,所有beta多样性分析PCoA结果均可作为输入m-metadata-file: 元数据文件,与样本本身强相关的描述文件o-visualization: 输出,可视化文件输出,qzv工件,可自定义名称(一般为指标名接pcoa_results)
alpha稀释性曲线
qiime diversity alpha-rarefaction \ --i-table table.qza \ --i-phylogeny rooted-tree.qza \ --p-max-depth 4000 \ --m-metadata-file metadata.tsv \ --o-visualization alpha-rarefaction.qzv--i-table:输入,特征表--i-phylogeny输入,进化树--p-max-depth参数,采样深度--m-metadata-file元数据文件--o-visualization输出,特征表稀释曲线可视化工件
-
关于多样性分析指标介绍
计算alpha多样性时使用的指标名
http://scikit-bio.org/docs/0.4.2/generated/skbio.diversity.alpha.html#module-skbio.diversity.alpha计算beta多样性时使用的距离函数
https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html#scipy.spatial.distance.pdist另,qiime2计算beta多样性时额外实现了两个距离算法
counts = table.matrix_data.toarray().T def aitchison(x, y, **kwds): return euclidean(clr(x), clr(y)) def canberra_adkins(x, y, **kwds): if (x < 0).any() or (y < 0).any(): raise ValueError("Canberra-Adkins is only defined over positive " "values.") nz = ((x > 0) | (y > 0)) x_ = x[nz] y_ = y[nz] nnz = nz.sum() return (1. / nnz) * np.sum(np.abs(x_ - y_) / (x_ + y_)) if metric == 'aitchison': counts += pseudocount # pseudocount为方法入参,默认1 metric = aitchison elif metric == 'canberra_adkins': metric = canberra_adkins # 之后调用 skbio.diversity.beta_diversitybeta基于树的多样性分析
https://www.cnpython.com/pypi/unifrac#
qiime2使用该库,此库为qiime开发,目前无完整api介绍# 基于树的beta多样性支持的指标名 {'unweighted_unifrac': unifrac.unweighted, 'weighted_unifrac': unifrac.weighted_unnormalized, 'weighted_normalized_unifrac': unifrac.weighted_normalized, 'generalized_unifrac': unifrac.generalized} # 基于树的beta多样性计算核心调用代码 if metric == generalized_unifrac: alpha = 1.0 if alpha is None else alpha f = partial(metrics[metric], alpha=alpha) else: f = metrics[metric] # unifrac processes tables and trees should be filenames return f(str(table), str(phylogeny), threads=n_jobs, variance_adjusted=variance_adjusted, bypass_tips=bypass_tips) -
qiime diversity beta-phylogenetic \ --i-table rarefied_table.qza \ --i-phylogeny phylogeny/rooted_tree_from_seqs.qza \ --p-metric unweighted_unifrac \ --p-variance-adjusted False\ --p-bypass-tips False \ --o-distance-matrix unweighted_unifrac.qza注:
--o-alpha-diversity修改为--o-distance-matrix