Class SymmOptimizer
- java.lang.Object
-
- org.biojava.nbio.structure.symmetry.internal.SymmOptimizer
-
public class SymmOptimizer extends Object
Optimizes a symmetry alignment by a Monte Carlo score optimization of the repeat multiple alignment. The superposition of the repeats is not free (felxible), because it is constrained on the symmetry axes found in the structure. This is the main difference to theMultipleMC
algorithm in biojava. Another major difference is that the free Pool is shared for all repeats, so that no residue can appear to more than one repeat at a time.This algorithm does not use a unfiform distribution for selecting moves, farther residues have more probability to be shrinked or gapped. This modification of the algorithm improves convergence and running time.
Use call method to parallelize optimizations, or use optimize method instead. Because gaps are allowed in the repeats, a
MultipleAlignment
format is returned.- Since:
- 4.1.1
- Author:
- Aleix Lafita
-
-
Constructor Summary
Constructors Constructor Description SymmOptimizer(CeSymmResult symmResult)
Constructor with a seed MultipleAligment storing a refined symmetry alignment of the repeats.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MultipleAlignment
optimize()
Optimization method based in a Monte-Carlo approach.
-
-
-
Constructor Detail
-
SymmOptimizer
public SymmOptimizer(CeSymmResult symmResult)
Constructor with a seed MultipleAligment storing a refined symmetry alignment of the repeats. To perform the optimization use the call or optimize methods after instantiation.- Parameters:
symmResult
- CeSymmResult with all the information- Throws:
RefinerFailedException
StructureException
-
-
Method Detail
-
optimize
public MultipleAlignment optimize() throws StructureException, RefinerFailedException
Optimization method based in a Monte-Carlo approach. Starting from the refined alignment uses 4 types of moves:- 1- Shift Row: if there are enough freePool residues available.
- 2- Expand Block: add another alignment column.
- 3- Shrink Block: move a block column to the freePool.
- 4- Insert gap: insert a gap in a position of the alignment.
- Throws:
StructureException
RefinerFailedException
- if the alignment is not symmetric or too short.
-
-