Skip to content

Commit def85a4

Browse files
committed
Merge branch 'rfc-digital-pathology' of https://github.com/ncihtan/htan-linkml into rfc-digital-pathology
2 parents f103f33 + e37a160 commit def85a4

File tree

8 files changed

+118
-42
lines changed

8 files changed

+118
-42
lines changed

modules/Biospecimen/src/htan_biospecimen/datamodel/biospecimen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Auto generated from biospecimen.yaml by pythongen.py version: 0.0.1
2-
# Generation date: 2025-12-09T18:01:36
2+
# Generation date: 2025-12-09T18:24:11
33
# Schema: Biospecimen
44
#
55
# id: https://w3id.org/htan/biospecimen

modules/Clinical/src/htan_clinical/datamodel/clinical.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Auto generated from clinical.yaml by pythongen.py version: 0.0.1
2-
# Generation date: 2025-12-09T18:01:06
2+
# Generation date: 2025-12-09T18:23:42
33
# Schema: Clinical
44
#
55
# id: https://w3id.org/htan/clinical

modules/DigitalPathology/src/htan_digitalpathology/datamodel/digital_pathology.py

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Auto generated from digital_pathology.yaml by pythongen.py version: 0.0.1
2-
# Generation date: 2025-12-09T18:01:56
2+
# Generation date: 2025-12-09T18:24:30
33
# Schema: DigitalPathology
44
#
55
# id: https://w3id.org/htan/digital_pathology
@@ -157,13 +157,16 @@ class BaseImagingAttributes(CoreFileAttributes):
157157
PASSED_QC: Union[bool, Bool] = None
158158
QC_COMMENT: str = None
159159
SPECIES: Union[str, "Species"] = None
160+
HAS_SLIDE_LABEL: Union[bool, Bool] = None
161+
DE_IDENTIFIED: Union[bool, Bool] = None
160162
DE_IDENTIFICATION_METHOD_DESCRIPTION: Optional[str] = None
161163
DE_IDENTIFICATION_SOFTWARE: Optional[str] = None
162164
IMAGING_EQUIPMENT_MODEL: Optional[str] = None
163165
IMAGING_SOFTWARE: Optional[str] = None
164166
IMAGING_PROTOCOL: Optional[str] = None
165167
IMMERSION: Optional[Union[str, "ImmersionMedium"]] = None
166168
LENS_NUMERICAL_APERTURE: Optional[float] = None
169+
SLIDE_LABEL_REDACTED: Optional[Union[bool, Bool]] = None
167170

168171
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
169172
if self._is_empty(self.HTAN_DATA_FILE_ID):
@@ -231,6 +234,16 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
231234
if not isinstance(self.SPECIES, Species):
232235
self.SPECIES = Species(self.SPECIES)
233236

237+
if self._is_empty(self.HAS_SLIDE_LABEL):
238+
self.MissingRequiredField("HAS_SLIDE_LABEL")
239+
if not isinstance(self.HAS_SLIDE_LABEL, Bool):
240+
self.HAS_SLIDE_LABEL = Bool(self.HAS_SLIDE_LABEL)
241+
242+
if self._is_empty(self.DE_IDENTIFIED):
243+
self.MissingRequiredField("DE_IDENTIFIED")
244+
if not isinstance(self.DE_IDENTIFIED, Bool):
245+
self.DE_IDENTIFIED = Bool(self.DE_IDENTIFIED)
246+
234247
if self.DE_IDENTIFICATION_METHOD_DESCRIPTION is not None and not isinstance(self.DE_IDENTIFICATION_METHOD_DESCRIPTION, str):
235248
self.DE_IDENTIFICATION_METHOD_DESCRIPTION = str(self.DE_IDENTIFICATION_METHOD_DESCRIPTION)
236249

@@ -252,9 +265,15 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
252265
if self.LENS_NUMERICAL_APERTURE is not None and not isinstance(self.LENS_NUMERICAL_APERTURE, float):
253266
self.LENS_NUMERICAL_APERTURE = float(self.LENS_NUMERICAL_APERTURE)
254267

268+
if self.SLIDE_LABEL_REDACTED is not None and not isinstance(self.SLIDE_LABEL_REDACTED, Bool):
269+
self.SLIDE_LABEL_REDACTED = Bool(self.SLIDE_LABEL_REDACTED)
270+
255271
if self.DE_IDENTIFICATION_METHOD_DESCRIPTION is not None and not isinstance(self.DE_IDENTIFICATION_METHOD_DESCRIPTION, str):
256272
self.DE_IDENTIFICATION_METHOD_DESCRIPTION = str(self.DE_IDENTIFICATION_METHOD_DESCRIPTION)
257273

274+
if self.SLIDE_LABEL_REDACTED is not None and not isinstance(self.SLIDE_LABEL_REDACTED, str):
275+
self.SLIDE_LABEL_REDACTED = str(self.SLIDE_LABEL_REDACTED)
276+
258277
super().__post_init__(**kwargs)
259278

260279

@@ -285,12 +304,11 @@ class DigitalPathologyData(BaseImagingAttributes):
285304
PASSED_QC: Union[bool, Bool] = None
286305
QC_COMMENT: str = None
287306
SPECIES: Union[str, "Species"] = None
288-
FILE_FORMAT: str = None
289-
HAS_ANNOTATIONS: Union[bool, Bool] = None
290307
HAS_SLIDE_LABEL: Union[bool, Bool] = None
291308
DE_IDENTIFIED: Union[bool, Bool] = None
309+
FILE_FORMAT: str = None
310+
HAS_ANNOTATIONS: Union[bool, Bool] = None
292311
ANNOTATION_TYPE: Optional[Union[str, "AnnotationType"]] = None
293-
SLIDE_LABEL_REDACTED: Optional[Union[bool, Bool]] = None
294312

295313
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
296314
if self._is_empty(self.HTAN_DATA_FILE_ID):
@@ -308,28 +326,12 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
308326
if not isinstance(self.HAS_ANNOTATIONS, Bool):
309327
self.HAS_ANNOTATIONS = Bool(self.HAS_ANNOTATIONS)
310328

311-
if self._is_empty(self.HAS_SLIDE_LABEL):
312-
self.MissingRequiredField("HAS_SLIDE_LABEL")
313-
if not isinstance(self.HAS_SLIDE_LABEL, Bool):
314-
self.HAS_SLIDE_LABEL = Bool(self.HAS_SLIDE_LABEL)
315-
316-
if self._is_empty(self.DE_IDENTIFIED):
317-
self.MissingRequiredField("DE_IDENTIFIED")
318-
if not isinstance(self.DE_IDENTIFIED, Bool):
319-
self.DE_IDENTIFIED = Bool(self.DE_IDENTIFIED)
320-
321329
if self.ANNOTATION_TYPE is not None and not isinstance(self.ANNOTATION_TYPE, AnnotationType):
322330
self.ANNOTATION_TYPE = AnnotationType(self.ANNOTATION_TYPE)
323331

324-
if self.SLIDE_LABEL_REDACTED is not None and not isinstance(self.SLIDE_LABEL_REDACTED, Bool):
325-
self.SLIDE_LABEL_REDACTED = Bool(self.SLIDE_LABEL_REDACTED)
326-
327332
if self.ANNOTATION_TYPE is not None and not isinstance(self.ANNOTATION_TYPE, str):
328333
self.ANNOTATION_TYPE = str(self.ANNOTATION_TYPE)
329334

330-
if self.SLIDE_LABEL_REDACTED is not None and not isinstance(self.SLIDE_LABEL_REDACTED, str):
331-
self.SLIDE_LABEL_REDACTED = str(self.SLIDE_LABEL_REDACTED)
332-
333335
super().__post_init__(**kwargs)
334336

335337

