Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RDP Web

RDP Web is a local-first, browser-based recombination analysis workbench. It combines optimized WebAssembly kernels with an interactive workflow for alignment/project import, method-specific screening, event verification, breakpoint editing, matrices/topology checks, and recombination-aware exports. Version 0.6 added a collection-level event reconstruction workspace, arbitrary multi-parent alignment highlighting, linked and continuously connected local trees, full-screen analysis panels, deterministic hydration-safe rendering, and a single reliable workspace scrolling model. Version 0.6.1 also made panel paint containment structural and adds dense RDP4-style breakpoint-pair, recombination-region, and local-discordance genome matrices with interactive coordinate readouts and accessible scientific palettes. Version 0.7 added a tunable ordered auto-resolver with conservative/balanced/aggressive profiles, explicit evidence gates, dependency-aware targeted rescans, transitive safety holds, live dry-runs, rescan-round caps, and one-step workflow undo. Version 0.8 rebuilds the primary analysis surface from a direct audit of the RDP5 user manual and author-supplied desktop source: a six-stage Review studio, ordered and filterable reconstruction queue, best-unresolved navigation, integrated event dossier/checklist, best-versus-all method evidence, three-polarity role audition, tract-versus-background trees, and separate per-sequence and whole-group decisions. Version 0.9 advances numerical source compatibility: the active RDP5 VNP-window detector now retains multiple raw excursions per triplet, fixed-three-state BURT fitting/backtrace provides posterior breakpoint intervals, and accepted events drive the manual's erase/extract/rescan component workflow. Signals crossing deleted tracts are split into continuous pieces and gap-adjacent breakpoints are marked uncertain. Recorded nested component lineages are applied atomically; a missing predecessor holds the event visibly rather than erasing a different intact remainder. Weighted ancestral-event merging and the all-sequence/all-three-orientation co-recombinant screen are ports from the author-supplied desktop source. Its phylogenetic set now uses six seeded JC/NJ bootstrap trees with low-support branches collapsed. For large alignments, deterministic bounded cohorts retain the detecting triplet in every tree and cover every candidate rather than silently sampling candidates away; distance-correlation and detectable-signal sets complete the configurable 2-of-3 rule, including descendants without their own raw detection. Version 0.9.1 replaces the remaining SiScan confirmation surrogate with the supplied RDP5 Sister-Scanning path: source 15-category and sum scores, tree/direct/manual fourth-sequence selection, horizontal or vertical randomization, topology-run enumeration, region shrinkage, and whole-region Z calibration. Every locally significant run becomes its own hypothesis. Long-genome scans reproduce the desktop MSVC random stream without materializing its potentially multi-gigabyte table and reuse exact permutation-prefix ranges across triplets. See SOURCE_WORKFLOW_AUDIT.md for the source-to-web crosswalk. The same checkpoint replaces the PHI-style warning surrogate with direct ports of RDP5's multistate pair_score, PHI, and analytic mean/variance path; any browser work-ceiling subset is explicitly reported with its all-site count. Version 0.9.2 closes the previously simplified half of source BURT: exact circular working-sequence padding/cropping, shifted switch enumeration, .995/.999 confidence scans, VNP-space MatchBPtoCI, and the principal non-reassortment PolishBP adoption, same-switch, missing-data and information-reversion rules are now active. Every selected event exposes an interactive posterior/state/switch plot and a persisted source-decision ledger. Version 0.9.3 replaces the former MAXCHI/CHIMAERA peak-pair approximation with the author-supplied RDP5 control flow in WebAssembly: three MAXCHI pair-equality tracks, three recombinant-oriented CHIMAERA tracks, source compressed-site and half-window rules, missing/end-window bans, 11-position smoothing, peak-basin destruction, GrowMChiWin expansion, and bounded multi-tract queues. Every retained call records both grown boundary statistics, ranks, growth widths and its source routine chain. Exhaustive exploratory scans evaluate each unordered concrete triplet once for RDP, MAXCHI and CHIMAERA and emit all eligible polarities from that cached pass, avoiding three redundant detector scans. The direct source fixtures cover multiple disjoint tracts and the important MAXCHI-versus-CHIMAERA treatment of all-different sites; executable golden- corpus validation remains required before a numerical-parity claim. The production scheduler now mirrors the desktop AList batch shape: it walks only a < b < c, invokes RDP once and the combined MAXCHI/CHIMAERA kernel once, and resolves all internal pair tracks and recombinant orientations inside that concrete triplet. Sixteen-site two-bit extraction skips invariant columns without rereading three full sequence strings; byte-oracle regressions require identical event rows, including missing data. Every detector receives three explicit sequence records, never a pair plus an alignment-consensus/rest-of- alignment proxy. The main page no longer overrides this role-agnostic default with query/reference mode; designated references are unnecessary. Distance- pruned and query/reference screening survive only as visibly non-parity opt-ins. The default Run command now also executes the manual §4.1.6 detection cycle: it selects the strongest remaining signal, splits every inferred co-recombinant into erased remainder and gap-padded tract components, then redoes only concrete triplets containing an origin changed by that split. Unaffected signals stay in the pool, but each is refreshed against the current component alignment before it is characterized and applied. The cycle stops only when no supported signal remains (or a disclosed, tunable safety cap is reached), and its internally applied events remain visibly unreviewed for the analyst. Version 0.9.4 re-enables GENECONV with the author-source six-track batch rather than the retired simplified locator. One packed concrete triplet pass removes only locally invariant/incomplete columns, retains all-different columns, builds three pair-identity and three complementary outer tracks, applies the source integer-G mismatch penalty and CalcKMaxP/GCCalcPValP calibration, then drains one globally p-ordered overlap-suppressed fragment queue. The native quadratic fragment extension is represented exactly by a linear-time monotone excursion index. GENECONV can now independently create hypotheses, confirm co-located hypotheses from other methods, and recalculate edited events; the project, CSV and interface retain its full track/role/score/probability ledger. Version 0.9.5 re-enables the default RDP5 distance-mode BootScan/RecScan path. The worker enumerates each unordered concrete triplet once, generates one seeded SEQBOOT2 table, computes every requested sequence-pair distance once per window, and shares that pair matrix across all triplets. The packed WASM kernel follows FastBootDistIP Jukes–Cantor distances and GetPltVal2 tie ordering, while the whole-alignment baseline follows the source Distance identity matrix without JC-saturation ties. It retains supported topology runs and applies triplet-local BSSubSeq/MakeScoresBS/ProbCalc scoring. It independently creates hypotheses, confirms co-located signals, recalculates edited events, and persists topology/support/window/probability provenance. Sparse preview/query batches compact the requested pair set; complete high-identity windows visit bootstrap weights only at mismatches. The optional desktop UPGMA/NJ relationship transformations were still parity gates at that checkpoint; the 0.10.0 section below records their later activation. The broad executable golden corpus remains a release gate.

