暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

全网最全扩增子分析《3.DADA2常用分析流程》(单集,试读部分)

KSM生信笔记 2022-11-11
5936



《扩增子16S/18S/ITS-QIIME2 详细实战手册》


发现“分享”“赞”了吗,戳我看看吧


目录

前言(简介)

  • 目前主流插件

  • 常用语义类型

DADA2分析常用流程

  • 1.环境配置、数据准备和和文件路径设置

  • 2.数据分析开始(导入双端序列)

  • 3.生成特征表和代表序列(DADA2)

  • 4.物种分类与组成(过滤污染序列、叶绿体、线体体、古菌和稀有物种,构建进化树)

  • 5.QIIME2多样性分析(不同水平分类汇总、物种组成差异分析、alpha和beta多样性分析、多样性稀释曲线)

  • 6.导出unifrac距离矩阵文件

  • 7.数据提取,方便后续个性化分析(导出特征表、注释信息、进化树和代表序列)

Cutadapt+Deblur分析常用流程

  • 1.环境配置、数据准备和和文件路径设置

  • 2.数据分析开始(cutadapt剪切引物信息、双端合并和质控过滤数据)

  • 3.生成特征表和代表序列(方法1:导入其他软件分析好的table与代表序列。方法2:Deblur 操作命令质控,命令Deblur 16S用于16S序列和命令Deblur other完成ITS分析)

  • 4.物种分类与组成(过滤污染序列、叶绿体、线体体、古菌和稀有物种,构建进化树)

  • 5.QIIME2多样性分析(不同水平分类汇总、物种组成差异分析、alpha和beta多样性分析、多样性稀释曲线)

  • 6.导出unifrac距离矩阵文件

  • 7.数据提取,方便后续个性化分析(导出特征表、注释信息、进化树和代表序列)


“前言”



该流程可在Linux或Mac系统中运行,相比mothur具有更多的优点,主要包括:整合了200多款相关软件和包,实现每个步骤更多软件和方法的选择;提供150多个脚本,实现各种个性化分析,并可以应对不同类型数据和实验设计;流程开放程度高,容易整合新软件和方法;增强统计和可视化,实现多样性、物种组成、差异比较和网络等众多方法和出版级图表绘制。由于QIIME允许同领域研究者较自主地开展扩增子数据的个性化分析和可视化,逐渐成为本领域最受欢迎的软件。为了满足日益增长的测序数据量和可重复计算的要求,Gregory J. Caporaso教授于2016年起发起了基于Python3语言从头编写的QIIME2项目。该项目实现了分析流程的可追溯以满足科研可重复计算的要求;同时推出了一系列新算法,如基于进化距离的快速算法条型(Striped)UniFrac、物种分类新方法2-feature-classifier等;更重要的是软件的可扩展性和得到了同行的广泛支持,如接头和引物序列去除工具cutadapt、序列质量控制R包DADA2、聚类和去冗余的软件VSEARCH、纵向和成对样本分析工具longitudinal等,甚至包括宏基因组、宏代谢组分析和中文帮助文档,极大了提高了流程的适用范围和易用性。

QIIME2插件多种质量控制并生成特征表的方式主要有两种,一种是通过去噪,即生成扩增/绝对序列变体(Absolute Sequence Variants,ASV),ASV是最近发展的新一代方法,在功能上提供更好的分辨率。ASV可以基于400bp或更多序列中单个核苷酸的差异来分离特征,甚至超过99%同一性OTU聚类的分辨率。目前在QIIME 2 中可通过DADA2(q2-dada2)和Deblur(q2-deblur)插件实现。


简单地说,分为主流两个部分来说;

DADA2和Deblur;

 

注意:介绍内容大部分来自微信公众号“环微分析”,加上小编自己的分析流程,可以使故事说的更加圆满。



目前主流插件


alignment: 用于生成和处理序列对齐。

composition: 用于组合数据分析。

cutadapt: 用于从序列数据中删除适配器序列、引物和其他不需要的序列。

dada2: 使用dada2进行序列质量控制。

deblur: 使用deblur进行序列质量控制。

demux: 用于拆分序列和查看序列质量的插件。

diversity: 用于探索群落多样性。

diversity-lib: 用于计算群落多样性。

emperor: 用于排序绘图。

feature-classifier: 用于训练分类器。

feature-table: 用于按特征表处理样本。

fragment-insertion: 用于扩展系统发育。

gneiss: 用于构建成分模型。

longitudinal: 用于配对样本和时间序列分析。

