各种报错

之前一直对软件包的报错没有认识,因为用的都是一些软件工程设计非常好的软件(BWA、Numpy等)。就算是用Python、Perl、R也都是用一些非常常见的包,所以很难碰到奇葩的报错,你随便怎么用都不会卡住,因为设计者早就料想到了各种情况。

但现在开始研究单细胞,大家都自立门户开发自己的包,实际情况是搞生信的人写代码的能力都不咋地,写出来的工具漏洞百出,真是折磨死我们这些使用者。

 

案例一:使用R的monocle包

在win10的Rstudio上跑该包的vignette文档,但卡在其中一步:

HSMM <- estimateSizeFactors(HSMM)
HSMM <- estimateDispersions(HSMM)

报错信息:

object 'rlang_mut_env_parent' not found

Google了好久都没有查到是什么问题,最后终于在一个角落找到了答案:

The most likely explanation is you have a new version of dplyr/tibble
and an old version of rlang. Try re-installing rlang.

Re: [R] tidyverse repeating error: "object 'rlang_mut_env_parent' not found"

 

案例二:函数报错

> percent.mito <- colSums(pbmc@raw.data[mito.genes, ]) / colSums(pbmc@raw.data)
Error in colSums(pbmc@raw.data[mito.genes, ]) : 
  'x' must be an array of at least two dimensions

之前跑明明没问题,这次就出错。

搞了好久才发现pbmc@raw.data[mito.genes, ]不是标准的matrix类型,怎么可以colSums()呢?

str()一下pbmc@raw.data[mito.genes, ],发现其是一种Matrix数据类型,后来无意间看到有一个Matrix::colSums函数,才明白是函数命名的覆盖问题。

所以同名函数的相互覆盖确实也是R的一个bug。

 

 

 

 

后面会持续总结~

posted @ 2017-08-29 21:47  Life·Intelligence  阅读(915)  评论(0编辑  收藏  举报
TOP