用oncoPredict进行药物敏感性分析,出现如下报错,不知道原因是什么,是否与数据中有缺失值有关

用oncoPredict进行药物敏感性分析,出现如下报错,不知道原因是什么,是否与数据中有缺失值有关


> library(parallel)
> set.seed(12345)
> expFile="merge.txt"     #?????????ļ?
> setwd("C:/Users/Desktop/40.oncoPredict")     
> rt = read.table(expFile, header=T, sep="\t", check.names=F)
> rt=as.matrix(rt)
> rownames(rt)=rt[,1]
> exp=rt[,2:ncol(rt)]
> dimnames=list(rownames(exp), colnames(exp))
> data=matrix(as.numeric(as.matrix(exp)), nrow=nrow(exp), dimnames=dimnames)
> data=avereps(data)
> data=data[rowMeans(data)>0.5,]
> colnames(data)=gsub("(.*?)\\_(.*?)", "\\2", colnames(data))
> GDSC2_Expr=readRDS(file='GDSC2_Expr.rds')
> GDSC2_Res=readRDS(file = 'GDSC2_Res.rds')
> GDSC2_Res=exp(GDSC2_Res) 
> calcPhenotype(trainingExprData = GDSC2_Expr,   
+               trainingPtype = GDSC2_Res,       
+               testExprData = data,          
+               batchCorrect = 'eb',            
+               powerTransformPhenotype = TRUE,
+               removeLowVaryingGenes = 0.2,     
+               minNumSamples = 10,             
+               printOutput = TRUE,         
+               removeLowVaringGenesFrom = 'rawData')

 10779  gene identifiers overlap between the supplied expression matrices... 
 


Error in if (class(exprMatUnique) == "numeric") { : 
  the condition has length > 1

“Devil组”引证GPT后的撰写:

  • 这个报错似乎不是由于数据中的缺失值引起的。这个报错是由于 calcPhenotype() 函数中的一个条件语句出现问题引起的。具体来说,报错指出条件语句的长度大于 1。这很可能是由于你的 GDSC2_Expr 数据中有重复的基因标识符导致的,因此函数无法正确处理这些重复项。你可以尝试使用 unique() 函数来去除重复的基因标识符。

例如,你可以在 GDSC2_Expr 数据中使用以下代码来去除重复项:

GDSC2_Expr <- GDSC2_Expr[!duplicated(rownames(GDSC2_Expr)), ]


如果这个方法不能解决你的问题,你可以检查你的数据是否有其他问题。另外,你也可以尝试在函数中使用调试语句(例如 browser() 或 debug())来查找错误的来源。