Biopython blastall / formatdb

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Hallo!

Vielleicht kennt sich ja jemand mit Biopython aus...

Ich habs wie in der Doku installiert und nach Eingabe von blastall oder formatdb in der Eingabeaufforderung bekomm ich auch die Parameter angezeigt. Kann ich davon ausgehen, dass es richtig installiert ist?

Dann wollte ich ein fasta File in eine formatdb umwandeln (formatdb -p F -i all_seqs.fasta -n customBLASTdb), er tut auch irgendwas aber ich bekomme weder Output Files noch eine Fehlermeldung. Mir hat dann schnell ein Kollege unter Unix meine Datenbank erstellt, damit ich weiter probieren konnte.

Jetzt wollt ich gegen diese Datenbank blasten (wie in der Doku beschrieben):

Code: Alles auswählen

from Bio.Blast import NCBIStandalone

my_blast_db = "C:\\primerdb"
my_blast_file = "test.fasta"
my_blast_exe = "C:\\blast-2.2.15\\bin\\blastall"

result_handle, error_info = NCBIStandalone.blastall(my_blast_exe, "blastn",
my_blast_db, my_blast_file)
Und bekomme aber folgende Fehlermeldung...

Traceback (most recent call last):
File "C:/Dokumente und Einstellungen/lueck.IPK-GATERSLEBEN/Desktop/blast.py", line 8, in <module>
my_blast_db, my_blast_file)
File "C:\Python25\Lib\site-packages\Bio\Blast\NCBIStandalone.py", line 1499, in blastall
raise ValueError, "blastall does not exist at %s" % blastcmd
ValueError: blastall does not exist at C:\blast-2.2.15\bin\blastall

...obwohl sich blastall unter dem Pfad befindet.

Meine Frage:
hat jemand formatdb und blastall unter Windows zum Laufen bekommen?

Wenn ja, wie?
Stefanie
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Versuch mal

Code: Alles auswählen

my_blast_exe = r"C:\blast-2.2.15\bin\blastall.exe"
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Hätt ich selbst wissen müssen, sorry :oops:

Leider bekomm ich wieder keinen Output...

Kurze Frage:

Warum muss man unter Unix read nicht mit angeben?
Bezieh mich mal auf die Doku:

my_blast_exe = "/usr/local/blast/bin/blastall"
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

ete hat geschrieben: Warum muss man unter Unix read nicht mit angeben?
Was meinst Du mit 'read'? Wenn Du auf das 'C:\' vs. '/' abziehlst: '/' ist unter Linux / Unix das 'root'-Verzeichnis und andere Laufwerke werden als andere mountpoints eingegliedert, mein USB-Flash, gerade z. B. als '/media/disk/'.

Gruß,
Christian
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ete hat geschrieben:Warum muss man unter Unix read nicht mit angeben?
Bezieh mich mal auf die Doku:

my_blast_exe = "/usr/local/blast/bin/blastall"
Was meinst du mit `read`? Etwa die `.exe`-Erweiterung? Naja, unter Unices gibt es die einfach nicht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Ich meinte dir r/w/rw Aufrufe vor dem Path. Braucht man die unter Unix nicht?

lg
BlackJack

Welche r/w/rw-Aufrufe? Falls Du das kleine r vor der Zeichenkette meinst, das ist kein Aufruf sondern kennzeichnet die Zeichenkette als "raw", d.h. Backslashes haben in dem Zeichenkettenliteral keine besondere Bedeutung, sondern sind einfach nur Backslashes. "Berühmtes" Beispiel:

Code: Alles auswählen

In [77]: print 'C:\\foo\new\test.txt'
C:\foo
ew      est.txt

In [78]: print r'C:\\foo\new\test.txt'
C:\\foo\new\test.txt

In [79]: print 'C:\\\\foo\\new\\test.txt'
C:\\foo\new\test.txt
Bei 77 haben wir einen Backslash statt zwei einen Zeilenumbruch statt eines Backslash und eines 'n' und ein Tabulatorzeichen statt Backslash und 't'. Mit dem kleinen r vor der Zeichenkette sind die Backslashes dann wirklich welche (78). Alternativ kann man auch alle Backslashes "escapen", also verdoppeln (79). Macht aber mehr Arbeit.

Das ist also keine direkte Frage von Windows oder Linux, sondern wie das Zeichenkettenliteral vom Compiler verarbeitet werden soll. Da die in Linux-Pfaden in der Regel nicht vorkommen, sieht man dort das r nur sehr selten.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack, bei normalen Pfaden braucht man unter Windows nach dem Laufwerk keinen doppelten Slash. :) Das ist nur für UNC-Pfade notwendig (wobei.. notwendig.. müsste man mal probieren.. es ist auf jeden Fall nur dort üblich).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Hach ja, das ist bei mir schon so lange her… :-)
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

aha, danke :)
Antworten