16sRNA 微生物组学分析(一):从fastq到菌属丰度表

16s RNA :16s rDNA 基因存在于所有细菌的基因组中,具有高度的保守性。 该序列包含9个高变区和10个保守区,通过对某一段高变区序列进行PCR扩增后进行测序,得到1500bp左右的序列。

宏基因组:是将微生物基因组DNA随机打断成500bp的小片段,然后在片段两端加入通用引物进行PCR扩增测序,再通过组装的方式,将小片段拼接成较长的序列。

针对16s RNA 数据主要使用 QIIME2 软件进行。

此分析笔记流程概览

image-20240112215612636.png

——8 以后的分析待后续更新吧!

数据下载:ENA 浏览器 (ebi.ac.uk)

0.数据下载 PRJNA359624

image-20240111150514145.png

点击获取下载脚本,到服务器上运行

nohup ./ena-file-download-read_run-PRJNA359624-fastq_ftp-20240111-0625.sh &

确定下载成功,一共52个样本

分析流程如下:

要自己安装fastqc哦

1.使用fastqc进行质控

mkdir  fastqout
fastqc -c *.fastq.gz -o fastqout/
image-20240111201817120.png

看见报告正常生成

multiqc 整合质控报告

multiqc fastqout/
image-20240111202257472.png

查看质控报告,在当前目录下生成,

image-20240111202408847.png
image-20240111204715735.png

质量数据没啥问题,下一步

2.切除引物

  • 送公司测序返还的数据一般都是拆分过并去除了引物的,可以自己再做一下质检,引物切除了么??
image-20240111204634791.png

发现此处我们下载的已经切除,不用再去。

3. 数据导入:在qiime2中分析测序数据

3.0 安装 qiime2

参考官网 本机安装 QIIME 2 — QIIME 2 2023.9.2 文档

wget https://data.qiime2.org/distro/amplicon/qiime2-amplicon-2023.9-py38-linux-conda.yml
conda env create -n qiime2-amplicon-2023.9 --file qiime2-amplicon-2023.9-py38-linux-conda.yml
conda activate qiime2-amplicon-2023.9
image-20240111222615343.png

确定安装成功,我大概花了20分钟吧~

3.1 先查看下测序类型质量值体系

质量值体系分为 Phred33 和 Phred 64两种,如下图所示,一般看fastq文件的质量值那行包含!和?(对应ASCII值33和63)等,即为Phred33体系(一般都为Phred33)。

image-20240111211006925.png

发现全为?

3.2 写参数配置文件

下面为了运行 qiime2 需要自己写个文件 manifest file, 按以下格式写,

开头的行是注释行会被自动忽略,例如以下命名为为se-33-manifest的文件,保存为txt等文件

第一列为sample-ID, 第二列是绝对路径,如果是conda环境里的路径需要调整一下。第三列是序列文件对应的是reverse还是forward。

我们这次示例的是个是双端合并后的文件,所以不需要区分正向还是反向,direction一列,每个都写forward。然后导出为UTF-8(逗号分隔)文件。格式写成后长这样。

sample-id,absolute-filepath,direction
SRR5142316,/xtdisk/PRJNA359624/SRR5142316.fastq,forward
SRR5142325,/xtdisk/PRJNA359624/SRR5142325.fastq.gz,forward
SRR5142334,/xtdisk/PRJNA359624/SRR5142334.fastq.gz,forward

如是双端测序,分了两个fastq文件,格式写成后大概长这样,需要定指定 forward和reverse

sample-id,absolute-filepath,direction
SRR5142316,/xtdisk/PRJNA359624/SRR5142316_R1.fastq.gz,forward
SRR5142316,/xtdisk/PRJNA359624/SRR5142316_R2.fastq.gz,reverse
SRR5142325,/xtdisk/PRJNA359624/SRR5142325_R1.fastq.gz,forward
SRR5142334,/xtdisk/PRJNA359624/SRR5142334_R2.fastq.gz,reverse
  • 一定要有表头 sample-id,absolute-filepath,direction

3.3 运行 qiime tools,导入数据,生成数据摘要

qiime tools import \
  --input-path se-33-manifest.txt \
  --output-path qiime_out_manifest.qza \
  --type SampleData[JoinedSequencesWithQuality] \
  --input-format SingleEndFastqManifestPhred33

*双端序列 --input-format PairedEndFastqManifestPhred33

                 --type 'SampleData[PairedEndSequencesWithQuality]' 

*双端序列合并 --input-format SingleEndFastqManifestPhred33

                        --type SampleData[JoinedSequencesWithQuality] 

结果文件出来了,很快~

image-20240112101039204.png

3.4 可视化数据质量

#可视化文件 
qiime demux summarize \
  --i-data qiime_out_manifest.qza \
  --o-visualization qiime_out_manifest.qzv

qiime_out_manifest.qzv文件需要从Linux中下载后再拖拽到qiime2 view网页中才能打开。

此处可以得到质检矢量图,通过放大观察可以清楚的判断碱基质量明显下降的位置,从而辅助确定下一步中流程中的参数reads1_cutpoint和reads2_cutpoint。

  • 生成的.qzv文 拖拽进网页查看(推荐) QIIME 2 查看
  • 或是使用qiime tools view qiime_out_manifest.qzv查看
image-20240112104445955.png

这里发现数据质量都是30,其实这个数据有点奇怪。

此处可以得到质检矢量图,通过放大观察可以清楚的判断碱基质量明显下降的位置,从而辅助确定下一步中的参数t。

4 过滤, 切割、去嵌合体、拼接等

这步可使用Deblur 或 DATA 2。

Deblur VS DADA2: 方法不同,使用相同数据集的序列和特征数量的也会有差异。

Deblur 要求所有序列的长度相同。另一方面,DADA2 的特征序列具有不同的长度。DADA2 纠正错误,Deblur 删除错误。这种差异对到达终点的总读取量有很大影响,但对频率的影响要小得多,而频率更重要。

如果使用 DADA2来合并和消除双端数据的噪声,请在用DADA2去噪之前不要合并您的序列;DADA2希望读长尚未合并的序列,并将在去噪过程中为您双端合并。deblur只接受single-end的序列,如果你把没有jion的序列传递给deblur,它会只处理forward seqs,eblur在denoising时需要输入整齐一样长度的序列,所以需要trim成相同的长度。

目前:无论选择使用哪种方法,生物学解释(至少从表面上看)似乎都非常相似

目前关于哪个更好,没有达成共识,根据自己的数据情况来选择。此教程我们的数据是合并后的数据,

那么选择Deblur,注意一些数据分析比较原则,如果是整合数据集,那么保证每个样本使用相同的分析流程。

4.1 质量过滤

qiime quality-filter q-score \
  --i-demux qiime_out_manifest.qza \
  --o-filtered-sequences demux-joined-filtered.qza \
  --o-filter-stats demux-joined-filter-stats.qza

输出对象:

  • demux-joined-filter-stats.qza: 统计结果。
  • demux-joined-filtered.qza: 数据过滤后结果。

此方法的参数尚未在双端合并的数据上进行广泛的基准测试,因此建议尝试使用不同的参数设置。

4.2 去噪

现在已经准备好用Deblur去噪你的序列了。您应该从质量分数图中为--p-trim-length选择合适的序列长度值。这将把所有序列修剪到这个长度,并丢弃任何小于这个长度的序列。

大约 251-255(EMP 引物组)捕获了几乎所有的 V4 序列。因此,修剪到 251-255 是合理的。

Deblur的开发者们建议设置一个质量分数开始迅速下降的长度(recommend setting this value to a length where the median quality score begins to drop too low)。

qiime deblur denoise-16S \
  --i-demultiplexed-seqs demux-joined-filtered.qza \
  --p-trim-length 250 \
  --p-sample-stats \
  --o-representative-sequences rep-seqs.qza \
  --o-table table.qza \
  --o-stats deblur-stats.qza

输出对象:

  • rep-seqs.qza: 代表序列。
  • deblur-stats.qza: 统计过程。
  • table.qza: 特征表。

4.3 查看结果特征表

统计结果可视化

qiime feature-table summarize \
  --i-table table.qza \
  --o-visualization table.qzv
image-20240112142534055.png

代表序列统计


qiime feature-table tabulate-seqs \
  --i-data rep-seqs.qza \
  --o-visualization rep-seqs.qzv
image-20240112143813655.png

5 多样性分析

5.1 建树用于多样性分析

