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 > > tel: + 1 510 643 0164 > fax: + 1 510 643 2352 > > *********************************************************************** > >