Skip to content

Fix regional overlap validation and suboptimal output filtering - #253

Merged
martin-raden merged 9 commits into
masterfrom
docs/212-overlap-analysis
Oct 5, 2026
Merged

martin-raden merged 9 commits into
masterfrom
docs/212-overlap-analysis

Conversation

@Alexander-Mitrofanov

@Alexander-Mitrofanov Alexander-Mitrofanov commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Restricted output could reuse forbidden positions across regions, omit accessibility penalties from later ensemble results, bypass output filters, or report results outside the sequence pair's energy window. This implements Martin's review of the issue #212 analysis in separate commits.

  • Validate manual regions and automatic decomposition (including outMinPu) against the requested overlap mode; retain independent selection with outPerRegion=true.
  • Select later heuristic ensemble results from finalized site energies, fixing incorrect energies and the infinity-to-integer conversion on exhaustion.
  • Share terminal-GU and maximum-ED validation across the four specialized MFE/helix selectors and initial selection. Normalize single-pair boundaries before traceback or boundary-only output, as required by debug validation.
  • Apply outDeltaE relative to the sequence pair's global minimum when merging regions; preserve local windows with outPerRegion=true.
  • Define distinct prediction boundaries and retain the one-right-extension strategy, including its completeness limits in exact prediction mode. The original analysis remains as a baseline, with the accepted decisions recorded separately.

The regional checks resolve apparent shorthand typos using existing overlap semantics: N requires one region on both RNAs, T one target region, Q one query region, and B allows multiple regions. Multiple target regions can reuse the query, making them unsafe for T; the converse applies to Q. Ensemble restricted selection uses the base predictor's deterministic tie order; the other specialized selectors retain their scan order.

Reviewable commits

Commit Change
1ceafb8 Define distinct prediction boundaries
acf4996 Correct finalized ensemble energies and exhaustion (findings 3 and 2)
bba12ec Validate manual and automatic regions (finding 1)
7b18554 Share heuristic output-site checks (finding 4)
934ee5a Enforce the global energy window (finding 5)
24b5684 Retain and clarify enumeration limits (finding 6)
7bfc7fe Add independent-oracle and outMinPu decomposition coverage
5a4ceb8 Normalize single-pair results exposed by debug validation

Validation

  • GCC 14.4 release: make tests -j2 passed, including 74,904 assertions in 55 API cases and all four CLI test scripts (20 golden fixtures, accessibility archives, evaluation, and regional overlap/energy windows).
  • Fresh GCC 14.4 debug build with --enable-debug, -fsanitize=undefined,float-cast-overflow and -fno-sanitize-recover=all: make tests -j2 passed with the same assertions and all CLI suites. Dependencies: ViennaRNA 2.7.2, Boost 1.85.0, bundled Kokkos mdspan.
  • python3 doc/analysis/out-overlap/reproduce.py ./src/bin/IntaRNA --output /tmp/intarna-overlap-observations.json: 118 captures completed; 64 controls across 16 predictor configurations and three independent site oracles passed.
  • Public-header syntax compilation, shell/Python syntax, UTF-8/LF files and git diff --check passed.

Addresses #212 and Martin's review. The existing completeness limitation is retained as requested; fewer compatible alternatives than requested can still be reported.

@martin-raden

Copy link
Copy Markdown
Member

@Alexander-Mitrofanov

thanks, please revise:

the following sections refer to "doc/analysis/out-overlap.md" of the "docs/212-overlap-analysis" branch.

implement the sections as individual steps and commits to allow for individual review later on.

suboptimal documentation

  • update README suboptimal documentation to clearly define that all reported interactions differ in their region boundaries, ie.

Concerning 1 Regional merging permits forbidden overlaps

  • extend commandlineparsing input checks:
    • allow "outoverlap != B" if respective "tregion" and "qregion" contain only one region and thus no merging is done (i.e B requires both region sets to be single, T requires qtarget contains only one region, Q requires ttarget is single)
    • allow "outoverlap != B" for multiple regions if "outPerRegion=true"
    • also employ these checks for automatic region decomposition
  • update documentation respectively

Concerning 3 Later ensemble results use the wrong energy

fix the bug and check if this fixes "2 Exhausted ensemble enumeration converts infinity to an integer" as proposed

Concerning 4 Later heuristic results bypass terminal pair filtering

fix the problem with missing internal output checks

Concerning 5 Energy windows are local to regions

if "outPerRegion=false": implement a global min energy delta check within merging regions if this solves the issue

Concerning 6 A valid right extension can be discarded before selection

keep the current strategy and (if needed) slightly extend the README documentation concering this issue.

@Alexander-Mitrofanov Alexander-Mitrofanov changed the title Analyze output overlap modes and failure cases for issue 212 Fix regional overlap validation and suboptimal output filtering Oct 5, 2026
@martin-raden
martin-raden marked this pull request as ready for review October 5, 2026 11:29
@martin-raden
martin-raden merged commit f168a0f into master Oct 5, 2026
3 checks passed
@martin-raden
martin-raden deleted the docs/212-overlap-analysis branch October 5, 2026 11:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants