我有一个包含序列的大文件;我只想分析最后一组字符,它们的长度是可变的。在每一行中,我希望将每个集合的第一个字符和最后一个字符放在文本文件中,并计算这些字符的总实例。如何计算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