Version 0.9.6 re-enables 3Seq from the author-supplied implementation. A new WebAssembly kernel decodes each unordered concrete triplet once and updates all three TSXOver recombinant assignments together. Every target walk discards its own invariant, incomplete, triallelic and neither-parent-match sites before locating the strict source maximum descent and ascent. The probability path is Seq3PVals-equivalent for bounded exact walks and follows RDP5 GetTSPVal/SiegmundDiscrete for larger cases. 3Seq can independently create hypotheses, confirm co-located signals, recalculate edited events, participate in erase/extract redo cycles, and persist its full walk/probability ledger.

Version 0.9.7 adds the source CheckwrapC and CheckSplit3Seq/SubPVal paths that were missing from that first 3Seq port. Circular walks use the source's bounded origin extension, while linear walks use its complementary interval branch. A circular 3Seq triplet is no longer screened again from a synthetic half-genome origin. After recursive event erasure, interrupted 3Seq signals are divided into continuously observed pieces and recalibrated with the piece excursion but the original full-walk step counts. The interface and project/CSV provenance expose wrapping/complement and full-versus-split statistics. Scalar source-control-flow, circular worker, wrapping component, and byte/packed regressions are included; desktop-output goldens and historical probability-table rounding remain validation gates.

Version 0.9.8 makes SiScan a true independent detector. Every emitted unordered concrete triplet is passed once to the source 15-category, fourth-sequence and vertical-permutation workflow. The sequence shared by the whole-alignment sister pair and each significant local sister pair becomes the recombinant; the other baseline and local members become the major and minor parents. This works in exploratory alignments with no designated references, retains every significant disjoint topology run, records exact source p-values and topology triplets in project/CSV provenance, and reuses the same calibrated run during characterization instead of screening three presumed orientations. SiScan now has separate 200-position/20-position source-default window and step controls, so the global five-position breakpoint step no longer multiplies its all-triplet permutation cost by four unless the analyst explicitly requests it.

