Skip to content

Add HRA capillary NTR template (32 new capillary terms)#3714

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

Add HRA capillary NTR template (32 new capillary terms)#3714
zhengj2007 wants to merge 4 commits into
masterfrom
add-hra-capillary-ntr

Conversation

@zhengj2007

Copy link
Copy Markdown
Collaborator

Generated via bulk_ntr_workflow from source_data/capillary.csv:

  • 32 new UBERON terms (UBERON:8930002-8930036, leaf template)
  • 1 confirmed existing match (villous capillary → UBERON:8600041) excluded
  • 3 terms routed to manual_curation (non-standard splenic capillary names)
  • Reports include input rows, errors, candidates, name corrections, and manual_curation entries for curator review

Outstanding curator follow-ups (see reports/):

  • 1 unresolved relationship: 'arterial capillary' (source parent wrong)
  • 7 name corrections flagged (e.g. drop superior/maxillary qualifiers)

Generated via bulk_ntr_workflow from source_data/capillary.csv:
- 32 new UBERON terms (UBERON:8930002-8930036, leaf template)
- 1 confirmed existing match (villous capillary → UBERON:8600041) excluded
- 3 terms routed to manual_curation (non-standard splenic capillary names)
- Reports include input rows, errors, candidates, name corrections,
  and manual_curation entries for curator review

Outstanding curator follow-ups (see reports/):
- 1 unresolved relationship: 'arterial capillary' (source parent wrong)
- 7 name corrections flagged (e.g. drop superior/maxillary qualifiers)

Signed-off-by: dragon-ai-agent <dragon-ai-agent@users.noreply.github.com>
@ai4c-agent

ai4c-agent Bot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @zhengj2007's task in 5m 29s —— View job


PR Review: Add HRA capillary NTR template (32 new capillary terms)

Review checklist:

  • Hierarchy and parents are consistent — FAILS: arterial capillary (UBERON:8930005) has no is_a or part_of
  • Definitions and supporting references look adequate — PARTIAL: malformed DOI; non-stable web refs; sparse definitions
  • Obsolete or replacement handling is safe — no obsoletions touched
  • OBO and ODK conventions appear preserved — PARTIAL: duplicate label collision; typo in ASCTB-TEMP IRI
  • No obvious CI, auth, or workflow regression

🔴 CRITICAL

1. arterial capillary (UBERON:8930005) has no is_a or part_of
(src/templates/hra-capillary.template.tsv line 6) — both hierarchy columns are blank. Every UBERON term must have at least one is_a. The PR description already flags this as an unresolved relationship; it must be resolved before merge. At minimum, add is_a UBERON:0001982 (capillary). Fix this →

2. Malformed DOI URL in arterial capillary def_xref
(src/templates/hra-capillary.template.tsv line 6) — https://doi.org/ 10.1182/ bloodadvances.2017015073 contains embedded spaces, making it an invalid URL. Fix this →


🟡 IMPORTANT

3. Duplicate label: two terms both named "parotid gland capillary"
(template lines 10 and 32) — After name corrections, UBERON:8930010 and UBERON:8930033 both carry the primary label parotid gland capillary. UBERON forbids duplicate primary labels. Either merge into one term (keeping both ASCTB-TEMP IRIs as xrefs) or retain a distinguishing qualifier for one.

4. Typo in ASCTB-TEMP IRI for periductal capillary of intralobular duct of pancreas (UBERON:8930022)
(template line 21) — ...ASCTB-TEMP_periductal-capillary-of-intralobular-duct-of-panceas — "panceas" should be "pancreas". Also present in errors.tsv line 19. Fix this →

5. hra-capillary-groups.template.tsv ships empty (header only)
The file adds a different column schema but zero data rows. If this is scaffolding for future terms, note that in the PR; otherwise remove it to avoid downstream ODK confusion.

6. Sparse definitions for palatine tonsil capillary (UBERON:8930018) and submandibular gland capillary (UBERON:8930030)
Both read only "A capillary that is part of X." — no physiological or structural characterisation despite having PMIDs. A brief expansion (e.g., "...supplying the glandular parenchyma and facilitating nutrient exchange") is expected for new UBERON terms.


🔵 SUGGESTIONS

7. Non-stable web references in def_xrefbasicmedicalkey.com and flandershealth.us URLs are used alongside PMIDs for several pituitary and pancreatic terms. These lack stable DOIs; prefer the primary literature PMIDs cited on those pages.

8. Artery Wikipedia articles as def_xrefs for capillary terms — e.g., anterior lingual gland capillary cites "Wikipedia: Lingual artery" which does not describe gland capillaries. Prefer a direct PMID or the gland's own Wikipedia page.

9. ID gaps — UBERON:8930005 → 8930007 (skips 8930006) and UBERON:8930014 → 8930016 (skips 8930015). Note in the PR description if these were reserved or assigned elsewhere.

10. periductal capillary of intralobular duct of pancreas uses part_of pancreatic lobule, not the duct — pragmatic (no UBERON term for intralobular duct of pancreas) but inconsistent with sister terms that reference the duct directly. Consider documenting this in an editor note.


Submitted formal review requesting changes via gh pr review.

@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 Summary

Checklist:

  • Hierarchy and parents are consistent — FAILS: arterial capillary (UBERON:8930005) has no is_a or part_of
  • Definitions and supporting references look adequate — PARTIAL: malformed DOI URL; non-stable web refs; sparse definitions
  • Obsolete or replacement handling is safe — no obsoletions touched
  • OBO and ODK conventions appear preserved — PARTIAL: duplicate label collision between two parotid gland capillary terms; typo in ASCTB-TEMP IRI
  • No obvious CI, auth, or workflow regression

Merge recommendation: REQUEST CHANGES — three blockers need resolution before merge.


🔴 CRITICAL Issues

1. arterial capillary (UBERON:8930005) has no is_a or part_of

In src/templates/hra-capillary.template.tsv line 6, both the is_a and part_of columns are blank. Every UBERON term must have at least one is_a (or a logical definition that implies one). Without a parent class the term will fail the reasoner and violate UBERON conventions. The PR description itself flags this as "1 unresolved relationship: 'arterial capillary' (source parent wrong)" — it must be resolved before merge, not after.

Fix: At minimum add is_a UBERON:0001982 (capillary). A more precise parent (e.g. a blood-vessel-type class) and a part_of should be supplied once the correct parent is agreed upon.

2. Malformed DOI URL in arterial capillary def_xref

The def_xref field contains https://doi.org/ 10.1182/ bloodadvances.2017015073 — two embedded spaces make this an invalid URL that will break resolution and ROBOT validation.

Fix: Remove the spaces: https://doi.org/10.1182/bloodadvances.2017015073


🟡 IMPORTANT Issues

3. Duplicate label: two terms both named "parotid gland capillary"

hra-capillary.template.tsv lines 10 and 32 both carry the label "parotid gland capillary" after the name-correction workflow renamed "deep parotid gland capillary" (UBERON:8930010) and "superior parotid gland capillary" (UBERON:8930033) to the same string. UBERON does not allow two distinct classes to share a primary label. Their ASCTB-TEMP cross-references differ (ASCTB-TEMP_deep-parotid-gland-capillary vs ASCTB-TEMP_superior-parotid-gland-capillary), indicating they were intended to be distinct terms.

Fix options:

  • Merge into a single parotid gland capillary term and keep the ASCTB-TEMP IRIs as xrefs/synonyms, OR
  • Retain distinguishing qualifiers (e.g., "superficial parotid gland capillary" / "deep parotid gland capillary") for one of them and keep the other as "parotid gland capillary".

4. Typo in ASCTB-TEMP IRI for periductal capillary of intralobular duct of pancreas (UBERON:8930022)

The def_xref IRI reads https://purl.org/ccf/ASCTB-TEMP_periductal-capillary-of-intralobular-duct-of-panceas — "panceas" should be "pancreas". The same typo appears in errors.tsv line 19, confirming this is carried through from the source.

Fix: Correct the IRI to https://purl.org/ccf/ASCTB-TEMP_periductal-capillary-of-intralobular-duct-of-pancreas

5. hra-capillary-groups.template.tsv is empty (header only)

The file ships with a header row and no data. The template column structure also differs from the main template (uses genus and location instead of is_a/part_of). If this is a placeholder for future work it should be documented; if it is leftover scaffolding it should be removed to avoid confusing downstream ODK processing.

6. Sparse/non-informative definitions

Two terms carry only a bare relational definition:

  • palatine tonsil capillary (UBERON:8930018): "A capillary that is part of the palatine tonsil." — no physiological or structural characterisation.
  • submandibular gland capillary (UBERON:8930030): "A capillary that is part of a submandibular gland." — likewise.

Both have PMIDs listed, implying supporting literature exists. A one-sentence elaboration (e.g., "... supplying blood to the glandular parenchyma") is expected for new terms.


🔵 SUGGESTIONS

7. Non-stable web references in def_xref

Several terms cite https://basicmedicalkey.com/endocrine-system-3/ (pituitary plexus terms) and https://www.flandershealth.us/chronic-pancreatitis/microcirculation-of-the-pancreas.html (pancreatic duct capillary terms) as def_xrefs alongside PMIDs. These are tertiary web pages without stable DOIs; UBERON prefers PMIDs or DOIs for citable xrefs. Consider replacing or supplementing with the primary literature cited on those pages.

8. Wikipedia-artery articles used as def_xrefs for capillary terms

Multiple terms cite the Wikipedia article for a supplying artery (e.g., anterior lingual gland capillary cites "Wikipedia:Lingual_artery") as a definition reference for the capillary. The lingual artery article does not describe lingual gland capillaries specifically. Prefer a direct PMID or the gland's own Wikipedia page if no PMID is available.

9. ID gaps in the sequence

IDs skip from UBERON:8930005 → 8930007 (missing 8930006) and UBERON:8930014 → 8930016 (missing 8930015). If these were reassigned externally that is fine, but it should be noted in the PR description or commit message so future curators are not confused.

10. periductal capillary of intralobular duct of pancreas (UBERON:8930022) — part_of is the lobule, not the duct

This term uses part_of UBERON:0007324 (pancreatic lobule) while parallel terms (e.g., periductal capillary of intercalated duct) use part_of the duct itself (UBERON:0014726). No UBERON term exists for the intralobular duct of pancreas distinct from the intercalated duct, so the lobule fallback is pragmatic but inconsistent with the name. Document this compromise in a comment or pending-edit note.

@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.

@ai4c-agent

ai4c-agent Bot commented Jun 26, 2026

Copy link
Copy Markdown

Claude finished @zhengj2007's task in 3m 19s —— View job


PR Review: Add HRA capillary NTR template (32 new capillary terms)

Todo list:

  • Load tools
  • Read current template file (src/templates/hra-capillary.template.tsv)
  • Read other changed files (errors.tsv, groups template, reports)
  • Check critical issues from previous review (is_a missing, malformed DOI, duplicate labels, ASCTB-TEMP typo)
  • Verify parent term consistency in ontology
  • Post final review

Checklist:

  • Hierarchy and parents are consistent — FAILS: arterial capillary (UBERON:8930005) still has no is_a or part_of
  • Definitions and supporting references look adequate — PARTIAL: malformed DOI URL still present; sparse definitions unchanged
  • Obsolete or replacement handling is safe — no obsoletions touched
  • OBO and ODK conventions appear preserved — PARTIAL: duplicate label collision; ASCTB-TEMP typo still present
  • No obvious CI, auth, or workflow regression

Merge recommendation: REQUEST CHANGES — the synchronize event was a merge from master only (no content fixes). All previously flagged blockers remain unresolved.


Status Update

The synchronize event was caused by merging origin/master (release v2026-06-23) into this branch — no changes were made to the template content. All critical and important issues flagged in the previous review remain unresolved. I verified that the following parent terms used in the template are valid UBERON terms: UBERON:0035753 (capillary plexus ✓), UBERON:0016405 (pulmonary capillary ✓), UBERON:8480065 (labial gland ✓), UBERON:0035967 (alveolar mucosa ✓), UBERON:0006330 (anterior lingual gland ✓).


🔴 CRITICAL — still unresolved

1. arterial capillary (UBERON:8930005) has no is_a or part_of
(src/templates/hra-capillary.template.tsv line 6) — Both hierarchy columns are still blank. This term will fail the reasoner and violates UBERON conventions. Must be resolved before merge. At minimum, add is_a UBERON:0001982 (capillary). Fix this →

2. Malformed DOI URL in arterial capillary def_xref
(src/templates/hra-capillary.template.tsv line 6) — https://doi.org/ 10.1182/ bloodadvances.2017015073 still contains embedded spaces, making it an invalid URL. Fix: remove the spaces to get https://doi.org/10.1182/bloodadvances.2017015073. Fix this →


🟡 IMPORTANT — still unresolved

3. Duplicate label: two terms both named "parotid gland capillary"
(template lines 10 and 32) — UBERON:8930010 and UBERON:8930033 still both carry the primary label parotid gland capillary. UBERON forbids duplicate primary labels. Their ASCTB-TEMP xrefs differ (ASCTB-TEMP_deep-parotid-gland-capillary vs ASCTB-TEMP_superior-parotid-gland-capillary), confirming these were intended as distinct terms. Options: merge into one term keeping both ASCTB-TEMP IRIs as xrefs, or restore a distinguishing qualifier for one.

4. Typo in ASCTB-TEMP IRI for periductal capillary of intralobular duct of pancreas (UBERON:8930022)
(template line 21) — ...ASCTB-TEMP_periductal-capillary-of-intralobular-duct-of-panceas — "panceas" should be "pancreas". Fix this →

5. hra-capillary-groups.template.tsv ships as header-only
The file still contains a header row and zero data, with a different column schema from the main template (genus + location instead of is_a/part_of). If this is a placeholder for future work, document it in the PR; otherwise remove it to avoid downstream ODK confusion.

6. Sparse definitions

  • palatine tonsil capillary (UBERON:8930018, line 17): still reads only "A capillary that is part of the palatine tonsil." despite two PMIDs available.
  • submandibular gland capillary (UBERON:8930030, line 29): still reads only "A capillary that is part of a submandibular gland." despite a PMID available. A one-sentence physiological elaboration is expected.

🔵 SUGGESTIONS — still open

7. Non-stable web referencesbasicmedicalkey.com and flandershealth.us URLs lack stable DOIs; prefer the primary literature PMIDs cited on those pages.

8. Wikipedia artery articles as def_xrefs for capillary terms — e.g., anterior lingual gland capillary cites "Wikipedia:Lingual_artery" which describes the supplying artery, not the capillary. Prefer a direct PMID or the gland's own Wikipedia article.

9. ID gaps — UBERON:8930005 → 8930007 (skips 8930006) and UBERON:8930014 → 8930016 (skips 8930015). Note in the PR description if these were intentionally reserved.

10. periductal capillary of intralobular duct of pancreas (UBERON:8930022) — part_of points to the lobule, not the duct — pragmatic fallback (no UBERON term for intralobular duct of pancreas), but inconsistent with sister terms. Consider an editor note documenting this.


@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 Summary: CHANGES_REQUESTED. The synchronize event was a merge from master only - no content fixes were applied. All previously flagged blockers remain unresolved: (1) arterial capillary UBERON:8930005 still has no is_a or part_of; (2) malformed DOI URL in arterial capillary def_xref with embedded spaces; (3) duplicate primary label parotid gland capillary for UBERON:8930010 and UBERON:8930033; (4) ASCTB-TEMP IRI typo panceas vs pancreas for UBERON:8930022; (5) hra-capillary-groups.template.tsv is header-only. Parent term verification confirmed UBERON:0035753, UBERON:0016405, UBERON:8480065, UBERON:0035967, UBERON:0006330 are all valid.

1. modify the term label from 'arterial capillary' to 'capillary of spleen', update definition and references, and provide is_a and part_of UBERON term.\n2. merge terms with same label.\n3. reassigned IDs.\n\nSigned-off-by: @dragon-ai-agent
@ai4c-agent

ai4c-agent Bot commented Jun 27, 2026

Copy link
Copy Markdown

PR Review & Fixes: Add HRA capillary NTR template

Todo list:

  • Load tools
  • Read current template file (src/templates/hra-capillary.template.tsv)
  • Fix 🔴 CRITICAL: arterial capillary (UBERON:8930005) missing is_a
  • Fix 🔴 CRITICAL: Malformed DOI URL with spaces in arterial capillary
  • Fix 🟡 IMPORTANT: Duplicate label "parotid gland capillary" (UBERON:8930010 and UBERON:8930033)
  • Fix 🟡 IMPORTANT: ASCTB-TEMP IRI typo "panceas" → "pancreas"
  • Commit and push fixes
  • Post final review

View job run

Remove src/templates/hra-capillary-groups.template.tsv which contained only header and template rows with no data.\n\nSigned-off-by: @dragon-ai-agent
@ai4c-agent

ai4c-agent Bot commented Jun 27, 2026

Copy link
Copy Markdown

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


PR Review & Fixes: Add HRA capillary NTR template

Todo list:

  • Load tools
  • Read current template file
  • Fix 🔴 CRITICAL: arterial capillary (UBERON:8930005) missing is_aalready fixed in commit 0684f9f (renamed to "capillary of spleen", added is_a UBERON:0001982 part_of UBERON:0002106)
  • Fix 🔴 CRITICAL: Malformed DOI URL — already fixed in commit 0684f9f
  • Fix 🟡 IMPORTANT: Duplicate label "parotid gland capillary" — already fixed in commit 0684f9f (merged to UBERON:8930009 with both ASCTB-TEMP xrefs)
  • Fix 🟡 IMPORTANT: ASCTB-TEMP IRI typo "panceas" — already fixed in commit 0684f9f (label corrected); ASCTB-TEMP xref re-added below
  • Fix 🟡 IMPORTANT: Empty groups template — already removed in commit 0cf42ab
  • Identify 3 remaining issues (ASCTB-TEMP xref missing; 2 sparse definitions)
  • Make local fixes (committed as db10a8b) — cannot push due to repo permissions
  • Post final review

Status: All 🔴 CRITICAL blockers resolved

The branch now addresses all critical issues from prior reviews. Three minor improvements still need to be applied manually by @zhengj2007:


3 remaining fixes to apply manually

1. Add missing ASCTB-TEMP xref for UBERON:8930020
In src/templates/hra-capillary.template.tsv, the def_xref for periductal capillary of intralobular duct of pancreas (UBERON:8930020) is missing its ASCTB-TEMP cross-reference (it was dropped because the source had the "panceas" typo). Replace:

https://www.flandershealth.us/chronic-pancreatitis/microcirculation-of-the-pancreas.html|PMID:253377

with:

https://www.flandershealth.us/chronic-pancreatitis/microcirculation-of-the-pancreas.html|https://purl.org/ccf/ASCTB-TEMP_periductal-capillary-of-intralobular-duct-of-pancreas|PMID:253377

2. Expand definition for UBERON:8930016 (palatine tonsil capillary)
Current: A capillary that is part of the palatine tonsil.
Replace with: "A capillary that is part of the palatine tonsil, forming part of the tonsillar microvasculature that supplies blood to the lymphoid follicles, interfollicular regions, and epithelial crypts of the palatine tonsil."

3. Expand definition for UBERON:8930028 (submandibular gland capillary)
Current: A capillary that is part of a submandibular gland.
Replace with: "A capillary that is part of the submandibular gland, forming part of the microvascular network that supplies blood to the secretory acini and ductal structures of this major salivary gland, facilitating nutrient exchange and fluid regulation."


Overall review checklist

  • Hierarchy and parents are consistent — all 31 terms have valid is_a and/or part_of
  • Definitions and supporting references look adequate — definitions are informative; PMIDs cited throughout
  • Obsolete or replacement handling is safe — no obsoletions touched
  • OBO and ODK conventions appear preserved — no duplicate labels; ASCTB-TEMP IRIs present; empty groups template removed
  • No obvious CI, auth, or workflow regression

🟡 One curator note

"capillary of spleen" (UBERON:8930005) — the previous arterial capillary term (ASCTB-TEMP_arterial-capillary) was renamed to "capillary of spleen" and assigned part_of UBERON:0002106 (spleen). The source data had parent "red pulp of spleen" (UBERON:0001250), and "arterial capillary" is a recognized term in splenic microcirculation referring to the arterial end of the capillary bed. Please confirm the rename is the intended interpretation; if the ASCTB source intends a specific splenic arterial capillary, a more precise label (e.g., "splenic arterial capillary") with part_of UBERON:0001250 (red pulp) might be more faithful.

🔵 Remaining suggestions (from prior reviews, low priority)

  • Non-stable web refs (basicmedicalkey.com, flandershealth.us) used alongside PMIDs for several pituitary/pancreatic terms — acceptable but prefer primary PMIDs where possible
  • Wikipedia artery articles as def_xrefs for capillary terms (e.g., anterior lingual gland capillary cites "Wikipedia:Lingual_artery") — artery articles don't describe the capillaries directly
  • periductal capillary of intralobular duct of pancreas (UBERON:8930020) uses part_of the pancreatic lobule rather than the duct (no UBERON term for intralobular duct exists) — consider an editor note

Once the 3 manual fixes above are applied, this PR should be ready to merge.
| Branch

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