현재 모든 잔여 물 번호를 얻기 위해 pymol의 반복을 사용하고 있습니다. 그런 다음 나머지를 사용하여 잔여 물 이름을 검색합니다. 나는 그것이 그것이하는 최선의 방법이라고 생각하지 않는다. biopython에서 아무 소용이없는 방법을 찾으려고 노력했습니다. 귀하의 의견과 제안에 감사드립니다.Biopython PDB 모듈에서 잔기 번호와 잔기 이름 얻기
가끔씩 chain [i] .resname까지도 KeyError : ('', 'number', '')를 특정 잔차와 함께 사용하면 try 및 except 블록을 사용할 수 있습니다. 어떤 대안? API를보고에서
from Bio import *
from Bio.PDB.PDBParser import PDBParser
from Bio.PDB.Polypeptide import PPBuilder
structure = PDBParser().get_structure('5bmy', '5bmy.pdb')
model = structure[0]
chain = model['A']
import __main__
__main__.pymol_argv = ['pymol','-qc']
import pymol
from pymol import cmd, stored
pymol.finish_launching()
cmd.load('5bmy.pdb') # use the name of your pdb file
stored.residues = []
cmd.iterate('name ca', 'stored.residues.append(resi)')
numbers = [ int(x) for x in stored.residues ]
for i in numbers:
print (chain[i].resname)
그냥 제안, 당신은 biostars에 게시 할 수도 있습니다, 그들은 이런 종류의 일을 위해보다 적극적인 커뮤니티가 있습니다. – nbryans