【发布时间】:2015-05-03 15:31:39
【问题描述】:
我有一个包含序列的大文件;我只想分析最后一组字符,它们恰好是可变长度的。在每一行中,我想获取文本文件中每个集合的第一个字符和最后一个字符,并计算这些字符的总实例数。
以下是文件中数据的示例:
-1iqd_BA_0_CDRH3.pdb kabat H3 PDPDAFDV
-1iqw_HL_0_CDRH3.pdb kabat H3 NRDYSNNWYFDV
我想取“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) 给出了所有垂直行的所需列表,但我无法对其进行计数或将其输出到文件中。写入新文件只会写入原始文件最后一行的字符。 谢谢!
【问题讨论】:
-
您是否需要将第一个字符和最后一个字符的计数分开,或者它们可以在同一个计数器中?
标签: python list counter partition