Ich habe ein Skript, das FASTA Sequenzen sortiert, alphabetisch basierend auf Strings nach>. Hier ist ein Beispiel für Code, der mit einer einzigen Eingabedatei 35.fas arbeitet.Wie führe ich das Python-Skript für viele Dateien aus?
import os, sys
import argparse
from Bio import SeqIO
records = list(SeqIO.parse("35.fas", "fasta"))
records.sort(key=lambda x : x.id)
SeqIO.write(records, "35-sorted.fas", "fasta")
Beispiel fasta Datei:
>BAR
ATCG
>ABC
TCGA
korrekte Ausgabe:
>ABC
TCGA
>BAR
ATCG
Also, ich möchte dies für Hunderte von Dateien, um zu versuchen und versuchten 'sys.argv' war aber nicht dazu in der Lage. Ich möchte keinen anderen Ausgabenamen als * -sortiert für jede Datei haben. Ich möchte nur das Skript ausführen und alle Dateien in einem Ordner mit der Erweiterung .fas sortieren. Hier ist hat der Code nicht:
records = list(SeqIO.parse("sys.argv[0]", "fasta"))
records.sort(key=lambda x : x.id)
SeqIO.write(records, "sys.arg[0]-sorted.fas", "fasta")
'würde sys.argv' wird wahrscheinlich benötigt. Kannst du zeigen, wie du es benutzt hast? Welches Betriebssystem verwenden Sie? Das Problem könnte eine Begrenzung der Länge der Befehlszeile sein, wenn Sie Hunderte von Dateien haben. Möglicherweise müssen Sie das Verzeichnis angeben und der Python-Code die Dateien davon abrufen lassen. – pcarter
Ich habe den Code zur Frage hinzugefügt und verwende macOS. Danke – Ramon