Skip to content

Prevent Atlas crash when PDBe returns no exact SIFTS mapping - #73

Merged
CedricHermansBIT merged 5 commits into
mainfrom
fix/atlas-empty-sifts-mapping
Oct 9, 2026
Merged

CedricHermansBIT merged 5 commits into
mainfrom
fix/atlas-empty-sifts-mapping

Conversation

@CedricHermansBIT

Copy link
Copy Markdown
Member

Bug

The Atlas verifier assumed every successful PDBe updated-mmCIF request contains exact matching SIFTS residue rows. When rows=[], ram_atlas_exact_sifts_map() returned ram_canonical_empty_map(), which lacks the Atlas-specific observed column. The subsequent ram_atlas_sifts_summary() threw Invalid exact SIFTS mapping outside the observer's tryCatch.

Fix

  • Return a correctly typed, empty Atlas mapping (including observed, mon_id, label_seq_id) instead of the incomplete generic mapping.
  • Add ram_atlas_verified_sifts() to validate and summarize per entity and reject an empty exact mapping with a specific, actionable message, while retaining successful mappings unchanged.
  • Guard the combined mapping+summary in the Shiny observer. A failed entity displays a visible SIFTS unavailable message; sequential batch verification can continue to subsequent structures.
  • A structure without exact mapping is not labelled verified and cannot silently be used in geometric clustering.

Regression

  • R scientific tests check empty mappings, safe summary, explicit rejection, malformed records and successful follow-up verification.
  • Real Chromium Atlas workflow verifies synthetic 4AKE_1 with zero matching SIFTS rows, checks the card error/no Shiny output error, and verifies a valid 1CRN_1 in the same session.
  • Eight PR-ready CI workflows; merge only once green.

No change to the live Shinylive deployment.

Copilot AI balanced review requested due to automatic review settings October 9, 2026 16:38

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@CedricHermansBIT
CedricHermansBIT marked this pull request as draft October 9, 2026 16:41
@CedricHermansBIT
CedricHermansBIT marked this pull request as ready for review October 9, 2026 16:41
@CedricHermansBIT
CedricHermansBIT marked this pull request as draft October 9, 2026 16:45
@CedricHermansBIT
CedricHermansBIT marked this pull request as ready for review October 9, 2026 16:45
@CedricHermansBIT
CedricHermansBIT merged commit b46774e into main Oct 9, 2026
13 checks passed
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