qiime phylogeny align-to-tree-mafft-fasttree \
  --i-sequences rep-seqs.qza \
  --o-alignment aligned-rep-seqs.qza \
  --o-masked-alignment masked-aligned-rep-seqs.qza \
  --o-tree unrooted-tree.qza \
  --o-rooted-tree rooted-tree.qza

5.2 Alpha多样性分析

α多样性是度量单个样本内有多少种微生物物种,以及每个物种所占比例的指标。

计算多样性(包括所有常用的Alpha和Beta多样性方法),输入有根树、Feature表、样本重采样深度

取样深度看table.qzv文件确定(一般为样本最小的sequence count,或覆盖绝大多数样品的sequence count)

image-20240112145317526.png

还需要构建一个 sample-metadata.txt file ,这里我们的演示,从NCBI下载

Run Selector :: NCBI (nih.gov)

image-20240112161606058.png

改写"RUN" 为 sampleID,这里我们添加了一个Group 列,根据Library Name 分了两组Gout_Train 和HC_Train,注意格式,保存为分隔符为空格的txt 文件。

然后运行以下流程:

qiime diversity core-metrics-phylogenetic \
  --i-phylogeny rooted-tree.qza \
  --i-table table.qza \
  --p-sampling-depth 1775 \
  --m-metadata-file sample-metadata.txt \
  --output-dir core-metrics-results
image-20240112160434896.png

运行很快,

输出结果包括多种多样性结果,文件列表和解释如下:

beta多样性bray_curtis距离矩阵 bray_curtis_distance_matrix.qza

alpha多样性evenness(均匀度,考虑物种和丰度)指数 evenness_vector.qza

alpha多样性faith_pd(考虑物种间进化关系)指数 faith_pd_vector.qza

beta多样性jaccard距离矩阵 jaccard_distance_matrix.qza

alpha多样性observed_otus(OTU数量)指数 observed_otus_vector.qza

alpha多样性香农熵(考虑物种和丰度)指数 shannon_vector.qza

beta多样性unweighted_unifrac距离矩阵,不考虑丰度 unweighted_unifrac_distance_matrix.qza

beta多样性unweighted_unifrac距离矩阵,考虑丰度 weighted_unifrac_distance_matrix.qza

测试分类元数据(sample-metadata)列和alpha多样性数据之间的关联,输入多样性值、sample-medata,输出统计结果,统计faith_pd算法Alpha多样性组间差异是否显著

qiime diversity alpha-group-significance \
  --i-alpha-diversity core-metrics-results/faith_pd_vector.qza \
  --m-metadata-file sample-metadata.txt \
  --o-visualization core-metrics-results/faith-pd-group-significance.qzv

# 统计evenness组间差异是否显著
qiime diversity alpha-group-significance \
  --i-alpha-diversity core-metrics-results/evenness_vector.qza \
  --m-metadata-file sample-metadata.txt \
  --o-visualization core-metrics-results/evenness-group-significance.qzv

以evenness-group-significance.qzv为例,图中可点Category选择分类方法,查看不同分组下箱线图间的分布与差别。图形下面的表格,详细详述组间比较的显著性和假阳性率统计。

image-20240112162721287.png

发现 Alpha 多样性和 我们的分组没啥关系,P值不显著

5.3 Beta 多样性分析

β多样性是度量不同样本间菌群组成的相似度大小的指标,即关注各样本间的菌群组成差异。

# 统计group 的组间是否有显著差异,其他的分组分析类似。
qiime diversity beta-group-significance \
  --i-distance-matrix core-metrics-results/unweighted_unifrac_distance_matrix.qza \
  --m-metadata-file sample-metadata.txt \
  --m-metadata-column Group \
  --o-visualization core-metrics-results/unweighted-unifrac-subject-significance.qzv \
  --p-pairwise

可视化结果:

image-20240112164145396.png

发现有P值。

# 可视化三维展示其它类,定量值的 分析
qiime emperor plot \
  --i-pcoa core-metrics-results/unweighted_unifrac_pcoa_results.qza \
  --m-metadata-file sample-metadata.txt \
  --p-custom-axes weight \
  --o-visualization core-metrics-results/unweighted-unifrac-emperor-weight.qzv

我们这里演示的数据集没有,跳过。

5.4 Alpha rarefaction plotting

