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

Since:
4.1.1
Author:
Aleix Lafita
  • Constructor Details

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

    • optimize

      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.