暗能星系

    • 登录
    • 搜索

    qiime 获取 alpha 和 beta 多样性指标数据

    刘茜
    1
    6
    45
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • I
      ice-melt 最后由 编辑

      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.qza
      

      atcc_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可选,默认值 False
      • alpha,当且仅当指标为 generalized_unifrac时可选,此时默认值为1.0,当metric为其它指标时命令不能包含该参数
      • bypass-tips可选,默认值 False

      指标可从集合中选择,pipeline中默认运行 'unweighted_unifrac', 'weighted_unifrac'

      1 条回复 最后回复 回复 引用 1
      • I
        ice-melt 最后由 编辑

        基于进化树的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进行标识

        I 1 条回复 最后回复 回复 引用 1
        • I
          ice-melt 最后由 ice-melt 编辑

          增加命令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.qza
          
          • i-distance-matrix:输入,必须是一个距离矩阵(beta多样性的结果都是距离矩阵,可用于此步骤的输入)
          • p-number_of_dimensions:参数,默认不加入此参数,表示对距离矩阵求取所有维度的精确特征值和特征向量,增加此参数表示通过fsvd使用快速启发式特征分解,此时需要指定所需的维数,如果指定0,表示指定矩阵的维度
          • o-pcoa:输出,pcoa分析的结果数据.qza,这个可以文件进行下一步操作,将数据转换成图形需要的数据结构

          说明:入参为距离矩阵,目前只有beta多样性的输出结果中有距离矩阵

          1 条回复 最后回复 回复 引用 0
          • I
            ice-melt 最后由 ice-melt 编辑

            增加命令20200805

            PCoA结果可视化

            qiime emperor plot \
            --i-pcoa bray_curtis_pcoa_results.qza \
            --m-metadata-file metadata.tsv \
            --o-visualization bray_curtis_pcoa_results.qzv
            
            • i-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 输出,特征表稀释曲线可视化工件
            1 条回复 最后回复 回复 引用 0
            • I
              ice-melt 最后由 编辑

              关于多样性分析指标介绍

              计算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_diversity
              

              beta基于树的多样性分析
              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)
              
              
              1 条回复 最后回复 回复 引用 0
              • I
                ice-melt @ice-melt 最后由 ice-melt 编辑

                @ice-melt

                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

                1 条回复 最后回复 回复 引用 0
                • First post
                  Last post
                Powered by 暗能星系