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 Detail

      • 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:
        Constant Field Values
    • Method Detail

      • 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
      • 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.