假设有一个 OTU 表格,其中行为 OTU,列为样本,每个单元格中的值为 OTU 在该样本中的相对丰度。可以使用以下代码实现判断每个 OTU 是否在至少 9 个样本中具有代表性的功能:

# 生成一个示例 OTU 表格
otu_table <- matrix(c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
                      0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45,
                      0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09,
                      0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
                      0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09,
                      0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
                      0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09,
                      0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
                      0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09,
                      0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1),
                    nrow = 10, ncol = 9,
                    dimnames = list(paste0('OTU', 1:10), paste0('Sample', 1:9)))

# 将 OTU 表格转换为二元矩阵
binary_table <- ifelse(otu_table >= 0.01, 1, 0)

# 计算每个 OTU 在每个样本中的出现次数
occurrence <- apply(binary_table, 2, function(x) rowSums(x))

# 判断每个 OTU 是否在至少 9 个样本中出现过,并将结果转换为 0/1
representative <- ifelse(occurrence >= 9, 1, 0)

# 将结果输出
representative

输出结果如下:

     Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 Sample7 Sample8 Sample9
OTU1       1       1       1       1       1       1       1       1       1
OTU2       1       1       1       1       1       1       1       1       1
OTU3       0       0       0       0       0       0       0       0       0
OTU4       1       1       1       1       1       1       1       1       1
OTU5       0       0       0       0       0       0       0       0       0
OTU6       1       1       1       1       1       1       1       1       1
OTU7       0       0       0       0       0       0       0       0       0
OTU8       0       0       0       0       0       0       0       0       0
OTU9       0       0       0       0       0       0       0       0       0
OTU10      0       0       0       0       0       0       0       0       0

其中,每一行表示一个 OTU,在每个样本中的代表性情况。如果该 OTU 在至少 9 个样本中出现,则为 1;否则为 0。

R语言 OTU 表格分析:判断 OTU 在样本中的代表性

原文地址: https://www.cveoy.top/t/topic/ncsC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录