databasemetadata获取表注释_16S测序分析系列(一)菌属丰度表获取

本文详细介绍了如何从Miseq 16S amplicon V3V4测序数据中提取菌属丰度表的工作流程,包括FastQC质检、Cutadapt切引物、QIIME2数据处理、DADA2分析、比对数据库和数据标准化等步骤。通过这些步骤,研究人员可以获得用于统计分析的基础数据。
摘要由CSDN通过智能技术生成

Miseq 16S amplicon V3V4 PE300测序是目前菌群结构谱研究最为常用的测序手段。本文将以此类测序的下机数据为例展示“如何从Miseq测序数据中快速提取出可以用来统计分析的菌属相对丰度表”的工作流程。该丰度表是做菌群研究最为基本的数据,要想发文章还必须做大量的统计分析。在以后的文章中我们会继续推出一些统计分析方法,敬请期待!

软件准备

Linux环境:
  • FastQC
    质检下机数据
    软件地址:https://www.bioinformatics.babraham.ac.uk/projects/fastqc/

  • Cutadapt
    切除测序引物
    软件地址:https://cutadapt.readthedocs.io/en/stable/

  • QIIME2
    序列拼接、质控、比对、注释
    软件版本:QIIME2 2018.4或QIIME2 2018.8
    软件地址:https://qiime2.org/

Windows环境:
  • Filezilla
    下载Linux环境中的数据或上传数据到Linux环境
    软件地址:https://filezilla-project.org/

  • Excel
    数据处理

  • QIIME2 view
    查看QIIME2输出的以.qzv为后缀的文件
    网页地址:https://view.qiime2.org/

数据准备

  • Miseq 16S amplicon V3V4测序下机数据R1.fastqR2.fastq

  • 测序引物p1 -> CCTACGGGNGGCWGCAG
    p2 -> GACTACHVGGGTATCTAATCC

  • 表型文件metadata.txt
    准备存放样本信息的表型文件,以tab键为分隔符。可以先在Excel中做表,然后保存为tsv文件。
    格式如下:

    314e1b8e2b9e8c648643c5072517beba.png

  • Greengenes细菌16S全长序列数据库
    下载地址:https://docs.qiime2.org/2019.1/data-resources/
    下载得到gg_13_8_otus.tar.gz(最新版,大小为305M)后将其解压得到99_otus.fasta(序列)和99_otu_taxonomy.txt(分类)两个文件,文件获取如下:

    5fe44d1d33cb90ee6eacd22148bdde4f.png

流程概览

f0b09a79be33a391e7b995ca014e8e36.png

工作流程

FastQC质检
  • 合并R1、R2

    cat *R1.fastq > merge.R1.fastq
    cat *R2.fastq > merge.R2.fastq
  • FastQC质检
    可以使用-t:指定线程数和-o:指定输出位置

    fastq -t 8 merge.R1.fastq
    fastq -t 8 merge.R2.fastq
  • 使用Filezilla下载结果文件并打开

    ffe2c4c426331011ce276ee145b50d51.png

Cutadapt切引物
  • 检查引物的位置和序列
    位置:5’端
    序列:

    p1 -> CCTACGGGNGGCWGCAG;

    p2 -> GACTACHVGGGTATCTAATCC

d74b66feac4f1b6d057c998c2f4adad2.png

  • 切引物

cutadapt -g CCTACGGGNGGCWGCAG -G GACTACHVGGGTATCTAATCC -o *R1.fastq -p *R2.fastq *r1.fastq *r2.fastq --core=2

由下图可见99%以上的Reads都包含引物

2a2f000f5eea00e13e953df041a6b6b3.png

  • 质检
    Reads起始端质量明显提高,末端的低质量碱基可利用下面的DADA2来处理

    40ebe8e540ed53bd106d5790de967893.png

QIIME2数据导入
  • 制作manifest.txt 列表文件,存放每一个样本的信息,格式如下:

sample-id,absolute-filepath,direction
sample-1,/filepath/sample1_r1.fastq,forward
sample-1,/filepath/sample1_r2.fastq,reverse
sample-2,/filepath/sample2_r1.fastq,forward
sample-2,/filepath/sample2_r2.fastq,reverse

注意不能有空格、换行符、制表符等

  • 格式转换

qiime tools import \
  --type 'SampleData[PairedEndSequencesWithQuality]' \
  --input-path manifest.txt \
  --output-path manifest.qza \
  --source-format PairedEndFastqManifestPhred33
  • 可视化检查

qiime demux summarize \
  --i-data manifest.qza \
  --o-visualization manifest.qzv

manifest.qzv 文件需要从Linux中下载后再拖拽到qiime2 view 网页中才能打开。此处可以得到质检矢量图,通过放大观察可以清楚的判断碱基质量明显下降的位置,从而辅助确定下一步中的reads1_cutpoint 和reads2_cutpoint 。