metadata: 用于处理元数据。

phylogeny: 生成和处理系统发育。

quality-control: 用于特征和序列数据质量控制。

quality-filter: 用于基于PHRED的过滤和修整。

sample-classifier: 用于对样本元数据进行机器学习预测。

taxa: 用于处理功能分类注释的插件。

types: 用于微生物组分析的类型定义。

vsearch: 用于通过vsearch进行聚类和去冗余。




常用语义类型


FeatureTable[Frequency]:特征表[频率],即OTU表,其中每个值表示对应样本中OTU的出现频率。

FeatureTable[RelativeFrequency]: 特征表[相对频率],其中每个值表示相应样本中OTU的相对丰度,使得每个样本的值之和为1.0。

FeatureTable[PresenceAbsence]: 特征表[存在/缺席],其中每个值表示相应样本中是否存在某个OTU。

FeatureTable[Composition]: 特征表[组成],其中每个值表示相应样本中OTU的频率,并且所有频率都大于零。

Phylogeny[Rooted]: 系统发育[根],有根的系统发育树。

Phylogeny[Unrooted]: 系统发育[无根],无根的系统发育树。

DistanceMatrix: 距离矩阵。

PCoAResults: 主坐标分析PCoA的结果。

SampleData[AlphaDiversity]: 样本数据[Alpha多样性],每个数值均为Alpha多样性结果,基于样本自身的分析。

SampleData[SequencesWithQuality]: 样本数据[带质量的序列],要求序列有质量值,要求序列名称与样品存在对应关系,如为按样品拆分后的数据格式。

SampleData[PairedEndSequencesWithQuality]: 样本数据[带质量的成对末端序列],要求序列ID与样品编号存在对应关系。

FeatureData[Taxonomy]: 特征数据[分类学],每一个特征的分类学信息。

FeatureData[Sequence]: 特征数据[序列],代表性序列。

FeatureData[AlignedSequence]: 特征数据[对齐序列],代表性序列进行多序列比对的结果。

FeatureData[PairedEndSequence]: 特征数据[双端序列],双端序列进行聚类或去噪后,生成的OTU/Feature。

EMPSingleEndSequences: 采用地球微生物组计划标准实验方法产生的单端测序数据。

EMPPairedEndSequences: 采用地球微生物组计划标准实验方法产生的双端测序数据。

TaxonomicClassifier:一种经过训练的分类器,用于物种注释。





DADA2分析常用流程

……


DADA2质量控制过程将过滤掉在测序数据中鉴定的任何phiX序列(最主要的目的:

1.调节碱基平衡,改善测序仪的空间校正,便于后期提高base calling的准确性;

2.由于Phix序列已知基因组较小,在测序的过程中Illumina的测序仪就开始将测的read与phix基因组进行比较,预估测序指标。)通常存在于标记基因Illumina测序数据中,用于提高扩增子测序质量,并同时过滤嵌合序列(即嵌合基因,就是两个基因共用一段DNA序列,这两个基因称为嵌合基因)。

在DADA2中,双端合并,去除嵌合体,截去接头序列降噪生成feature table都是一步完成的。所以,运行DADA2之前要确保测序数据满足以下规范:

①样品已被拆分好,即每个样品一个fq/fastq文件(或者双端成对fq文件);

②已经去除非生物核酸序列,比如:引物(primers),接头(adapters or barcodes),linker等;

③如果样品是下机的双端测序,其应具有双端测序的相匹配的两个fq文件。


#1.环境配置、数据准备和导入


备注:

小编这里QIIME2分析放在文件夹[All]-Qiime2中,[All]-Qiime2/创建自己分析目录,这里以2022.9.18文件夹为例,后续读者可自行修改。

其他分析数据可以按照小编这样顺序放置。

然后再在分析目录中,创建0.raw_data存放原始数据,注意的是,文件R1和R2名字必须与manifest文件中对应起来,否则出现QIIME2导入不进去数据。

在QIIME 2中,所有数据都被构造为特定语义类型的对象。使用样本清单格式(manifest format)导入序列,这是一种在QIIME 2中导入拆分样本数据的通用方法。普通用户常用的下机数据格式为.fastq文件,需要创建一个清单文件,然后使用qiime tools import命令手动输入。清单文件是一个文本文件(.tsv或.txt格式),它将示例标识符映射到fastq.gz或fastq的绝对文件路径,其中包含示例的序列和质量数据。清单文件还指示每个fastq.gz或fastq文件中的读取方向。

