Class DynamicProgrammingAll

java.lang.Object
pl.poznan.put.structure.pseudoknots.dp.DynamicProgrammingAll
All Implemented Interfaces:
PseudoknotFinder
Direct Known Subclasses:
ImmutableDynamicProgrammingAll

@Immutable(singleton=true) public abstract class DynamicProgrammingAll extends Object
Java implementation of OPT ALL algorithm as presented in: Smit, S. et al., 2008. From knotted to nested RNA structures: A variety of computational methods for pseudoknot removal. RNA, 14, pp.410–416.
  • Constructor Details

    • DynamicProgrammingAll

      public DynamicProgrammingAll()
  • Method Details

    • regionRemover

      protected abstract Optional<RegionRemover> regionRemover()
      Returns:
      An optional region remover to be used if a clique size exceeds maxCliqueSize().
    • findOptimalSolutions

      public final List<pl.poznan.put.structure.pseudoknots.dp.SubSolution> findOptimalSolutions(ConflictClique conflictClique)
    • findPseudoknots

      public final List<BpSeq> findPseudoknots(BpSeq bpSeq)
      Description copied from interface: PseudoknotFinder
      Finds pseudoknots in BPSEQ data. Pseudoknots are defined here as BPSEQ entries which if removed will make the RNA secondary structure fully nested. There may be many subsets of pairs considered pseudoknots for a single BPSEQ input.
      Specified by:
      findPseudoknots in interface PseudoknotFinder
      Parameters:
      bpSeq - An input BPSEQ structure with all pairs.
      Returns:
      A list of BPSEQ structures where each contains only pairs considered to be pseudoknots. Each BPSEQ is a full copy of original one, but contains zeroed 'pair' columns for entries which are non-pseudoknots.
    • maxCliqueSize

      @Default protected int maxCliqueSize()
      Returns:
      The maximum number of conflicts allowed to be in the clique. The algorithm slows down very much when the cliques are getting bigger, so it is advisable to use a heuristic to remove a single regions and decrease clique size significantly.