美文网首页
mfuzz的exprs的报错

mfuzz的exprs的报错

作者: 可能性之兽 | 来源:发表于2022-11-20 19:05 被阅读0次

    最近在使用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
    

    这样就不会报错了

    相关文章

      网友评论

          本文标题:mfuzz的exprs的报错

          本文链接:https://www.haomeiwen.com/subject/arvwxdtx.html