Version 0.9.9 accelerates that exact source SiScan path. The three DoPerms3P randomization bands are reduced to telescoping prefix ranges, and their deterministic randomized moments are reused across different observed category vectors that share the same band totals. Final regions use the same MSVCRT stream through a bounded growing prefix and automatically retain the streamed direct path when a tract would exceed the memory budget. Direct- enumeration equivalence tests cover windows, regions, shared caches, Z values and probabilities. The 12 × 2.4 kb all-220-triplet benchmark improves from 113.8 to 272.7 complete triplets/s (2.40×) without changing a source result.

Version 0.10.0 completes the three automatic BootScan/RecScan relationship choices described by the RDP manual. Distance mode retains sparse requested- pair compaction. UPGMA and neighbor-joining modes calculate every pair in the active cohort, construct one full-cohort tree for each window and SEQBOOT2 replicate, convert the tree to relative leaf-path positions, and only then interpret every concrete triplet with GetPltVal2. The same path is used for discovery, cyclic affected-triplet rescans, and edited-event recalculation. Projects, CSV, evidence ledgers, and performance provenance retain the selected mode. Known four-taxon topology matrices, packed/byte equality, legacy-distance ABI equality, full-cohort pair coverage, worker discovery, and project round-trip regressions guard the port. Packed complete windows now compare sixteen sites per word and touch replicate weights only on mismatch lanes; missing sites retain the exact scalar fallback. Desktop tree tie/rounding goldens remain. See BOOTSCAN_TREE_MODES.md for the batch order, complexity, regression boundary, and reproducible mode gate.

Scientific integrity takes precedence over a seven-method checkbox count. 3Seq's author-source walk, wrap, and deleted-signal split paths and BootScan/RecScan's author-source distance, UPGMA, and neighbor-joining modes are active; remaining desktop coordinate/table and tree tie/rounding goldens are disclosed. SiScan now independently screens the same unordered concrete triplets once and derives event roles from its baseline-to-run topology change; it does not wait for another detector and its former oriented prelocator remains retired. Direct ports of MakePhPrScore, MakeTrpGroups/MakeTrpScore, MakeINList/MakeOUCheck, SimpleDist, MakeSSDistB, GetBadDists, MakeEList/MakeListCorr, MakeLDist/MakeRCompat, CalcMaxD/ CMaxD2P3, and the default MakeConsensusC decision tree now persist an 18-statistic recombinant-identification ledger, final-trim penalty, and six joint rules for all three polarities; the role workbench exposes every value/weight and auto-resolution holds source- challenged or sub-60%-confidence assignments. The truth-annotated synthetic dataset library, method-by-method result interpretation, safe-by-default fresh/accepted exports, scan-scope event recalculation, and project audit ledger remain available. Challenge diagnostics, breakpoint matrices, annotation workflows, and the WebAssembly worker architecture remain available.

