2017-05-02 6 views
-1

Ich versuche, mit Muskel einige Beispielsequenzen von opuntia.fasta (from BioPython manual)Align mit Muscle (biopython)

from Bio.Align.Applications import MuscleCommandline 
in_file = "C:/Try/opuntia.fasta" 
out_file = "C:/Try/aligned.fasta" 
muscle_exe = "C:/Program Files/Aligments/muscle3.8.31_i86win32.exe" 
cline = MuscleCommandline(muscle_exe, input=in_file, out=out_file) 
stdout, stderr = cline(in_file) 
from StringIO import StringIO 
from Bio import AlignIO 
align = AlignIO.read(StringIO(stdout), "fasta") 
print(align) 

ich nicht in C etwas auszurichten:/Try /.

Fehlermeldung:

Traceback (most recent call last): 
    File "C:/Try/try.py", line 6, in <module> 
    stdout, stderr = cline() 
    File "C:\Python27\lib\site-packages\Bio\Application\__init__.py", line 517, in __call__ 
    stdout_str, stderr_str) 
ApplicationError: Non-zero return code 1 from '"C:\\Program Files\\Aligments\\muscle3.8.31_i86win32.exe" -in C:/Try/opuntia.fasta -out C:/Try/aligned.fasta' message '\x91\xa8\xe1\xe2\xa5\xac\xa5 \xad\xa5 \xe3\xa4\xa0\xa5\xe2\xe1\xef \xad\xa0\xa9\xe2\xa8 \xe3\xaa\xa0\xa7\xa0\xad\xad\xeb\xa9 \xaf\xe3\xe2\xec.' 

Was mache ich falsch? Python 2.7.10

+3

Was passiert, wenn Sie '"C: \\ Programme \\ Aligments \\ muscle3.8.31_i86win32.exe" eingeben - in C: /Try/opuntia.fasta --out C: /Try/aligned.fasta' on die Befehlszeile? Wenn dies auch mit einem Rückgabecode ungleich Null beendet wird, liegt ein Problem mit Muscle vor, nicht mit Python. – heathobrien

Antwort

0

BioPython MuscleCommandline ist nur ein Wrapper für die ausführbare Muscle. Sie müssten es von hier herunterladen http://www.drive5.com/muscle/downloads.htm und installieren Sie es. In Ihrem Fall (Windows-Betriebssystem) müssten Sie die exe an einen bestimmten Speicherort kopieren und in Ihrer Variablen muscle_exe darauf verweisen.

+0

Danke, aber eigentlich habe ich muscle3.8.31_i86win32.exe im entsprechenden Ordner. Es funktioniert einfach nicht. – lizaveta

+1

Probieren Sie @ heathobriens Vorschlag aus und veröffentlichen Sie die Ergebnisse. –

0

Ich fand heraus, was das Problem war. Zunächst Pfade zu allen Dateien sollten und zweite relativ sein, ich ersetzt

align = AlignIO.read(StringIO(stdout), "fasta") 

mit

align = AlignIO.read(out_file, "fasta") 

und es funktionierte!