我是一个生物学家,我在编程方面还是个新手,但现在我正在努力提高;我的背景不是信息学。在
我陷入了一个难题。在
我们有一些关于分子的信息,每一条以原子开头的线代表整个分子中的一个原子。例如,前两行:
ATOM 1 N ARG A 1 0.609 18.920 11.647 1.00 18.79 N
ATOM 2 CA ARG A 1 0.149 17.722 10.984 1.00 13.68 C
我们应该计算不同原子的数量;更确切地说,是每行的最后一项(C
或{
我们已经有了驱动我们并提取最后一个项目的函数,但我在这一点上很难理解,因为我们应该编写代码,就好像我们还不知道会找到哪个原子一样(尽管我们知道,因为我们有完整的列表,我们有N
,C
,O
和{
我们有代码:
^{pr2}$molecule
表示整个列表。在
希望我能理解你的意思,但是你想数一数字符串最后一个字符的出现次数?在
输出:
^{pr2}$虽然所有的答案在Python中都是正确的,但是我们有来自PDB file的行:
记录格式
对于像}。在
SE
lenium这样存在于大量蛋白质结构中的元素,这两个特征都需要考虑到,否则它将变成S
ulfur或{如果您不想自己处理整个解析问题,可以将BioPython's PDB模块与上述任何解决方案结合使用。在
^{pr2}$欢迎来到Python!在
Python有许多处理常见问题的有用模块。在
要解决您的问题,您可以从
collections
导入Counter
:line.split()[-1]
获取行的最后一个单词,以防元素具有较长的化学符号,splitlines()
将这些行彼此分隔开来。在
^{pr2}$Counter
可以相互加减,这可能对您有用:这不仅会给你不同原子的数量,也会给你整个分子出现的数量。 不同原子的数量可以通过取
len
的Counter
来检索:更详细的例子:
相关问题 更多 >
编程相关推荐