Repository navigation
feat: add exact and heuristic probability SVGs (steps 8–11) - #259
Merged
martin-raden merged 9 commits intoOct 13, 2026
Merged
Conversation
Member
|
thanks, please revise: SVG layout revision
(step 10) base pair probability and SVG output also for "noSeed" predictorto enable a comparison of the base pair probabilities with and without seed constraints:
(step 11) extension of heuristic ensemble predictors to base pair probabilities
|
Member
|
thanks, please revise: svg layoutto make the new probability dot plots compatible with existing dot plots ensure both lowest sequence index coordinates are in left upper corner.
|
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 actual-pair SVG plots and extends CSV/SVG probability output to exact unseeded and heuristic ensemble predictors. This completes steps 8–11 requested in #258 and Martin's review. It depends on #258 and targets
docs/257-base-pair-probability-plan.The revised SVG starts both strands at the upper-left corner, places the query name below the matrix, adds a subtitle for nondefault names, and uses sequence names in tooltips. Tooltip probabilities use three decimal places, or two-place scientific notation below 0.001; machine-readable values retain full precision. Nucleotide frames now show intramolecular pairing (
1-Pu). Orange outlines identify admitted seed pairs; green outlines identify the best reported ensemble interaction region and every pair of a minimum-energy structure reconstructed within that site, including when--outNumber=0. Shared seed/MFE cells have orange left/right edges and green top/bottom edges. The additional fixed-boundary MFE traceback runs only for SVG output; ordinary ensemble ranking and output are preserved. Both outlines have legends. Signed-coordinate guides, gzip, multi-FASTA naming, synchronized shared streams and success-only publication are preserved.Supported
--model=Pprobability modes:--noSeed: new reverse calculation over the existing fixed-right-boundary inside recurrence.--noSeed: new reverse flow through retained continuation chains.H outputs are explicitly approximate (
bpProbApproximatein CSV and an approximate SVG title). They describe the predictor's retained candidate ensemble, including existing path multiplicities, rather than the exact unique-chain ensemble. The unseeded and heuristic paths preserve existing numerical-zero cutoffs and reported ensemble totals. Windows, exact bulged-seed probability output and singleton heuristic seeds remain unsupported.Adds ten internal SVG recurrence depictions across the original implementation and review revision, including exact unseeded outside and heuristic candidate-flow calculations. They cover noLP transitions, energy/pair ownership, coordinate mapping, regional normalization and implementation anchors. README and ChangeLog document the interface and limitations.
Independent agents reviewed recurrence correctness, failure handling and performance before push. Review fixes include per-strand accessibility scales, cropped-region offsets/bounds, finite-energy boundary underflow, and nonfinite seeded-heuristic denominator rejection. Transferring completed output buffers avoids an extra full-document copy.
Validation:
make tests -j2; all seven suites pass, with 100,947 API assertions in 97 cases each. The October 12 revision also passes both full release/debug suites and visually rendered SVG checks.make distincludes new implementation/tests. UTF-8/LF andgit diff --checkpass. New/corrected recurrence diagrams and representative output SVGs parse, render and were visually inspected.Previous performance audit (before the SVG-only fixed-boundary MFE traceback added in the October 12 layout review): 252 measured runs across native OxyS/fhlA and dense LP/noLP inputs, three predictors, and four output configurations. Existing output-off wall medians changed by −1.2% to +2.4%; all ensemble outputs were byte-identical and all CSV/SVG pair values matched. New CSV output took 1.09–1.92× revised output-off time, and SVG 1.26–2.07× on these cases. Runtime ranges, RSS, limitations and reproduction commands are in
doc/analysis/seeded-probabilities-validation.md.Apple Clang was not available locally. SVG size and serialization memory grow with the full target-by-query matrix; shared streams contain consecutive complete SVG documents. The green outline is omitted when no interaction passes reporting filters.