mfuzz的exprs的报错

最近在使用mfuzz这个包的时候总是出现这个错误,让我非常的纳闷,因为这个包从来都没有报错过,但是现在总是出现这种错误,这是什么鬼原因?谷歌了半天找到的相关报错却是牛唇不对马嘴,不是我要找的答案。那么只有自己动手了。

dfdataEx<- ExpressionSet(assayData =as.matrix(marker_exp))
dfdataF <- filter.NA(dfdataEx,thres = 0.25) ###运行这一句的时候会出现下面的错误
unable to find an inherited method for function ‘exprs’ for signature ‘"ExpressionSet"’

尝试一句句运行

> filter.NA
function (eset, thres = 0.25) 
{
    index <- logical(dim(exprs(eset))[1])
    for (i in 1:dim(exprs(eset))[1]) {
        index[i] <- (((sum(is.na(exprs(eset)[i, ]))/dim(exprs(eset))[2])) > 
            thres)
    }
    cat(paste(sum(index), "genes excluded.\n"))
    eset[!index, ]
}
<bytecode: 0x558d79cbc010>
<environment: namespace:Mfuzz>

发现第一句exprs(eset)里面有问题,那么就是这个exprs有问题了

> exprs

standardGeneric for "exprs" defined from package "monocle3"

function (x) 
standardGeneric("exprs")
<bytecode: 0x558d8f7cea58>
<environment: 0x558d8f7cb660>
Methods may be defined for arguments: x
Use  showMethods("exprs")  for currently available ones.

于是看到exprs竟然来自monocle3,这就是关键原因了。之前没有报错是因为在这个服务器上没有安装过monocle3,但是前段时间安装后之后就出现了问题,因为它重写了exprs的这个函数,所以这个函数没法操作相应的expressionset自然是必然的。要纠正这一点也很简单

exprs=Biobase::exprs

这样就不会报错了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容