You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中统计bioconductor airway数据集dex处理与未处理的基因数量

错误原因
  • 逻辑判断的分组标签拼写错误:airway$dex的处理组标签为treated,你写的trted少了一个字母e,导致所有匹配结果都是FALSE。
  • 你当前的代码仅能筛选分组为处理组的样本列,无法直接统计基因数量,需要结合表达矩阵做后续计算。
实现代码

步骤1:加载数据集

# 安装依赖(首次运行执行)
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("airway", update = FALSE)

# 加载数据
library(airway)
data(airway)

步骤2:验证分组标签

# 查看dex字段的所有取值,确认拼写
levels(airway$dex)
# 预期输出:[1] "untreated" "treated"

步骤3:统计两组基因数量

默认统计每组中至少在1个样本里存在表达(表达量>0)的基因总数,如果有其他统计规则可以自行修改判定条件:

# 提取表达矩阵
expr <- assay(airway)

# 分别筛选两组的样本列
untreated_col <- airway$dex == "untreated"
treated_col <- airway$dex == "treated"

# 统计未处理组基因数
untreated_gene_n <- sum(rowSums(expr[, untreated_col] > 0) >= 1)
# 统计处理组基因数
treated_gene_n <- sum(rowSums(expr[, treated_col] > 0) >= 1)

# 打印结果
print(paste0("未处理组基因总数:", untreated_gene_n))
print(paste0("处理组基因总数:", treated_gene_n))

可选扩展:统计特有、共有基因数

# 提取两组有表达的基因ID
untreated_gene <- rownames(expr)[rowSums(expr[, untreated_col] > 0) >= 1]
treated_gene <- rownames(expr)[rowSums(expr[, treated_col] > 0) >= 1]

# 两组共有基因数
common_n <- length(intersect(untreated_gene, treated_gene))
# 未处理组特有基因数
unique_untreated_n <- length(setdiff(untreated_gene, treated_gene))
# 处理组特有基因数
unique_treated_n <- length(setdiff(treated_gene, untreated_gene))

内容的提问来源于stack exchange,提问作者user3005814

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:45:05