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