Logo Search packages:      
Sourcecode: python-biopython version File versions  Download package

test_PDB.py

# Copyright (C) 2002, Thomas Hamelryck (thamelry@vub.ac.be)
# This code is part of the Biopython distribution and governed by its
# license.  Please see the LICENSE file that should have been included
# as part of this package.  

import sys
# Redirect stderr so user does not see warnings

class TheVoid:
    # Class to hide stderr output
    def write(self, string):
        pass

def run_test():
      from Bio.PDB import PDBParser, PPBuilder, CaPPBuilder


      # first make a PDB parser object
      p=PDBParser(PERMISSIVE=1) 

      # get the structure, call it "example"
      structure=p.get_structure("example", "PDB/a_structure.pdb")

      # now loop over content and print some info
      for model in structure.get_list():
            model_id=model.get_id()
            print "Model %i contains %i chains." % (model_id, len(model))
            for chain in model.get_list():
                  chain_id=chain.get_id()
                  print "\tChain '%s' contains %i residues." % (chain_id, len(chain))
                  for residue in chain.get_list():
                        residue_id=residue.get_id()
                        hetfield, resseq, icode=residue_id
                        print "\t\tResidue ('%s', %i, '%s') contains %i atoms." % (hetfield, resseq, icode, len(residue))
                        # check if there is disorder due to a point mutation --- this is rare
                        if residue.is_disordered()==2:
                              print "\t\t\tThere is a point mutation present in the crystal at this position."
                              s="\t\t\tResidues at this position are "
                              for resname in residue.disordered_get_id_list():
                                    s=s+resname+" "
                              print s[:-1]+"."
                        # count the number of disordered atoms
                        if residue.is_disordered()==1:
                              disordered_count=0
                              for atom in residue.get_list():
                                    if atom.is_disordered():
                                          disordered_count=disordered_count+1
                              if disordered_count>0:
                                    print "\t\t\tThe residue contains %i disordered atoms." % disordered_count


      print "Polypeptides using C-N"
      ppb=PPBuilder()
      for pp in ppb.build_peptides(structure[1]):
            print pp

      print "Polypeptides using CA-CA"
      ppb=CaPPBuilder()
      for pp in ppb.build_peptides(structure[1]):
            print pp

                              

old_stderr = sys.stderr
# Hide stderr output for user
sys.stderr=TheVoid()
try:
      run_test()
finally:
      sys.stderr = old_stderr

Generated by  Doxygen 1.6.0   Back to index