@@ -517,15 +519,6 @@ class slots:
517519
slots.digitalPathologyData__ANNOTATION_TYPE = Slot(uri=HTAN.ANNOTATION_TYPE, name="digitalPathologyData__ANNOTATION_TYPE", curie=HTAN.curie('ANNOTATION_TYPE'),
518520
model_uri=HTAN.digitalPathologyData__ANNOTATION_TYPE, domain=None, range=Optional[Union[str, "AnnotationType"]])
519521

520-
slots.digitalPathologyData__HAS_SLIDE_LABEL = Slot(uri=HTAN.HAS_SLIDE_LABEL, name="digitalPathologyData__HAS_SLIDE_LABEL", curie=HTAN.curie('HAS_SLIDE_LABEL'),
521-
model_uri=HTAN.digitalPathologyData__HAS_SLIDE_LABEL, domain=None, range=Union[bool, Bool])
522-
523-
slots.digitalPathologyData__SLIDE_LABEL_REDACTED = Slot(uri=HTAN.SLIDE_LABEL_REDACTED, name="digitalPathologyData__SLIDE_LABEL_REDACTED", curie=HTAN.curie('SLIDE_LABEL_REDACTED'),
524-
model_uri=HTAN.digitalPathologyData__SLIDE_LABEL_REDACTED, domain=None, range=Optional[Union[bool, Bool]])
525-
526-
slots.digitalPathologyData__DE_IDENTIFIED = Slot(uri=HTAN.DE_IDENTIFIED, name="digitalPathologyData__DE_IDENTIFIED", curie=HTAN.curie('DE_IDENTIFIED'),
527-
model_uri=HTAN.digitalPathologyData__DE_IDENTIFIED, domain=None, range=Union[bool, Bool])
528-
529522
slots.baseImagingAttributes__EXPERIMENTAL_STRATEGY_AND_DATA_SUBTYPES = Slot(uri=HTAN.EXPERIMENTAL_STRATEGY_AND_DATA_SUBTYPES, name="baseImagingAttributes__EXPERIMENTAL_STRATEGY_AND_DATA_SUBTYPES", curie=HTAN.curie('EXPERIMENTAL_STRATEGY_AND_DATA_SUBTYPES'),
530523
model_uri=HTAN.baseImagingAttributes__EXPERIMENTAL_STRATEGY_AND_DATA_SUBTYPES, domain=None, range=Union[str, "ExperimentalStrategyAndDataSubtypes"])
531524

@@ -585,6 +578,15 @@ class slots:
585578
slots.baseImagingAttributes__SPECIES = Slot(uri=HTAN.SPECIES, name="baseImagingAttributes__SPECIES", curie=HTAN.curie('SPECIES'),
586579
model_uri=HTAN.baseImagingAttributes__SPECIES, domain=None, range=Union[str, "Species"])
587580

581+
slots.baseImagingAttributes__HAS_SLIDE_LABEL = Slot(uri=HTAN.HAS_SLIDE_LABEL, name="baseImagingAttributes__HAS_SLIDE_LABEL", curie=HTAN.curie('HAS_SLIDE_LABEL'),
582+
model_uri=HTAN.baseImagingAttributes__HAS_SLIDE_LABEL, domain=None, range=Union[bool, Bool])
583+
584+
slots.baseImagingAttributes__SLIDE_LABEL_REDACTED = Slot(uri=HTAN.SLIDE_LABEL_REDACTED, name="baseImagingAttributes__SLIDE_LABEL_REDACTED", curie=HTAN.curie('SLIDE_LABEL_REDACTED'),
585+
model_uri=HTAN.baseImagingAttributes__SLIDE_LABEL_REDACTED, domain=None, range=Optional[Union[bool, Bool]])
586+
587+
slots.baseImagingAttributes__DE_IDENTIFIED = Slot(uri=HTAN.DE_IDENTIFIED, name="baseImagingAttributes__DE_IDENTIFIED", curie=HTAN.curie('DE_IDENTIFIED'),
588+
model_uri=HTAN.baseImagingAttributes__DE_IDENTIFIED, domain=None, range=Union[bool, Bool])
589+
588590
slots.coreFileAttributes__FILENAME = Slot(uri=HTAN.FILENAME, name="coreFileAttributes__FILENAME", curie=HTAN.curie('FILENAME'),
589591
model_uri=HTAN.coreFileAttributes__FILENAME, domain=None, range=str,
590592
pattern=re.compile(r'^.+[\\/]\S*$'))
@@ -603,17 +605,17 @@ class slots:
603605
slots.DE_IDENTIFICATION_METHOD_DESCRIPTION = Slot(uri=HTAN.DE_IDENTIFICATION_METHOD_DESCRIPTION, name="DE_IDENTIFICATION_METHOD_DESCRIPTION", curie=HTAN.curie('DE_IDENTIFICATION_METHOD_DESCRIPTION'),
604606
model_uri=HTAN.DE_IDENTIFICATION_METHOD_DESCRIPTION, domain=None, range=Optional[str])
605607

