16s功能注释Bugbase的安装使用--本地版

概述

Bugbase依赖于Greegenes1与R

  • 但是R现已更新到4.4以上,安装R包时会不兼容
  • 且输入文件的ID 须为Greegenes ID,且与原ASV无对应

本文主要解决以上两问题,其他具体操作将略

介绍

BugBase是一种微生物组分析工具,可确定微生物组样本中存在的高级表型,可以基于OTU表和Mapping files,预测大量信息和比较,包括以下七方面:

  • 括革兰氏阳性(Gram Positive)
  • 革兰氏阴性(Gram Negative)
  • 生物膜形成(Biofilm Forming)
  • 致病性(Pathogenic)
  • 移动元件(Mobile Element Containing)
  • 氧需求(Oxygen Utilizing,包括Aerobic、Anaerobic、facultatively anaerobic)
  • 氧化胁迫耐受(Oxidative Stress Tolerant)

下载安装程序

下载并配置环境

cd ~/software
wget https://github.com/knights-lab/BugBase/archive/master.zip
mv master.zip BugBase.zip
unzip BugBase.zip
mv BugBase-master/ BugBase
# 此程序运行必须定义下面环境变量,根据实际目录修改
export BUGBASE_PATH=/home/yangzy/software/BugBase
export PATH=$PATH:/home/yangzy/software/BugBase/bin

安装依赖R包并显示帮助

run.bugbase.r -h # 安装了所有依赖包
# 以上R包如果已经安装,此步可跳过
# 每次运行都会重复安装10多个包近半小时

运行示例数据

# 运行演示数据
run.bugbase.r -i $BUGBASE_PATH/doc/data/HMP_s15.txt -m $BUGBASE_PATH/doc/data/HMP_map.txt -c HMPBODYSUBSITE -o output

运行中会显示运行内容如下

[1] "Loading Inputs..."
[1] "16S copy number normalizing OTU table..."
[1] "Predicting phenotypes..."
[1] "313 OTUs from the input table matched the 203452 available database OTUs"
[1] "Plotting thresholds..."
[1] "Plotting predictions..."
[1] "Plotting OTU contributions..."
[1] "BugBase analysis complete"

Bug及解决方法-☆

在这里插入图片描述
在这里插入图片描述
必需的’Matrix’包提示 needs R >= 4.4.0,
'biom’包报错是 installed before R 4.0.0: please re-install it
二者互相矛盾
###################################################################
最后解决方法——修改原始程序
修改后的程序可邮箱联系我获取
(yangziyi2001@126.com)
脚本原始是专门设置了一个位置存包,如果有其他版本遗留的会起冲突
将位置换了后运行成功
在这里插入图片描述

使用

在这里插入图片描述
输入文件:
OTU_table
BIOM 1.0, JSON格式
16S以GrennGenes为参考数据库 #过旧 但可用
宏基因组以IMG为参考
样本信息
第一列为样本

参数解释:
-i otu_table biom1.0格式文件
-m 样品信息表
-c 指定样品分组
-o 输出文件名称
-t 指定分类水平 1-7,默认门水平
-p 表型,特殊表型预测
-x 只输出预测表,不出图片
-T 阈值 0-1,可指定过滤阈值

输入文件准备-☆

使用QIIME2 与Greengenes数据库进行聚类比对

下载Greengenes数据库

下载地址:
https://ftp.microbio.me/greengenes_release/gg_13_8_otus/taxonomy/

在QIIME2中操作

激活QIIME2环境

conda activate qiime2-2023.5
97% 的 OTU fasta 文件(从 rep-set 文件夹)导入到 QIIME 2 中。
qiime tools import \
  --type 'FeatureData[Sequence]' \
  --input-path gg_13_8_otus/rep_set/97_otus.fasta \
  --output-path gg_97_otus.qza

使用cluster方法在 97% 的相似性阈值下对序列进行聚类 ☆☆☆

qiime vsearch cluster-features-closed-reference \
  --i-sequences rep-seqs-dada2.qza \
  --i-table table-dada2.qza \
  --i-reference-sequences gg_97_otus.qza \
  --p-perc-identity 0.97 \
  --o-clustered-table table-cr-97.qza \
  --o-clustered-sequences rep-seqs-cr-97.qza \
  --o-unmatched-sequences unmatched-seqs \
  --verbose
  • 输入去重序列(rep-seqs-dada2.qza)和表格(table-dada2.qza)。
  • 使用预先建立的参考序列(gg_97_otus.qza)进行聚类。
  • 设置相似性阈值为97%(–p-perc-identity 0.97),即寻找97%序列相似性。
  • 输出聚类后的表格(table-cr-97.qza)和代表序列(rep-seqs-cr-97.qza)。
  • 将未匹配的序列输出到unmatched-seqs中。
  • 使用–verbose选项以获取详细输出信息。

