Class CeCPMain
- java.lang.Object
-
- org.biojava.nbio.structure.align.AbstractStructureAlignment
-
- org.biojava.nbio.structure.align.ce.CeMain
-
- org.biojava.nbio.structure.align.ce.CeCPMain
-
- All Implemented Interfaces:
StructureAlignment
public class CeCPMain extends CeMain
A wrapper forCeMain
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
Nested Classes Modifier and Type Class Description protected static class
CeCPMain.CPRange
Tiny wrapper for the disallowed regions of an alignment.
-
Field Summary
Fields Modifier and Type Field Description static String
algorithmName
static 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.-
Fields inherited from class org.biojava.nbio.structure.align.ce.CeMain
calculator, params
-
Fields inherited from class org.biojava.nbio.structure.align.AbstractStructureAlignment
newline
-
-
Constructor Summary
Constructors Constructor Description CeCPMain()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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, CECPParameters params)
String
getAlgorithmName()
Get the name of the AlgorithmString
getVersion()
Get the Version information for this Algorithm.AFPChain
invertAlignment(AFPChain a)
Swaps the order of structures in an AFPChainstatic 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 alignmentstatic AFPChain
postProcessAlignment(AFPChain afpChain, Atom[] ca1, Atom[] ca2m, CECalculator calculator, CECPParameters param)
Circular permutation specific code to be run after the standard CE alignment-
Methods inherited from class org.biojava.nbio.structure.align.ce.CeMain
align, getCECalculator, getParameters, setParameters
-
-
-
-
Field Detail
-
algorithmName
public static final String algorithmName
- See Also:
- Constant Field Values
-
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
-
-
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 interfaceStructureAlignment
- Overrides:
getAlgorithmName
in classCeMain
- 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 interfaceStructureAlignment
- Overrides:
getVersion
in classCeMain
- 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 interfaceStructureAlignment
- Overrides:
align
in classCeMain
- 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 alignmentca1
- CA atoms of the first proteinca2m
- A duplicated copy of the second proteincalculator
- 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 alignmentca1
- CA atoms of the first proteinca2m
- A duplicated copy of the second proteincalculator
- The CECalculator used to create afpChainparam
- 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 blockminCPlength
- The minimum number of residues allowed for a CP- Returns:
- a CPRange with the following components:
- n
- Index into
block
of the residue such thatminCPlength
residues remain to the end ofca2len
, 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.
-
-