2016-04-07 7 views
2

Ich habe Probleme beim Laden der R-Paket edgeR in Python mit rpy2.Python rpy2 Fehler beim Laden von edgeR R-Paket, aber es ist installiert und funktioniert in R

Wenn ich laufen:

import rpy2.robjects as robjects 

robjects.r(''' 
    library(edgeR) 
''') 

Ich erhalte die folgende Fehlermeldung:

/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py:106: UserWarning: Loading required package: limma 

    res = super(Function, self).__call__(*new_args, **new_kwargs) 
/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py:106: UserWarning: Error in dyn.load(file, DLLpath = DLLpath, ...) : 
    unable to load shared object '/data/scratch/user/source/anaconda/lib/R/library/edgeR/libs/edgeR.so': 
    /data/scratch/user/source/anaconda/lib/R/library/edgeR/libs/edgeR.so: undefined symbol: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev 

    res = super(Function, self).__call__(*new_args, **new_kwargs) 
/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py:106: UserWarning: Error: package or namespace load failed for ‘edgeR’ 

    res = super(Function, self).__call__(*new_args, **new_kwargs) 
Traceback (most recent call last): 
    File "differential_expression.py", line 221, in <module> 
    diff_expr_object.run_edgeR() 
    File "differential_expression.py", line 127, in run_edgeR 
    probs = call_edger(data, groups, sizes, genes) 
    File "differential_expression.py", line 64, in call_edger 
    ''') 
    File "/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/__init__.py", line 321, in __call__ 
    res = self.eval(p) 
    File "/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py", line 178, in __call__ 
    return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs) 
    File "/home/user/.local/lib/python2.7/site-packages/rpy2/robjects/functions.py", line 106, in __call__ 
    res = super(Function, self).__call__(*new_args, **new_kwargs) 
rpy2.rinterface.RRuntimeError: Error: package or namespace load failed for ‘edgeR’ 

Das Hauptproblem Wesen:

rpy2.rinterface.RRuntimeError: Error: package or namespace load failed for ‘edgeR’ 

Allerdings, wenn ich folgendes ausgeführt:

R 
> library(edgeR) 
> sessionInfo() 
R version 3.2.2 (2015-08-14) 
Platform: x86_64-pc-linux-gnu (64-bit) 
Running under: CentOS release 6.5 (Final) 

locale: 
[1] LC_CTYPE=en_ZA.UTF-8  LC_NUMERIC=C    
[3] LC_TIME=en_ZA.UTF-8  LC_COLLATE=en_ZA.UTF-8  
[5] LC_MONETARY=en_ZA.UTF-8 LC_MESSAGES=en_ZA.UTF-8 
[7] LC_PAPER=en_ZA.UTF-8  LC_NAME=C     
[9] LC_ADDRESS=C    LC_TELEPHONE=C    
[11] LC_MEASUREMENT=en_ZA.UTF-8 LC_IDENTIFICATION=C  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] edgeR_3.12.0 limma_3.26.9 
> 

Ich kann sehen, edgeR ist erfolgreich installiert und läuft in R. Warum würde es in Python nicht funktionieren? Ich habe versucht, andere Pakete von rpy2 z.B. library(tools) das hat gut funktioniert.

+0

Überprüfen Sie, ob das R installieren ist die gleiche anaconda installieren, so etwas wie 'der R' in der Kommandozeile. Wenn dies nicht der Fall ist, müssen Sie in R (~ anaconda/bin/R) von Anaconda erneut edgeR installieren. – tbrittoborges

Antwort

1

eine Lösung gefunden ...

Da die Versionen von R und r-base, die ich installiert bin mit conda verwenden, behebt den Fehler edgeR obwohl die gleichen Kanäle installieren. laufen

einfach:

conda install --channel https://conda.anaconda.org/bioconda bioconductor-edger

1

Der Fehler ist:

UserWarning: Error in dyn.load(file, DLLpath = DLLpath, ...) : 
    unable to load shared object '/data/scratch/user/source/anaconda/lib/R/library/edgeR/libs/edgeR.so': 
/data/scratch/user/source/anaconda/lib/R/library/edgeR/libs/edgeR.so: undefined symbol: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev 

Die C-Bibliothek für EDGER kann nicht geladen werden. Haben Sie die Details, wie R und EdgeR installiert wurden? (Ich kann sehen, dass Anakonda beteiligt ist).

Verwandte Themen