在这里插入图片描述

BugBase 要求 biom 表是 1.0 版本的 JSON 格式,并且有分类注释而不是 OTU ID,所以我们需要先做一些调整。
为此,我们需要在工件中提供底层 biom 表。table-cr-97.qza

qiime tools export \
  --input-path table-cr-97.qza \
  --output-path $PWD

这将保存导出的 biom 表并将其调用 feature-table.biom

目前,我们的 biom 表具有继承自参考数据库的 OTU ID#,而不是分类注释。因此,我们将继续添加这些分类法。为此,我们需要之前提取的文件97_otu_taxonomy.txt

为了将分类法添加到我们的生物文件中,首先我们需要向文件添加一个新的标题。我们需要将 and 添加到我们的第一行。97_otu_taxonomy.txt#OTUIDtaxonomy

echo -e "#OTUID\ttaxonomy" | cat - gg_13_8_otus/taxonomy/97_otu_taxonomy.txt > 97_otu_taxonomy.txt

现在,我们已准备好添加分类。

biom add-metadata -i feature-table.biom -o feature-table-tax.biom --observation-metadata-fp 97_otu_taxonomy.txt --sc-separated taxonomy

最后,将我们的 biom 文件转换为旧版本 (V1.0 JSON)。我找到了一个粗糙但简单的解决方案,即将我们的生物文件转换为.txt文件,然后使用较旧的生物模型版本重新转换回来。可能有一种更优雅的方式来做到这一点,但它是有效的。

首先,将其转换为.txt文件:

biom convert --table-type="OTU table" -i feature-table-tax.biom -o feature-table-tax.txt --to-tsv --header-key taxonomy

然后重新转换回我们需要的旧 biom 版本。

biom convert -i feature-table-tax.txt -o feature-table-tax-biom1.biom --table-type="OTU table" --to-json --process-obs-metadata taxonomy

此 biom 表现在与 BugBase 兼容。我通过将其上传到基于 Web 的 BugBase 版本来验证这一点。或者,您可以上传元数据文件,但对此有一些小的说明。您必须根据 BugBase 的要求手动重命名第一列,并删除描述列类别的第二行(如果您的 QIIME 2 元数据中有这些类别,就像运动图片教程元数据一样)。您还需要将此文件另存为文件。
本教程的元数据文件已经作为第一列标题,但我们仍然需要删除第二行并转换为 BugBase 对此非常挑剔的扩展。#SampleID.txt#SampleID.txt

R语言操作

  • 输出的table-cr-97.qza和rep-seqs-cr-97.qza是具有Greengenes ID,没有OTU ID的
  • 将rep-seqs-cr-97.qza中的序列与之前rep-seqs.qza中的序列比对,将Greengenes ID和OTU ID号对应上,再通过ASV_contrast对应得到Greengenes ID_OTU_ASV_sequen表
  • 最后将dna-sequences.TAB.no-All.txt和feature-table-tax.txt合并,得到仅保留与ASV比对上的Greengenes ID的特征序列丰度表–>asv_table

运行Bugbase

run.bugbase.r -i $BUGBASE_PATH/doc/data/HMP_s15.txt -m $BUGBASE_PATH/doc/data/HMP_map.txt -c HMPBODYSUBSITE -o output

在这里插入图片描述

结果解读

在这里插入图片描述
本地在Ouput目录中有四个目录:

  • normalized_otus目录中有16s_normalized_otus.txt文件,为标准化的OTU表
  • otu_contributions目录中
    主要有9种表型或功能预测结果表contributing_otus.txt,和9种表型按实验组比较的结果堆叠柱状图和物种颜色方案图例PDF版
  • predicted_phenotypes目录中
    主要有9种表型或功能预测结果表predictions.txt,和9种表型按实验组比较箱线图,和相关组间统计信息。

参考:
[1]16S预测细菌表型-bugbase:革兰氏阴阳、生物膜、致病力、移动元件、氧气消耗等…
[2]qiime2-to-BugBase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值