606-
slots.ANNOTATION_TYPE = Slot(uri=HTAN.ANNOTATION_TYPE, name="ANNOTATION_TYPE", curie=HTAN.curie('ANNOTATION_TYPE'),
607-
model_uri=HTAN.ANNOTATION_TYPE, domain=None, range=Optional[str])
608-
609608
slots.SLIDE_LABEL_REDACTED = Slot(uri=HTAN.SLIDE_LABEL_REDACTED, name="SLIDE_LABEL_REDACTED", curie=HTAN.curie('SLIDE_LABEL_REDACTED'),
610609
model_uri=HTAN.SLIDE_LABEL_REDACTED, domain=None, range=Optional[str])
611610

611+
slots.ANNOTATION_TYPE = Slot(uri=HTAN.ANNOTATION_TYPE, name="ANNOTATION_TYPE", curie=HTAN.curie('ANNOTATION_TYPE'),
612+
model_uri=HTAN.ANNOTATION_TYPE, domain=None, range=Optional[str])
613+
612614
slots.DigitalPathologyData_ANNOTATION_TYPE = Slot(uri=HTAN.ANNOTATION_TYPE, name="DigitalPathologyData_ANNOTATION_TYPE", curie=HTAN.curie('ANNOTATION_TYPE'),
613615
model_uri=HTAN.DigitalPathologyData_ANNOTATION_TYPE, domain=DigitalPathologyData, range=Optional[str])
614616

615-
slots.DigitalPathologyData_SLIDE_LABEL_REDACTED = Slot(uri=HTAN.SLIDE_LABEL_REDACTED, name="DigitalPathologyData_SLIDE_LABEL_REDACTED", curie=HTAN.curie('SLIDE_LABEL_REDACTED'),
616-
model_uri=HTAN.DigitalPathologyData_SLIDE_LABEL_REDACTED, domain=DigitalPathologyData, range=Optional[str])
617-
618617
slots.BaseImagingAttributes_DE_IDENTIFICATION_METHOD_DESCRIPTION = Slot(uri=HTAN.DE_IDENTIFICATION_METHOD_DESCRIPTION, name="BaseImagingAttributes_DE_IDENTIFICATION_METHOD_DESCRIPTION", curie=HTAN.curie('DE_IDENTIFICATION_METHOD_DESCRIPTION'),
619618
model_uri=HTAN.BaseImagingAttributes_DE_IDENTIFICATION_METHOD_DESCRIPTION, domain=BaseImagingAttributes, range=Optional[str])
619+
620+
slots.BaseImagingAttributes_SLIDE_LABEL_REDACTED = Slot(uri=HTAN.SLIDE_LABEL_REDACTED, name="BaseImagingAttributes_SLIDE_LABEL_REDACTED", curie=HTAN.curie('SLIDE_LABEL_REDACTED'),
621+
model_uri=HTAN.BaseImagingAttributes_SLIDE_LABEL_REDACTED, domain=BaseImagingAttributes, range=Optional[str])

