私の理解が正しければ、潜在的な複数行配列の最初の 17 文字からのみプライマーを削除する必要があります。あなたが求めるものはもう少し難しいです。はい、簡単な解決策はありますが、状況によっては失敗する可能性があります。
私の提案は、 Biopythonを使用して FASTA ファイルの解析を実行することです。チュートリアルからそのまま
from Bio import SeqIO
handle = open("ls_orchid.fasta")
for seq_record in SeqIO.parse(handle, "fasta") :
print seq_record.id
print repr(seq_record.seq)
print len(seq_record)
handle.close()
次に、最初の 17 文字を削除してシーケンスを書き直します。私の現在のマシンには biopython がインストールされていませんが、チュートリアルを見ると、合計で 15 行以上のコードは必要ありません。
筋金入りで手動でやりたい場合は、次のようにする必要があります(最初のポスターから変更)
f = open('sequence.fsa')
first_line = False
for line in f.xreadlines():
if line[0] == ">":
first_line=True
print line,
else:
if first_line:
print line[17:],
else:
print line,
first_line = False