原始序列位置信息manifest.txt,保存格式为UTF-8,另外,采用制表符Tab将信息隔开,在txt打开如图下所示,可能肉眼觉得有些信息没有隔开。

但是,在wps打开,如图下所示

分组信息表fastmap.txt保存格式为UTF-8,另外,采用制表符Tab将信息隔开。


#文件路径

    ####################################################
    #启动qiime2环境中
     conda activate qiime2-2021.2
    #设置工作目录及名字
     working__name=DADA2-16S
     workdir=/mnt/e/[All]-Qiime2/$working__name
    #数据库所在的路径
     dbdir=/mnt/e/[All]-Qiime2/qiime2_database/tlc_classifier
    #这里指定测序数据所在的路径,并export为全局变量,manifest文件中才好找到数据文件($datadir)
     export datadir=/mnt/e/[All]-Qiime2/$working__name/0.raw_data
     manifest=$workdir/manifest.txt
     echo $datadir
    #实验设计文件路径
     fastmap=$workdir/fastmap.txt


    #2.数据分析开始


      #########################################################
      #数据分析开始
      ###########################################################
      cd $workdir
      mkdir $workdir/1.import_data
      cd $workdir/1.import_data


      ## 1. 导入双端测序数据
      ##导入数据;
      time qiime tools import \
       --type 'SampleData[PairedEndSequencesWithQuality]' \
       --input-path $manifest \
       --output-path paired-end-demux.qza \
       --input-format PairedEndFastqManifestPhred33V2
      #数据质量查看;
      qiime demux summarize \
       --i-data paired-end-demux.qza \
       --o-visualization paired-end-demux.qzv

      使用qiime demux summarize命令检查样本的序列和测序深度(它提供每个样本中序列数及序列质量的信息)


      #3.生成特征表和代表序列(DADA2)


      命令注释:

      ①在使用qiime dada2 denoise-single/ qiime dada2 denoise-paired时可设置--p-n-threads 参数,用于设置运行时使用的线程数量。线程越多,则运行速度越快。当线程设置为0时则默认使用全部线程;

      ②--p-trim-left截取左端低质量序列,有时用于切除低质量序列、barocde或引物。查看demux_seq.qzv文件中的箱线图,左端质量都很高,无低质量区,设置为0;或可直接忽略此参数设置;

      --p-trunc-len序列截取长度,也是为了去除右端低质量序列,我们看到大于150以后,质量下降极大,甚至中位数都下降至20以下,需要全部去除,综合考虑决定设置为150;

      ④当处理双端数据时,需考虑截取后的序列是否可以成功拼接。目前最短的拼接长度为引物长度+12bp。


        ## 2. 生成特征表和代表序列
        cd $workdir
        mkdir  $workdir/2.feature_table/
        cd $workdir/2.feature_table/


        ###dada2数据质量过滤,合并,去嵌合,去引物一步完成;
        qiime dada2 denoise-paired \
         --i-demultiplexed-seqs $workdir/1.import_data/paired-end-demux.qza \
         --p-n-threads 16 \
         --p-trim-left-f 29 --p-trim-left-r 18 \
         --p-trunc-len-f 0 --p-trunc-len-r 0 \
         --o-table dada2-table.qza \
         --o-representative-sequences dada2-rep-seqs.qza \
         --o-denoising-stats dada2-stats.qza
        ###分析结果可视化
        qiime metadata tabulate \
         --m-input-file dada2-stats.qza \
         --o-visualization dada2-stats.qzv
         
        qiime feature-table summarize \
         --i-table dada2-table.qza \
         --o-visualization dada2-table.qzv


        #4. 物种分类与组成


        这里注释文件见教程2-QIIME2 物种注释数量训练集


          ## 3. 物种分类与组成
          cd $workdir
          mkdir  $workdir/3.asv_taxonomy/
          cd $workdir/3.asv_taxonomy/


          ### 物种注释 16S#特异引物作为分类数据库
          ###细菌注释(可选1)特定引物的分类数据库(V4-V5):
          qiime feature-classifier classify-sklearn \
           --i-classifier $dbdir/classifier_gg_13_8_99_V4-V5.qza \
           --i-reads $workdir/2.feature_table/dada2-rep-seqs.qza \
           --p-n-jobs 16 \
           --o-classification taxonomy.qza
          ###细菌注释(可选2) 物种注释16S#全长作为分类数据库gg,用Sliva全长容易报错;
          qiime feature-classifier classify-sklearn \
           --i-classifier $dbdir/classifier_gg_13_8_99.qza \
           --i-reads $workdir/2.feature_table/dada2-rep-seqs.qza \
           --p-n-jobs 16 \
           --o-classification taxonomy.qza
          ##可视化物种注释
          qiime metadata tabulate \
           --m-input-file taxonomy.qza \
           --o-visualization taxonomy.qzv


          ###对数据进行过滤
          #16s分析 过滤污染 叶绿体 线粒体  古菌
           qiime taxa filter-table \
           --i-table $workdir/2.feature_table/dada2-table.qza \
           --i-taxonomy taxonomy.qza \
           --p-exclude mitochondria,chloroplast,Archaea \
           --p-include p__   \  #过滤p_未注释的信息(备选)
           --o-filtered-table dada2-table-filt-contam.qza


          #ITs分析 过滤污染 叶绿体 线粒体
          qiime taxa filter-table \
           --i-table $workdir/2.feature_table/dada2-table.qza \
           --i-taxonomy taxonomy.qza \
           --p-exclude mitochondria,chloroplast \
           --p-include p__   \ #过滤p_未注释的信息(备选)
           --o-filtered-table dada2-table-filt-contam.qza
           
          #过滤稀有ASV,可查看dada2-table.qzv 确定过滤数量:--p-min-frequency为所有tags数的0.00005
          qiime feature-table filter-features \
           --i-table dada2-table-filt-contam.qza \
           --p-min-frequency 50 \  #总序列数*万分之一
           --p-min-samples 1 \
           --o-filtered-table dada2-table-final.qza
           
          #更新一下repset-seqs.qza,将过滤掉的ASV对应的序列过滤掉
          qiime feature-table filter-seqs   \
           --i-table dada2-table-final.qza  \
           --i-data $workdir/2.feature_table/dada2-rep-seqs.qza  \
           --o-filtered-data dada2-repset-seqs-final.qza


          ##构建进化树16S分析,ITS一般不构建进化树
          qiime phylogeny align-to-tree-mafft-fasttree \
           --i-sequences $workdir/3.asv_taxonomy/dada2-repset-seqs-final.qza \
           --o-alignment aligned-rep-seqs.qza \
           --p-n-threads 16 \
           --o-masked-alignment masked-aligned-rep-seqs.qza \
           --o-tree unrooted-tree.qza \
           --o-rooted-tree rooted-tree.qza


          ##过程中.qza和.qzv文件都可以放到view.qiime2.org这个网站上生成图
          ### 查看特征表信息
          qiime feature-table summarize --i-table $workdir/3.asv_taxonomy/dada2-table-final.qza  \
           --o-visualization dada2_table_final_summary.qzv \
           --m-sample-metadata-file $fastmap



          #5.qiime2分析多样性


            ##4.qiime2分析多样性
             cd $workdir
             mkdir $workdir/4.qiime2_diversity_analysis
             cd $workdir/4.qiime2_diversity_analysis
             
            ##物种组成分析
            qiime taxa barplot \
             --i-table $workdir/3.asv_taxonomy/dada2-table-final.qza \
             --i-taxonomy $workdir/3.asv_taxonomy/taxonomy.qza \
             --m-metadata-file $fastmap \
             --o-visualization taxa-bar-plots.qzv


            ####不同分类水平分类汇总  
            qiime taxa collapse \
             --i-table $workdir/3.asv_taxonomy/dada2-table-final.qza \
             --i-taxonomy $workdir/3.asv_taxonomy/taxonomy.qza \
             --p-level 6 \
             --o-collapsed-table feature-table-final-L6.qza
             
            ##物种组成差异分析:ANCOM方法假定数据中差异的物种少于25%,如果你觉得自己的数据差异很大就不能使用ANCOM;
            ###由于composition不能处理为0的数据,转换+1
            #格式化特征表,添加伪计数
            qiime composition add-pseudocount \
             --i-table $workdir/3.asv_taxonomy/dada2-table-final.qza \
             --o-composition-table comp-table.qza
            ###差异比较(注意group分组信息,表头要对)
            qiime composition ancom \
             --i-table comp-table.qza \
             --m-metadata-file $fastmap \
             --m-metadata-column group \
             --o-visualization ancom-type.qzv


            ##############16s细菌分析#############################(细菌运行这步就行)
            ###alpha和beta多样性分析;这个49125根据dada2-table.qzv中的Minimum frequency值
             qiime diversity core-metrics-phylogenetic \
             --i-phylogeny $workdir/3.asv_taxonomy/rooted-tree.qza \
             --i-table $workdir/2.feature_table/dada2-table.qza \
             --p-sampling-depth 49125 \
             --m-metadata-file $fastmap \
             --output-dir core-metrics-phylogenetic


            ###多样性稀释曲线;这个127291根据dada2-table.qzv中的Maximum frequency(通用)
            qiime diversity alpha-rarefaction \
             --i-table $workdir/2.feature_table/dada2-table.qza \
             --i-phylogeny $workdir/3.asv_taxonomy/rooted-tree.qza \
             --p-max-depth 127291 \
             --m-metadata-file $fastmap \
             --o-visualization alpha-rarefaction.qzv


            ##差异比较
            ###alpha多样性比较
            qiime diversity alpha-group-significance \
             --i-alpha-diversity $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/observed_features_vector.qza \
             --m-metadata-file $fastmap \
             --o-visualization observed_features-group-significance.qzv
             
            ###beta多样性比较
            qiime diversity beta-group-significance \
             --i-distance-matrix $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/bray_curtis_distance_matrix.qza \
             --m-metadata-file $fastmap \
             --m-metadata-column Group \
             --o-visualization bray_curtis-Group-significance.qzv \
             --p-pairwise


            #6.导出unifrac距离矩阵文件


              ##5.导出unifrac距离矩阵文件
               cd $workdir
               mkdir $workdir/5.unifrac_analysis
               cd $workdir/5.unifrac_analysis
               
              #导出无权重unifrac距离矩阵
              qiime tools export \
               --input-path $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/unweighted_unifrac_distance_matrix.qza \
               --output-path unweighted_unifrac_distance_matrix
              #导出有权重的unifrac距离矩阵
              qiime tools export \
               --input-path $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/weighted_unifrac_distance_matrix.qza \
               --output-path weighted_unifrac_distance_matrix
              #导出jaccard距离矩阵  
              qiime tools export \
               --input-path $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/jaccard_distance_matrix.qza \
               --output-path jaccard_distance_matrix.qza
              #导出Bray-Curtis距离矩阵
              qiime tools export \
               --input-path $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/bray_curtis_distance_matrix.qza \
               --output-path bray_curtis_distance_matrix
              #导出香浓指数
              qiime tools export \
                 --input-path $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/shannon_vector.qza \
                 --output-path shannon_vector
              #导出Alpha多样性考虑进化的faith指数
              qiime tools export \
                 --input-path $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/faith_pd_vector.qza \
                 --output-path faith_pd_vector
              #导出Alpha多样性observed otus指数
              qiime tools export \
                 --input-path $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/observed_features_vector.qza \
                 --output-path observed_features__vector
              #导出Alpha多样性均匀度指数
                qiime tools export \
                 --input-path $workdir/4.qiime2_diversity_analysis/core-metrics-phylogenetic/evenness_vector.qza \
                 --output-path evenness_vector


              #7.数据提取,方便后续个性化分析


                ###qiime2特有的qza,qzv文件其实是zip压缩文件,可以将qza或者qzv后缀名改成zip,解压即可查看
                cd $workdir
                mkdir $workdir/6.export_data
                cd $workdir/6.export_data
                 
                #导出特征表为biom格式
                qiime tools export \
                 --input-path $workdir/3.asv_taxonomy/dada2-table-final.qza \
                 --output-path $workdir/6.export_data
                biom convert -i feature-table/dada2-table.biom \
                 -o dada2-table.txt \
                 --to-tsv
                #删除注释行
                   sed -i '/# Const/d' eature-table.txt
                   
                ##导出特征表***重要文件***便于后续分析
                ##导出注释信息
                qiime tools export  \
                 --input-path $workdir/3.asv_taxonomy/repset-seqs-final.qza \
                 --output-path $workdir/6.export_data
                ##导出进化树(真菌不做进化树,因为保守区)
                qiime tools export  \
                 --input-path $workdir/3.asv_taxonomy/rooted-tree.qza \
                 --output-path $workdir/6.export_data
                ##导出代表序列
                qiime tools export  \
                 --input-path $workdir/3.asv_taxonomy/dada2-repset-seqs-final.qza \
                 --output-path $workdir/6.export_data


                #  完





                扫二维码,关注我们

                微信号|KSM生信分析

                加油,陌生人!

                文案撰写:玖柒年

                排版编辑:玖柒年

                封面审核:玖柒年


                文章转载自KSM生信笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论