2016-04-12 24 views
1

私は生物中に何千ものタンパク質を含むファイルを扱っています。私は個々のタンパク質をひとつずつ調べてアミノ酸の頻度を決定するコードを持っています。一度にすべてのアミノ酸の頻度を決定できるように私の現在のコードを変更する方法がありますか?アミノ酸の操作

+0

:小さなことファイルの例

。私の最初のアイデアは、辞書に「protein_location」でデータをグループ化し、関連する頻度でその場所のリストを使用することです。しかし、私はあなたが何を話しているのか、それがどのような生物学的意味を生み出すために実際に提示される必要があるのか​​分かりません。 –

答えて

1

IIUCでは、ホイールを少し改革しています。BioPythonには、さまざまな形式のファイル(あなたのケースではFASTA)を扱うユーティリティと簡単な分析が含まれています。あなたの例では、私はこのようなものを使用したい:

from Bio import SeqIO  
from Bio.SeqUtils.ProtParam import ProteinAnalysis 

for seq_record in SeqIO.parse("protein_x.txt", "fasta"): 
    print(seq_record.id), ProteinAnalysis(repr(seq_record.seq)).get_amino_acids_percent().items() 
0

を答えはイエスですが、私達にあなたのコードを表示せずに、私たちは多くのフィードバックを与えることはできません。本質的には、FASTAの記録を読む間にアミノ酸の数を維持したいと考えています。確率を求めたい場合は、ループの外側でそれらを合計し、最後にのみ分割します。これは、Pythonの "カウントディクショナリ"やハッシュ/ディクティックの値をインクリメントすることなく、簡単に実行できます。あなたが望むのは、ファイル内の '>'で始まらない行の文字レベルカウントだけであるので、これを行う多くのコマンドラインツールがありそうです。あなたは、それが結果にどのように見えるべきかについての詳細を与えたいと思うかもしれません

grep -v '^>' yourdata.fa | perl -pe 's/(.)/$1\n/g' | sort | uniq -c