modules/Imaging/src/htan_imaging/datamodel/imaging.py

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Auto generated from imaging.yaml by pythongen.py version: 0.0.1
2-
# Generation date: 2025-12-09T18:01:52
2+
# Generation date: 2025-12-09T18:24:27
33
# Schema: Imaging
44
#
55
# id: https://w3id.org/htan/imaging
@@ -154,13 +154,16 @@ class BaseImagingAttributes(CoreFileAttributes):
154154
PASSED_QC: Union[bool, Bool] = None
155155
QC_COMMENT: str = None
156156
SPECIES: Union[str, "Species"] = None
157+
HAS_SLIDE_LABEL: Union[bool, Bool] = None
158+
DE_IDENTIFIED: Union[bool, Bool] = None
157159
DE_IDENTIFICATION_METHOD_DESCRIPTION: Optional[str] = None
158160
DE_IDENTIFICATION_SOFTWARE: Optional[str] = None
159161
IMAGING_EQUIPMENT_MODEL: Optional[str] = None
160162
IMAGING_SOFTWARE: Optional[str] = None
161163
IMAGING_PROTOCOL: Optional[str] = None
162164
IMMERSION: Optional[Union[str, "ImmersionMedium"]] = None
163165
LENS_NUMERICAL_APERTURE: Optional[float] = None
166+
SLIDE_LABEL_REDACTED: Optional[Union[bool, Bool]] = None
164167

165168
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
166169
if self._is_empty(self.HTAN_DATA_FILE_ID):
@@ -228,6 +231,16 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
228231
if not isinstance(self.SPECIES, Species):
229232
self.SPECIES = Species(self.SPECIES)
230233

234+
if self._is_empty(self.HAS_SLIDE_LABEL):
235+
self.MissingRequiredField("HAS_SLIDE_LABEL")
236+
if not isinstance(self.HAS_SLIDE_LABEL, Bool):
237+
self.HAS_SLIDE_LABEL = Bool(self.HAS_SLIDE_LABEL)
238+
239+
if self._is_empty(self.DE_IDENTIFIED):
240+
self.MissingRequiredField("DE_IDENTIFIED")
241+
if not isinstance(self.DE_IDENTIFIED, Bool):
242+
self.DE_IDENTIFIED = Bool(self.DE_IDENTIFIED)
243+
231244
if self.DE_IDENTIFICATION_METHOD_DESCRIPTION is not None and not isinstance(self.DE_IDENTIFICATION_METHOD_DESCRIPTION, str):
232245
self.DE_IDENTIFICATION_METHOD_DESCRIPTION = str(self.DE_IDENTIFICATION_METHOD_DESCRIPTION)
233246

@@ -249,9 +262,15 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
249262
if self.LENS_NUMERICAL_APERTURE is not None and not isinstance(self.LENS_NUMERICAL_APERTURE, float):
250263
self.LENS_NUMERICAL_APERTURE = float(self.LENS_NUMERICAL_APERTURE)
251264

265+
if self.SLIDE_LABEL_REDACTED is not None and not isinstance(self.SLIDE_LABEL_REDACTED, Bool):
266+
self.SLIDE_LABEL_REDACTED = Bool(self.SLIDE_LABEL_REDACTED)
267+
252268
if self.DE_IDENTIFICATION_METHOD_DESCRIPTION is not None and not isinstance(self.DE_IDENTIFICATION_METHOD_DESCRIPTION, str):
253269
self.DE_IDENTIFICATION_METHOD_DESCRIPTION = str(self.DE_IDENTIFICATION_METHOD_DESCRIPTION)
254270

271+
if self.SLIDE_LABEL_REDACTED is not None and not isinstance(self.SLIDE_LABEL_REDACTED, str):
272+
self.SLIDE_LABEL_REDACTED = str(self.SLIDE_LABEL_REDACTED)
273+
255274
super().__post_init__(**kwargs)
256275

257276

