Add deterministic kinetic seed extension mode - #254
Open
Alexander-Mitrofanov wants to merge 1 commit into
Open
Alexander-Mitrofanov wants to merge 1 commit into
Alexander-Mitrofanov wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
PredictorSeedExtensionKinetic, available exclusively as--model=X --mode=K. Each seed follows a deterministic greedy path: compare complete energy changes at both ends, accept only strictly downhill moves, and retain the actual visited structures for energy-ranked output and traceback.--kineticScore=A|B|Cselects thermodynamic (default), Manhattan-normalized or asymmetry-normalized ranking. Ties prefer left, smaller total gap, then smaller first-strand gap. Under--outNoLP, a loop-closing pair and its following stack are evaluated and committed together. The predictor respects GU restrictions, separate RNA loop/span limits, regions, output filtering and overlap settings, and validates explicit seed structures. It retains shorter valid prefixes for non-overlapping output and prevents rejected explicit seeds from returning as seed annotations.The scientific scope and detailed implementation decisions are recorded in the design and implementation plan. This is a zippering-inspired energy heuristic, without calibrated transition rates, a time axis or a global-optimum guarantee. Equilibrium partition/probability requests are rejected rather than inferred from selected paths; ordinary energy trackers remain supported.
Loop-only energetic pruning is deliberately omitted: a Turner2004 loop costing +0.50 kcal/mol followed by a −3.30 kcal/mol stack gives a favorable complete move that the proposed bare-loop bound would reject. Terminal and both weighted dangling contributions also belong to the exact change. Feasible moves are evaluated exhaustively with the active energy model; no ED monotonicity or default Turner parameters are assumed. No performance improvement over existing predictors is claimed.
Validation:
make testspassed in both builds: 74,114 assertions in 59 API cases, and 5/5 test-suite entries (API plus all CLI scripts).--rri, including model/score/output validation.git diff --checkpassed. Existing regression reference outputs were unchanged.README, CLI help, distribution registration and ChangeLog are included. The full-path cache has memory proportional to the sum of retained path lengths; the design documents this tradeoff.