Skip to content

Add HRA uterus NTR batch outputs and review reports#3723

Open
zhengj2007 wants to merge 4 commits into
masterfrom
add-hra-uterus-ntr
Open

Add HRA uterus NTR batch outputs and review reports#3723
zhengj2007 wants to merge 4 commits into
masterfrom
add-hra-uterus-ntr

Conversation

@zhengj2007

Copy link
Copy Markdown
Collaborator

Generated via bulk_ntr_workflow from source_data/uterus.csv (BOM header normalized into source_data/uterus_only.csv for processing).

Pipeline completed through Stage 4:

  • 27 new UBERON leaf terms in final template
  • 0 group terms
  • 6 confirmed existing matches excluded
  • 0 possible matches identified
  • 0 out-of-scope terms
  • 1 manual-curation item

QC status:

  • 0 [PENDING] definitions
  • 0 INFER/UNRESOLVABLE/NEEDS_MAPPING markers

Includes:

  • Source data snapshots in bulk_ntr_workflow/source_data/
  • Template and groups TSVs in src/templates/
  • Review reports: candidates, errors, input, manual_curation

Signed-off-by: @dragon-ai-agent

Generated via bulk_ntr_workflow from source_data/uterus.csv (BOM header normalized into source_data/uterus_only.csv for processing).

Pipeline completed through Stage 4:
- 27 new UBERON leaf terms in final template
- 0 group terms
- 6 confirmed existing matches excluded
- 0 possible matches identified
- 0 out-of-scope terms
- 1 manual-curation item

QC status:
- 0 [PENDING] definitions
- 0 INFER/UNRESOLVABLE/NEEDS_MAPPING markers

Includes:
- Source data snapshots in bulk_ntr_workflow/source_data/
- Template and groups TSVs in src/templates/
- Review reports: candidates, errors, input, manual_curation

Signed-off-by: @dragon-ai-agent
@ai4c-agent

ai4c-agent Bot commented May 26, 2026

Copy link
Copy Markdown

Claude finished @zhengj2007's task in 6m 25s —— View job


PR Review: Add HRA uterus NTR batch outputs and review reports

Tasks:

  • Gather context
  • Read changed files
  • Check parent terms in ontology
  • Verify definitions, xrefs, PMIDs
  • Check OBO/ODK conventions
  • Post review findings

Review submitted: REQUEST_CHANGES

Review checklist:

  • Hierarchy and parents are consistent — PARTIAL: most parent IDs valid; 6 terms have UNKNOWN (see critical issue below)
  • Definitions and supporting references look adequate — PARTIAL: PMID:42152375 and PMID:42116181 need verification
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — template format correct; ID range 8930000–8931000 is properly allocated to Jie Zheng
  • No obvious CI, auth, or workflow regression

🔴 CRITICAL — Must fix before merge

1. Six terms have UNKNOWN in both is_a and part_of columns (src/templates/hra-uterus.template.tsv)

ROBOT will fail or produce invalid OWL when it encounters the literal string UNKNOWN as a class IRI. The affected terms are all left/right/central anterior/posterior subdivisions of the lower uterine segment (rows 5, 8, 16, 19, 25, 28 — UBERON_8930202, 8930205, 8930220, 8930223, 8930229, 8930232).

The pipeline could not find a UBERON ID for the parent "lower uterine segment" at processing time — but lower uterine segment is itself defined as UBERON:8930224 in this same batch. The fix is to set:

  • is_aUBERON:0034944 (zone of organ)
  • part_ofhttp://purl.obolibrary.org/obo/UBERON_8930224

🟡 IMPORTANT — Should fix before merge

2. Verify PMID:42152375 and PMID:42116181 — used for connective tissue of the uterine serosa and mesothelium of the uterine serosa. High-range PMIDs (possibly 2025 publications) should be confirmed as indexed and relevant before merge.

3. lower uterine segment parent too broad — UBERON_8930224 has part_of: UBERON:0000995 (uterus). Anatomically this region is a sub-part of the body of uterus (UBERON:0009853); using that as the part_of target would be more precise.


🔵 SUGGESTIONS — Optional

  • Inner/outer uterine myometrium use is_a: UBERON:0000064 (organ part); UBERON:0034944 (zone of organ) would be more specific and consistent with the other positional terms in this batch.
  • outer uterine myometrium cites a bioRxiv preprint DOI; peer-reviewed PMIDs present as well so not blocking.
  • Stage 5 (register_templates.py) not yet run — if intentionally deferred, please note in PR description.

What looks good ✅

  • ID range UBERON:8930xxx correctly allocated to Jie Zheng in uberon-idranges.owl
  • FMA:17561 → UBERON:1200003 (uterine fundus) resolved correctly for all 8 fundus sub-terms; UBERON:1200003 confirmed to exist in ontology
  • All other parent IDs confirmed present in ontology
  • columnar cell of endocervix correctly excluded from template (routed to manual_curation.tsv — cell type belongs in CL)
  • 6 confirmed matches correctly excluded via candidates.tsv
  • Template column directives, subset IRI, ORCID, NCBITaxon, and date format all correct

@ai4c-agent ai4c-agent Bot 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.

Review checklist

  • Hierarchy and parents are consistent — PARTIAL: most parent IDs valid; 6 terms have UNKNOWN (see below)
  • Definitions and supporting references look adequate — PARTIAL: PMID:42152375, PMID:42116181 need verification
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — template format correct; ID range 8930000–8931000 is properly allocated to Jie Zheng
  • No obvious CI, auth, or workflow regression — no workflow files touched

Summary

This batch adds 27 new UBERON leaf terms for uterus anatomy via the HRA NTR pipeline. The overall structure is well-organised, the FMA:17561 → UBERON:1200003 parent mapping for fundus terms was resolved correctly, and 6 confirmed existing terms were appropriately excluded. However, there are blocking issues that need to be resolved before the template can be processed by ROBOT.


🔴 CRITICAL — Must fix before merge

1. Six terms have UNKNOWN in both is_a and part_of columns ()

ROBOT will fail or produce invalid OWL when it encounters the literal string UNKNOWN as a class IRI. The six affected terms are the left/right/central anterior/posterior subdivisions of the lower uterine segment:

Term UBERON ID Row
central anterior lower uterine segment UBERON_8930202 row 5
central posterior lower uterine segment UBERON_8930205 row 8
left anterior lower uterine segment UBERON_8930220 row 16
left posterior lower uterine segment UBERON_8930223 row 19
right anterior lower uterine segment UBERON_8930229 row 25
right posterior lower uterine segment UBERON_8930232 row 28

The pipeline flagged these in ("unknown_parent" — no UBERON ID for parent label "lower uterine segment") but left the parent as rather than resolving it. The parent term ** (UBERON:8930224)** is defined in this same template batch. The fix is to set:

  • → (zone of organ)
  • → (lower uterine segment — the new term also in this template)

🟡 IMPORTANT — Should fix before merge

2. Verify PMID:42152375 and PMID:42116181

These are used as the sole publication references (beyond the ASCTB-TEMP placeholder) for:

  • (UBERON_8930210)
  • (UBERON_8930225)

PMIDs in the 42-million range are plausible for 2025 publications, but they should be explicitly verified as real indexed papers with content relevant to the uterine serosa. If they cannot be confirmed, alternative references should be found.

3. Parent of is too broad

(UBERON_8930224, row 20) has (uterus). Anatomically the lower uterine segment is a sub-region of the body of uterus (UBERON:0009853), which is itself part of the uterus. Using would be more precise and consistent with how the body-of-uterus terms in this same batch are handled.


🔵 SUGGESTIONS — Optional improvements

4. Genus specificity for myometrium layers

(UBERON_8930216) and (UBERON_8930226) use (organ part). A more specific genus — (zone of organ) — would be consistent with how the positional uterus-body/fundus/lower-segment terms are typed in this same batch.

5. Preprint reference for outer uterine myometrium

(UBERON_8930226) includes a bioRxiv preprint DOI () as a def_xref. This is not critical since the term also cites PMID:20551073 and PMID:32427986, but prefer published references where possible.

6. Stage 5 (template registration) not yet run

The script (Stage 5 of the workflow) has not been run to register the new templates in . If this is intentional (e.g., registration is a follow-up step), please note it explicitly in the PR description.


What is fine ✅

  • ID range is correctly allocated to Jie Zheng in
  • FMA:17561 → UBERON:1200003 (uterine fundus) mapping resolved correctly for all 8 fundus sub-terms; UBERON:1200003 confirmed to exist in the ontology
  • All other and parent IDs confirmed present: UBERON:0034944, UBERON:0009853, UBERON:1200003, UBERON:0002384, UBERON:0001136, UBERON:0003891, UBERON:0012249, UBERON:0000458, UBERON:0001638, UBERON:0000995, UBERON:0000064, UBERON:0001296, UBERON:0001297
  • correctly routed to and excluded from the ROBOT template (it belongs in CL, not UBERON)
  • 6 confirmed existing terms correctly excluded in
  • Template column directives, subset IRI, ORCID, NCBITaxon, and date format all look correct
  • is empty (no group terms in this batch), which is consistent with the pipeline report

@ai4c-agent ai4c-agent Bot 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.

Review checklist

  • Hierarchy and parents are consistent — PARTIAL: most parent IDs valid; 6 terms have UNKNOWN (see below)
  • Definitions and supporting references look adequate — PARTIAL: PMID:42152375, PMID:42116181 need verification
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — template format correct; ID range 8930000-8931000 is properly allocated to Jie Zheng
  • No obvious CI, auth, or workflow regression — no workflow files touched

Summary

This batch adds 27 new UBERON leaf terms for uterus anatomy via the HRA NTR pipeline. The overall structure is well-organised, the FMA:17561 to UBERON:1200003 parent mapping for fundus terms was resolved correctly, and 6 confirmed existing terms were appropriately excluded. However, there are blocking issues that need to be resolved before the template can be processed by ROBOT.


CRITICAL — Must fix before merge

1. Six terms have UNKNOWN in both is_a and part_of columns

File: src/templates/hra-uterus.template.tsv

ROBOT will fail or produce invalid OWL when it encounters the literal string UNKNOWN as a class IRI. The six affected terms are the left/right/central anterior/posterior subdivisions of the lower uterine segment:

Term UBERON ID Row
central anterior lower uterine segment UBERON_8930202 row 5
central posterior lower uterine segment UBERON_8930205 row 8
left anterior lower uterine segment UBERON_8930220 row 16
left posterior lower uterine segment UBERON_8930223 row 19
right anterior lower uterine segment UBERON_8930229 row 25
right posterior lower uterine segment UBERON_8930232 row 28

The pipeline flagged these in errors.tsv ("unknown_parent" — no UBERON ID found for parent label "lower uterine segment") but left the parent as UNKNOWN rather than resolving it. The parent term lower uterine segment (UBERON:8930224) is defined in this same template batch. The fix is to set:

  • is_a column: UBERON:0034944 (zone of organ)
  • part_of column: http://purl.obolibrary.org/obo/UBERON_8930224 (lower uterine segment — the new term also in this template)

IMPORTANT — Should fix before merge

2. Verify PMID:42152375 and PMID:42116181

These are used as the sole publication references (beyond the ASCTB-TEMP placeholder) for:

  • connective tissue of the uterine serosa (UBERON_8930210)
  • mesothelium of the uterine serosa (UBERON_8930225)

PMIDs in the 42-million range are plausible for 2025 publications, but they should be explicitly verified as real indexed papers with content relevant to the uterine serosa. If they cannot be confirmed, alternative references should be found.

3. Parent of lower uterine segment is too broad

lower uterine segment (UBERON_8930224, row 20) has part_of: UBERON:0000995 (uterus). Anatomically the lower uterine segment is a sub-region of the body of uterus (UBERON:0009853), which is itself part of the uterus. Using part_of: UBERON:0009853 would be more precise and consistent with how the body-of-uterus terms in this same batch are handled.


SUGGESTIONS — Optional improvements

4. Genus specificity for myometrium layers

inner uterine myometrium (UBERON_8930216) and outer uterine myometrium (UBERON_8930226) use is_a: UBERON:0000064 (organ part). A more specific genus — UBERON:0034944 (zone of organ) — would be consistent with how the positional uterus-body/fundus/lower-segment terms are typed in this same batch.

5. Preprint reference for outer uterine myometrium

outer uterine myometrium (UBERON_8930226) includes a bioRxiv preprint DOI (https://doi.org/10.1101/2021.01.02.425073) as a def_xref. This is not critical since the term also cites PMID:20551073 and PMID:32427986, but published references are preferred.

6. Stage 5 (template registration) not yet run

The register_templates.py script (Stage 5 of the workflow) has not been run to register the new templates in uberon-odk.yaml. If this is intentional (e.g., registration is a follow-up step), please note it explicitly in the PR description.


What looks good

  • ID range UBERON:8930xxx is correctly allocated to Jie Zheng in uberon-idranges.owl
  • FMA:17561 to UBERON:1200003 (uterine fundus) mapping resolved correctly for all 8 fundus sub-terms; UBERON:1200003 confirmed to exist in the ontology
  • All other parent IDs confirmed present: UBERON:0034944, UBERON:0009853, UBERON:1200003, UBERON:0002384, UBERON:0001136, UBERON:0003891, UBERON:0012249, UBERON:0000458, UBERON:0001638, UBERON:0000995, UBERON:0000064, UBERON:0001296, UBERON:0001297
  • columnar cell of endocervix correctly routed to manual_curation.tsv and excluded from the ROBOT template (belongs in CL, not UBERON)
  • 6 confirmed existing terms correctly excluded in candidates.tsv
  • Template column directives, subset IRI, ORCID, NCBITaxon, and date format all look correct
  • hra-uterus-groups.template.tsv is empty (no group terms), consistent with the pipeline report

@github-actions

Copy link
Copy Markdown
Contributor

This PR has not seen any activity in the past month; if nobody comments or reviews it in the next week, the PR creator will be allowed to proceed with merging without explicit approval, should they wish to do so.

Reports are review artifacts, not ODK templates, and should not live under
src/templates/. Relocated to bulk_ntr_workflow/outputs/ to match the canonical
layout used by the muscular branch (PR #3700).

Signed-off-by: dragon-ai-agent
@cellsemantic

Copy link
Copy Markdown

Reports relocated. Route: ODK-register (~29 terms ≥20). TODO: build component + register in uberon-odk.yaml/Makefile/catalog, mirroring #3715.


Automated update (@cellsemantic / dragon-ai-agent, for @dosumis). Reports were relocated out of src/templates/bulk_ntr_workflow/outputs/<name>-reports/ to match the canonical layout (PR #3700). Note: the corrected reports-location docs currently live only on add-hra-muscular-ntr (#3700), not master. Batch-size policy for this HRA set: ≥20 new terms → ODK-register; <20 → hand-edit into uberon-edit.obo.

@ai4c-agent

ai4c-agent Bot commented Jul 9, 2026

Copy link
Copy Markdown

Claude finished @dosumis's task in 2m 52s —— View job


PR Review: Add HRA uterus NTR batch outputs and review reports

Tasks:

  • Gather context (prior reviews, cellsemantic routing comment)
  • Diff against origin/master to see what changed since last review
  • Re-check the 6 UNKNOWN parent rows and other prior findings
  • Check ODK-register TODO status (per cellsemantic comment)
  • Verify PMIDs (tool access unavailable — see note)
  • Post final review checklist + submit gh pr review

Review submitted: REQUEST_CHANGES

Review checklist:

  • Hierarchy and parents are consistent — PARTIAL: 6 terms still have literal UNKNOWN in is_a/part_of (unchanged since the 2026-05-26 review)
  • Definitions and supporting references look adequate — PARTIAL: PMID:42152375 / PMID:42116181 still unverified
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — template content is fine, but Stage 5 registration (component + uberon-odk.yaml/Makefile/catalog) has not been done, and per the 2026-07-09 routing comment this batch (27 terms, ≥20) needs ODK-register
  • No obvious CI, auth, or workflow regression — no workflow files touched

The two commits since the last full review (d4de247, f82ed04) only relocated report artifacts from src/templates/ to bulk_ntr_workflow/outputs/hra-uterus-reports/ — the template content itself (src/templates/hra-uterus.template.tsv) is unchanged, so the previously-reported critical issue is still present.


🔴 CRITICAL — Must fix before merge

1. Six terms still have UNKNOWN in both is_a and part_of (src/templates/hra-uterus.template.tsv, rows 5, 8, 16, 19, 25, 28)

Term ID
central anterior lower uterine segment UBERON_8930202
central posterior lower uterine segment UBERON_8930205
left anterior lower uterine segment UBERON_8930220
left posterior lower uterine segment UBERON_8930223
right anterior lower uterine segment UBERON_8930229
right posterior lower uterine segment UBERON_8930232

ROBOT will fail (or produce a broken class) on the literal string UNKNOWN as an IRI. The parent, lower uterine segment, is defined in this same template as UBERON_8930224 (row 20). Fix:

  • is_aUBERON:0034944 (zone of organ)
  • part_ofhttp://purl.obolibrary.org/obo/UBERON_8930224

Fix this →


🟡 IMPORTANT — Should fix before merge

2. PMID:42152375 / PMID:42116181 still unverified

Used for connective tissue of the uterine serosa (UBERON_8930210) and mesothelium of the uterine serosa (UBERON_8930225). I was unable to independently verify these via literature-lookup or web-search tools in this run (permissions unavailable in this environment). This was flagged in the prior review and remains open — please confirm these are real, indexed, topically-relevant papers before merge, or swap in verified references.

3. lower uterine segment parent may be too broad

UBERON_8930224 (row 20) has part_of: UBERON:0000995 (uterus). The other body-of-uterus subdivision terms in this same batch use part_of: UBERON:0009853 (body of uterus). Since the lower uterine segment is anatomically a sub-region of the uterine body, UBERON:0009853 would be more precise and consistent — also relevant to fixing issue #1 above, since the six UNKNOWN terms inherit their location from this term.

4. Stage 5 registration not done — required per new batch-size policy

Per the 2026-07-09 routing comment, batches ≥20 new terms (this one has 27) go through ODK-register: hra-uterus.template.tsv / hra-uterus-groups.template.tsv need a component entry in src/ontology/uberon-odk.yaml, plus Makefile/catalog regeneration (register_templates.py, Stage 5). Confirmed neither uberon-odk.yaml nor uberon.Makefile nor the catalog currently reference hra-uterus. Without this, the templates sit in the repo but are never built into the ontology.


🔵 SUGGESTIONS — Optional

  • inner uterine myometrium (UBERON_8930216) / outer uterine myometrium (UBERON_8930226) use is_a: UBERON:0000064 (organ part); UBERON:0034944 (zone of organ) would be more consistent with the other positional terms in this batch.
  • outer uterine myometrium cites a bioRxiv preprint DOI alongside two PMIDs — fine since peer-reviewed refs are also present.

What looks good ✅

  • ID range UBERON:8930xxx correctly allocated to Jie Zheng in uberon-idranges.owl
  • FMA:17561 → UBERON:1200003 (uterine fundus) resolved correctly for all 8 fundus sub-terms
  • All other is_a/part_of parent IDs referenced in the template are confirmed to exist in the ontology
  • columnar cell of endocervix correctly excluded from the UBERON template and routed to manual_curation.tsv (belongs in CL)
  • 6 confirmed existing matches correctly excluded via candidates.tsv
  • Report relocation (src/templates/*-reports/bulk_ntr_workflow/outputs/hra-uterus-reports/) correctly matches the canonical layout from PR Add hra muscular ntr #3700
  • Template column directives, subset IRI, ORCID, NCBITaxon, and date format all correct

Note: I don't have web/literature-search tool access in this run, so item #2 (PMID verification) could not be independently confirmed — flagging so a reviewer with that access can check before merge.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor
This PR modifies some logical definitions. See details below:

Number of classes with modified logical definitions: 1

gABAergic system

No changes in inferred subclasses.

@ai4c-agent ai4c-agent Bot 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.

Review checklist

  • Hierarchy and parents are consistent — PARTIAL: 6 terms still have literal UNKNOWN in is_a/part_of
  • Definitions and supporting references look adequate — PARTIAL: PMID:42152375 / PMID:42116181 unverified
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — Stage 5 (ODK-register) not yet done; required per batch-size policy for this ≥20-term batch
  • No obvious CI, auth, or workflow regression

Summary

This is a re-review after the report-relocation commit (f82ed04). That commit only moved report artifacts from src/templates/ to bulk_ntr_workflow/outputs/hra-uterus-reports/; the template content itself is unchanged, so the previously-flagged critical issue remains.

🔴 CRITICAL: src/templates/hra-uterus.template.tsv rows 5, 8, 16, 19, 25, 28 (UBERON_8930202/8930205/8930220/8930223/8930229/8930232 — the six anterior/posterior lower-uterine-segment subdivisions) have literal UNKNOWN in both is_a and part_of. ROBOT will fail on this. Fix: is_aUBERON:0034944 (zone of organ), part_ofUBERON:8930224 (lower uterine segment, defined in this same template).

🟡 IMPORTANT:

  • PMID:42152375 and PMID:42116181 (used for the uterine serosa connective-tissue/mesothelium terms) still need verification as real, indexed, on-topic papers.
  • lower uterine segment (UBERON_8930224) uses part_of: UBERON:0000995 (uterus) rather than the more precise UBERON:0009853 (body of uterus) used by sibling terms in this batch.
  • Per the 2026-07-09 routing comment, batches ≥20 new terms require ODK-register (component + uberon-odk.yaml/Makefile/catalog). Confirmed none of these currently reference hra-uterus — Stage 5 (register_templates.py) has not been run.

🔵 Suggestion: myometrium terms could use UBERON:0034944 (zone of organ) instead of UBERON:0000064 (organ part) for consistency with sibling terms.

Full details posted in the PR conversation comment.

Signed, @dragon-ai-agent

- Build and commit components/hra_uterus.owl from the ROBOT template
- Add hra-uterus-prefixes.owl, catalog redirect, uberon-odk.yaml entry,
  Makefile rule, and uberon-edit.obo import (leaf template only)
- Resolve 6 UNKNOWN parents on the '* lower uterine segment' terms:
  is_a zone of organ (UBERON:0034944), part_of lower uterine segment
  (UBERON:8930224), mirroring the sibling body/fundus subdivisions
- Remove empty hra-uterus-groups.template.tsv (0 rows); reserialise edit file

Signed-off-by: dragon-ai-agent
@dosumis dosumis requested a review from matentzn as a code owner July 9, 2026 16:56
@cellsemantic

Copy link
Copy Markdown

ODK wiring completed & pushed. Registered as an ODK component (≥20 → register): built/committed components/hra_uterus.owl (leaf, 27 terms) with prefixes, catalog redirect, uberon-odk.yaml entry, Makefile rule, and edit-file import. Import resolves locally.

⚠️ Please check: 6 terms (central/left/right anterior/posterior lower uterine segment) had UNKNOWN parents blocking the build. I resolved them by mirroring their sibling subdivisions: is_a zone of organ (UBERON:0034944), part_of lower uterine segment (UBERON:8930224, itself a new term in this batch). Please confirm that parentage.

Also: hra-uterus-groups.template.tsv was empty (0 rows) — removed; leaf template registered only.

CI will now actually load the component and run the reasoner + taxon-constraint checks on these terms for the first time — watch for any unsatisfiability/taxon issues that surface from the content (couldn't run the full reasoner locally without Docker).


Automated update (@cellsemantic / dragon-ai-agent, for @dosumis).

@ai4c-agent

ai4c-agent Bot commented Jul 9, 2026

Copy link
Copy Markdown

Claude finished @dosumis's task in 3m 18s —— View job


PR Review: Add HRA uterus NTR batch outputs and review reports

Tasks:

  • Gather context (prior reviews, cellsemantic ODK-wiring comment)
  • Diff against origin/master to see what changed since last review
  • Verify the 6 UNKNOWN parent rows were resolved as described
  • Check ODK component wiring (uberon-odk.yaml, Makefile, catalog, edit-file import)
  • Verify PMIDs — tool access unavailable, see note
  • Post final review checklist + submit gh pr review

Review submitted: REQUEST_CHANGES

Review checklist:

  • Hierarchy and parents are consistent — the 6 UNKNOWN rows flagged in every prior review are now resolved (rows 5, 8, 16, 19, 25, 28 → is_a UBERON:0034944, part_of UBERON:8930224). One precision issue remains (see below).
  • Definitions and supporting references look adequate — PMID:42152375 / PMID:42116181 still unverified
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — hra_uterus is now registered as an ODK component, mirroring the existing hra_skeleton component exactly
  • No obvious CI, auth, or workflow regression — no .github/.claude files touched

What changed since the last review (commit 30d1ad3, "Register hra_uterus as ODK component")

Resolved — the previously-blocking UNKNOWN parents: src/templates/hra-uterus.template.tsv rows 5, 8, 16, 19, 25, 28 (the 6 anterior/posterior lower-uterine-segment subdivisions) now correctly reference is_a: UBERON:0034944 (zone of organ) and part_of: UBERON:8930224 (lower uterine segment, defined in the same batch). Confirmed zero remaining UNKNOWN occurrences in the template.

Resolved — ODK registration: per the batch-size policy (≥20 new terms → ODK-register, this batch has 27), hra_uterus is now wired up as a proper ODK component: src/ontology/components/hra_uterus.owl (386 lines / 27 new classes), src/templates/hra-uterus-prefixes.owl, an entry in uberon-odk.yaml, a build rule in uberon.Makefile, a catalog redirect in catalog-v001.xml, and an import: line in uberon-edit.obo. All of this exactly mirrors the pre-existing hra_skeleton component wiring, so it's consistent with repo conventions. The empty hra-uterus-groups.template.tsv was correctly removed.


🟡 IMPORTANT — Still open

1. lower uterine segment parent may be too broad (src/templates/hra-uterus.template.tsv, row 20)

UBERON:8930224 uses part_of: UBERON:0000995 (uterus), while every sibling body-of-uterus term in this same batch (e.g. row 3) uses part_of: UBERON:0009853 (body of uterus). Since the six lower-uterine-segment subdivisions inherit their location via part_of this term, tightening it to UBERON:0009853 would improve precision across all 7 affected terms. Posted as an inline comment.

2. PMID:42152375 / PMID:42116181 still unverified

Used for connective tissue of the uterine serosa (row 9) and mesothelium of the uterine serosa (row 21). I do not have web-search or literature-lookup tool permissions in this run (same limitation as the 2026-07-09 16:26 review), so I could not confirm these are real, indexed, on-topic papers. This has been flagged in every review since 2026-05-26 — please have a reviewer with PubMed/Europe PMC access verify before merge. Posted as an inline comment.

🔵 SUGGESTION — Optional

  • inner/outer uterine myometrium use is_a: UBERON:0000064 (organ part) rather than UBERON:0034944 (zone of organ) — would be more consistent with the other positional terms in this batch.

What looks good ✅

  • All 6 previously-UNKNOWN parents resolved correctly, mirroring their sibling subdivisions
  • ODK component registration (components/hra_uterus.owl, uberon-odk.yaml, uberon.Makefile, catalog-v001.xml, uberon-edit.obo import) is complete and matches the hra_skeleton pattern
  • FMA:17561 → UBERON:1200003 (uterine fundus) resolved correctly for all 8 fundus sub-terms
  • columnar cell of endocervix correctly excluded and routed to manual_curation.tsv (belongs in CL)
  • Template column directives, subset IRI, ORCID, NCBITaxon, and date format all correct

Note on limitations: I don't have web/literature-search tool access in this environment, so PMID verification (item 2 above) could not be independently completed.

A formal REQUEST_CHANGES review and two inline comments (on the two 🟡 items) have been posted. The previously-blocking critical UNKNOWN issue is now fixed — once the PMIDs are confirmed and the lower uterine segment parent is optionally tightened, this looks ready to merge.

http://purl.obolibrary.org/obo/UBERON_8930221 left posterior body of uterus The region of the body of uterus that is located on the left side of the posterior aspect of the uterine corpus, above the isthmus and below the orifices of the uterine tubes. https://purl.org/ccf/ASCTB-TEMP_left-posterior-body-of-uterus|PMID:29262069 UBERON:0034944 UBERON:0009853 http://purl.obolibrary.org/obo/uberon/core#added_by_HRA 2026-05-26T00:00:00Z https://orcid.org/0000-0002-2999-0103 http://purl.obolibrary.org/obo/NCBITaxon_9606 Wikipedia:Uterus
http://purl.obolibrary.org/obo/UBERON_8930222 left posterior fundus of uterus A zone of organ that is located in the left lateral posterior region of the superior dome-shaped portion of the uterus, on the dorsal aspect of the left side of the uterine fundus. https://purl.org/ccf/ASCTB-TEMP_left-posterior-fundus-of-uterus|PMID:32567320 UBERON:0034944 UBERON:1200003 http://purl.obolibrary.org/obo/uberon/core#added_by_HRA 2026-05-26T00:00:00Z https://orcid.org/0000-0002-2999-0103 http://purl.obolibrary.org/obo/NCBITaxon_9606 Wikipedia:Uterus
http://purl.obolibrary.org/obo/UBERON_8930223 left posterior lower uterine segment A zone of organ that is located in the left lateral posterior region of the lower uterine segment, the narrowing transitional area between the uterine body and cervix on the dorsal left side. https://purl.org/ccf/ASCTB-TEMP_left-posterior-lower-uterine-segment|PMID:13131157|PMID:27342045 UBERON:0034944 UBERON:8930224 http://purl.obolibrary.org/obo/uberon/core#added_by_HRA 2026-05-26T00:00:00Z https://orcid.org/0000-0002-2999-0103 http://purl.obolibrary.org/obo/NCBITaxon_9606 Wikipedia:Uterus
http://purl.obolibrary.org/obo/UBERON_8930224 lower uterine segment A zone of the uterus that forms the inferior portion of the uterine body, located between the anatomic internal os and the uterine fundus, which becomes particularly distinct during pregnancy and labor. https://purl.org/ccf/ASCTB-TEMP_lower-uterine-segment|PMID:13131157|PMID:27342045 UBERON:0034944 UBERON:0000995 http://purl.obolibrary.org/obo/uberon/core#added_by_HRA 2026-05-26T00:00:00Z https://orcid.org/0000-0002-2999-0103 http://purl.obolibrary.org/obo/NCBITaxon_9606

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 IMPORTANT: lower uterine segment (UBERON:8930224) uses part_of: UBERON:0000995 (uterus). The six * lower uterine segment subdivisions in this same template (rows 5, 8, 16, 19, 25, 28) — and all the sibling body-of-uterus terms (e.g. row 3 central anterior body of uterus) — use part_of: UBERON:0009853 (body of uterus). Since the lower uterine segment is anatomically the inferior sub-region of the uterine body, UBERON:0009853 would be more precise and consistent, and would also propagate correctly to the six child terms that are part_of this term.

http://purl.obolibrary.org/obo/UBERON_8930203 central posterior body of uterus The region of the body of uterus that is located along the midline on the posterior aspect of the uterine corpus, above the isthmus and below the orifices of the uterine tubes. https://purl.org/ccf/ASCTB-TEMP_central-posterior-body-of-uterus|PMID:29262069 UBERON:0034944 UBERON:0009853 http://purl.obolibrary.org/obo/uberon/core#added_by_HRA 2026-05-26T00:00:00Z https://orcid.org/0000-0002-2999-0103 http://purl.obolibrary.org/obo/NCBITaxon_9606 Wikipedia:Uterus
http://purl.obolibrary.org/obo/UBERON_8930204 central posterior fundus of uterus A zone of organ that is located in the medial posterior region of the superior dome-shaped portion of the uterus, positioned dorsal to the midline of the uterine fundus. https://purl.org/ccf/ASCTB-TEMP_central-posterior-fundus-of-uterus|PMID:32567320 UBERON:0034944 UBERON:1200003 http://purl.obolibrary.org/obo/uberon/core#added_by_HRA 2026-05-26T00:00:00Z https://orcid.org/0000-0002-2999-0103 http://purl.obolibrary.org/obo/NCBITaxon_9606 Wikipedia:Uterus
http://purl.obolibrary.org/obo/UBERON_8930205 central posterior lower uterine segment A zone of organ that is located in the medial posterior region of the lower uterine segment, the narrowing transitional area between the uterine body and cervix that becomes more prominent during late pregnancy. https://purl.org/ccf/ASCTB-TEMP_central-posterior-lower-uterine-segment|PMID:13131157|PMID:27342045 UBERON:0034944 UBERON:8930224 http://purl.obolibrary.org/obo/uberon/core#added_by_HRA 2026-05-26T00:00:00Z https://orcid.org/0000-0002-2999-0103 http://purl.obolibrary.org/obo/NCBITaxon_9606 Wikipedia:Uterus
http://purl.obolibrary.org/obo/UBERON_8930210 connective tissue of the uterine serosa A portion of connective tissue that is part of a serosa of uterus. This connective tissue layer underlies the mesothelium and forms the structural component of the perimetrium. https://purl.org/ccf/ASCTB-TEMP_connective-tissue-of-the-uterine-serosa|PMID:42152375|PMID:42116181 UBERON:0002384 UBERON:0001297 http://purl.obolibrary.org/obo/uberon/core#added_by_HRA 2026-05-26T00:00:00Z https://orcid.org/0000-0002-2999-0103 http://purl.obolibrary.org/obo/NCBITaxon_9606 Wikipedia:Perimetrium

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 IMPORTANT: PMID:42152375 and PMID:42116181 (also used on row 21, mesothelium of the uterine serosa) are in a very high PMID range consistent only with papers indexed in the last few months. I don't have literature-lookup/web-search tool access in this run (permission was not granted), so I could not independently verify these are real, indexed, topically-relevant papers on the uterine serosa. This has been flagged in every review of this PR since 2026-05-26 and remains unconfirmed — please have a reviewer with PubMed/Europe PMC access verify before merge, or swap in confirmed references.

@ai4c-agent ai4c-agent Bot 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.

Review checklist

  • Hierarchy and parents are consistent — the 6 UNKNOWN is_a/part_of values reported in every prior review are now resolved (rows 5, 8, 16, 19, 25, 28 → is_a UBERON:0034944 zone of organ, part_of UBERON:8930224 lower uterine segment). One precision issue remains (see below).
  • Definitions and supporting references look adequate — PMID:42152375 / PMID:42116181 still unverified (no literature-lookup tool access in this run; flagged since 2026-05-26)
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — hra_uterus is now registered as an ODK component (uberon-odk.yaml, uberon.Makefile, catalog-v001.xml, uberon-edit.obo import), mirroring the existing hra_skeleton component exactly. Empty hra-uterus-groups.template.tsv was correctly removed.
  • No obvious CI, auth, or workflow regression — no .github/.claude files touched; CI build/reasoner run was still in progress at review time

Summary

This is a re-review after the Register hra_uterus as ODK component commit (30d1ad3). The previously blocking issue is fixed:

Resolved: The 6 terms that had literal UNKNOWN in is_a/part_of (central/left/right anterior/posterior lower uterine segment) now correctly reference UBERON:0034944 (zone of organ) and UBERON:8930224 (lower uterine segment, defined in the same batch). Confirmed zero remaining UNKNOWN occurrences in src/templates/hra-uterus.template.tsv.

Resolved: Per the batch-size policy (≥20 new terms → ODK-register), hra_uterus is now wired up as a proper ODK component — components/hra_uterus.owl (386 lines, 27 classes), hra-uterus-prefixes.owl, uberon-odk.yaml entry, uberon.Makefile rule, catalog redirect, and edit-file import all present and consistent with the pre-existing hra_skeleton component pattern.

🟡 Still open: lower uterine segment (UBERON:8930224) uses part_of: UBERON:0000995 (uterus) rather than UBERON:0009853 (body of uterus), which is what every sibling body-of-uterus term in this batch uses. Since the six lower-uterine-segment subdivisions inherit their location via part_of this term, tightening this to UBERON:0009853 would improve precision throughout. See inline comment.

🟡 Still open: PMID:42152375 and PMID:42116181 (used for the two uterine-serosa terms) remain unverified — I don't have web/literature-search tool permissions in this environment. This has been flagged in every review since 2026-05-26. Please have a reviewer with PubMed/Europe PMC access confirm these are real, indexed, on-topic papers before merge.

🔵 Suggestion (unchanged, optional): inner/outer uterine myometrium use is_a: UBERON:0000064 (organ part) rather than UBERON:0034944 (zone of organ), which would be more consistent with the other positional terms in this batch.

Requesting changes only for the two 🟡 items above — the previously-blocking critical issue is fixed. Once the PMIDs are confirmed and the lower uterine segment parent is (optionally) tightened, this looks ready to merge.

View job run

Runs 'odk.py update' (ODK v1.6.1) so the generated src/ontology/Makefile
includes hra_uterus.owl in OTHER_SRC with stamp-component target and default
rule; the prefixes override in uberon.Makefile applies on top. Incidental
update_repo byproducts reverted.

Signed-off-by: dragon-ai-agent
@ai4c-agent

ai4c-agent Bot commented Jul 9, 2026

Copy link
Copy Markdown

Claude finished @dosumis's task in 5m 11s —— View job


PR Review: Add HRA uterus NTR batch outputs and review reports

Tasks:

  • Gather context (prior reviews, ODK-wiring commits, routing comments)
  • Diff against origin/master / inspect current file state (shallow clone — used direct file reads instead of 3-dot diff)
  • Verify the 6 previously-UNKNOWN rows and ODK registration are solid
  • Verify PMID:42152375 and PMID:42116181 — tool access unavailable again this run (see note)
  • Re-check lower uterine segment parent precision issue
  • Review the new commit (48dee58, regenerated src/ontology/Makefile)
  • Post final review checklist + submit gh pr review

Review submitted: REQUEST_CHANGES

Review checklist:

  • Hierarchy and parents are consistent — the 6 previously-UNKNOWN rows remain correctly resolved (is_a UBERON:0034944, part_of UBERON:8930224); one precision issue remains open (see below)
  • Definitions and supporting references look adequate — PMID:42152375 / PMID:42116181 still unverified
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — new commit 48dee58 regenerates src/ontology/Makefile cleanly
  • No obvious CI, auth, or workflow regression — no .github/.claude files touched

What changed since the last review (new commit 48dee58, "Regenerate ODK Makefile to wire hra_uterus component")

✅ This commit regenerates src/ontology/Makefile via odk.py update (ODK v1.6.1) to add hra_uterus.owl to OTHER_SRC, the recreate-components/no-mirror-recreate-components --assume-new stamp list, and a default $(COMPONENTSDIR)/hra_uterus.owl template rule. I diffed this commit directly (git show 48dee58): it touches only src/ontology/Makefile, adds exactly the 3 blocks needed (mirroring the pre-existing hra_skeleton entries line-for-line), and nothing else. Since Makefile includes uberon.Makefile (line 1249), the prefix-aware override rule for hra_uterus.owl already present in uberon.Makefile (from the prior commit) correctly takes precedence over this new default rule — same pattern as hra_skeleton. No regression.

I independently confirmed:

  • src/templates/hra-uterus.template.tsv has zero remaining UNKNOWN occurrences; row 20 (lower uterine segment) and the 6 subdivision rows (5, 8, 16, 19, 25, 28) all resolve correctly.
  • src/ontology/components/hra_uterus.owl contains exactly 27 unique UBERON_8930xxx classes and zero UNKNOWN strings.
  • uberon-odk.yaml, catalog-v001.xml, and the uberon-edit.obo import: line for hra_uterus all mirror the existing hra_skeleton wiring exactly.

🟡 IMPORTANT — Still open

1. PMID:42152375 / PMID:42116181 still unverified

Used for connective tissue of the uterine serosa (row 9) and mesothelium of the uterine serosa (row 21). I attempted to verify these via artl-mcp (Europe PMC), WebFetch, and WebSearch in this run, but all three tools returned permission errors in this environment (no user available to grant access in this automated run). This has been flagged in every review since 2026-05-26 and remains unconfirmed — please have a reviewer/maintainer with PubMed/Europe PMC access verify these are real, indexed, on-topic papers before merge, or swap in confirmed references. (Flagging for --allowedTools / environment update if this should be checkable automatically going forward.)

2. lower uterine segment parent still too broad (src/templates/hra-uterus.template.tsv, row 20)

UBERON_8930224 still uses part_of: UBERON:0000995 (uterus), while every sibling body-of-uterus term in this batch (e.g., row 3) uses part_of: UBERON:0009853 (body of uterus). Since the six lower-uterine-segment subdivisions inherit their location via part_of this term, tightening it to UBERON:0009853 would improve precision across all 7 affected terms. (Previously flagged with an inline comment on this row.)

🔵 SUGGESTION — Optional

  • inner/outer uterine myometrium (rows 13, 22) use is_a: UBERON:0000064 (organ part) rather than UBERON:0034944 (zone of organ) — would be more consistent with the other positional terms in this batch.

Note on CI

The CI workflow run for this push (29036072856) was still in_progress at review time, so full reasoner/taxon-constraint results on the newly-loaded hra_uterus component were not yet available to cross-check.


What looks good ✅

  • All 6 previously-UNKNOWN parents remain correctly resolved
  • ODK component registration (components/hra_uterus.owl, uberon-odk.yaml, uberon.Makefile, the newly-regenerated src/ontology/Makefile, catalog-v001.xml, uberon-edit.obo import) is complete, internally consistent, and matches the hra_skeleton pattern exactly
  • FMA:17561 → UBERON:1200003 (uterine fundus) resolved correctly for all 8 fundus sub-terms
  • columnar cell of endocervix correctly excluded and routed to manual_curation.tsv (belongs in CL)
  • Template column directives, subset IRI, ORCID, NCBITaxon, and date format all correct

Limitation: No web/literature-search tool access was available in this run (artl-mcp, WebFetch, WebSearch all denied by permissions), so PMID verification could not be completed independently — this is the main blocker to full sign-off along with the parent-precision item above.

@ai4c-agent ai4c-agent Bot 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.

Review checklist

  • Hierarchy and parents are consistent — the 6 previously-UNKNOWN rows remain correctly resolved (is_a UBERON:0034944, part_of UBERON:8930224); one precision issue remains open
  • Definitions and supporting references look adequate — PMID:42152375 / PMID:42116181 still unverified
  • Obsolete or replacement handling is safe — no obsoletions in this PR
  • OBO and ODK conventions appear preserved — new commit 48dee58 regenerates src/ontology/Makefile cleanly, mirrors hra_skeleton pattern exactly
  • No obvious CI, auth, or workflow regression

Summary

Re-review after commit 48dee58 ("Regenerate ODK Makefile to wire hra_uterus component"). I diffed this commit directly: it touches only src/ontology/Makefile, adding hra_uterus.owl to OTHER_SRC, the recreate-components stamp lists, and a default template rule — mirroring the pre-existing hra_skeleton entries line-for-line. Since Makefile includes uberon.Makefile, the prefix-aware override rule already present there correctly takes precedence. No regression.

I independently re-confirmed: zero remaining UNKNOWN in src/templates/hra-uterus.template.tsv; components/hra_uterus.owl contains exactly 27 unique classes with no UNKNOWN; uberon-odk.yaml/catalog-v001.xml/uberon-edit.obo wiring all mirror hra_skeleton exactly.

🟡 IMPORTANT — still open:

  1. PMID:42152375 and PMID:42116181 (uterine serosa connective-tissue/mesothelium terms, rows 9 and 21) remain unverified. I attempted verification via Europe PMC (artl-mcp), WebFetch, and WebSearch in this run — all three were denied by permissions in this environment. Flagged in every review since 2026-05-26; please have a reviewer with literature-lookup access confirm before merge.
  2. lower uterine segment (UBERON:8930224, row 20) still uses part_of: UBERON:0000995 (uterus) rather than UBERON:0009853 (body of uterus), which every sibling body-of-uterus term in this batch uses. This propagates to the 6 subdivision terms that are part_of this term.

🔵 Suggestion (optional, unchanged): inner/outer uterine myometrium use is_a: UBERON:0000064 (organ part) rather than UBERON:0034944 (zone of organ), for consistency with sibling positional terms.

Note: the CI workflow run for this push was still in progress at review time, so full reasoner/taxon-constraint results on the newly-loaded component weren't yet available to cross-check.

Requesting changes only for the two 🟡 items above — the ODK wiring and previously-critical UNKNOWN issue remain resolved and clean.

Signed, @dragon-ai-agent

@cellsemantic

Copy link
Copy Markdown

Correction re: Makefile. My earlier note said I "added a Makefile rule" — that was a manual edit to uberon.Makefile only. I've since run make update_repo (odk.py update, ODK v1.6.1 — same digest as the local :latest, so no version churn) so the ODK-generated src/ontology/Makefile now properly lists hra_uterus.owl in OTHER_SRC with the stamp-component target — i.e. the component is wired into the build graph and rebuilt when the template changes, not just committed. The uberon.Makefile override (adding --input …-prefixes.owl) still applies on top, matching the fallopian-tube exemplar (#3715).

Incidental update_repo byproducts were reverted to keep the diff minimal (notably the docs.yml checkout@v6→v4 downgrade — master intentionally has @v6).


Automated update (@cellsemantic / dragon-ai-agent, for @dosumis).

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.

3 participants