我有一個包含序列的大文件;我只想分析最後一組字符,它們的長度是可變的。在每一行中,我希望將每個集合的第一個字符和最後一個字符放在文本文件中,並計算這些字符的總實例。如何計算python中分區字符的出現次數?
這裏是文件中的數據的一個示例:
-1iqd_BA_0_CDRH3.pdb Kabat的H3 P DPDAFD V
-1iqw_HL_0_CDRH3.pdb Kabat的H3 Ñ RDYSNNWYFD V
我想取「H3」和最後一個字符後面的第一個字符(在例子中都用粗體表示)。 爲這兩條線的輸出應爲:
第一計數器({ 'N':1, 'P':1})
最後計數器({ 'V':2})
這是我迄今所做的:
f = open("C:/CDRH3.txt", "r")
from collections import Counter
grab = 1
for line in f:
line=line.rstrip()
left,sep,right=line.partition(" H3 ")
if sep:
AminoAcidsFirst = right[:grab]
AminoAcidsLast = right[-grab:]
print ("first ",Counter(line[:] for line in AminoAcidsFirst))
print ("last ",Counter(line[:] for line in AminoAcidsLast))
f.close()
這僅打印數據的最後一行看起來的數,如:
first Counter({'N': 1})
last Counter({'V': 1})
如何計算文件中所有行中的所有這些字符? 備註: 打印(AminoAcidsFirst)或(AminoAcidsLast)給出了所有垂直行的列表,但我無法對其進行計數或將其輸出到文件。寫入新文件只會寫入原始文件最後一行的字符。 謝謝!
你需要保持第一個和最後一個字符的計數是分開還是可以在同一個計數器中? – wwii 2015-03-03 18:03:21