ich mit vielen Sequenzen wie folgt eine fasta Datei haben:fasta Sequenz Automatisieren abrufen für viele Dateien
>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG
>gi|2765659|emb|Z78553.1|CIZ78553 C.irapeanum 5.8S rRNA gene
AATTTCAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG
>gi|2765668|emb|Z78531.3|CIZ78531 C.irapeanum 5.8S rRNA gene
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
Auch
, ich habe ein id.file mit einigen Gen-IDs, die ich die Sequenzen aus dem fasta abrufen möchten Datei und die Ausgabe mit entsprechenden Gene und Sequenzen erhalten, zum Beispiel:
gi|2765658|emb|Z78533.1|CIZ78533
gi|2765659|emb|Z78553.1|CIZ78553
Mein output sein wird:
>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene
CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG
>gi|2765659|emb|Z78553.1|CIZ78553 C.irapeanum 5.8S rRNA gene
AATTTCAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG
Aber ich habe viele id.files (500 Dateien - idfile1.txt idfile2.txt, idfile3.txt, etc.) mit verschiedenen Gruppen von Genen, und ich habe ein Python-Skript, diesen Job für nur eine Datei zu einem Zeitpunkt zu tun, aber Ich würde es gerne für meine 500 Dateien gleichzeitig machen. Mein Python-Skript ist:
#!/usr/bin/python
from Bio import SeqIO
fasta_file = "fastafile.fa" # Input fasta file
wanted_file = "idfile1.txt" # Input interesting sequence IDs, one per line
result_file = "out1.fasta" # Output fasta file
wanted = set()
with open(wanted_file) as f:
for line in f:
line = line.strip()
if line != "":
wanted.add(line)
fasta_sequences = SeqIO.parse(open(fasta_file),'fasta')
with open(result_file, "w") as f:
for seq in fasta_sequences:
if seq.id in wanted:
SeqIO.write([seq], f, "fasta")
Wie kann ich eine Schleife dafür machen? Ich habe nur eine Fasta-Datei, aber viele ID-Dateien. Ich bin neu in Python, also bin ich mir nicht sicher, wie es geht. Oder vielleicht kann ich ein Shell-Skript mit einer Schleife für dieses Skript ausführen? Ich bin mir nicht sicher, weil ich die Dateinamen darauf einfügen muss.
Irgendwelche Vorschläge?
Meinst du diesen Teil in meinem ursprünglichen Skript hinzufügen? Beim Betteln?Und wie wäre es mit den Dateinamen in meinem Skript (gewünschte Datei und Ausgabe?) – Paul
@Anna Ich werde bearbeiten, um es klar zu machen. – mikuszefski