在Python Jupyter笔记本中使用rpy2安装Bioconductor软件包

时间:2019-02-14 16:42:16

标签: python jupyter-notebook bioconductor

我正在尝试在Python Jupyter笔记本中使用rpy2从Bioconductor安装“ pcaMethods”。

这是我尝试过的

from rpy2.robjects.packages import importr
utils = importr('utils')
utils.install_packages('mice') # all of this works
base = importr('base')
base.source("http://www.bioconductor.org/biocLite.R")
biocinstaller = importr("BiocInstaller") # this doesn't work
biocinstaller.biocLite("pcaMethods") # this doesn't work

# load the installed package
pcaMethods = importr("pcaMethods")

这是我尝试安装pcaMethods时遇到的错误:

Error in if (answer %in% allowed) break : argument is of length zero

有人知道我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

此介绍来自以下SO question

“参数的长度为零”是一个非常具体的问题,来自我最不喜欢的R元素之一。让我演示一下这个问题:

> FALSE == "turnip"
[1] FALSE
> TRUE == "turnip"
[1] FALSE
> NA == "turnip"
[1] NA
> NULL == "turnip"
logical(0)

如您所见,与NULL的比较不仅不产生布尔值,而且根本不产生值-控制流倾向于期望检查将产生某种输出。当它们产生零长度的输出时...“参数长度为零”。

从这里开始,看来您的一行人唤起了这种行为。 我猜交互式R和从rpy使用的R的库路径有些不同,在您的情况下不匹配。

还需要注意的是,在第一次执行代码期间,您仅应执行一次安装过程:

base.source("http://www.bioconductor.org/biocLite.R")
biocinstaller = importr("BiocInstaller") # this doesn't work
biocinstaller.biocLite("pcaMethods") # this doesn't work

以后您只需要加载程序包

# load the installed package
pcaMethods = importr("pcaMethods")