Print

Print


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

***********************************************************************