@@ -466,6 +485,15 @@ class slots:
466485
slots.baseImagingAttributes__SPECIES = Slot(uri=HTAN.SPECIES, name="baseImagingAttributes__SPECIES", curie=HTAN.curie('SPECIES'),
467486
model_uri=HTAN.baseImagingAttributes__SPECIES, domain=None, range=Union[str, "Species"])
468487

488+
slots.baseImagingAttributes__HAS_SLIDE_LABEL = Slot(uri=HTAN.HAS_SLIDE_LABEL, name="baseImagingAttributes__HAS_SLIDE_LABEL", curie=HTAN.curie('HAS_SLIDE_LABEL'),
489+
model_uri=HTAN.baseImagingAttributes__HAS_SLIDE_LABEL, domain=None, range=Union[bool, Bool])
490+
491+
slots.baseImagingAttributes__SLIDE_LABEL_REDACTED = Slot(uri=HTAN.SLIDE_LABEL_REDACTED, name="baseImagingAttributes__SLIDE_LABEL_REDACTED", curie=HTAN.curie('SLIDE_LABEL_REDACTED'),
492+
model_uri=HTAN.baseImagingAttributes__SLIDE_LABEL_REDACTED, domain=None, range=Optional[Union[bool, Bool]])
493+
494+
slots.baseImagingAttributes__DE_IDENTIFIED = Slot(uri=HTAN.DE_IDENTIFIED, name="baseImagingAttributes__DE_IDENTIFIED", curie=HTAN.curie('DE_IDENTIFIED'),
495+
model_uri=HTAN.baseImagingAttributes__DE_IDENTIFIED, domain=None, range=Union[bool, Bool])
496+
469497
slots.coreFileAttributes__FILENAME = Slot(uri=HTAN.FILENAME, name="coreFileAttributes__FILENAME", curie=HTAN.curie('FILENAME'),
470498
model_uri=HTAN.coreFileAttributes__FILENAME, domain=None, range=str,
471499
pattern=re.compile(r'^.+[\\/]\S*$'))
@@ -484,5 +512,11 @@ class slots:
484512
slots.DE_IDENTIFICATION_METHOD_DESCRIPTION = Slot(uri=HTAN.DE_IDENTIFICATION_METHOD_DESCRIPTION, name="DE_IDENTIFICATION_METHOD_DESCRIPTION", curie=HTAN.curie('DE_IDENTIFICATION_METHOD_DESCRIPTION'),
485513
model_uri=HTAN.DE_IDENTIFICATION_METHOD_DESCRIPTION, domain=None, range=Optional[str])
486514

515+
slots.SLIDE_LABEL_REDACTED = Slot(uri=HTAN.SLIDE_LABEL_REDACTED, name="SLIDE_LABEL_REDACTED", curie=HTAN.curie('SLIDE_LABEL_REDACTED'),
516+
model_uri=HTAN.SLIDE_LABEL_REDACTED, domain=None, range=Optional[str])
517+
487518
slots.BaseImagingAttributes_DE_IDENTIFICATION_METHOD_DESCRIPTION = Slot(uri=HTAN.DE_IDENTIFICATION_METHOD_DESCRIPTION, name="BaseImagingAttributes_DE_IDENTIFICATION_METHOD_DESCRIPTION", curie=HTAN.curie('DE_IDENTIFICATION_METHOD_DESCRIPTION'),
488519
model_uri=HTAN.BaseImagingAttributes_DE_IDENTIFICATION_METHOD_DESCRIPTION, domain=BaseImagingAttributes, range=Optional[str])
520+
521+
slots.BaseImagingAttributes_SLIDE_LABEL_REDACTED = Slot(uri=HTAN.SLIDE_LABEL_REDACTED, name="BaseImagingAttributes_SLIDE_LABEL_REDACTED", curie=HTAN.curie('SLIDE_LABEL_REDACTED'),
522+
model_uri=HTAN.BaseImagingAttributes_SLIDE_LABEL_REDACTED, domain=BaseImagingAttributes, range=Optional[str])

0 commit comments

Comments
 (0)