Class 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 the MultipleMC 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.

    Aleix Lafita
    • 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.
        symmResult - CeSymmResult with all the information
    • Method Detail

      • optimize

        public MultipleAlignment optimize()
                                   throws StructureException,
        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.
RefinerFailedException - if the alignment is not symmetric or too short.