Class StructurePairAligner

java.lang.Object
org.biojava.nbio.structure.align.StructurePairAligner

public class StructurePairAligner extends Object
Perform a pairwise protein structure superimposition.

The algorithm is a distance matrix based, rigid body protein structure superimposition. It is based on a variation of the PSC++ algorithm provided by Peter Lackner (Peter.Lackner@sbg.ac.at, personal communication) .

Example

  public void run(){

                // first load two example structures
                InputStream inStream1 = this.getClass().getResourceAsStream("/files/5pti.pdb");
                InputStream inStream2 = this.getClass().getResourceAsStream("/files/1tap.pdb");

                Structure structure1 = null;
                Structure structure2 = null;

                PDBFileParser pdbpars = new PDBFileParser();
                structure1 = pdbpars.parsePDBFile(inStream1) ;
                structure2 = pdbpars.parsePDBFile(inStream2);


                // calculate structure superimposition for two complete structures
                StructurePairAligner aligner = new StructurePairAligner();


                        // align the full 2 structures with default parameters.
                        // see StructurePairAligner for more options and how to align
                        // any set of Atoms
                        aligner.align(structure1,structure2);

                        AlternativeAlignment[] aligs = aligner.getAlignments();
                        AlternativeAlignment a = aligs[0];
                        System.out.println(a);

                        //display the alignment in Jmol

                        // first get an artificial structure for the alignment
                        Structure artificial = a.getAlignedStructure(structure1, structure2);


                        // and then send it to Jmol (only will work if Jmol is in the Classpath)

                        BiojavaJmol jmol = new BiojavaJmol();
                        jmol.setTitle(artificial.getName());
                        jmol.setStructure(artificial);

                        // color the two structures


                        jmol.evalString("select *; backbone 0.4; wireframe off; spacefill off; " +
                                        "select not protein and not solvent; spacefill on;");
                        jmol.evalString("select *"+"/1 ; color red; model 1; ");


                        // now color the equivalent residues ...

                        String[] pdb1 = a.getPDBresnum1();
                        for (String res : pdb1 ){
                                jmol.evalString("select " + res + "/1 ; backbone 0.6; color white;");
                        }

                        jmol.evalString("select *"+"/2; color blue; model 2;");
                        String[] pdb2 = a.getPDBresnum2();
                        for (String res :pdb2 ){
                                jmol.evalString("select " + res + "/2 ; backbone 0.6; color yellow;");
                        }


                        // now show both models again.
                        jmol.evalString("model 0;");

        }
  
Since:
1.4
Version:
%I% %G%
Author:
Andreas Prlic, Peter Lackner
  • Constructor Details

    • StructurePairAligner

      public StructurePairAligner()
  • Method Details

    • addProgressListener

      public void addProgressListener(AlignmentProgressListener li)
    • clearListeners

      public void clearListeners()
    • main

      public static void main(String[] args) throws Exception
      example usage of this class
      Parameters:
      args -
      Throws:
      Exception
    • getFragmentPairs

      public FragmentPair[] getFragmentPairs()
      get the results of step 1 - the FragmentPairs used for seeding the alignment
      Returns:
      a FragmentPair[] array
    • setFragmentPairs

      public void setFragmentPairs(FragmentPair[] fragPairs)
    • getAlignments

      public AlternativeAlignment[] getAlignments()
      return the alternative alignments that can be found for the two structures
      Returns:
      AlternativeAlignment[] array
    • getDistMat

      public Matrix getDistMat()
      return the difference of distance matrix between the two structures
      Returns:
      a Matrix
    • getParams

      public StrucAligParameters getParams()
      get the parameters.
      Returns:
      the Parameters.
    • setParams

      public void setParams(StrucAligParameters params)
      set the parameters to be used for the algorithm
      Parameters:
      params - the Parameter object
    • isDebug

      @Deprecated public boolean isDebug()
      Deprecated.
      check if debug mode is set on
      Returns:
      debug flag
    • setDebug

      @Deprecated public void setDebug(boolean debug)
      Deprecated.
      set the debug flag
      Parameters:
      debug - flag
    • align

      public void align(Structure s1, Structure s2) throws StructureException
      Calculate the alignment between the two full structures with default parameters
      Parameters:
      s1 -
      s2 -
      Throws:
      StructureException
    • align

      public void align(Structure s1, Structure s2, StrucAligParameters params) throws StructureException
      Calculate the alignment between the two full structures with user provided parameters
      Parameters:
      s1 -
      s2 -
      params -
      Throws:
      StructureException
    • align

      public void align(Structure s1, String chainId1, Structure s2, String chainId2) throws StructureException
      Align two chains from the structures. Uses default parameters.
      Parameters:
      s1 -
      chainId1 -
      s2 -
      chainId2 -
      Throws:
      StructureException
    • align

      public void align(Structure s1, String chainId1, Structure s2, String chainId2, StrucAligParameters params) throws StructureException
      Aligns two chains from the structures using user provided parameters.
      Parameters:
      s1 -
      chainId1 -
      s2 -
      chainId2 -
      params -
      Throws:
      StructureException
    • getAlignmentAtoms

      public Atom[] getAlignmentAtoms(Structure s)
      Returns the atoms that are being used for the alignment. (E.g. Calpha only, etc.)
      Parameters:
      s -
      Returns:
      an array of Atoms objects
    • align

      public void align(Atom[] ca1, Atom[] ca2, StrucAligParameters params) throws StructureException
      calculate the protein structure superimposition, between two sets of atoms.
      Parameters:
      ca1 - set of Atoms of structure 1
      ca2 - set of Atoms of structure 2
      params - the parameters to use for the alignment
      Throws:
      StructureException