The project is MIT licensed. Source-compatible RDP5 routines are included with the RDP authors' permission and collaboration; the author-supplied RDP5 VB/native source is the sole detector specification. See SCIENTIFIC_BASIS.md for the implementation/validation ledger and FEATURE_AUDIT.md for the product-level gap ledger. Details are in THIRD_PARTY_NOTICES.md.

Local development

npm install
npm run wasm:build
npm run dev

The checked-in public/wasm/rdp.wasm is built from assembly/index.ts. The module worker in public/rdp-worker.js owns the WebAssembly instance and sends only compact progress/results messages to the interface. public/rdp-statistics.js contains dependency-free probability calibrations.

GitHub Pages

The repository exports to static files and is safe at both a domain root and a project subpath. To verify a project-site build locally:

RDP_BASE_PATH=/your-repository npm run github:build

The artifact is written to out/. The included .github/workflows/github-pages.yml rebuilds the WebAssembly binary, runs the scientific regression suite, creates the static export, and deploys it when the repository's Pages source is set to GitHub Actions. The workflow derives the project path from GITHUB_REPOSITORY; repositories named *.github.io build at the domain root.

Worker and WASM URLs are resolved relative to the document/worker locations, so a repository name or later custom-domain change does not require source edits.

Tests and benchmarks

npm run test:wasm
npm run test:ui
npm run bench:wasm -- 100 10000
npm run lint

Batch runner

The same WebAssembly worker can be run without a browser and writes a restorable project:

npm run cli -- alignment.fasta results.rdpweb \
  --bootstrap 100 --seed 1511506142

Use npm run cli -- --help for method, circular-genome, query/reference, and explicit approximate-parent-shortlist options. Full concrete-triplet screening is the default. This is a local batch interface, not a separate algorithm implementation.

The tests cover scalar/packed distance equivalence, the RDP5 multi-signal VNP event locator, the C(5,3) full-concrete-triplet invariant, order-invariant cached triplets, source-detector discovery with exact current-triplet site compression, co-location gating, all six GENECONV tracks, finite-G fragment scoring/KA calibration, global overlap-suppressed source queueing, informative-site MAXCHI/CHIMAERA windows and source peak correction, source SiScan quartet categories, outgroup selection, cached/streamed MSVC randomization, once-per-unordered-triplet discovery, topology-to-role mapping, no-reference exploratory discovery, topology-run calibration and multi-event expansion, source PHI incompatibility graphs, analytic moments and lower-tail calibration, exact HGRW tails, seeded bootstraps, sampled large-dataset parent selection, source-mode BURT circular padding, VB6 ties, CI matching, missing-edge and reversion behavior plus manual step-up BURT localization, recursive erase/extract signal disassembly, affected-triplet redo scheduling, current-component refresh, deleted-tract splitting and uncertainty, RDP5 weighted event merging, bootstrapped-JC/NJ tree evidence, and three-orientation co-recombinant clustering, direct source PhPr/SubDist/ TrpScore/OuCheck/O:E/dMax/parsimony/conflict/set-distance role identification, historical-event set closure, origin-spanning circular events, rate-variation and gap-block challenges, exact manual-event recalculation, NJ/hotspot routines, a 513-sequence large-path integration fixture, annotation-aware masking, and lossless .rdpweb project round-trips, parent-affinity classification, ordered/nested event reconstruction, connected tree geometry, global scroll ownership, full-screen panel controls, deterministic server rendering, and auto-resolution scoring/rescan barriers. The source-guided regressions also cover filtered/wrapping event navigation, best-event selection, group membership, checklist freshness, source-weighted role polarity, and tract/background tree workflow wiring.

Current status

This is a functional scientific alpha, not yet a validated drop-in replacement for RDP5. The application itself surfaces that distinction prominently. See ROADMAP.md for the replacement gates rather than treating the current method names as a parity claim.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages