PICRUSt2-SC:16s功能注释的更新

https://academic.oup.com/bioinformatics/article/41/5/btaf269/8121151

https://github.com/picrust/picrust2/wiki

自 2.6.0 版本起,PICRUSt2-SC 数据库随 PICRUSt2 预装。

安装

bash 复制代码
# 这一步比较慢,耐心等
mamba create -n picrust2 -c bioconda -c conda-forge picrust2=2.6.2
picrust2_pipeline.py -h

使用

bash 复制代码
picrust2_pipeline.py -s asv.fasta -i feature-table.biom -o result_dir \
    -p 180 --in_traits EC,KO,CAZY
  • -s (或 --study_fasta): 你的 ASV/OTU 代表序列文件(FASTA 格式)。

  • -i (或 --input): 你的丰度表(BIOM、TSV 或 mothur 格式)。

  • -o (或 --output): 输出结果的文件夹名称。

  • -p (--processes) : 多线程设置。默认是 1。

  • --in_traits : 基因家族类型。默认预测 EC 和 KO(KEGG)。如果你需要 GO 条目、PFAM 结构域或 CAZy(碳水化合物酶),需要在这里用逗号隔开加上。

  • --stratified : 分层输出。如果你想知道每一个 KO 或 Pathway 具体是由哪些 ASV(细菌)贡献的

ggpicrust2可视化

https://github.com/cafferychen777/ggpicrust2

https://doi.org/10.1093/bioinformatics/btad470

R 复制代码
# install.packages("devtools")
devtools::install_github("cafferychen777/ggpicrust2")

#安装bioconductor依赖包
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

pkgs <- c("phyloseq", "ALDEx2", "SummarizedExperiment", "Biobase", "devtools",
          "ComplexHeatmap", "BiocGenerics", "BiocManager", "metagenomeSeq",
          "Maaslin2", "edgeR", "lefser", "limma", "KEGGREST", "DESeq2")

for (pkg in pkgs) {
  if (!requireNamespace(pkg, quietly = TRUE))
    BiocManager::install(pkg)
}


if (!requireNamespace("MicrobiomeStat", quietly = TRUE)) {
  install.packages("MicrobiomeStat")
}

分析 PICRUSt2 输出的最简单方法是使用 ggpicrust2() 函数。可以使用 ggpicrust2() 函数运行主管道。ggpicrust2()整合了 ko 丰度和 kegg 通路丰度转换、通路注释、差异丰度(DA)分析,是 DA 结果可视化的一部分。当运行 ggpicrust2 时遇到问题时,可以通过运行单独的函数进行调试,这将大大加快您的分析和可视化速度。

看到 PICRUSt2 output 文件夹的 KO_metagenome_out 里面的 pred_metagenome_unstrat.tsv.gz

(这也可以用clusterProfile做可视化)

clusterProfile

R 复制代码
# 1. 环境准备
library(readr)
library(ggpicrust2)
library(tibble)
library(tidyverse)
library(ggprism)
library(patchwork)
library(MicrobiomeStat)

# 2. 读取原始数据
ko_abundance <- read_delim("pred_metagenome_unstrat.tsv", delim = "\t", col_names = TRUE, trim_ws = TRUE)
metadata <- read_delim("metadata_L8.txt", delim = "\t", escape_double = FALSE, trim_ws = TRUE)

kegg_abundance <- ko2kegg_abundance(data = ko_abundance)

# 3. 运行 ggpicrust2 分析
daa_results_df <- pathway_daa(abundance = kegg_abundance,
                      metadata = metadata,
                      group = "Group",
                      pathway = "KO",
                      daa_method = "LinDA",
                      select = NULL,
                      ko_to_kegg = TRUE,
                      p.adjust = "BH",
                      reference = "Ctrl")

# --- 5. 筛选并查看 padj < 0.05 的显著通路 ---
# 筛选出校正后显著的结果
significant_padj <- daa_results_df %>% 
  filter(p_adjust < 0.05) %>% 
  arrange(p_adjust) # 按显著性排序

# 在控制台打印出来
if (nrow(significant_padj) > 0) {
  print("以下是 p_adjust 显著的通路:")
  print(significant_padj[, c("feature", "group1", "group2", "p_adjust", "log2FoldChange")])
} else {
  message("没有发现 p_adjust < 0.05 的显著通路。")
}
相关推荐
万事可爱^10 分钟前
Claude 新发布的 Opus 5,系统提示语删了 80%,半价还能逼近 Fable 5
android·服务器·数据库·人工智能·claude
其实防守也摸鱼1 小时前
GitHub开源项目破圈方法论:从技术自嗨到生态共赢
服务器·数据库·学习·开源·github·命令行·linux系统
爱写代码的森2 小时前
鸿蒙三方库 | harmony-utils之PasteboardUtil剪贴板数据读写详解
服务器·华为·harmonyos·鸿蒙·huawei
xlq223223 小时前
高并发服务器day5
java·服务器·数据库
明日清晨3 小时前
printf(“%p\n“,&((struct A *)NULL)->m_float)的原理
linux·服务器·前端
William_cl3 小时前
WinForms EF Core 上下文频繁释放引发的异常排查与规范方案(MES 项目实录)
服务器·数据库·oracle
其实防守也摸鱼4 小时前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
Android系统攻城狮4 小时前
Linux PipeWire深度解析之pw_context_add_spa_lib调用流程与实战(二十九)
linux·运维·服务器·音频进阶·pipewire音频进阶
Dovis(誓平步青云)4 小时前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
草莓熊Lotso5 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++