Skip to content

Add soulcap-match CLI and soulcap-hgnc gene-symbol mapping - #16

Open
s28ale-maker wants to merge 2 commits into
pr-01-lookup-tokens-cifrom
pr-02-match-hgnc
Open

s28ale-maker wants to merge 2 commits into
pr-01-lookup-tokens-cifrom
pr-02-match-hgnc

Conversation

@s28ale-maker

@s28ale-maker s28ale-maker commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Part 2 of 9 in a stacked series (#15 → #16 → #17 → … → #23). Base is pr-01-lookup-tokens-ci, so this diff shows only this part's 2 commits. Merge #15 first; this PR then retargets to main.

Summary

Part of splitting Alzion_G_717 into small PRs (this is step 4 of the plan; #15 is step 3).

  • soulcap-match (cl_match.py) — takes the four SOULCAP marker columns (required/ideal exclusions and phenotypic markers) plus --parent/--subset name hints, scores every CL term in cl_pro_relationships.tsv by marker matches / contradictions / gaps, and returns ranked candidates. Name hints only add a small label-match bonus to break ties.
  • soulcap-hgnc (hgnc_map.py) — adds hgnc_id and hgnc_symbol columns to reports/cl_pro_relationships.tsv via the Monarch Node Normalizer, using UniProtKB CURIEs first and PR CURIEs as fallback. 239/295 unique PR markers resolved; the blanks are isoform-specific accessions or mouse-only proteins (the isoform case is fixed in a later PR).

Note on the diff size: the large reports/cl_pro_relationships.tsv change (~9k lines) is the regenerated report gaining the two HGNC columns, not hand edits. The code is cl_match.py + hgnc_map.py (~760 lines) and their tests (~900 lines).

Test plan

Verified in isolation in a separate worktree with the same steps as CI (uv sync --frozen --extra dev):

  • uv run pytest — 236 passed, 94.18% coverage (gate 80%)
  • uv run ruff check . and ruff format --check . pass
  • uv run mypy src/soulcap_cl_mapping passes
  • CI passes on this PR

🤖 Generated with Claude Code

s28ale-maker and others added 2 commits July 6, 2026 09:47
…profiles

Takes the four SOULCAP marker columns (required/ideal exclusions and phenotypic
markers) plus --parent and --subset name hints, scores every CL term in
cl_pro_relationships.tsv by marker matches/contradictions/gaps, and returns
ranked candidates. Name hints add a small label-match bonus to break ties.
201 tests passing, 93.8 percent coverage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds hgnc_id and hgnc_symbol columns to reports/cl_pro_relationships.tsv by
querying the Monarch Node Normalizer (nodenormalization-sri.renci.org) with
UniProtKB CURIEs (primary) and PR CURIEs as fallback for rows missing a human
UniProt ID. 239/295 unique PR markers resolved to HGNC on first run; 56 blanks
are isoform-specific accessions or mouse-only proteins.

236 tests passing, 94% coverage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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