我有一個腳本,排序FASTA序列,按字母順序>字符串。這裏是一個與單個輸入文件一起工作的代碼的例子35.fas。 FASTA文件的如何爲許多文件運行python腳本?
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")
例子:
>BAR
ATCG
>ABC
TCGA
正確的輸出:
>ABC
TCGA
>BAR
ATCG
所以,我想嘗試一下本作數百個文件,並試圖 'sys.argv中',但並沒有能夠這樣做。我不希望每個文件都有不同的輸出名稱作爲* -sorted。只想運行該腳本並對擴展名爲.fas的文件夾中的所有文件進行排序。 這裏是代碼不工作:
records = list(SeqIO.parse("sys.argv[0]", "fasta"))
records.sort(key=lambda x : x.id)
SeqIO.write(records, "sys.arg[0]-sorted.fas", "fasta")
' sys.argv'可能會被需要。你能證明你是如何嘗試使用它的嗎?你在使用什麼操作系統?如果您有數百個文件,則問題可能是命令行長度的限制。您可能需要指定目錄並讓Python代碼從中獲取文件。 – pcarter
我將代碼添加到問題中,並使用macOS。謝謝 – Ramon