org.biojava.bio.structure.align.ce
Class CeCPMain

java.lang.Object
  extended by org.biojava.bio.structure.align.AbstractStructureAlignment
      extended by org.biojava.bio.structure.align.ce.CeMain
          extended by org.biojava.bio.structure.align.ce.CeCPMain
All Implemented Interfaces:
StructureAlignment

public class CeCPMain
extends CeMain

A wrapper for CeMain which sets default parameters to be appropriate for finding circular permutations.

A circular permutation consists of a single cleavage point and rearrangement between two structures, for example:

 ABCDEFG
 DEFGABC
 

Author:
Spencer Bliven.

Nested Class Summary
protected static class CeCPMain.CPRange
          Tiny wrapper for the disallowed regions of an alignment.
 
Field Summary
static String algorithmName
           
static int DEFAULT_MIN_CP_LENGTH
           
static String version
          version history: 1.3 - Short CPs are now discarded 1.2 - now supports check AlignmentTools.isSequentialAlignment.
 
Fields inherited from class org.biojava.bio.structure.align.ce.CeMain
calculator, params
 
Fields inherited from class org.biojava.bio.structure.align.AbstractStructureAlignment
newline
 
Constructor Summary
CeCPMain()
           
 
Method Summary
 AFPChain align(Atom[] ca1, Atom[] ca2, Object param)
          Aligns ca1 and ca2 using a heuristic to check for CPs.
protected static CeCPMain.CPRange calculateMinCP(int[] block, int blockLen, int ca2len, int minCPlength)
          Finds the alignment index of the residues minCPlength before and after the duplication.
static AFPChain filterDuplicateAFPs(AFPChain afpChain, CECalculator ceCalc, Atom[] ca1, Atom[] ca2duplicated)
          Takes as input an AFPChain where ca2 has been artificially duplicated.
static AFPChain filterDuplicateAFPs(AFPChain afpChain, CECalculator ceCalc, Atom[] ca1, Atom[] ca2duplicated, int minCPlength)
           
 String getAlgorithmName()
          Get the name of the Algorithm
 String getVersion()
          Get the Version information for this Algorithm.
static void main(String[] args)
           
static AFPChain postProcessAlignment(AFPChain afpChain, Atom[] ca1, Atom[] ca2m, CECalculator calculator)
          Circular permutation specific code to be run after the standard CE alignment
 
Methods inherited from class org.biojava.bio.structure.align.ce.CeMain
align, getCECalculator, getParameters, setParameters
 
Methods inherited from class org.biojava.bio.structure.align.AbstractStructureAlignment
printHelp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.biojava.bio.structure.align.StructureAlignment
printHelp
 

Field Detail

algorithmName

public static final String algorithmName
See Also:
Constant Field Values

DEFAULT_MIN_CP_LENGTH

public static final int DEFAULT_MIN_CP_LENGTH
See Also:
Constant Field Values

version

public static final String version
version history: 1.3 - Short CPs are now discarded 1.2 - now supports check AlignmentTools.isSequentialAlignment. XML protocol 1.1 - skipped, (trying to avoid confusion with jfatcat in all vs. all comparisons) 1.0 - initial release

See Also:
Constant Field Values
Constructor Detail

CeCPMain

public CeCPMain()
Method Detail

getAlgorithmName

public String getAlgorithmName()
Description copied from interface: StructureAlignment
Get the name of the Algorithm

Specified by:
getAlgorithmName in interface StructureAlignment
Overrides:
getAlgorithmName in class CeMain
Returns:
the name of the algorithm

getVersion

public String getVersion()
Description copied from interface: StructureAlignment
Get the Version information for this Algorithm.

Specified by:
getVersion in interface StructureAlignment
Overrides:
getVersion in class CeMain
Returns:
the version of the algorithm

main

public static void main(String[] args)

align

public AFPChain align(Atom[] ca1,
                      Atom[] ca2,
                      Object param)
               throws StructureException
Aligns ca1 and ca2 using a heuristic to check for CPs.

Aligns ca1 against a doubled ca2, then cleans up the alignment.

Specified by:
align in interface StructureAlignment
Overrides:
align in class CeMain
Parameters:
ca1 -
ca2 -
param -
Returns:
the alignment, possibly containing a CP.
Throws:
StructureException

postProcessAlignment

public static AFPChain postProcessAlignment(AFPChain afpChain,
                                            Atom[] ca1,
                                            Atom[] ca2m,
                                            CECalculator calculator)
                                     throws StructureException
Circular permutation specific code to be run after the standard CE alignment

Parameters:
afpChain - The finished alignement
ca1 - CA atoms of the first protein
ca2m - A duplicated copy of the second protein
calculator - The CECalculator used to create afpChain
Throws:
StructureException

filterDuplicateAFPs

public static AFPChain filterDuplicateAFPs(AFPChain afpChain,
                                           CECalculator ceCalc,
                                           Atom[] ca1,
                                           Atom[] ca2duplicated)
                                    throws StructureException
Takes as input an AFPChain where ca2 has been artificially duplicated. This raises the possibility that some residues of ca2 will appear in multiple AFPs. This method filters out duplicates and makes sure that all AFPs are numbered relative to the original ca2.

The current version chooses a CP site such that the length of the alignment is maximized.

This method does not update scores to reflect the filtered alignment. It does update the RMSD and superposition.

Parameters:
afpChain - The alignment between ca1 and ca2-ca2. Blindly assumes that ca2 has been duplicated.
Returns:
A new AFPChain consisting of ca1 to ca2, with each residue in at most 1 AFP.
Throws:
StructureException

filterDuplicateAFPs

public static AFPChain filterDuplicateAFPs(AFPChain afpChain,
                                           CECalculator ceCalc,
                                           Atom[] ca1,
                                           Atom[] ca2duplicated,
                                           int minCPlength)
                                    throws StructureException
Throws:
StructureException

calculateMinCP

protected static CeCPMain.CPRange calculateMinCP(int[] block,
                                                 int blockLen,
                                                 int ca2len,
                                                 int minCPlength)
Finds the alignment index of the residues minCPlength before and after the duplication.

Parameters:
block - The permuted block being considered, generally optAln[0][1]
blockLen - The length of the block (in case extra memory was allocated in block)
ca2len - The length, in residues, of the protein specified by block
minCPlength - The minimum number of residues allowed for a CP
Returns:
a CPRange with the following components:
n
Index into block of the residue such that minCPlength residues remain to the end of ca2len, or -1 if no residue fits that criterium.
mid
Index of the first residue higher than ca2len.
c
Index of minCPlength-th residue after ca2len, or ca2len*2 if no residue fits that criterium.