你好,
根据最近发表的文章(https://genomebiology.biomedcentral.com/articles/10.1186/s13059-020-02104-1)我一直在尝试将TMM规范化(使用edger::calcNormFactors)应用到我使用过的许多不同的微生物组数据集。在使用它们时,我注意到,当我打乱原始读取计数矩阵中的样本(列)的顺序时,一些数据集的规范化因子无法再现。我用9个不同的数据集测试了这种行为,发现当矩阵> 0.79稀疏度时通常会出现这种情况。我想弄清楚为什么会这样以及为什么这会影响标准化因子的重现性。我已经包括一个dropbox的链接,包含感兴趣的数据集以及rmarkdown文件与所有的代码。非常感谢您的指导。
https://www.dropbox.com/sh/6fo3fipyc0p36f3/AACnNhDmOk5U285g_u9g0fTba?dl=0
这里有几行代码可以重现这个问题。
下载TSV文件https://www.dropbox.com/s/w6l11rfyh8z19wl/BISCUIT_ASVs_table.tsv?dl=1count_matrix.tsv <- as.matrix(read.table("count_matrix. tsv")Tsv ", sep="\t", row.names = 1, comment。char ="", skip=1, header=T, check.names =F, quote="")) count_norm1 <- calcNormFactors(饼干计数,方法="TMM") #shuffle列order shuffled_df <- shuffled_count [,sample(c(1:38), 38, replace=F)] shuffled_norm <- calcNormFactors(shuffled_df,sorted_norm1 <- count_norm1[sort(names(count_norm1))] sorted_shuffle_norm <- shuffled_norm[sort(names(shuffled_norm))] identical(sorted_norm1, sorted_shuffle_norm) corr .test(sorted_norm1, sorted_shuffle_norm))
谢谢,雅各接近
这一解释完全澄清了这种行为。谢谢您花时间解决这个问题。