BLAST result panels beyond NCBI Web BLAST¶
Motivation¶
The BLAST result screen already mirrors NCBI Web BLAST's Descriptions / Graphic Summary / Alignments / Taxonomy tabs. NCBI parity is table stakes; it does not help a researcher triage a large hit list, judge whether a score is trustworthy, or cite the run reproducibly. These five panels add value NCBI's UI does not offer, all derived from data already on the page (no new backend round-trips).
User-facing change¶
All five views are read-only, additive, and reuse the existing analytics state (so they respect the active result filters):
- Coverage × Identity triage scatter (Graphic Summary tab) — every hit plotted by query coverage (x) and percent identity (y), point area scaled by bit score and colour by review status. Threshold guide lines split the plot into ortholog / partial / divergent / marginal quadrants with counts. Clicking a point deep-links to that hit in the Alignments tab.
- Taxonomic dereplication (Descriptions tab) — collapses the hit list to one representative per species or genus (toggle), folding redundant near-identical strains. Each taxon row shows best-hit identity / E-value / bit score, expands to its members, and deep-links the best hit.
- Subject coordinate map (Graphic Summary tab) — plots each subject's HSPs on the subject axis (1..length) rather than the query axis, surfacing multi-HSP tiling, strand flips, and coordinate inversions (rearrangements / duplications). Flagged subjects sort to the top. The panel only renders when at least one subject carries multiple HSPs, so the common single-HSP case is not duplicated from the query-centric ruler.
- Inline hit evidence (Alignments tab) — each pairwise card gains a collapsible plain-language read of why the hit scored as it did: E-value confidence verdict, database-independent bit-score note, and a query-coverage interpretation.
- Result passport (all result analytics tabs) — a one-glance provenance card with an NCBI-parity badge (precise / drift / approximate), the pinned effective search space, and an auto-generated, copy-pasteable Methods paragraph for manuscripts.
Code summary¶
Frontend-only; no API or IaC changes.
- New pure, DOM-free derivation helpers + unit tests:
web/src/pages/blastResults/analytics/derived.ts(+derived.test.ts, 25 tests). - New components:
TriageScatterPanel.tsx,TaxonRollupPanel.tsx,SubjectMapPanel.tsx,ResultPassportCard.tsx. - Wiring:
GraphicSummaryPanel.tsx— mounts the triage scatter and subject map (deep-link via existinghandleBarActivate).DescriptionsTabBody.tsx— mounts the dereplication panel (deep-link via existinghandleSubjectDrilldown).AlignmentViewer.tsx— adds the inlineHitEvidenceblock.BlastResults.tsx— mounts the result passport on result analytics tabs.
Validation evidence¶
cd web && npm run build— green (typecheck + bundle).cd web && npm test -- --run— 63 files, 504 tests passing.npx vitest run src/pages/blastResults/analytics/derived.test.ts— 25 passing.npx eslint <new + modified files>— no findings.