我正在R控制台中工作,正在尝试使用sva软件包中的ComBat函数。但是,运行该功能后,出现此错误。
solve.default(crossprod(des),crossprod(des,y1))中的错误: Lapack例行程序dgesv:系统完全是单个的:U [1,1] = 0
环顾四周后,我发现此错误与数据的组织方式有关。问题是,我找不到任何说明数据组织方式的地方。有谁知道应该如何设置?
我尝试过以不同格式重新组织数据。我用NA替换了所有0值。当前格式的第一行具有样本ID,其下有归一化的基因表达数据。另一个文件,表型表达式,在第一行中具有样本ID,表型表示为1 yes和2 no。但是,它仍然会失败,并显示相同的错误。
在R控制台中,我输入了这些命令。
#to install packages:
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install()
#select "yes" and update all
BiocManager::install(c("GenomicFeatures", "AnnotationDbi"))
#select "yes" and update all
BiocManager::install(c("limma","sva","pamr"))
#select "yes" and update all
#to load the previously installed packages:
library(sva)
library (pamr)
library(limma)
#setting up the data
mydata = read.csv("54samplescsv.csv" , sep = "," , header = TRUE)
#gene expression file
pheno = read.csv("pheno_R.csv" , sep = "," , header = TRUE)
#phenotype file
mydata[mydata == 0] <- NA
mod = model.matrix(~1 , data = pheno)
#executing ComBat
newdata = ComBat(dat = myData , batch = pheno$Batch , par.prior = TRUE , mod = mod)
#error occurs
Error in solve.default(crossprod(des), crossprod(des, y1)) :
Lapack routine dgesv: system is exactly singular: U[1,1] = 0
预期输出:
Found2batches 调整0个协变量或协变量水平 跨基因标准化数据 拟合L / S模型并找到先验 查找参数调整 调整数据
电流输出: 找到2批 调整0个协变量或协变量水平 找到503449缺少数据值 跨基因标准化数据 resolve.default(crossprod(des),crossprod(des,y1))中的错误: Lapack例行程序dgesv:系统完全是单个的:U [1,1] = 0