Hi Tiago,
easy, two steps:
1) Save the lines between *** into a file say called run.py:
***
import os,sys
from mmtbx.monomer_library import pdb_interpretation
from mmtbx import monomer_library
import mmtbx.monomer_library.server
from cStringIO import StringIO
def exercise(args):
file_name = args[0]
mon_lib_srv = monomer_library.server.server()
ener_lib = monomer_library.server.ener_lib()
processed = monomer_library.pdb_interpretation.process(
mon_lib_srv = mon_lib_srv,
ener_lib = ener_lib,
file_name = file_name,
keep_monomer_mappings = True,
log = StringIO())
for monomer_mapping in processed.all_chain_proxies.all_monomer_mappings:
ma = monomer_mapping.missing_non_hydrogen_atoms.keys()
if(len(ma)>0):
print monomer_mapping.pdb_residue_id_str, "Missing atoms:", ma
if (__name__ == "__main__"):
exercise(sys.argv[1:])
***
2) Run it from the command line as:
phenix.python run.py model.pdb
and it will list you incomplete residues and missing atoms, just like this:
pdbres="ASP A 1 " segid="A " Missing atoms: ['C', 'OD1', 'CA', 'CG', 'O', 'N', 'OD2']
pdbres="THR A 5 " segid="A " Missing atoms: ['C', 'CB', 'CA', 'OG1', 'O', 'N', 'CG2']
pdbres="THR A 10 " segid="A " Missing atoms: ['C', 'CG2', 'OG1', 'O']
pdbres="SER A 12 " segid="A " Missing atoms: ['CA', 'N']
Let me know if you need any help with this.
Pavel.
P.S.: You need to have PHENIX installed.
On Tue, Aug 23, 2011 at 12:19 PM, Tiago Barros
<[log in to unmask]> wrote:
Dear all,
Does anyone know a program that will check a PDB file for missing atoms and output a list of the corresponding residues?
Many thanks in advance,
Tiago
***********************************************************************
Tiago Barros, PhD
Kuriyan lab - Molecular and Cellular Biology
University of California, Berkeley
527 Stanley Hall, QB3
Berkeley, CA 94720-3220
USA
***********************************************************************