を引き抜きます。私はFASTA配列を含む大きなファイル(1つのヘッダおよびヘッダ以下の配列の1本のライン)とラインとの間に他のランダムジャンクと未組織間隔で読みたいだけFASTA配列パイソン
それぞれの行を読み込み、行が ">"記号で始まる場合(これは、fastaシーケンスヘッダーの開始方法です)、そのヘッダーをシーケンスとなる次の行と共に引き出します。
私は示すための小さな例のデータファイルを持っている:私のコード
> 1
GCTAGCGCCACCatgactcccgcatttatcttgtgcatgctctt
>2
GCTAGCACCATGGAGACAGACACACTCCTGCTATGGGTACTGCTGCTCTG
>3
GCTAGCACCATGGAGACAGACACACTCCTGCTATG
Task 2: Subclone the synthesized
junk
junk
>4
GCTAGCACCATGGAGACAGAC
を:
f=open("File.fasta", "r")
fastaseq = open("OnlyFastaseq.fasta", "w")
for line in f:
line = line.strip('\n')
if line.startswith(">"):
title = line.rstrip()
seq = f.readline()
seq = seq.rstrip()
fastaseq.write(title+"\n"+seq+"\n")
所望の出力:
> 1
GCTAGCGCCACCatgactcccgcatttatcttgtgcatgctctt
>2
GCTAGCACCATGGAGACAGACACACTCCTGCTATGGGTACTGCTGCTCTG
>3
GCTAGCACCATGGAGACAGACACACTCCTGCTATG
>4
GCTAGCACCATGGAGACAGAC
結果は、ヘッダのほとんどが含まれています+シーケンス、 '> 3'シーケンス以外はは、次の行(シーケンス)を引き出しませんでした。
> 1
GCTAGCGCCACCatgactcccgcatttatcttgtgcatgctctt
>2
GCTAGCACCATGGAGACAGACACACTCCTGCTATGGGTACTGCTGCTCTG
>3
>4
GCTAGCACCATGGAGACAGAC
あなたが入力を反復処理し、その行を書く
>
で始まる行と入力ファイルからの
next
、例えば発見することにより、これらを除外でき
小警告:FASTA配列はしばしば80ヌクレオチド/アミノ酸のラインで分割され、従って複数の配列を有する配列を有することができる。この特定のケースでは、コードは完全に正常に動作します。より長いシーケンスの場合、部分シーケンスを返す可能性があります。 –
@Ashafix興味深い - それに感謝します。私は確認されませんでした - それは問題として起動しますならば、私は私がbiopythonを提案するつもりだった(と私は前の質問のこれらの種類に遭遇してきたかなり確信している)の答え:) –