Expand assay value sets and add BioPortal links#53
Conversation
Restructure bio/assays into subdirectory with domain-specific enums: - Move existing NF-OSI assays to bio/assays/nf_osi_assays.yaml - Add dynamic enums for OBI and BAO assay hierarchies (bio_assay.yaml) - Add static enums for enzymology, immunology, protein engineering, toxicology - All ontology CURIEs verified via OLS - Companion enum annotations document microschema coupling Add BioPortal link to all enum documentation pages via enrich_enum_docs.py. Update lab-automation.md view with new assay section. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @cmungall's task —— View job Code Review Complete ✅I've conducted a comprehensive code review of this PR. Here's my detailed analysis and feedback: Review Checklist
Overall AssessmentThis is a high-quality PR that demonstrates excellent LinkML schema design practices. The restructuring of assay value sets into domain-specific modules and the addition of BioPortal integration significantly improve the project's organization and usability. ✅ StrengthsSchema Organization & Best Practices
Code Quality
BioPortal Integration
🔍 Technical ReviewPerformance Considerations
Security Assessment
Test Coverage & Validation
📋 Minor Suggestions1. Documentation EnhancementThe BioPortal links will show "View in BioPortal" but won't resolve until the ontology is next published. Consider adding a note in the PR or documentation about this temporary limitation. 2. Annotation ConsistencyIn 3. Error Handling EnhancementThe 📝 Code Quality Assessment
✅ Final RecommendationAPPROVE - This PR represents a significant improvement to the valuesets project with excellent technical execution. The domain-specific restructuring, comprehensive ontology mappings, and BioPortal integration enhance both usability and maintainability. The changes follow all repository guidelines from |
There was a problem hiding this comment.
Pull request overview
This pull request restructures assay value sets by moving them from a single bio/assays.yaml file into a dedicated bio/assays/ subdirectory with multiple domain-specific schemas. It adds both static curated enums (enzymology, immunology, protein engineering, toxicology) with companion annotations for microschema coupling, and dynamic ontology-backed enums (OBI and BAO). Additionally, it implements BioPortal link integration in enum documentation and creates a comprehensive lab-automation view.
Changes:
- Restructured assay schemas into
bio/assays/subdirectory with 6 new schema files - Added BioPortal links to all enum documentation pages via
enrich_enum_docs.py - Created new lab-automation documentation view with comprehensive assay coverage
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
src/valuesets/schema/valuesets.yaml |
Added imports for 6 new assay schema modules |
src/valuesets/schema/bio/assays/nf_osi_assays.yaml |
Renamed from bio/assays.yaml, updated ID and title |
src/valuesets/schema/bio/assays/bio_assay.yaml |
New dynamic enums for OBI:0000070 and BAO:0000015 hierarchies |
src/valuesets/schema/bio/assays/enzymology.yaml |
New static enum with 9 enzyme assay types and companion annotations |
src/valuesets/schema/bio/assays/immunology.yaml |
New static enum with 9 immunology assay types and companion annotations |
src/valuesets/schema/bio/assays/protein_engineering.yaml |
New static enum with 7 protein engineering assay types |
src/valuesets/schema/bio/assays/toxicology.yaml |
New static enum with 8 toxicology assay types |
src/valuesets/enums/bio/assays/*.py |
Generated Python enums for all new assay types |
scripts/enrich_enum_docs.py |
Added BioPortal link generation for all enums |
mkdocs.yml |
Changed navigation section from "Subsets" to "Views" |
docs/views/lab-automation.md |
New comprehensive view documenting lab automation value sets |
| Various datamodel and JSON schema files | Updated with new enum definitions |
| companion_enum_compound: ChemicalEntity | ||
| COMET_ASSAY: | ||
| description: Single cell gel electrophoresis assay measuring DNA strand breaks | ||
| meaning: OBI:0302736 |
There was a problem hiding this comment.
The CURIE OBI:0302736 appears to be malformed. OBI identifiers typically use 7-digit numbers (e.g., OBI:0000070, OBI:0001271), not 6-digit numbers. This should be verified against the OBI ontology. If this is intentional and the CURIE exists, please confirm; otherwise, it should be corrected to the proper OBI identifier for comet assay.
| - Views: | ||
| - DOE Genesis Mission: views/genesis-mission.md | ||
| - Microbial Ecology: views/microbial-ecology.md | ||
| - Rare Disease: views/rare-disease.md | ||
| - Lab Automation: views/lab-automation.md |
There was a problem hiding this comment.
The navigation section heading was changed from "Subsets" to "Views". While this may be intentional as part of a broader renaming effort, this change is not mentioned in the PR description. Please confirm this is intentional and consider updating the PR description to reflect this navigation structure change if it wasn't already planned.
| enums: | ||
| ImmunologyAssayEnum: | ||
| title: Immunology Assay Types | ||
| description: >- | ||
| Assays for detecting and quantifying immune-related molecules | ||
| including antibody-based detection, cell sorting, and blotting methods. | ||
| status: DRAFT | ||
| contributors: | ||
| - orcid:0000-0002-6601-2165 | ||
| - https://github.com/anthropics/claude-code | ||
| instantiates: | ||
| - valuesets_meta:ValueSetEnumDefinition | ||
| permissible_values: | ||
| ELISA: | ||
| description: Enzyme-linked immunosorbent assay for detecting antigens or antibodies | ||
| meaning: BAO:0000134 | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| companion_enum_detection_method: DetectionModeEnum | ||
| SANDWICH_ELISA: | ||
| description: Sandwich ELISA using capture and detection antibodies | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| companion_enum_detection_method: DetectionModeEnum | ||
| IMMUNOPRECIPITATION: | ||
| description: Precipitation of a protein antigen from solution using a specific antibody | ||
| meaning: BAO:0002508 | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| companion_enum_detection_method: DetectionModeEnum | ||
| FLOW_CYTOMETRY: | ||
| description: Analysis of cell populations using fluorescent antibodies and light scattering | ||
| meaning: BAO:0000005 | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| companion_enum_detection_method: DetectionModeEnum | ||
| WESTERN_BLOT: | ||
| description: Protein detection by gel electrophoresis, membrane transfer, and antibody staining | ||
| meaning: OBI:0000854 | ||
| aliases: | ||
| - western blot assay | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| companion_enum_detection_method: DetectionModeEnum | ||
| CYTOKINE_SECRETION_ASSAY: | ||
| description: Measurement of cytokine types and amounts released from cells | ||
| meaning: BAO:0003003 | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| companion_enum_detection_method: DetectionModeEnum | ||
| IMMUNOBLOT: | ||
| description: Detection of proteins using antibodies on a membrane | ||
| meaning: BAO:0002422 | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| companion_enum_detection_method: DetectionModeEnum | ||
| COMPLEMENT_FIXATION: | ||
| description: Serological assay detecting antibodies by complement consumption | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| MULTIPLEX_BEAD_ASSAY: | ||
| description: Simultaneous detection of multiple analytes using antibody-conjugated beads | ||
| annotations: | ||
| companion_enum_antibody_target: Protein | ||
| companion_enum_detection_method: DetectionModeEnum |
There was a problem hiding this comment.
There is duplication of assay types between CellBasedAssayEnum (in nf_osi_assays.yaml) and ImmunologyAssayEnum. Both define ELISA, SANDWICH_ELISA, FLOW_CYTOMETRY, and WESTERN_BLOT. The ImmunologyAssayEnum versions include more detailed ontology mappings and companion enum annotations, which is valuable. However, users may be confused about which enum to use. Consider documenting the intended use case differences or consolidating these enums to avoid confusion.
- Rename docs/subsets/genesis-mission.md to docs/views/ - Add microbial-ecology and rare-disease view docs - Add genesis mission design plan - Update ontology term caches (chebi, chmo, envo, ncit, obi, pato) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @cmungall's task —— View job Code Review Complete ✅I've conducted a comprehensive code review of this PR. Here's my detailed analysis and feedback: Review Checklist
Overall AssessmentThis is a high-quality PR that demonstrates excellent LinkML schema design practices. The restructuring of assay value sets into domain-specific modules and the addition of BioPortal integration significantly improve the project's organization and usability. ✅ StrengthsSchema Organization & Best Practices
Code Quality
BioPortal Integration
🔍 Technical ReviewPerformance Considerations
Security Assessment
Test Coverage & Validation
📋 Minor Suggestions1. Documentation EnhancementThe BioPortal links will show "View in BioPortal" but won't resolve until the ontology is next published. Consider adding a note in the PR or documentation about this temporary limitation. 2. Annotation ConsistencyIn 3. Error Handling EnhancementThe 📝 Code Quality Assessment
✅ Final RecommendationAPPROVE - This PR represents a significant improvement to the valuesets project with excellent technical execution. The domain-specific restructuring, comprehensive ontology mappings, and BioPortal integration enhance both usability and maintainability. The changes follow all repository guidelines from |
Summary
bio/assays.yamlintobio/assays/subdirectory with domain-specific static enums (enzymology, immunology, protein engineering, toxicology) and dynamic OBI/BAO-backed enums[View in BioPortal]link to all generated enum documentation pages viaenrich_enum_docs.pyDetails
New schema files:
bio/assays/bio_assay.yaml-- dynamic enums for OBI:0000070 (assay) and BAO:0000015 (bioassay) hierarchiesbio/assays/enzymology.yaml-- 9 PVs (enzyme activity, kinetics, inhibition, substrate specificity)bio/assays/immunology.yaml-- 9 PVs (ELISA, flow cytometry, western blot, immunoprecipitation)bio/assays/protein_engineering.yaml-- 7 PVs (SPR, BLI, thermal shift, display technologies)bio/assays/toxicology.yaml-- 8 PVs (cytotoxicity, genotoxicity, ADME, dose-response)All ontology CURIEs verified via OLS. Companion enum annotations document microschema coupling (e.g., which enums for substrates, enzymes, detection modes should pair with each assay type).
BioPortal integration:
Each enum doc page now links to its BioPortal class view at
https://bioportal.bioontology.org/ontologies/VALUESETS?p=classes&conceptid=...Test plan
just validate-- no new errors (all failures are pre-existing NF-OSI CURIE issues)just site-- builds successfully, 637 enriched docs🤖 Generated with Claude Code