Add HRA eye NTR template: inner/outer cortex of lens#3713
Conversation
Generated via bulk_ntr_workflow from bulk_ntr_workflow/eye.csv (HRA ASCTB unmapped terms, eye table). New terms: - UBERON:9900001 inner cortex of lens (part_of UBERON:0000389 lens cortex) - UBERON:9900002 outer cortex of lens (part_of UBERON:0000389 lens cortex) Both classified as is_a UBERON:0034944 (zone of organ), following the pattern of lens nucleus (UBERON:0000390). Definitions reference PMID:10550792 and PMID:20171212. Source labels 'Inner cortex' / 'Outer cortex' were renamed for disambiguation (see src/templates/hra-eye-reports/name_corrections.tsv); curator may add the originals as narrow synonyms. Stage 5 registered hra_eye.owl as a template-driven component in uberon-odk.yaml and added the corresponding import to uberon-edit.obo. The empty groups template was removed (no group terms in this batch). Note: 'sh run.sh make update_repo' was not run (Docker unavailable); component OWL will be generated on next ODK build. Signed-off-by: dragon-ai-agent <dragon-ai-agent@users.noreply.github.com>
|
Claude finished @zhengj2007's task in 6m 5s —— View job PR Review: Add HRA eye NTR template: inner/outer cortex of lensReview checklist:
Tasks:
OverviewThis PR adds two new terms — 🔵 SUGGESTION — PR description states wrong IDsFile: PR description / The PR description says:
But the actual final template
The 99xxxxx IDs are placeholder NTR IDs from the initial workflow stage; the final assigned IDs are 8930000/8930001. Checking the ontology, the 893xxxx range is currently unoccupied (the adjacent block 🔵 SUGGESTION — ASCTB-TEMP IRIs appear in
|
| Claim | Check |
|---|---|
inner/outer cortex of lens is_a zone of organ (UBERON:0034944) |
✅ Consistent — lens nucleus uses the same genus |
inner/outer cortex of lens part_of lens cortex (UBERON:0000389) |
✅ Anatomically sound; no ID collision; part_of chain reaches lens correctly |
| No existing UBERON term for these structures | ✅ candidates.tsv is empty; confirmed_matches = [] in definition JSON |
ODK config
The uberon-odk.yaml addition follows the exact same pattern as hra_skeleton.owl:
- filename: hra_eye.owl
use_template: true
templates:
- hra-eye.template.tsvThe uberon-edit.obo import line is in alphabetical order among other HRA component imports. Both changes look correct.
Note on PMID verification
Could not verify PMID:10550792 and PMID:20171212 directly (EuropePMC tool requires permission grant). The curator should confirm these PMIDs describe inner/outer cortex structure of the crystalline lens. The workflow agent reports they were found and are relevant, which is consistent with the anatomically detailed definitions.
Merge recommendation
Approve with suggestions. No critical issues. The main action item is to correct the PR description (actual IDs are UBERON:8930000/8930001, not 9900001/9900002) and confirm the 8930xxx range is formally allocated. The ASCTB-TEMP-in-def_xref and synonym gaps are minor best-practice issues that can be addressed in a follow-up.
There was a problem hiding this comment.
Approve with suggestions. No critical issues found.
Hierarchy: inner/outer cortex of lens is_a zone of organ (UBERON:0034944), part_of lens cortex (UBERON:0000389) — anatomically sound and consistent with the lens nucleus design pattern.
Definitions: Aristotelian definitions with PMID references are adequate. (PMIDs could not be verified via EuropePMC in this run — curator should confirm PMID:10550792 and PMID:20171212 describe lens cortex inner/outer zones.)
ODK config: hra_eye.owl component registration in uberon-odk.yaml and the import line in uberon-edit.obo both follow established HRA precedent correctly.
Minor notes to address:
- PR description cites UBERON:9900001/9900002 (placeholder NTR IDs) rather than the actual assigned IDs UBERON:8930000/8930001. Please update the description and confirm the 8930xxx block is formally allocated.
- ASCTB-TEMP source IRIs appear in def_xref alongside PMIDs; these are better placed in the xref column.
- Narrow synonyms 'Inner cortex' / 'Outer cortex' (per name_corrections.tsv) are deferred — acknowledged in PR body.
- Inner/outer cortex definitions are circularly cross-referenced; grounding inner cortex on 'immediately surrounding the lens nucleus' would improve clarity.
cmungall
left a comment
There was a problem hiding this comment.
Can someone document the workflow that is being used to add two terms?
I am not familiar with how HRA terms were added in the past but this is way too complex for two terms that follow standard DPs
|
@dragon-ai-agent please look deeper into the anatomy, current idiomatic modeling patterns in uberon, how we model spatial layers, how the proposed subdivision would relate to the capsule and the nucleus. Also show how this would relate to FMA terms. Compare also to standard anatomical diagrams etc Show (just in this PR comment, don't touch this actual PR) your proposed obo stanzas for these terms |
|
🤖 Working on it... Follow along: View workflow run |
Lens cortex zone subdivision: anatomical analysis and proposed modelingThis is an analysis-only comment — no changes are being made to this PR. The proposed stanzas below are for discussion; if accepted I would file them as a follow-up to refine what is already in this branch. 1. Anatomy: what the inner/outer cortex actually areThe human lens is an avascular, concentrically zoned, biconvex structure. Looking at the Vanderbilt Schey lab diagram you linked, the canonical onion-like topology from outside in is:
The cortex/nucleus boundary in life is a continuous gradient of cellular age, but it is reliably visible as an optical discontinuity by Scheimpflug/slit-lamp and is the standard partition used in MS imaging, AQP0/membrane-remodelling studies, and nutrient distribution studies (Yeum et al. 1999, PMID:10550792 explicitly compares "epithelium/outer cortex" vs "inner cortex/nucleus"). 2. How UBERON currently models lens spatial layersExisting pattern (today, on master): So the established UBERON idiom for the lens layers is the Comparable idiomatic patterns elsewhere in UBERON for concentric / inner-vs-outer subdivisions:
The existing lens-specific idiom is therefore richer than what is currently proposed in this PR — it uses both 3. How this maps to FMAFMA has all of this already, with a fuller mereological/topological decomposition (queried via OLS4 on FMA):
Two important consequences of the FMA picture:
4. Issues with the current PR as draftedCross-referenced against the analysis above, the current template rows have:
5. Proposed OBO stanzasThese are what I would propose the generated OBO should look like. They retain the HRA 6. What this buys us
7. Open questionFMA also has a finer partition ( If you'd like, I can open a follow-up PR with these refinements on top of this branch once it's merged, or fold them in directly here if you'd prefer to ship one cleaner PR. 🤖 Generated by @dragon-ai-agent
|
|
@zhengj2007 - please just add the suggested OBO stanzas from Dragon AI - except only use is_a + relationship (no intersection_of). Template can be removed. Not worth having for 2 terms. |
Remove the hra_eye component registration from uberon-odk.yaml to undo Stage 5 template registration while keeping template/report content unchanged. Signed-off-by: @dragon-ai-agent
|
Claude finished @zhengj2007's task in 8m 24s —— View job Implementing dosumis's suggestion: direct OBO stanzas, remove templateTasks:
What was doneCommit The commit:
To push this commit, a maintainer with write access to the branch can run: (the commit is already staged on the local runner)
|
Remove generated NTR outputs/templates/reports from the branch and restore uberon-odk.yaml to match master. Keep ontology edits in src/ontology/uberon-edit.obo and the source input file bulk_ntr_workflow/source_data/eye.csv as the intended branch payload. Signed-off-by: @dragon-ai-agent
@dosumis I removed the template generated by the agent and added the suggested OBO stanzas from Dragon AI to uberon-edit.obo file with following modifications:
|
|
Hi @zhengj2007 Apologies, I don't really understand the HRA workflow and why all of these anciliary files are in the PR I agree with @dosumis
But the PR still includes many changes to json files, odk yaml files, and this is the only edit to the obo file: which seems to be causing the test failure maybe start a new PR and do it the old fashioned way where an edit to the ontology is an edit to the obo source file? |
|
Fairly minor point:
I would push for having logical definitions for anything compositional, it makes the intent clear, and increases maintainability, even if there is low entailment value. Having said that, the logical definition the agent proposed doesn't really conform to an existing DP, and is on the verge of being too open... we can always return to cases like this with the help of agents It's also possible I am misunderstanding something in the new uberon editing process - just to echo my comment from earlier:
Is the HRA->Uberon SOP documented? |
|
Claude finished @zhengj2007's task in 6m 54s —— View job PR Review: Add HRA eye NTR template: inner/outer cortex of lensReview checklist:
Tasks:
OverviewAfter @zhengj2007's latest push, the PR is now much cleaner: only two files changed — the direct OBO stanzas in The terms are anatomically well-formed, follow the dragon-ai agent's detailed proposal, and the spatial axioms ( 🟡 IMPORTANT —
|
| Check | Result |
|---|---|
inner/outer cortex of lens is_a zone of organ (UBERON:0034944) |
✅ Consistent with lens nucleus pattern |
part_of lens cortex (UBERON:0000389) |
✅ Anatomically sound |
surrounds/surrounded_by spatial axioms |
✅ Concentric topology: capsule → outer cortex → inner cortex → nucleus |
adjacent_to capsule of lens and adjacent_to lens anterior epithelium on outer cortex |
✅ Consistent with anatomy |
| FMA xrefs: FMA:280212 (superficial cortex) and FMA:280216 (deep cortex) | ✅ Correct FMA equivalents |
| Synonyms: "superficial/deep cortex of lens" and Latin forms | ✅ Standard anatomical names included |
dc-contributor and dcterms-date present |
✅ |
| Template/ODK config ancillary files removed | ✅ Clean PR |
bulk_ntr_workflow/source_data/eye.csv |
✅ Expected location per workflow README |
| Contributor ORCID label corrected to Jie Zheng | ✅ |
Review submitted: CHANGES_REQUESTED. One required fix before merge: add term_tracker_item to both stanzas and run robot convert reserialisation. No anatomical or structural issues found.
There was a problem hiding this comment.
Review checklist:
- Hierarchy and parents are consistent
- Definitions and supporting references look adequate
- Obsolete or replacement handling is safe (N/A)
- OBO and ODK conventions appear preserved (minor: see below)
- No obvious CI, auth, or workflow regression
Overview
After @zhengj2007's latest push, the PR is now much cleaner: only two files changed — the direct OBO stanzas in src/ontology/uberon-edit.obo (+43 lines) and the source provenance CSV in bulk_ntr_workflow/source_data/eye.csv. The template, ODK config changes, and bulk output files have all been removed. This directly implements @dosumis's request.
The terms are anatomically well-formed, follow the dragon-ai agent's informed proposal, and the spatial axioms (surrounds/surrounded_by, adjacent_to) now correctly represent the concentric lens layer topology. FMA cross-references and anatomical synonyms are included.
One required metadata field is missing; everything else is minor.
🟡 IMPORTANT — term_tracker_item missing from both terms
Per CLAUDE.md: "Link back to the issue you are dealing with using the term_tracker_item". Both new terms lack this field. Comparable recently-added terms (e.g. UBERON:8000010) carry:
property_value: term_tracker_item "https://github.com/obophenotype/uberon/pull/3713" xsd:anyURI
Please add this to both UBERON:8930000 and UBERON:8930001.
🔵 SUGGESTION — is_a annotation missing space after !
Both new stanzas read:
is_a: UBERON:0034944 !zone of organ
Standard OBO format requires a space: is_a: UBERON:0034944 ! zone of organ. This is cosmetic and will be corrected automatically when robot convert is run (reserialisation step from CLAUDE.md), but since the stanzas were entered manually they should conform now. Note: robot convert reserialisation was not run on this branch — it should be done before merge.
🔵 SUGGESTION — PMID verification
EuropePMC was unavailable for direct verification. The curator should confirm:
- PMID:10550792 — Yeum et al. 1999, cited for both terms — that it explicitly compares inner vs. outer cortex as distinct zones
- PMID:20171212 — Augusteyn 2010, cited for inner cortex
- PMID:19357350 — Lim et al. 2009, cited for outer cortex (remodelling/transition zones)
These PMIDs were identified by the dragon-ai agent in a thorough anatomical analysis, so they are likely correct, but a spot-check is good practice.
Positive findings
| Check | Result |
|---|---|
inner/outer cortex of lens is_a zone of organ (UBERON:0034944) |
✅ Consistent with lens nucleus pattern |
part_of lens cortex (UBERON:0000389) |
✅ Anatomically sound |
surrounds/surrounded_by spatial axioms |
✅ Correctly models concentric topology: capsule → outer cortex → inner cortex → nucleus |
adjacent_to capsule of lens and adjacent_to lens anterior epithelium on outer cortex |
✅ Consistent with anatomy |
| FMA xrefs: FMA:280212 (superficial cortex) and FMA:280216 (deep cortex) | ✅ Correct FMA equivalents |
| Synonyms: "superficial/deep cortex of lens" and Latin forms | ✅ Standard anatomical names included |
dc-contributor and dcterms-date present |
✅ |
| No template/ODK config ancillary files | ✅ Clean PR after @zhengj2007's cleanup |
bulk_ntr_workflow/source_data/eye.csv |
✅ Expected location per workflow README |
ORCID:0000-0002-2999-0103 ! Jie Zheng corrected from dragon-ai's draft |
✅ |
Merge recommendation
Request changes — one required fix before merge: add term_tracker_item to both stanzas and run robot convert reserialisation. No anatomical or structural issues.
— 🤖 @dragon-ai-agent

Generated via bulk_ntr_workflow from bulk_ntr_workflow/eye.csv (HRA ASCTB unmapped terms, eye table).
New terms:
Both classified as is_a UBERON:0034944 (zone of organ), following the pattern of lens nucleus (UBERON:0000390). Definitions reference PMID:10550792 and PMID:20171212.
Source labels 'Inner cortex' / 'Outer cortex' were renamed for disambiguation (see src/templates/hra-eye-reports/name_corrections.tsv); curator may add the originals as narrow synonyms.
Stage 5 registered hra_eye.owl as a template-driven component in uberon-odk.yaml and added the corresponding import to uberon-edit.obo. The empty groups template was removed (no group terms in this batch).
Note: 'sh run.sh make update_repo' was not run (Docker unavailable); component OWL will be generated on next ODK build.