シーケンス ファイルは FASTA 形式のようです。などのツールを使用したカスタム解析ではなく、シーケンスの操作に特に適したツールを使用する必要がありますawk
。
ファイル形式が変わったら?フォーマット仕様に従って意味のあるデータを抽出したい場合はどうすればよいでしょうか? 構築済みのパーサーは、これらの質問に最適です。
私はバイオパイソンが好きです:
from Bio import SeqIO
records = SeqIO.parse("sequences.fasta", "fasta")
# Function borrowed from Tichodrama's answer
def avg(sequence):
v= {'A': 0.2, 'C': 0.48, 'R': 0.55, 'G': 0.5, 'H': 1.0,
'K': 0.4, 'M': 0.7, 'L': 0.14}
return sum(v[x] for x in sequence) / len(sequence)
for record in records:
print("Score for {}: {:.2f}".format(record.id, avg(record.seq)))
record
上記のそれぞれは、SeqRecord
解析された定義情報や配列アルファベットなどの有用な情報を含むオブジェクトであることに注意してください (たとえば、タンパク質配列と DNA 配列を区別します)。