【问题标题】:How to use bioconductor from rpy2?如何使用rpy2的生物导体?
【发布时间】:2013-06-04 21:48:07
【问题描述】:

我正在尝试使用 rpy2 中的 bioconductor(特别是 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)

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

>>> import bioc

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

如果我尝试:

importr("seqLogo")

我得到错误:

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

谢谢。

【问题讨论】:

    标签: python r rpy2 bioconductor


    【解决方案1】:

    Bioconductor 项目对其软件包安装程序的内部结构进行了一些更改。以下应该有效:

    from rpy2.robjects.packages import importr
    
    # do the following _only the first time_, to install the package seqLogo
    base = importr('base')
    base.source("http://www.bioconductor.org/biocLite.R")
    biocinstaller = importr("BiocInstaller")
    biocinstaller.biocLite("seqLogo")
    
    # load the installed package "seqLogo"
    seqlogo = importr("seqLogo")
    

    否则,rpy2 的 bioconductor 扩展已经有一段时间没有更新了。可能还有其他需要修复的地方。

    【讨论】:

    • @user248237dfsf 说已经安装了 seqLogo,所以如果没有上述内容,importr("seqLogo") 不应该工作吗?我想交互式 R 的库路径与 rpy 使用的 R 有什么关系?如果尚未安装 seqLogo,则此答案似乎合适。
    • @MartinMorgan 很好的观察。这意味着 rpy2 链接到的 R 安装不同于 user248237dfsf 正在尝试使用 R 代码(尽管我们不知道这是否是故意的)。如果运行上面的代码,它将在系统上找到的任何 R 安装 rpy2 中安装 seqLogo [注意:我在答案中编辑了 Python 代码中的注释,以明确(呃)安装包应该只在第一次完成].
    • 我正在尝试上面的代码得到以下错误 ....RRuntimeError: Error in install.packages("BiocInstaller", repos = a["BioCsoft", "URL"]) : 无法安装包
    猜你喜欢
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2020-04-15
    • 2019-10-21
    相关资源
    最近更新 更多