Class 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.
  • Field Details

    • algorithmName

      public static final String algorithmName
      See Also:
    • version

      public static final String version
      version history: 1.5 - Added more parameters to the command line, including -maxOptRMSD 1.4 - Added DuplicationHint parameter & default to duplicating the shorter chain 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:
  • Constructor Details

    • CeCPMain

      public CeCPMain()
  • Method Details

    • 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) throws ConfigurationException
      Throws:
      ConfigurationException
    • 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 alignment
      ca1 - CA atoms of the first protein
      ca2m - A duplicated copy of the second protein
      calculator - The CECalculator used to create afpChain
      Throws:
      StructureException
    • postProcessAlignment

      public static AFPChain postProcessAlignment(AFPChain afpChain, Atom[] ca1, Atom[] ca2m, CECalculator calculator, CECPParameters param) throws StructureException
      Circular permutation specific code to be run after the standard CE alignment
      Parameters:
      afpChain - The finished alignment
      ca1 - CA atoms of the first protein
      ca2m - A duplicated copy of the second protein
      calculator - The CECalculator used to create afpChain
      param - Parameters
      Throws:
      StructureException
    • invertAlignment

      public AFPChain invertAlignment(AFPChain a)
      Swaps the order of structures in an AFPChain
      Parameters:
      a -
      Returns:
    • 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, CECPParameters params) 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.