如何使用rpy2中的生物导体?

我正在尝试使用rpy2中的生物导体(特别是seqLogo)。我找到了有用的软件包:


http://pythonhosted.org/rpy2-bioconductor-extensions/index.html


但是,当我从软件包的文档中尝试此操作时:


import rpy2.robjects as robjects

from rpy2.robjects.packages import importr

base = importr('base')


# evaluate locally a remote R script

base.source("http://www.bioconductor.org/biocLite.R")

base.require("biocLite")

bioclite = robjects.globalenv['biocLite']

我得到了错误


  File "/usr/local/lib/python2.7/dist-packages/rpy2-2.3.6-py2.7-linux-x86_64.egg/rpy2/robjects/environments.py", line 17, in __getitem__

    res = super(Environment, self).__getitem__(item)

LookupError: 'biocLite' not found

在我的系统上的R环境中,以下功能可以完美运行:


> require(seqLogo)

我想使用seqLogorpy2中已经安装的软件包。如何才能做到这一点?因为我已经安装了rpy2,所以我可以这样做:


>>> import bioc

但不确定如何从中安装新的生物导体软件包,如seqLogo bioc。


如果我尝试:


importr("seqLogo")

我得到了错误:


rpy2.rinterface.RRuntimeError: Error in loadNamespace(name) : there is no package called ‘seqLogo’

谢谢。


慕盖茨4494581
浏览 173回答 2
2回答

慕姐8265434

这意味着链接到的R安装rpy2与尝试使用R代码的一个用户不同(尽管我们不知道这是否是有意的)。如果运行上面的代码,它将在系统上的任何R安装rpy2中安装seqLogo [注:我在答案中的Python代码中编辑了注释,以使您清楚地知道仅应在第一次安装该软件包]。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python