Class MultipleMcOptimizer

  • All Implemented Interfaces:
    java.util.concurrent.Callable<MultipleAlignment>

    public class MultipleMcOptimizer
    extends java.lang.Object
    implements java.util.concurrent.Callable<MultipleAlignment>
    This class takes a MultipleAlignment seed previously generated and runs a Monte Carlo optimization in order to improve the overall score and highlight common structural motifs.

    The seed alignment can be flexible, non-topological or include CP, but this optimization will not change the number of flexible parts BlockSets or non-topological regions Block. Thus, the definition of those parts depend exclusively on the pairwise alignment (or user alignment) used to generate the seed multiple alignment.

    This class implements Callable, because multiple instances of the optimization can be run in parallel.

    Since:
    4.1.0
    Author:
    Aleix Lafita
    • Constructor Detail

      • MultipleMcOptimizer

        public MultipleMcOptimizer​(MultipleAlignment seedAln,
                                   MultipleMcParameters params,
                                   int reference)
        Constructor. Sets the internal variables from the parameters. To run the optimization use the call (in a different thread) or optimize methods.
        Parameters:
        seedAln - MultipleAlignment to be optimized.
        params - the parameter beam
        reference - the index of the most similar structure to all others
        Throws:
        StructureException
    • Method Detail

      • call

        public MultipleAlignment call()
                               throws java.lang.Exception
        Specified by:
        call in interface java.util.concurrent.Callable<MultipleAlignment>
        Throws:
        java.lang.Exception
      • optimize

        public MultipleAlignment optimize()
                                   throws StructureException
        Optimization method based in a Monte-Carlo approach. Starting from the refined alignment uses 4 types of moves:

        • Shift Row: if there are enough freePool residues available.
        • Expand Block: add another alignment column.
        • Shrink Block: move a block column to the freePool.
        • Insert gap: insert a gap in a random position of the alignment.
Throws:
StructureException