Repository navigation
Add IntaRNAkix kinetic seed-extension personality - #254
Conversation
|
thanks and please revise: 1 - alway no lonely pairs for this predictor
2 - more efficient candidate storage and updateevaluate the following ideas for its performance impact and implement suitable ideas
3 - no seed check
4 - pruning heuristicthe major goal of this predictor is to be
reinvestigate whether the pruning heuristic without explicit energy (and complementarity) checks has the potential for speedup. the idea is to reduce the expensive energy evaluation that requires a lot of complementarity checks and sequence lookups. Thus, a lower energy bound for an extension is statically precomputed (and tabularized) for all possible interaction-end base pairs that can root an extension and is during extension checking compared with the ED costs for a respective extension. the lower bound can also incorporate estimates of respective "best-case" dangling end contributions etc. or use a reasonable static replacement value. it might be also fine to just ignore them, since this predictor implements a heuristic. when using a strictly ordered lower bound estimate, it should be possible to prune larger loop extensions if the current loop extension is already positive, since the ED will only grow or stay the same with growing loop size. if your analyses suggest only minor potential or central problems, implement a subclass of the current predictor that implements the sketched and revised strategy for later benchmarking with real world data and make it available via "--mode=L". |
|
thanks, please revise: (1) remove experimental pruned version
(2) "IntaRNAkix" personality = "kinetic (seed) extension"
(3) preliminary benchmark
|
Adds
IntaRNAkix(kinetic seed extension), available as an installed executable link orIntaRNA --personality=IntaRNAkix. It defaults to--model=X --mode=K --outNoLP=true. For each handler-provided seed, the predictor compares complete energy changes at both ends, accepts only strictly downhill moves, and retains visited structures for energy-ranked reporting and traceback.Extensions add one stacked pair, two stacked pairs, or a loop-closing pair plus its outward stack. Two-pair moves are atomic. Handler-provided seeds and their energies are trusted, including explicit seeds with lonely pairs. Direct mode K calls promote a missing/false noLP flag with an INFO message.
--kineticScore=A|B|Cselects energy-change or distance-normalized ranking with deterministic ties. GU, loop/span, region, output and overlap constraints apply; equilibrium partition/probability requests are rejected.Per-end candidate tables reuse complementarity checks and local energies. Full energies are refreshed at both ends, including accessibility and both weighted dangles. Only committed paths are reported. This is a greedy energy heuristic without a global-optimum guarantee, calibrated rates or a physical time axis; retained-path memory scales with the sum of path lengths.
README and CLI help document the personality, and the new SVG recursion diagram covers initialization, allowed moves, selection and stopping. Out-of-tree installations now discover personality declarations through
srcdir, so they create the executable links.The preliminary benchmark compares default IntaRNA and IntaRNAkix on three tutorial RNA pairs, each with and without
--outNoGUend=true, using one warm-up and five timed single-thread runs. It records wall time, peak RSS, reported minimum energy and interaction lengthmax(target span, query span), with signed Kix-minus-default deviations. The review's “noGU” is interpreted asoutNoGUend;seedNoGUremains false. Default IntaRNA keeps its defaultoutNoLP=false, so differences reflect both search and noLP defaults.Across these six small comparisons, Kix takes 0.11–0.68 times the default runtime; median peak RSS differs by less than 2%. Energy deviations range from 0 to +4.40 kcal/mol and length deviations from −42 to 0 nt. These are preliminary observations, not a general performance or biological-accuracy claim. The reproduction script and raw measurements are included with the input fixtures.
Validation:
make tests -j2passes in GCC 14.4 release and debug with ViennaRNA 2.7.2, Boost 1.85 and Kokkos mdspan: 75,709 assertions in 68 API cases, 6/6 suite entries in each build.--rrireevaluation. All benchmark structures also independently reevaluate to their reported energies.IntaRNAkix; modified public headers compile standalone and an installed pkg-config consumer links and predicts the expected energy.make distcontains the final source, tests, SVG, benchmark script/results and tutorial fixtures;git diff --checkpasses.