文章目录
概述
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
二者互相矛盾
###################################################################
最后解决方法——修改原始程序
修改后的程序可邮箱联系我获取
([email protected])
脚本原始是专门设置了一个位置存包,如果有其他版本遗留的会起冲突
将位置换了后运行成功
使用
输入文件:
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