Skip to content

feat(dna): complete K1 triangulation clustering (ICW + Leeds labels)#23

Draft
simonellefsen wants to merge 2 commits into
mainfrom
feat/k1-triangulation-complete
Draft

feat(dna): complete K1 triangulation clustering (ICW + Leeds labels)#23
simonellefsen wants to merge 2 commits into
mainfrom
feat/k1-triangulation-complete

Conversation

@simonellefsen

Copy link
Copy Markdown
Owner

Summary

  • Completes K1 segment triangulation / Leeds clustering: strict ICW (50% reciprocal overlap) join with parental-side cluster splitting when paths conflict (splitClustersByParentalSide).
  • Names cluster headings from four-grandparent Leeds slots with K2 MRCA fallback (buildLeedsClusterLabels) and wires both into the admin DNA panel.
  • Adds design documentation in wiki/sources/dna-triangulation.md and marks K1 done in TODO.md / wiki/roadmap.md.

Test plan

  • npm test (462 passing locally at push time)
  • npm run lint && npm run typecheck
  • Spot-check admin DNA panel: clustered matches show Leeds/MRCA labels; mixed maternal/paternal paths split into separate clusters
  • Confirm segment painter still renders clusters after relabel

Made with Cursor

Split mixed maternal/paternal path clusters, name groups by four-grandparent
Leeds slots with MRCA fallback, and document the clustering model in
wiki/sources/dna-triangulation.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
linegra Ready Ready Preview, Comment Jul 6, 2026 5:49am

Use path topology and computeRelationship instead of falling back to the
path endpoint when edge labels are missing or mis-oriented.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

1 participant