# --p-max-depth should be determined by reviewing the “Frequency per sample” information presented in the table.qzv file
# --p-max-depth一般取table.qzv文件Frequency per sample的中位数左右
qiime diversity alpha-rarefaction \
  --i-table table.qza \
  --i-phylogeny rooted-tree.qza \
  --p-max-depth 31131 \
  --m-metadata-file sample-metadata.txt \
  --o-visualization alpha-rarefaction.qzv

可视化将有两个图。顶部图是α稀疏图,主要用于确定样品的丰富度是否已被完全观察或测序。如果图中的线在沿x轴的某个采样深度处看起来“平坦化”(即接近零斜率),则表明收集超出该采样深度的其他序列将不可能会有其他的OTU(feature)产生。如果图中的线条没有达到平衡,这可能是因为尚未完全观察到样品的丰富程度(因为收集的序列太少),或者它可能表明在数据中存在大量的测序错误(被误认为是新的多样性)。底部图表示当特征表稀疏到每个采样深度时每个组中保留的样本数。样本被分成两组,图中显示即两条线.

image-20240112170242915.png

6 菌群比对数据库:引物特异性菌群比对

Greengenes细菌16S全长序列数据库

下载地址:Data resources — QIIME 2 2023.9.2 documentation

image-20240112211049880.png

下载得到gg_13_8_otus.tar.gz后将其解压,具体使用gg_13_8_otus/rep_set 下99_otus.fasta(序列)和taxonomy/99_otu_taxonomy.txt(分类)两个文件

tar -zxvf gg_13_8_otus.tar.gz 

6.1. 转换格式

#将99_otus.fasta(序列)和99_otu_taxonomy.txt(分类)两个文件的格式转换QIIME2能识别和利用的格式

qiime tools import \
  --type 'FeatureData[Sequence]' \
  --input-path gg_13_8_otus/rep_set/99_otus.fasta \
  --output-path 99_otus.qza

qiime tools import \
  --type 'FeatureData[Taxonomy]' \
  --input-format HeaderlessTSVTaxonomyFormat \
  --input-path gg_13_8_otus/taxonomy/99_otu_taxonomy.txt \
  --output-path 99-taxonomy.qza

6.2. 抽提V3V4模板序列

用测序引物序列从Greengenes数据库中的16S全长序列99_otus.qza中抽提出引物特异性的细菌参考序列,就会得到本研究特异性的参考序列

qiime feature-classifier extract-reads \
  --i-sequences 99_otus.qza \
  --p-f-primer CCTACGGGNGGCWGCAG \
  --p-r-primer GACTACHVGGGTATCTAATCC \
  --o-reads 99-v3v4-seqs.qza

大概20分钟

6.3. 训练V3V4分类器

qiime feature-classifier fit-classifier-naive-bayes \
  --i-reference-reads 99-v3v4-seqs.qza \
  --i-reference-taxonomy 99-taxonomy.qza \
  --o-classifier gg-13-8-99-v3v4-classifier.qza

大概20分钟 等待中~

7 菌群特征比对,分类学注释

7.1. 比对

把DADA2分析得到的细菌特征代表性序列rep-seqs.qza和训练好的分类器gg-13-8-99-v3v4-classifier.qza进行比对,获得具体的细菌分类信息taxonomy.qza

qiime feature-classifier classify-sklearn \
  --i-classifier gg-13-8-99-v3v4-classifier.qza \
  --i-reads rep-seqs.qza \
  --o-classification taxonomy.qza

7.2. 丰度统计

将细菌特征丰度表table.qza和细菌分类信息taxonomy.qza进行整合获得完整的细菌分类丰度表,包含界、门、纲、目、科、属、种多水平的细菌丰度信息

qiime taxa barplot \
  --i-table table.qza \
  --i-taxonomy taxonomy.qza \
  --m-metadata-file sample-metadata.txt \
  --o-visualization taxa-bar-plots.qzv

8 数据处理: 获取菌属分类表

8.1. 获取属水平菌丰度表

QIIME2 view网页中打开taxa-bar-plots.qzv,下载level6的CSV文件,如下:

image-20240112221927743.png

8.2. 标准化菌属丰度表

把CSV文件导入到Excel中进行标准化,即每个菌属的原始丰度除以该菌所在样本的总菌属丰度得到标准相对菌属相对丰度

image-20240112222303753.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容