6119bf3ee924cb33939ef7394aef28ae.png

用DADA2进行切割、去嵌合体、拼接等
  • 使用10个线程运行DADA2
    为保证碱基质量这里再次要对Reads进行切割。Reads起始端质量很高时N1 N2设为0即可;观察manifest.qzv确定reads1_cutpoint和reads2_cutpoint,这里我将其分别设为275和250。

qiime dada2 denoise-paired \
  --i-demultiplexed-seqs manifest.qza \
  --p-trim-left-f N1 \ 
  --p-trim-left-r N2 \
  --p-trunc-len-f reads1_cutpoint \
  --p-trunc-len-r reads2_cutpoint \
  --o-table table.qza \
  --o-representative-sequences rep-seqs.qza \
  --o-denoising-stats denoising-stats.qza \  
  --p-n-threads 10

此步骤会生成三个新文件:
denoising-stats.qza是质检统计,如下表;
table.qza是细菌特征丰度表;
rep-seqs.qza是细菌特征代表性序列

  • DADA2统计结果可视化

qiime metadata tabulate \
  --m-input-file denoising-stats.qza \
  --o-visualization denoising-stats.qzv

最后一列是Clean data,它将被用于下游分析

ad8d14ab9e19940d6364318415836831.png

引物特异性菌群比对数据库
  • 转换格式
    将99_otus.fasta(序列)和99_otu_taxonomy.txt(分类)两个文件的格式转换QIIME2能识别和利用的格式

qiime tools import \
  --type 'FeatureData[Sequence]' \
  --input-path 99_otus.fasta \
  --output-path 99_otus.qza
qiime tools import \
  --type 'FeatureData[Taxonomy]' \
  --input-format HeaderlessTSVTaxonomyFormat \
  --input-path 99_otu_taxonomy.txt \
  --output-path 99-taxonomy.qza
  • 抽提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
  • 训练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
细菌分类学注释
  • 比对
    把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
  • 丰度统计
    将细菌特征丰度表table.qza和细菌分类信息taxonomy.qza进行整合获得完整的细菌分类丰度表,包含界、门、纲、目、科、属、种多水平的细菌丰度信息

qiime taxa barplot \
  --i-table table.qza \
  --i-taxonomy taxonomy.qza \
  --m-metadata-file metadata.tsv \
  --o-visualization taxa-bar-plots.qzv
数据处理
  • 获取属水平菌丰度表
    QIIME2 view网页中打开taxa-bar-plots.qzv,下载level6的CSV文件,如下:

    20f053ceb5f7261435547cb183232339.png

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

    660358be99b3bfdd1d4ef0cd3bfe388e.png

以上就是我个人总结的“从Miseq测序数据中快速提取出可以用来统计分析的菌属相对丰度表”全部工作流程,如有问题可以留言交流,以后会继续推出“如何利用该菌属相对丰度表进行统计分析”的文章,如有兴趣可以关注。

本文为生信草堂原创,欢迎个人转发分享,其它媒体或网站如需转载,请在正文前注明转自生信草堂并联系bioinformatics88

全集|生信方法+数据库挖掘+精品论文解读(更新)

进化树分析发现:新型R.gnavus进化支富集于IBD患者肠道内

原来,CircRNA也可以这么分析

fbd79e1cbf702e51d9ad8eab9bce5c21.png e4f2a03eb44a6dd69d6d99cc99f10d42.gif 334b8cf6835bf0498f214484af5cb886.png
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取数据库中所有的信息,可以使用Java中的JDBC API中的DatabaseMetaData接口。以下是获取所有信息的示例代码: ```java import java.sql.*; public class DatabaseMetaDataExample { public static void main(String[] args) { try { // 连接数据库 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password"); // 获取数据库元数据 DatabaseMetaData metaData = conn.getMetaData(); // 获取所有信息 String[] types = {"TABLE"}; ResultSet rs = metaData.getTables(null, null, "%", types); // 遍历结果集,输出名 while (rs.next()) { String tableName = rs.getString("TABLE_NAME"); System.out.println(tableName); } // 关闭连接和结果集 rs.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 在上面的代码中,我们首先使用`DriverManager`获取数据库连接,然后通过连接对象的`getMetaData`方法获取数据库元数据。接着,我们使用`getTables`方法获取所有信息的结果集,并遍历结果集输出名。最后,记得关闭连接和结果集。 需要注意的是,`getTables`方法的参数中,第一个参数是数据库名称,第二个参数是模式(即数据库的用户),第三个参数是名的匹配模式,`%`示匹配所有。`getTables`方法返回的结果集包含所有的信息,包括名、类型、备注等。如果需要获取更详细的信息,可以使用`getColumns`、`getPrimaryKeys`、`getImportedKeys`等方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值