From f284234cd2b838d5ee3b1d71cee24f4edd9394c9 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Wed, 4 Sep 2024 17:59:28 -0700 Subject: [PATCH 01/59] add collection_metadata to template and update configs --- ingestion_tools/dataset_configs/10000.yaml | 23 +++++++++++-------- ingestion_tools/dataset_configs/10001.yaml | 6 ++++- ingestion_tools/dataset_configs/10002.yaml | 12 ++++++---- ingestion_tools/dataset_configs/10004.yaml | 11 ++++++--- ingestion_tools/dataset_configs/10007.yaml | 13 +++++++---- ingestion_tools/dataset_configs/10008.yaml | 14 +++++++---- ingestion_tools/dataset_configs/10009.yaml | 19 +++++++++------ ingestion_tools/dataset_configs/10010.yaml | 17 +++++++++----- .../dataset_configs/10011_draft.yaml | 6 ++++- ingestion_tools/dataset_configs/10301.yaml | 15 ++++++++---- ingestion_tools/dataset_configs/10302.yaml | 18 +++++++++------ ingestion_tools/dataset_configs/template.yaml | 2 ++ 12 files changed, 105 insertions(+), 51 deletions(-) diff --git a/ingestion_tools/dataset_configs/10000.yaml b/ingestion_tools/dataset_configs/10000.yaml index 37eec6fe2..33b588bc0 100644 --- a/ingestion_tools/dataset_configs/10000.yaml +++ b/ingestion_tools/dataset_configs/10000.yaml @@ -333,6 +333,11 @@ annotations: glob_string: labels/{run_name}_membranes.mrc is_visualization_default: false mask_label: 1 +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - metadata/mdocs_modified/{run_name}.mdoc dataset_keyphotos: - sources: - literal: @@ -403,14 +408,15 @@ depositions: - metadata: authors: *id003 dates: *id002 - deposition_description: - "Datasets comprising 20 annotated Schizosaccharomyces pombe cryo-electron tomograms, with 10 tomograms acquired - using a Volta phase plate (VPP) for enhanced contrast and 10 using conventional defocus. The dataset includes - comprehensive annotations of ribosomes, fatty acid synthases, membranes, organelles, and cytosol. Additionally, - 3 tomograms of RPE-1 cells used to train networks for actin segmentation are included. These datasets enabled the - development and validation of DeePiCt, a deep learning framework combining 2D and 3D convolutional neural networks - for cellular structure segmentation and macromolecular complex localization across different species and - acquisition conditions." + deposition_description: Datasets comprising 20 annotated Schizosaccharomyces pombe + cryo-electron tomograms, with 10 tomograms acquired using a Volta phase plate + (VPP) for enhanced contrast and 10 using conventional defocus. The dataset includes + comprehensive annotations of ribosomes, fatty acid synthases, membranes, organelles, + and cytosol. Additionally, 3 tomograms of RPE-1 cells used to train networks + for actin segmentation are included. These datasets enabled the development + and validation of DeePiCt, a deep learning framework combining 2D and 3D convolutional + neural networks for cellular structure segmentation and macromolecular complex + localization across different species and acquisition conditions. deposition_identifier: 10000 deposition_title: DeePiCt Training and Evaluation Datasets deposition_types: @@ -438,7 +444,6 @@ rawtilts: list_globs: - metadata/{run_name}.rawtlt - metadata/{run_name}.xf - - metadata/mdocs_modified/{run_name}.mdoc runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index ef2c053a0..4369d886b 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -333,6 +333,11 @@ annotations: glob_string: labels/{run_name}_membranes.mrc is_visualization_default: false mask_label: 1 +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - metadata/mdocs_modified/{run_name}.mdoc dataset_keyphotos: - sources: - literal: @@ -423,7 +428,6 @@ rawtilts: list_globs: - metadata/{run_name}.rawtlt - metadata/{run_name}.xf - - metadata/mdocs_modified/{run_name}.mdoc runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index adde58372..9e16ff5d5 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -71,6 +71,11 @@ annotations: file_format: mrc glob_string: prediction/{run_name}_*.mrc is_visualization_default: false +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - metadata/{run_name}.mdoc dataset_keyphotos: - sources: - literal: @@ -109,12 +114,12 @@ datasets: - ORCID: 0000-0001-8324-4040 corresponding_author_status: true name: Judith B. Zaugg - cell_type: - id: CL:0002586 - name: retinal pigment epithelial cell cell_strain: id: BTO:0004790 name: hTERT-RPE1 cell + cell_type: + id: CL:0002586 + name: retinal pigment epithelial cell cross_references: publications: doi:10.1101/2022.04.12.488077, doi:10.1038/s41592-022-01746-2 related_database_entries: EMPIAR-10989 @@ -162,7 +167,6 @@ rawtilts: - source_multi_glob: list_globs: - metadata/{run_name}_sq_df_sorted_fid.xf - - metadata/{run_name}.mdoc runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index 2ef7af0a6..42efe5e2b 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -62,6 +62,11 @@ annotations: file_format: csv_with_header glob_string: '{run_name}/annoRibosome_bin4.txt' is_visualization_default: true +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/{run_name}.mdoc' dataset_keyphotos: - sources: - literal: @@ -131,8 +136,9 @@ depositions: - metadata: authors: *id002 dates: *id001 - deposition_description: Cryo-electron tomograms from double-sided attachment Serial Lift-Out experiment of C. - elegans, including annotations of ribosomes identified and refined using STOPGAP and RELION. + deposition_description: Cryo-electron tomograms from double-sided attachment Serial + Lift-Out experiment of C. elegans, including annotations of ribosomes identified + and refined using STOPGAP and RELION. deposition_identifier: 10004 deposition_title: "C. Elegans from Serial Lift-Out \u2013 Sampling the Molecular\ \ Anatomy of Whole Organisms" @@ -161,7 +167,6 @@ rawtilts: list_globs: - '{run_name}/{run_name}.mdoc-dose_filt.tlt' - '{run_name}/{run_name}.mdoc-dose_filt.xf' - - '{run_name}/{run_name}.mdoc' runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10007.yaml b/ingestion_tools/dataset_configs/10007.yaml index b7cadb363..6617c658b 100644 --- a/ingestion_tools/dataset_configs/10007.yaml +++ b/ingestion_tools/dataset_configs/10007.yaml @@ -39,6 +39,11 @@ annotations: glob_string: '{run_name}/metadata/particles/*.star' is_visualization_default: true order: xyz +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -94,8 +99,9 @@ depositions: authors: *id002 dates: *id001 deposition_description: Cryo-electron tomograms of S.cerevisiae of plasma FIB-SEM - lamella, including 80S ribosome annotations generated using crYOLO. This dataset was used for evaluation of the - cryoDRGN-ET reconstruction of the 80S ribosome conformational landscape inside cells. + lamella, including 80S ribosome annotations generated using crYOLO. This dataset + was used for evaluation of the cryoDRGN-ET reconstruction of the 80S ribosome + conformational landscape inside cells. deposition_identifier: 10007 deposition_title: Saccharomyces cerevisiae cryo-FIB lamella tomograms deposition_types: @@ -123,7 +129,6 @@ rawtilts: list_globs: - '{run_name}/*_dose-filt.rawtlt' - '{run_name}/AreTomo/*_dose-filt.xf' - - '{run_name}/*.mdoc' runs: - sources: - source_glob: @@ -132,8 +137,8 @@ runs: name_regex: (.*) standardization_config: deposition_id: 10007 - run_to_tomo_map_csv: run_to_tomo_map.csv run_data_map_file: run_data_map.csv + run_to_tomo_map_csv: run_to_tomo_map.csv source_prefix: Abhay_yeast tiltseries: - metadata: diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index 4cbb00ffd..6795f4401 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -69,6 +69,11 @@ annotations: glob_string: subtomo/ribo/ribo_tm_bin1_motl_12.star is_visualization_default: true order: xyz +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - tomo/raw_stacks/{mapped_ts_name}/SerialEM/{mapped_frame_name}.st.mdoc dataset_keyphotos: - sources: - literal: @@ -139,10 +144,12 @@ depositions: - metadata: authors: *id003 dates: *id002 - deposition_description: Cryo-electron tomograms of T. kivui FIB-SEM lamellas, including annotations of - membrane-anchored hydrogen-dependent CO2 reductase filaments and ribosomes, refined using STOPGAP. + deposition_description: Cryo-electron tomograms of T. kivui FIB-SEM lamellas, + including annotations of membrane-anchored hydrogen-dependent CO2 reductase + filaments and ribosomes, refined using STOPGAP. deposition_identifier: 10008 - deposition_title: Membrane-anchored Hydrogen-dependent CO2 reductase nanowires in T. kivui + deposition_title: Membrane-anchored Hydrogen-dependent CO2 reductase nanowires + in T. kivui deposition_types: - dataset sources: @@ -164,7 +171,6 @@ rawtilts: list_globs: - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.tlt - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.xf - - tomo/raw_stacks/{mapped_ts_name}/SerialEM/{mapped_frame_name}.st.mdoc runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index 73c095d38..82a3521f2 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -103,9 +103,9 @@ annotations: - metadata: annotation_method: manual picking + line fit + pick on line + CC based filtering annotation_object: + description: MTD stellate id: GO:0097537 name: Y-shaped link - description: MTD stellate annotation_publications: doi:10.1126/science.abm6704 annotation_software: 3dmod, STOPGAP authors: *id001 @@ -185,6 +185,11 @@ annotations: glob_string: motivelists/allmotl_D_newbin2_3.star is_visualization_default: true order: xyz +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - Tomo{run_name}/raw_data/mdocs/*.mdoc dataset_keyphotos: - sources: - literal: @@ -270,8 +275,9 @@ depositions: - metadata: authors: *id003 dates: *id002 - deposition_description: Cryo-electron tomograms of FIB-SEM lamellas of the Chlamydomonas reinhardtii ciliary base, - including annotations of the intraflagellar transport machinery, refined using STOPGAP. + deposition_description: Cryo-electron tomograms of FIB-SEM lamellas of the Chlamydomonas + reinhardtii ciliary base, including annotations of the intraflagellar transport + machinery, refined using STOPGAP. deposition_identifier: 10009 deposition_title: Architecture of the Chlamydomonas reinhardtii ciliary base deposition_types: @@ -295,7 +301,6 @@ rawtilts: list_globs: - Tomo{run_name}/raw_data/imod_metadata/*.tlt - Tomo{run_name}/raw_data/imod_metadata/*.xf - - Tomo{run_name}/raw_data/mdocs/*.mdoc runs: - sources: - source_glob: @@ -321,6 +326,7 @@ tiltseries: pixel_spacing: 3.42 related_empiar_entry: EMPIAR-11078 spherical_aberration_constant: 2.7 + tilt_axis: 0.0 tilt_range: &id007 max: 60 min: -60 @@ -328,7 +334,6 @@ tiltseries: tilt_step: 2.0 tilting_scheme: Dose-symmetric total_flux: 100 - tilt_axis: 0.0 sources: - parent_filters: exclude: @@ -348,12 +353,12 @@ tiltseries: pixel_spacing: 3.42 related_empiar_entry: EMPIAR-11078 spherical_aberration_constant: 2.7 + tilt_axis: 0.0 tilt_range: *id007 tilt_series_quality: 5 tilt_step: 2.0 tilting_scheme: bi-directional total_flux: 100 - tilt_axis: 0.0 sources: - parent_filters: include: @@ -370,12 +375,12 @@ tiltseries: pixel_spacing: 13.68 related_empiar_entry: EMPIAR-11078 spherical_aberration_constant: 2.7 + tilt_axis: 0.0 tilt_range: *id007 tilt_series_quality: 5 tilt_step: 2.0 tilting_scheme: Dose-symmetric total_flux: 100 - tilt_axis: 0.0 sources: - parent_filters: include: diff --git a/ingestion_tools/dataset_configs/10010.yaml b/ingestion_tools/dataset_configs/10010.yaml index 5972053bd..6a5b36ae4 100644 --- a/ingestion_tools/dataset_configs/10010.yaml +++ b/ingestion_tools/dataset_configs/10010.yaml @@ -65,6 +65,11 @@ annotations: glob_string: Voxel_Segmentations/{run_name}_labels.rec.mrc is_visualization_default: true mask_label: 3 +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - Tilt_series_mdocs/{run_name}.mrc.mdoc dataset_keyphotos: - sources: - literal: @@ -122,9 +127,10 @@ depositions: - metadata: authors: *id003 dates: *id002 - deposition_description: This dataset contains cryo-electron tomograms of mouse embryonic - fibroblasts from FIB-SEM lamella. The dataset was used to develop and evaluate a surface morphometrics - pipeline to quantify organellar membrane ultrastructure. + deposition_description: This dataset contains cryo-electron tomograms of mouse + embryonic fibroblasts from FIB-SEM lamella. The dataset was used to develop + and evaluate a surface morphometrics pipeline to quantify organellar membrane + ultrastructure. deposition_identifier: 10010 deposition_title: Surface morphometrics of organellar membranes deposition_types: @@ -145,8 +151,7 @@ key_images: rawtilts: - sources: - source_multi_glob: - list_globs: - - Tilt_series_mdocs/{run_name}.mrc.mdoc + list_globs: [] runs: - sources: - source_glob: @@ -172,6 +177,7 @@ tiltseries: energy_filter: '{energy_filter}' pixel_spacing: float {tilt_series_pixel_spacing} spherical_aberration_constant: 2.7 + tilt_axis: 86.2 tilt_range: max: 60 min: -60 @@ -179,7 +185,6 @@ tiltseries: tilt_step: 2 tilting_scheme: min to max tilt total_flux: float {tilt_series_total_flux} - tilt_axis: 86.2 sources: - source_glob: list_glob: Tilt_Series/{run_name}.mrc diff --git a/ingestion_tools/dataset_configs/10011_draft.yaml b/ingestion_tools/dataset_configs/10011_draft.yaml index 6484acfa2..513c78dd1 100644 --- a/ingestion_tools/dataset_configs/10011_draft.yaml +++ b/ingestion_tools/dataset_configs/10011_draft.yaml @@ -29,6 +29,11 @@ annotations: file_format: csv glob_string: aaaa/bbb/{ts_name}.csv shape: REQUIRED +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - metadata/mdocs_modified/{run_name}.mdoc dataset_keyphotos: - sources: - literal: @@ -98,7 +103,6 @@ rawtilts: list_globs: - metadata/{run_name}.rawtlt - metadata/{run_name}.xf - - metadata/mdocs_modified/{run_name}.mdoc runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index af7187e02..cc9ba5ce9 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -165,6 +165,11 @@ annotations: glob_string: '{run_name}/metadata/particles/microtubule_*.star' is_visualization_default: true order: xyz +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/{run_name}.mdoc' dataset_keyphotos: - sources: - literal: @@ -247,11 +252,12 @@ depositions: authors: *id003 dates: *id002 deposition_description: Cryo-electron tomography dataset of cryo-plasmaFIB milled - lamella of Chlamydomonas reinhardtii. Contained tomograms are partially annotated, including annotations for - ribosomes, nucleosomes, F1F0-ATPase, RubisCO, and microtubules. + lamella of Chlamydomonas reinhardtii. Contained tomograms are partially annotated, + including annotations for ribosomes, nucleosomes, F1F0-ATPase, RubisCO, and + microtubules. deposition_identifier: 10300 - deposition_title: In situ cryo-ET dataset of Chlamydomonas reinhardtii prepared using - cryo-plasmaFIB milling + deposition_title: In situ cryo-ET dataset of Chlamydomonas reinhardtii prepared + using cryo-plasmaFIB milling deposition_types: - dataset sources: @@ -275,7 +281,6 @@ rawtilts: - source_multi_glob: list_globs: - '{run_name}/{run_name}.rawtlt' - - '{run_name}/{run_name}.mdoc' - '{run_name}/AreTomo/{run_name}_dose-filt.tlt' - '{run_name}/AreTomo/{run_name}_dose-filt.xf' - '{run_name}/ctffind4/ctfphaseflip_ctffind4.txt' diff --git a/ingestion_tools/dataset_configs/10302.yaml b/ingestion_tools/dataset_configs/10302.yaml index 2b1ddf9ee..b600fb924 100644 --- a/ingestion_tools/dataset_configs/10302.yaml +++ b/ingestion_tools/dataset_configs/10302.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - chlamy_visual_proteomics/{run_name}/{run_name}.mdoc dataset_keyphotos: - sources: - literal: @@ -64,7 +69,7 @@ datasets: dataset_identifier: 10302 dataset_title: In situ cryo-ET dataset of Chlamydomonas reinhardtii prepared using cryo-plasmaFIB milling - Full Dataset - dates: &id002 + dates: deposition_date: '2024-04-10' last_modified_date: '2024-04-10' release_date: '2024-04-10' @@ -92,17 +97,12 @@ rawtilts: - source_multi_glob: list_globs: - chlamy_visual_proteomics/{run_name}/{run_name}.rawtlt - - chlamy_visual_proteomics/{run_name}/{run_name}.mdoc - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.tlt - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.xf - chlamy_visual_proteomics/{run_name}/ctffind4/ctfphaseflip_ctffind4.txt runs: - sources: - - source_glob: - list_glob: chlamy_visual_proteomics/* - match_regex: /(\d{8}_.*)$ - name_regex: (.*) - exclude: + - exclude: - ^01122021_BrnoKrios_arctis_lam1_pos4$ - ^01122021_BrnoKrios_arctis_lam1_pos5$ - ^01122021_BrnoKrios_arctis_lam2_pos13$ @@ -121,6 +121,10 @@ runs: - ^27042022_BrnoKrios_Arctis_grid9_hGIS_Position_33$ - ^27042022_BrnoKrios_Arctis_grid9_hGIS_Position_44$ - ^27042022_BrnoKrios_Arctis_grid9_hGIS_Position_7$ + source_glob: + list_glob: chlamy_visual_proteomics/* + match_regex: /(\d{8}_.*)$ + name_regex: (.*) standardization_config: deposition_id: 10300 run_data_map_file: chlamy_visual_proteomics/run_to_data_map.tsv diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index ff4cb338d..f714e3841 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -92,6 +92,8 @@ annotations: OPTIONAL scale_factor: OPTIONAL, FLOAT (DEFAULT 1) (POSITIVE) parent_filters: see InstanceSegmentation.parent_filters exclude: SEE InstanceSegmentation.exclude +collection_metadata: OPTIONAL +- sources: SEE datasets.sources and runs.sources.parent_filters dataset_keyphotos: OPTIONAL - sources: REQUIRED - literal: REQUIRED From bb639516dfb126219d9320a66b1828b178e5cb6d Mon Sep 17 00:00:00 2001 From: Bento007 Date: Wed, 4 Sep 2024 18:03:01 -0700 Subject: [PATCH 02/59] add collection metadata to ingestion config --- ingestion_tools/scripts/importers/collection_metadata.py | 8 ++++++++ ingestion_tools/scripts/standardize_dirs.py | 1 + 2 files changed, 9 insertions(+) create mode 100644 ingestion_tools/scripts/importers/collection_metadata.py diff --git a/ingestion_tools/scripts/importers/collection_metadata.py b/ingestion_tools/scripts/importers/collection_metadata.py new file mode 100644 index 000000000..abab26051 --- /dev/null +++ b/ingestion_tools/scripts/importers/collection_metadata.py @@ -0,0 +1,8 @@ +from common.finders import DefaultImporterFactory +from importers.base_importer import BaseFileImporter + + +class CollectionMetadataImporter(BaseFileImporter): + type_key = "collection_metadata" + finder_factory = DefaultImporterFactory + has_metadata = False diff --git a/ingestion_tools/scripts/standardize_dirs.py b/ingestion_tools/scripts/standardize_dirs.py index 6863577f9..9fc1dffc8 100644 --- a/ingestion_tools/scripts/standardize_dirs.py +++ b/ingestion_tools/scripts/standardize_dirs.py @@ -58,6 +58,7 @@ FrameImporter: {}, TiltSeriesImporter: {}, RawTiltImporter: {}, + CollectionMetadataImporter: {}, }, DatasetKeyPhotoImporter: {}, }, From 99adb45f4c7a42a52da9f7949ee7fc6caedeba03 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 5 Sep 2024 09:51:38 -0700 Subject: [PATCH 03/59] add collection metadata to ingest_config_schema --- ingestion_tools/scripts/standardize_dirs.py | 1 + .../v1.0.0/codegen/ingestion_config_models.py | 12080 ++++++---------- .../ingestion_config_models.schema.json | 180 + .../ingestion_config_models_materialized.yaml | 376 + .../v1.0.0/ingestion_config_models.yaml | 37 + 5 files changed, 5088 insertions(+), 7586 deletions(-) diff --git a/ingestion_tools/scripts/standardize_dirs.py b/ingestion_tools/scripts/standardize_dirs.py index 9fc1dffc8..033042248 100644 --- a/ingestion_tools/scripts/standardize_dirs.py +++ b/ingestion_tools/scripts/standardize_dirs.py @@ -3,6 +3,7 @@ import click from importers.annotation import AnnotationImporter +from importers.collection_metadata import CollectionMetadataImporter from importers.dataset import DatasetImporter from importers.dataset_key_photo import DatasetKeyPhotoImporter from importers.deposition import DepositionImporter diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 69e2570da..e0b941912 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,493 +1,412 @@ from __future__ import annotations -from datetime import datetime, date +from datetime import ( + datetime, + date +) from decimal import Decimal from enum import Enum import re import sys -from typing import Any, ClassVar, List, Literal, Dict, Optional, Union -from pydantic import BaseModel, ConfigDict, Field, RootModel, field_validator, conlist - +from typing import ( + Any, + ClassVar, + List, + Literal, + Dict, + Optional, + Union +) +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator, + conlist +) metamodel_version = "None" version = "1.1.0" class ConfiguredBaseModel(BaseModel): model_config = ConfigDict( - validate_assignment=True, - validate_default=True, - extra="forbid", - arbitrary_types_allowed=True, - use_enum_values=True, - strict=False, + validate_assignment = True, + validate_default = True, + extra = "forbid", + arbitrary_types_allowed = True, + use_enum_values = True, + strict = False, ) pass + + class LinkMLMeta(RootModel): root: Dict[str, Any] = {} model_config = ConfigDict(frozen=True) - def __getattr__(self, key: str): + def __getattr__(self, key:str): return getattr(self.root, key) - def __getitem__(self, key: str): + def __getitem__(self, key:str): return self.root[key] - def __setitem__(self, key: str, value): + def __setitem__(self, key:str, value): self.root[key] = value - def __contains__(self, key: str) -> bool: + def __contains__(self, key:str) -> bool: return key in self.root -linkml_meta = LinkMLMeta( - { - "default_prefix": "cdp-ingestion-config/", - "description": "Schema for ingestion configs", - "id": "cdp-ingestion-config", - "imports": [ - "linkml:types", - "../../../core/v1.1.0/codegen/metadata_materialized", - "../../../core/v1.1.0/common", - ], - "name": "cdp-ingestion-config", - "prefixes": {"linkml": {"prefix_prefix": "linkml", "prefix_reference": "https://w3id.org/linkml/"}}, - "source_file": "ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml", - "types": { - "BTO_ID": { - "base": "str", - "description": "A BRENDA Tissue Ontology identifier", - "from_schema": "cdp-ingestion-config", - "name": "BTO_ID", - "pattern": "^BTO:[0-9]{7}$", - }, - "CL_ID": { - "base": "str", - "description": "A Cell Ontology identifier", - "from_schema": "cdp-ingestion-config", - "name": "CL_ID", - "pattern": "^CL:[0-9]{7}$", - }, - "DOI": { - "base": "str", - "description": "A Digital Object Identifier", - "from_schema": "cdp-ingestion-config", - "name": "DOI", - "pattern": "^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+$", - }, - "DOI_LIST": { - "base": "str", - "description": "A list of Digital Object Identifiers", - "from_schema": "cdp-ingestion-config", - "name": "DOI_LIST", - "pattern": "^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$", - }, - "EMDB_ID": { - "base": "str", - "description": "An Electron Microscopy Data Bank " "identifier", - "from_schema": "cdp-ingestion-config", - "name": "EMDB_ID", - "pattern": "^EMD-[0-9]{4,5}$", - }, - "EMPIAR_EMDB_DOI_PDB_LIST": { - "base": "str", - "description": "A list of EMPIAR, " "EMDB, DOI, and PDB " "identifiers", - "from_schema": "cdp-ingestion-config", - "name": "EMPIAR_EMDB_DOI_PDB_LIST", - "pattern": "^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$", - }, - "EMPIAR_EMDB_PDB_LIST": { - "base": "str", - "description": "A list of EMPIAR, EMDB, " "and PDB identifiers", - "from_schema": "cdp-ingestion-config", - "name": "EMPIAR_EMDB_PDB_LIST", - "pattern": "^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$", - }, - "EMPIAR_ID": { - "base": "str", - "description": "An Electron Microscopy Public Image " "Archive identifier", - "from_schema": "cdp-ingestion-config", - "name": "EMPIAR_ID", - "pattern": "^EMPIAR-[0-9]+$", - }, - "FloatFormattedString": { - "base": "str", - "description": "A formatted string that " "represents a floating " "point number.", - "from_schema": "cdp-ingestion-config", - "name": "FloatFormattedString", - "pattern": "^float[ " "]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - }, - "GO_ID": { - "base": "str", - "description": "A Gene Ontology identifier", - "from_schema": "cdp-ingestion-config", - "name": "GO_ID", - "pattern": "^GO:[0-9]{7}$", - }, - "IntegerFormattedString": { - "base": "str", - "description": "A formatted string that " "represents an integer.", - "from_schema": "cdp-ingestion-config", - "name": "IntegerFormattedString", - "pattern": "^int[ " "]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - }, - "ONTOLOGY_ID": { - "base": "str", - "description": "An ontology identifier", - "from_schema": "cdp-ingestion-config", - "name": "ONTOLOGY_ID", - "pattern": "^[a-zA-Z]+:[0-9]+$", - }, - "ORCID": { - "base": "str", - "description": "A unique, persistent identifier for " "researchers, provided by ORCID.", - "from_schema": "cdp-ingestion-config", - "name": "ORCID", - "pattern": "[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$", - }, - "PDB_ID": { - "base": "str", - "description": "A Protein Data Bank identifier", - "from_schema": "cdp-ingestion-config", - "name": "PDB_ID", - "pattern": "^PDB-[0-9a-zA-Z]{4,8}$", - }, - "StringFormattedString": { - "base": "str", - "description": "A formatted string " "(variable) that " "represents a string.", - "from_schema": "cdp-ingestion-config", - "name": "StringFormattedString", - "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ " "]*$", - }, - "UNIPROT_ID": { - "base": "str", - "description": "A UniProt identifier", - "from_schema": "cdp-ingestion-config", - "name": "UNIPROT_ID", - "pattern": "^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$", - }, - "URLorS3URI": { - "base": "str", - "description": "A URL or S3 URI", - "from_schema": "cdp-ingestion-config", - "name": "URLorS3URI", - "pattern": "^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$", - }, - "VersionString": { - "base": "float", - "description": "A version number (only major, " "minor versions)", - "from_schema": "cdp-ingestion-config", - "minimum_value": 0, - "name": "VersionString", - }, - "WORMBASE_ID": { - "base": "str", - "description": "A WormBase identifier", - "from_schema": "cdp-ingestion-config", - "name": "WORMBASE_ID", - "pattern": "WBStrain[0-9]{8}$", - }, - "boolean": { - "base": "Bool", - "description": "A binary (true or false) value", - "exact_mappings": ["schema:Boolean"], - "from_schema": "cdp-ingestion-config", - "name": "boolean", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"boolean".' - ], - "repr": "bool", - "uri": "xsd:boolean", - }, - "curie": { - "base": "Curie", - "comments": [ - "in RDF serializations this MUST be expanded " "to a URI", - "in non-RDF serializations MAY be serialized " "as the compact representation", - ], - "conforms_to": "https://www.w3.org/TR/curie/", - "description": "a compact URI", - "from_schema": "cdp-ingestion-config", - "name": "curie", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"curie".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "date": { - "base": "XSDDate", - "description": "a date (year, month and day) in an " "idealized calendar", - "exact_mappings": ["schema:Date"], - "from_schema": "cdp-ingestion-config", - "name": "date", - "notes": [ - "URI is dateTime because OWL reasoners don't " "work with straight date or time", - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"date".', - ], - "repr": "str", - "uri": "xsd:date", - }, - "date_or_datetime": { - "base": "str", - "description": "Either a date or a datetime", - "from_schema": "cdp-ingestion-config", - "name": "date_or_datetime", - "notes": [ - "If you are authoring schemas in " - "LinkML YAML, the type is referenced " - "with the lower case " - '"date_or_datetime".' - ], - "repr": "str", - "uri": "linkml:DateOrDatetime", - }, - "datetime": { - "base": "XSDDateTime", - "description": "The combination of a date and time", - "exact_mappings": ["schema:DateTime"], - "from_schema": "cdp-ingestion-config", - "name": "datetime", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the lower " - 'case "datetime".' - ], - "repr": "str", - "uri": "xsd:dateTime", - }, - "decimal": { - "base": "Decimal", - "broad_mappings": ["schema:Number"], - "description": "A real number with arbitrary precision " - "that conforms to the xsd:decimal " - "specification", - "from_schema": "cdp-ingestion-config", - "name": "decimal", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"decimal".' - ], - "uri": "xsd:decimal", - }, - "double": { - "base": "float", - "close_mappings": ["schema:Float"], - "description": "A real number that conforms to the " "xsd:double specification", - "from_schema": "cdp-ingestion-config", - "name": "double", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"double".' - ], - "uri": "xsd:double", - }, - "float": { - "base": "float", - "description": "A real number that conforms to the " "xsd:float specification", - "exact_mappings": ["schema:Float"], - "from_schema": "cdp-ingestion-config", - "name": "float", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"float".' - ], - "uri": "xsd:float", - }, - "integer": { - "base": "int", - "description": "An integer", - "exact_mappings": ["schema:Integer"], - "from_schema": "cdp-ingestion-config", - "name": "integer", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"integer".' - ], - "uri": "xsd:integer", - }, - "jsonpath": { - "base": "str", - "conforms_to": "https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html", - "description": "A string encoding a JSON Path. The " - "value of the string MUST conform to " - "JSON Point syntax and SHOULD " - "dereference to zero or more valid " - "objects within the current instance " - "document when encoded in tree form.", - "from_schema": "cdp-ingestion-config", - "name": "jsonpath", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the lower " - 'case "jsonpath".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "jsonpointer": { - "base": "str", - "conforms_to": "https://datatracker.ietf.org/doc/html/rfc6901", - "description": "A string encoding a JSON Pointer. " - "The value of the string MUST " - "conform to JSON Point syntax and " - "SHOULD dereference to a valid " - "object within the current instance " - "document when encoded in tree form.", - "from_schema": "cdp-ingestion-config", - "name": "jsonpointer", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the " - 'lower case "jsonpointer".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "ncname": { - "base": "NCName", - "description": "Prefix part of CURIE", - "from_schema": "cdp-ingestion-config", - "name": "ncname", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"ncname".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "nodeidentifier": { - "base": "NodeIdentifier", - "description": "A URI, CURIE or BNODE that " "represents a node in a model.", - "from_schema": "cdp-ingestion-config", - "name": "nodeidentifier", - "notes": [ - "If you are authoring schemas in " - "LinkML YAML, the type is referenced " - "with the lower case " - '"nodeidentifier".' - ], - "repr": "str", - "uri": "shex:nonLiteral", - }, - "objectidentifier": { - "base": "ElementIdentifier", - "comments": ["Used for inheritance and type " "checking"], - "description": "A URI or CURIE that represents " "an object in the model.", - "from_schema": "cdp-ingestion-config", - "name": "objectidentifier", - "notes": [ - "If you are authoring schemas in " - "LinkML YAML, the type is referenced " - "with the lower case " - '"objectidentifier".' - ], - "repr": "str", - "uri": "shex:iri", - }, - "sparqlpath": { - "base": "str", - "conforms_to": "https://www.w3.org/TR/sparql11-query/#propertypaths", - "description": "A string encoding a SPARQL Property " - "Path. The value of the string MUST " - "conform to SPARQL syntax and SHOULD " - "dereference to zero or more valid " - "objects within the current instance " - "document when encoded as RDF.", - "from_schema": "cdp-ingestion-config", - "name": "sparqlpath", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the " - 'lower case "sparqlpath".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "string": { - "base": "str", - "description": "A character string", - "exact_mappings": ["schema:Text"], - "from_schema": "cdp-ingestion-config", - "name": "string", - "notes": [ - "In RDF serializations, a slot with range of " - "string is treated as a literal or type " - "xsd:string. If you are authoring schemas in " - "LinkML YAML, the type is referenced with the " - 'lower case "string".' - ], - "uri": "xsd:string", - }, - "time": { - "base": "XSDTime", - "description": "A time object represents a (local) time of " "day, independent of any particular day", - "exact_mappings": ["schema:Time"], - "from_schema": "cdp-ingestion-config", - "name": "time", - "notes": [ - "URI is dateTime because OWL reasoners do not " "work with straight date or time", - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"time".', - ], - "repr": "str", - "uri": "xsd:time", - }, - "uri": { - "base": "URI", - "close_mappings": ["schema:URL"], - "comments": [ - "in RDF serializations a slot with range of " - "uri is treated as a literal or type " - "xsd:anyURI unless it is an identifier or a " - "reference to an identifier, in which case it " - "is translated directly to a node" - ], - "conforms_to": "https://www.ietf.org/rfc/rfc3987.txt", - "description": "a complete URI", - "from_schema": "cdp-ingestion-config", - "name": "uri", - "notes": [ - "If you are authoring schemas in LinkML YAML, the " 'type is referenced with the lower case "uri".' - ], - "repr": "str", - "uri": "xsd:anyURI", - }, - "uriorcurie": { - "base": "URIorCURIE", - "description": "a URI or a CURIE", - "from_schema": "cdp-ingestion-config", - "name": "uriorcurie", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the " - 'lower case "uriorcurie".' - ], - "repr": "str", - "uri": "xsd:anyURI", - }, - }, - } -) - +linkml_meta = LinkMLMeta({'default_prefix': 'cdp-ingestion-config/', + 'description': 'Schema for ingestion configs', + 'id': 'cdp-ingestion-config', + 'imports': ['linkml:types', + '../../../core/v1.1.0/codegen/metadata_materialized', + '../../../core/v1.1.0/common'], + 'name': 'cdp-ingestion-config', + 'prefixes': {'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}}, + 'source_file': 'ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml', + 'types': {'BTO_ID': {'base': 'str', + 'description': 'A BRENDA Tissue Ontology identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'BTO_ID', + 'pattern': '^BTO:[0-9]{7}$'}, + 'CL_ID': {'base': 'str', + 'description': 'A Cell Ontology identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'CL_ID', + 'pattern': '^CL:[0-9]{7}$'}, + 'DOI': {'base': 'str', + 'description': 'A Digital Object Identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'DOI', + 'pattern': '^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+$'}, + 'DOI_LIST': {'base': 'str', + 'description': 'A list of Digital Object Identifiers', + 'from_schema': 'cdp-ingestion-config', + 'name': 'DOI_LIST', + 'pattern': '^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$'}, + 'EMDB_ID': {'base': 'str', + 'description': 'An Electron Microscopy Data Bank ' + 'identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'EMDB_ID', + 'pattern': '^EMD-[0-9]{4,5}$'}, + 'EMPIAR_EMDB_DOI_PDB_LIST': {'base': 'str', + 'description': 'A list of EMPIAR, ' + 'EMDB, DOI, and PDB ' + 'identifiers', + 'from_schema': 'cdp-ingestion-config', + 'name': 'EMPIAR_EMDB_DOI_PDB_LIST', + 'pattern': '^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$'}, + 'EMPIAR_EMDB_PDB_LIST': {'base': 'str', + 'description': 'A list of EMPIAR, EMDB, ' + 'and PDB identifiers', + 'from_schema': 'cdp-ingestion-config', + 'name': 'EMPIAR_EMDB_PDB_LIST', + 'pattern': '^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$'}, + 'EMPIAR_ID': {'base': 'str', + 'description': 'An Electron Microscopy Public Image ' + 'Archive identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'EMPIAR_ID', + 'pattern': '^EMPIAR-[0-9]+$'}, + 'FloatFormattedString': {'base': 'str', + 'description': 'A formatted string that ' + 'represents a floating ' + 'point number.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'FloatFormattedString', + 'pattern': '^float[ ' + ']*\\{[a-zA-Z0-9_-]+\\}[ ]*$'}, + 'GO_ID': {'base': 'str', + 'description': 'A Gene Ontology identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'GO_ID', + 'pattern': '^GO:[0-9]{7}$'}, + 'IntegerFormattedString': {'base': 'str', + 'description': 'A formatted string that ' + 'represents an integer.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'IntegerFormattedString', + 'pattern': '^int[ ' + ']*\\{[a-zA-Z0-9_-]+\\}[ ]*$'}, + 'ONTOLOGY_ID': {'base': 'str', + 'description': 'An ontology identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'ONTOLOGY_ID', + 'pattern': '^[a-zA-Z]+:[0-9]+$'}, + 'ORCID': {'base': 'str', + 'description': 'A unique, persistent identifier for ' + 'researchers, provided by ORCID.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'ORCID', + 'pattern': '[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$'}, + 'PDB_ID': {'base': 'str', + 'description': 'A Protein Data Bank identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'PDB_ID', + 'pattern': '^PDB-[0-9a-zA-Z]{4,8}$'}, + 'StringFormattedString': {'base': 'str', + 'description': 'A formatted string ' + '(variable) that ' + 'represents a string.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'StringFormattedString', + 'pattern': '^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ' + ']*$'}, + 'UNIPROT_ID': {'base': 'str', + 'description': 'A UniProt identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'UNIPROT_ID', + 'pattern': '^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$'}, + 'URLorS3URI': {'base': 'str', + 'description': 'A URL or S3 URI', + 'from_schema': 'cdp-ingestion-config', + 'name': 'URLorS3URI', + 'pattern': '^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$'}, + 'VersionString': {'base': 'float', + 'description': 'A version number (only major, ' + 'minor versions)', + 'from_schema': 'cdp-ingestion-config', + 'minimum_value': 0, + 'name': 'VersionString'}, + 'WORMBASE_ID': {'base': 'str', + 'description': 'A WormBase identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'WORMBASE_ID', + 'pattern': 'WBStrain[0-9]{8}$'}, + 'boolean': {'base': 'Bool', + 'description': 'A binary (true or false) value', + 'exact_mappings': ['schema:Boolean'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'boolean', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"boolean".'], + 'repr': 'bool', + 'uri': 'xsd:boolean'}, + 'curie': {'base': 'Curie', + 'comments': ['in RDF serializations this MUST be expanded ' + 'to a URI', + 'in non-RDF serializations MAY be serialized ' + 'as the compact representation'], + 'conforms_to': 'https://www.w3.org/TR/curie/', + 'description': 'a compact URI', + 'from_schema': 'cdp-ingestion-config', + 'name': 'curie', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"curie".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'date': {'base': 'XSDDate', + 'description': 'a date (year, month and day) in an ' + 'idealized calendar', + 'exact_mappings': ['schema:Date'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'date', + 'notes': ["URI is dateTime because OWL reasoners don't " + 'work with straight date or time', + 'If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"date".'], + 'repr': 'str', + 'uri': 'xsd:date'}, + 'date_or_datetime': {'base': 'str', + 'description': 'Either a date or a datetime', + 'from_schema': 'cdp-ingestion-config', + 'name': 'date_or_datetime', + 'notes': ['If you are authoring schemas in ' + 'LinkML YAML, the type is referenced ' + 'with the lower case ' + '"date_or_datetime".'], + 'repr': 'str', + 'uri': 'linkml:DateOrDatetime'}, + 'datetime': {'base': 'XSDDateTime', + 'description': 'The combination of a date and time', + 'exact_mappings': ['schema:DateTime'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'datetime', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the lower ' + 'case "datetime".'], + 'repr': 'str', + 'uri': 'xsd:dateTime'}, + 'decimal': {'base': 'Decimal', + 'broad_mappings': ['schema:Number'], + 'description': 'A real number with arbitrary precision ' + 'that conforms to the xsd:decimal ' + 'specification', + 'from_schema': 'cdp-ingestion-config', + 'name': 'decimal', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"decimal".'], + 'uri': 'xsd:decimal'}, + 'double': {'base': 'float', + 'close_mappings': ['schema:Float'], + 'description': 'A real number that conforms to the ' + 'xsd:double specification', + 'from_schema': 'cdp-ingestion-config', + 'name': 'double', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"double".'], + 'uri': 'xsd:double'}, + 'float': {'base': 'float', + 'description': 'A real number that conforms to the ' + 'xsd:float specification', + 'exact_mappings': ['schema:Float'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'float', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"float".'], + 'uri': 'xsd:float'}, + 'integer': {'base': 'int', + 'description': 'An integer', + 'exact_mappings': ['schema:Integer'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'integer', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"integer".'], + 'uri': 'xsd:integer'}, + 'jsonpath': {'base': 'str', + 'conforms_to': 'https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html', + 'description': 'A string encoding a JSON Path. The ' + 'value of the string MUST conform to ' + 'JSON Point syntax and SHOULD ' + 'dereference to zero or more valid ' + 'objects within the current instance ' + 'document when encoded in tree form.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'jsonpath', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the lower ' + 'case "jsonpath".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'jsonpointer': {'base': 'str', + 'conforms_to': 'https://datatracker.ietf.org/doc/html/rfc6901', + 'description': 'A string encoding a JSON Pointer. ' + 'The value of the string MUST ' + 'conform to JSON Point syntax and ' + 'SHOULD dereference to a valid ' + 'object within the current instance ' + 'document when encoded in tree form.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'jsonpointer', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the ' + 'lower case "jsonpointer".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'ncname': {'base': 'NCName', + 'description': 'Prefix part of CURIE', + 'from_schema': 'cdp-ingestion-config', + 'name': 'ncname', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"ncname".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'nodeidentifier': {'base': 'NodeIdentifier', + 'description': 'A URI, CURIE or BNODE that ' + 'represents a node in a model.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'nodeidentifier', + 'notes': ['If you are authoring schemas in ' + 'LinkML YAML, the type is referenced ' + 'with the lower case ' + '"nodeidentifier".'], + 'repr': 'str', + 'uri': 'shex:nonLiteral'}, + 'objectidentifier': {'base': 'ElementIdentifier', + 'comments': ['Used for inheritance and type ' + 'checking'], + 'description': 'A URI or CURIE that represents ' + 'an object in the model.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'objectidentifier', + 'notes': ['If you are authoring schemas in ' + 'LinkML YAML, the type is referenced ' + 'with the lower case ' + '"objectidentifier".'], + 'repr': 'str', + 'uri': 'shex:iri'}, + 'sparqlpath': {'base': 'str', + 'conforms_to': 'https://www.w3.org/TR/sparql11-query/#propertypaths', + 'description': 'A string encoding a SPARQL Property ' + 'Path. The value of the string MUST ' + 'conform to SPARQL syntax and SHOULD ' + 'dereference to zero or more valid ' + 'objects within the current instance ' + 'document when encoded as RDF.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'sparqlpath', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the ' + 'lower case "sparqlpath".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'string': {'base': 'str', + 'description': 'A character string', + 'exact_mappings': ['schema:Text'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'string', + 'notes': ['In RDF serializations, a slot with range of ' + 'string is treated as a literal or type ' + 'xsd:string. If you are authoring schemas in ' + 'LinkML YAML, the type is referenced with the ' + 'lower case "string".'], + 'uri': 'xsd:string'}, + 'time': {'base': 'XSDTime', + 'description': 'A time object represents a (local) time of ' + 'day, independent of any particular day', + 'exact_mappings': ['schema:Time'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'time', + 'notes': ['URI is dateTime because OWL reasoners do not ' + 'work with straight date or time', + 'If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"time".'], + 'repr': 'str', + 'uri': 'xsd:time'}, + 'uri': {'base': 'URI', + 'close_mappings': ['schema:URL'], + 'comments': ['in RDF serializations a slot with range of ' + 'uri is treated as a literal or type ' + 'xsd:anyURI unless it is an identifier or a ' + 'reference to an identifier, in which case it ' + 'is translated directly to a node'], + 'conforms_to': 'https://www.ietf.org/rfc/rfc3987.txt', + 'description': 'a complete URI', + 'from_schema': 'cdp-ingestion-config', + 'name': 'uri', + 'notes': ['If you are authoring schemas in LinkML YAML, the ' + 'type is referenced with the lower case "uri".'], + 'repr': 'str', + 'uri': 'xsd:anyURI'}, + 'uriorcurie': {'base': 'URIorCURIE', + 'description': 'a URI or a CURIE', + 'from_schema': 'cdp-ingestion-config', + 'name': 'uriorcurie', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the ' + 'lower case "uriorcurie".'], + 'repr': 'str', + 'uri': 'xsd:anyURI'}}} ) class AnnotationMethodTypeEnum(str, Enum): """ Describes how the annotations were generated. """ - # Annotations were generated manually. manual = "manual" # Annotations were generated using automated tools or algorithms without supervision. @@ -502,7 +421,6 @@ class AnnotationFileShapeTypeEnum(str, Enum): """ Describes the shape of the annotation """ - # A binary mask volume SegmentationMask = "SegmentationMask" # A series of coordinates and an orientation @@ -519,7 +437,6 @@ class AnnotationMethodLinkTypeEnum(str, Enum): """ Describes the type of link associated to the annotation method. """ - # Links to the documentation related to the method. documentation = "documentation" # Links to the weights that the models used for generating annotations were trained with. @@ -536,7 +453,6 @@ class DepositionTypesEnum(str, Enum): """ Types of data a deposition has """ - # The deposition comprises of new annotations for existing datasets annotation = "annotation" # The deposition comprises of new dataset(s). @@ -549,7 +465,6 @@ class SampleTypeEnum(str, Enum): """ Type of sample imaged in a CryoET study. """ - # Tomographic data of whole cells or cell sections. cell = "cell" # Tomographic data of tissue sections. @@ -572,7 +487,6 @@ class TiltseriesCameraAcquireModeEnum(str, Enum): """ Camera acquisition mode """ - # Counting mode counting = "counting" # Super-resolution mode @@ -587,7 +501,6 @@ class TiltseriesMicroscopeManufacturerEnum(str, Enum): """ Microscope manufacturer """ - # FEI Company FEI = "FEI" # Thermo Fisher Scientific @@ -602,7 +515,6 @@ class FiducialAlignmentStatusEnum(str, Enum): """ Fiducial Alignment method """ - # Alignment computed based on fiducial markers FIDUCIAL = "FIDUCIAL" # Alignment computed without fiducial markers @@ -613,7 +525,6 @@ class TomogramProcessingEnum(str, Enum): """ Tomogram processing method """ - # Tomogram was denoised denoised = "denoised" # Tomogram was filtered @@ -626,7 +537,6 @@ class TomogramReconstructionMethodEnum(str, Enum): """ Tomogram reconstruction method """ - # Simultaneous Algebraic Reconstruction Technique SART = "SART" # Fourier space reconstruction @@ -643,63 +553,46 @@ class TomogramTypeEnum(str, Enum): """ Tomogram type """ - # Canonical tomogram (basis geometry for all annotations) CANONICAL = "CANONICAL" + class PicturePath(ConfiguredBaseModel): """ A set of paths to representative images of a piece of data. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + snapshot: Optional[str] = Field(None, description="""Path to the dataset preview image relative to the dataset directory root.""", json_schema_extra = { "linkml_meta": {'alias': 'snapshot', + 'domain_of': ['PicturePath'], + 'exact_mappings': ['cdp-common:snapshot'], + 'recommended': True} }) + thumbnail: Optional[str] = Field(None, description="""Path to the thumbnail of preview image relative to the dataset directory root.""", json_schema_extra = { "linkml_meta": {'alias': 'thumbnail', + 'domain_of': ['PicturePath'], + 'exact_mappings': ['cdp-common:thumbnail'], + 'recommended': True} }) - snapshot: Optional[str] = Field( - None, - description="""Path to the dataset preview image relative to the dataset directory root.""", - json_schema_extra={ - "linkml_meta": { - "alias": "snapshot", - "domain_of": ["PicturePath"], - "exact_mappings": ["cdp-common:snapshot"], - "recommended": True, - } - }, - ) - thumbnail: Optional[str] = Field( - None, - description="""Path to the thumbnail of preview image relative to the dataset directory root.""", - json_schema_extra={ - "linkml_meta": { - "alias": "thumbnail", - "domain_of": ["PicturePath"], - "exact_mappings": ["cdp-common:thumbnail"], - "recommended": True, - } - }, - ) - - @field_validator("snapshot") + @field_validator('snapshot') def pattern_snapshot(cls, v): - pattern = re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") - if isinstance(v, list): + pattern=re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid snapshot format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid snapshot format: {v}") return v - @field_validator("thumbnail") + @field_validator('thumbnail') def pattern_thumbnail(cls, v): - pattern = re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") - if isinstance(v, list): + pattern=re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid thumbnail format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid thumbnail format: {v}") return v @@ -709,216 +602,129 @@ class FundingDetails(ConfiguredBaseModel): """ A funding source for a scientific data entity (base for JSON and DB representation). """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - funding_agency_name: Optional[str] = Field( - None, - description="""The name of the funding source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "funding_agency_name", - "domain_of": ["FundingDetails"], - "exact_mappings": ["cdp-common:funding_agency_name"], - "recommended": True, - } - }, - ) - grant_id: Optional[str] = Field( - None, - description="""Grant identifier provided by the funding agency""", - json_schema_extra={ - "linkml_meta": { - "alias": "grant_id", - "domain_of": ["FundingDetails"], - "exact_mappings": ["cdp-common:funding_grant_id"], - "recommended": True, - } - }, - ) + funding_agency_name: Optional[str] = Field(None, description="""The name of the funding source.""", json_schema_extra = { "linkml_meta": {'alias': 'funding_agency_name', + 'domain_of': ['FundingDetails'], + 'exact_mappings': ['cdp-common:funding_agency_name'], + 'recommended': True} }) + grant_id: Optional[str] = Field(None, description="""Grant identifier provided by the funding agency""", json_schema_extra = { "linkml_meta": {'alias': 'grant_id', + 'domain_of': ['FundingDetails'], + 'exact_mappings': ['cdp-common:funding_grant_id'], + 'recommended': True} }) class DateStampedEntity(ConfiguredBaseModel): """ An entity with associated deposition, release and last modified dates. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": {"alias": "dates", "domain_of": ["DateStampedEntity", "Dataset", "Deposition", "Annotation"]} - }, - ) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', 'Dataset', 'Deposition', 'Annotation']} }) class AuthoredEntity(ConfiguredBaseModel): """ An entity with associated authors. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) class FundedEntity(ConfiguredBaseModel): """ An entity with associated funding sources. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - funding: Optional[List[FundingDetails]] = Field( - None, - description="""A funding source for a scientific data entity (base for JSON and DB representation).""", - json_schema_extra={ - "linkml_meta": { - "alias": "funding", - "domain_of": ["FundedEntity", "Dataset"], - "list_elements_ordered": True, - "recommended": True, - } - }, - ) + funding: Optional[List[FundingDetails]] = Field(None, description="""A funding source for a scientific data entity (base for JSON and DB representation).""", json_schema_extra = { "linkml_meta": {'alias': 'funding', + 'domain_of': ['FundedEntity', 'Dataset'], + 'list_elements_ordered': True, + 'recommended': True} }) class CrossReferencedEntity(ConfiguredBaseModel): """ An entity with associated cross-references to other databases and publications. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixin': True}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) - - cross_references: Optional[CrossReferences] = Field( - None, - description="""A set of cross-references to other databases and publications.""", - json_schema_extra={ - "linkml_meta": { - "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Dataset", "Deposition"], - } - }, - ) + cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', + 'domain_of': ['CrossReferencedEntity', 'Dataset', 'Deposition']} }) class PicturedEntity(ConfiguredBaseModel): """ An entity with associated preview images. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - key_photos: PicturePath = Field( - ..., - description="""A set of paths to representative images of a piece of data.""", - json_schema_extra={"linkml_meta": {"alias": "key_photos", "domain_of": ["PicturedEntity"]}}, - ) + key_photos: PicturePath = Field(..., description="""A set of paths to representative images of a piece of data.""", json_schema_extra = { "linkml_meta": {'alias': 'key_photos', 'domain_of': ['PicturedEntity']} }) class OrganismDetails(ConfiguredBaseModel): """ The species from which the sample was derived. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Name of the organism from which a biological sample used in a CryoET study is derived from, e.g. homo sapiens.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:organism_name"], - } - }, - ) - taxonomy_id: Optional[int] = Field( - None, - description="""NCBI taxonomy identifier for the organism, e.g. 9606""", - ge=1, - json_schema_extra={ - "linkml_meta": { - "alias": "taxonomy_id", - "domain_of": ["OrganismDetails"], - "exact_mappings": ["cdp-common:organism_taxid"], - "recommended": True, - } - }, - ) + name: str = Field(..., description="""Name of the organism from which a biological sample used in a CryoET study is derived from, e.g. homo sapiens.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:organism_name']} }) + taxonomy_id: Optional[int] = Field(None, description="""NCBI taxonomy identifier for the organism, e.g. 9606""", ge=1, json_schema_extra = { "linkml_meta": {'alias': 'taxonomy_id', + 'domain_of': ['OrganismDetails'], + 'exact_mappings': ['cdp-common:organism_taxid'], + 'recommended': True} }) class TissueDetails(ConfiguredBaseModel): """ The type of tissue from which the sample was derived. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Name of the tissue from which a biological sample used in a CryoET study is derived from.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:tissue_name"], - } - }, - ) - id: Optional[str] = Field( - None, - description="""The UBERON identifier for the tissue.""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:tissue_id"], - "recommended": True, - } - }, - ) - - @field_validator("id") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Name of the tissue from which a biological sample used in a CryoET study is derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:tissue_name']} }) + id: Optional[str] = Field(None, description="""The UBERON identifier for the tissue.""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:tissue_id'], + 'recommended': True} }) + + @field_validator('id') def pattern_id(cls, v): - pattern = re.compile(r"^BTO:[0-9]{7}$") - if isinstance(v, list): + pattern=re.compile(r"^BTO:[0-9]{7}$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid id format: {v}") return v @@ -928,50 +734,35 @@ class CellType(ConfiguredBaseModel): """ The cell type from which the sample was derived. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Name of the cell type from which a biological sample used in a CryoET study is derived from.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:cell_name"], - } - }, - ) - id: Optional[str] = Field( - None, - description="""Cell Ontology identifier for the cell type""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:cell_type_id"], - "recommended": True, - } - }, - ) - - @field_validator("id") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Name of the cell type from which a biological sample used in a CryoET study is derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:cell_name']} }) + id: Optional[str] = Field(None, description="""Cell Ontology identifier for the cell type""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:cell_type_id'], + 'recommended': True} }) + + @field_validator('id') def pattern_id(cls, v): - pattern = re.compile(r"^CL:[0-9]{7}$") - if isinstance(v, list): + pattern=re.compile(r"^CL:[0-9]{7}$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid id format: {v}") return v @@ -981,51 +772,36 @@ class CellStrain(ConfiguredBaseModel): """ The strain or cell line from which the sample was derived. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Cell line or strain for the sample.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:cell_strain_name"], - } - }, - ) - id: Optional[str] = Field( - None, - description="""Link to more information about the cell strain.""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "any_of": [{"range": "WORMBASE_ID"}, {"range": "ONTOLOGY_ID"}], - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:cell_strain_id"], - "recommended": True, - } - }, - ) - - @field_validator("id") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Cell line or strain for the sample.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:cell_strain_name']} }) + id: Optional[str] = Field(None, description="""Link to more information about the cell strain.""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'any_of': [{'range': 'WORMBASE_ID'}, {'range': 'ONTOLOGY_ID'}], + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:cell_strain_id'], + 'recommended': True} }) + + @field_validator('id') def pattern_id(cls, v): - pattern = re.compile(r"(WBStrain[0-9]{8}$)|(^[a-zA-Z]+:[0-9]+$)") - if isinstance(v, list): + pattern=re.compile(r"(WBStrain[0-9]{8}$)|(^[a-zA-Z]+:[0-9]+$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid id format: {v}") return v @@ -1035,50 +811,35 @@ class CellComponent(ConfiguredBaseModel): """ The cellular component from which the sample was derived. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Name of the cellular component.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:cell_component_name"], - } - }, - ) - id: Optional[str] = Field( - None, - description="""The GO identifier for the cellular component.""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:cell_component_id"], - "recommended": True, - } - }, - ) - - @field_validator("id") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Name of the cellular component.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:cell_component_name']} }) + id: Optional[str] = Field(None, description="""The GO identifier for the cellular component.""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:cell_component_id'], + 'recommended': True} }) + + @field_validator('id') def pattern_id(cls, v): - pattern = re.compile(r"^GO:[0-9]{7}$") - if isinstance(v, list): + pattern=re.compile(r"^GO:[0-9]{7}$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid id format: {v}") return v @@ -1088,92 +849,37 @@ class ExperimentMetadata(ConfiguredBaseModel): """ Metadata describing sample and sample preparation methods used in a cryoET dataset. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - sample_type: SampleTypeEnum = Field( - ..., - description="""Type of sample imaged in a CryoET study.""", - json_schema_extra={ - "linkml_meta": { - "alias": "sample_type", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:preparation_sample_type"], - } - }, - ) - sample_preparation: Optional[str] = Field( - None, - description="""Describes how the sample was prepared.""", - json_schema_extra={ - "linkml_meta": { - "alias": "sample_preparation", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:sample_preparation"], - "recommended": True, - } - }, - ) - grid_preparation: Optional[str] = Field( - None, - description="""Describes Cryo-ET grid preparation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "grid_preparation", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:grid_preparation"], - "recommended": True, - } - }, - ) - other_setup: Optional[str] = Field( - None, - description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", - json_schema_extra={ - "linkml_meta": { - "alias": "other_setup", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:preparation_other_setup"], - "recommended": True, - } - }, - ) - organism: Optional[OrganismDetails] = Field( - None, - description="""The species from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "organism", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - tissue: Optional[TissueDetails] = Field( - None, - description="""The type of tissue from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "tissue", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_type: Optional[CellType] = Field( - None, - description="""The cell type from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_type", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_strain: Optional[CellStrain] = Field( - None, - description="""The strain or cell line from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_strain", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_component: Optional[CellComponent] = Field( - None, - description="""The cellular component from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_component", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - - @field_validator("sample_type") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + sample_type: SampleTypeEnum = Field(..., description="""Type of sample imaged in a CryoET study.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_type', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:preparation_sample_type']} }) + sample_preparation: Optional[str] = Field(None, description="""Describes how the sample was prepared.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_preparation', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:sample_preparation'], + 'recommended': True} }) + grid_preparation: Optional[str] = Field(None, description="""Describes Cryo-ET grid preparation.""", json_schema_extra = { "linkml_meta": {'alias': 'grid_preparation', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:grid_preparation'], + 'recommended': True} }) + other_setup: Optional[str] = Field(None, description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", json_schema_extra = { "linkml_meta": {'alias': 'other_setup', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:preparation_other_setup'], + 'recommended': True} }) + organism: Optional[OrganismDetails] = Field(None, description="""The species from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'organism', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + tissue: Optional[TissueDetails] = Field(None, description="""The type of tissue from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'tissue', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_type: Optional[CellType] = Field(None, description="""The cell type from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_strain: Optional[CellStrain] = Field(None, description="""The strain or cell line from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_strain', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_component: Optional[CellComponent] = Field(None, description="""The cellular component from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_component', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + + @field_validator('sample_type') def pattern_sample_type(cls, v): - pattern = re.compile( - r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" - ) - if isinstance(v, list): + pattern=re.compile(r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid sample_type format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid sample_type format: {v}") return v @@ -1183,177 +889,66 @@ class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredE """ High-level description of a cryoET dataset. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - { - "from_schema": "metadata", - "mixins": [ - "DateStampedEntity", - "AuthoredEntity", - "FundedEntity", - "CrossReferencedEntity", - "ExperimentMetadata", - ], - } - ) - - dataset_identifier: int = Field( - ..., - description="""An identifier for a CryoET dataset, assigned by the Data Portal. Used to identify the dataset as the directory name in data tree.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset_identifier", - "domain_of": ["Dataset"], - "exact_mappings": ["cdp-common:dataset_identifier"], - } - }, - ) - dataset_title: str = Field( - ..., - description="""Title of a CryoET dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset_title", - "domain_of": ["Dataset"], - "exact_mappings": ["cdp-common:dataset_title"], - } - }, - ) - dataset_description: str = Field( - ..., - description="""A short description of a CryoET dataset, similar to an abstract for a journal article or dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset_description", - "domain_of": ["Dataset"], - "exact_mappings": ["cdp-common:dataset_description"], - } - }, - ) - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": {"alias": "dates", "domain_of": ["DateStampedEntity", "Dataset", "Deposition", "Annotation"]} - }, - ) - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - funding: Optional[List[FundingDetails]] = Field( - None, - description="""A funding source for a scientific data entity (base for JSON and DB representation).""", - json_schema_extra={ - "linkml_meta": { - "alias": "funding", - "domain_of": ["FundedEntity", "Dataset"], - "list_elements_ordered": True, - "recommended": True, - } - }, - ) - cross_references: Optional[CrossReferences] = Field( - None, - description="""A set of cross-references to other databases and publications.""", - json_schema_extra={ - "linkml_meta": { - "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Dataset", "Deposition"], - } - }, - ) - sample_type: SampleTypeEnum = Field( - ..., - description="""Type of sample imaged in a CryoET study.""", - json_schema_extra={ - "linkml_meta": { - "alias": "sample_type", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:preparation_sample_type"], - } - }, - ) - sample_preparation: Optional[str] = Field( - None, - description="""Describes how the sample was prepared.""", - json_schema_extra={ - "linkml_meta": { - "alias": "sample_preparation", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:sample_preparation"], - "recommended": True, - } - }, - ) - grid_preparation: Optional[str] = Field( - None, - description="""Describes Cryo-ET grid preparation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "grid_preparation", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:grid_preparation"], - "recommended": True, - } - }, - ) - other_setup: Optional[str] = Field( - None, - description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", - json_schema_extra={ - "linkml_meta": { - "alias": "other_setup", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:preparation_other_setup"], - "recommended": True, - } - }, - ) - organism: Optional[OrganismDetails] = Field( - None, - description="""The species from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "organism", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - tissue: Optional[TissueDetails] = Field( - None, - description="""The type of tissue from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "tissue", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_type: Optional[CellType] = Field( - None, - description="""The cell type from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_type", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_strain: Optional[CellStrain] = Field( - None, - description="""The strain or cell line from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_strain", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_component: Optional[CellComponent] = Field( - None, - description="""The cellular component from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_component", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - - @field_validator("sample_type") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', + 'mixins': ['DateStampedEntity', + 'AuthoredEntity', + 'FundedEntity', + 'CrossReferencedEntity', + 'ExperimentMetadata']}) + + dataset_identifier: int = Field(..., description="""An identifier for a CryoET dataset, assigned by the Data Portal. Used to identify the dataset as the directory name in data tree.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_identifier', + 'domain_of': ['Dataset'], + 'exact_mappings': ['cdp-common:dataset_identifier']} }) + dataset_title: str = Field(..., description="""Title of a CryoET dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_title', + 'domain_of': ['Dataset'], + 'exact_mappings': ['cdp-common:dataset_title']} }) + dataset_description: str = Field(..., description="""A short description of a CryoET dataset, similar to an abstract for a journal article or dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_description', + 'domain_of': ['Dataset'], + 'exact_mappings': ['cdp-common:dataset_description']} }) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', 'Dataset', 'Deposition', 'Annotation']} }) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + funding: Optional[List[FundingDetails]] = Field(None, description="""A funding source for a scientific data entity (base for JSON and DB representation).""", json_schema_extra = { "linkml_meta": {'alias': 'funding', + 'domain_of': ['FundedEntity', 'Dataset'], + 'list_elements_ordered': True, + 'recommended': True} }) + cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', + 'domain_of': ['CrossReferencedEntity', 'Dataset', 'Deposition']} }) + sample_type: SampleTypeEnum = Field(..., description="""Type of sample imaged in a CryoET study.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_type', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:preparation_sample_type']} }) + sample_preparation: Optional[str] = Field(None, description="""Describes how the sample was prepared.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_preparation', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:sample_preparation'], + 'recommended': True} }) + grid_preparation: Optional[str] = Field(None, description="""Describes Cryo-ET grid preparation.""", json_schema_extra = { "linkml_meta": {'alias': 'grid_preparation', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:grid_preparation'], + 'recommended': True} }) + other_setup: Optional[str] = Field(None, description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", json_schema_extra = { "linkml_meta": {'alias': 'other_setup', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:preparation_other_setup'], + 'recommended': True} }) + organism: Optional[OrganismDetails] = Field(None, description="""The species from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'organism', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + tissue: Optional[TissueDetails] = Field(None, description="""The type of tissue from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'tissue', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_type: Optional[CellType] = Field(None, description="""The cell type from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_strain: Optional[CellStrain] = Field(None, description="""The strain or cell line from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_strain', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_component: Optional[CellComponent] = Field(None, description="""The cellular component from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_component', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + + @field_validator('sample_type') def pattern_sample_type(cls, v): - pattern = re.compile( - r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" - ) - if isinstance(v, list): + pattern=re.compile(r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid sample_type format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid sample_type format: {v}") return v @@ -1363,94 +958,41 @@ class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): """ Metadata describing a deposition. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "metadata", "mixins": ["DateStampedEntity", "AuthoredEntity", "CrossReferencedEntity"]} - ) - - deposition_description: str = Field( - ..., - description="""A short description of the deposition, similar to an abstract for a journal article or dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_description", - "domain_of": ["Deposition"], - "exact_mappings": ["cdp-common:deposition_description"], - } - }, - ) - deposition_identifier: int = Field( - ..., - description="""An identifier for a CryoET deposition, assigned by the Data Portal. Used to identify the deposition the entity is a part of.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_identifier", - "domain_of": ["Deposition"], - "exact_mappings": ["cdp-common:deposition_identifier"], - } - }, - ) - deposition_title: str = Field( - ..., - description="""Title of a CryoET deposition.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_title", - "domain_of": ["Deposition"], - "exact_mappings": ["cdp-common:deposition_title"], - } - }, - ) - deposition_types: List[DepositionTypesEnum] = Field( - ..., - description="""Type of data in the deposition (e.g. dataset, annotation, tomogram)""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_types", - "domain_of": ["Deposition"], - "exact_mappings": ["cdp-common:deposition_types"], - } - }, - ) - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": {"alias": "dates", "domain_of": ["DateStampedEntity", "Dataset", "Deposition", "Annotation"]} - }, - ) - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - cross_references: Optional[CrossReferences] = Field( - None, - description="""A set of cross-references to other databases and publications.""", - json_schema_extra={ - "linkml_meta": { - "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Dataset", "Deposition"], - } - }, - ) - - @field_validator("deposition_types") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', + 'mixins': ['DateStampedEntity', 'AuthoredEntity', 'CrossReferencedEntity']}) + + deposition_description: str = Field(..., description="""A short description of the deposition, similar to an abstract for a journal article or dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_description', + 'domain_of': ['Deposition'], + 'exact_mappings': ['cdp-common:deposition_description']} }) + deposition_identifier: int = Field(..., description="""An identifier for a CryoET deposition, assigned by the Data Portal. Used to identify the deposition the entity is a part of.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_identifier', + 'domain_of': ['Deposition'], + 'exact_mappings': ['cdp-common:deposition_identifier']} }) + deposition_title: str = Field(..., description="""Title of a CryoET deposition.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_title', + 'domain_of': ['Deposition'], + 'exact_mappings': ['cdp-common:deposition_title']} }) + deposition_types: List[DepositionTypesEnum] = Field(..., description="""Type of data in the deposition (e.g. dataset, annotation, tomogram)""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'deposition_types', + 'domain_of': ['Deposition'], + 'exact_mappings': ['cdp-common:deposition_types']} }) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', 'Dataset', 'Deposition', 'Annotation']} }) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', + 'domain_of': ['CrossReferencedEntity', 'Dataset', 'Deposition']} }) + + @field_validator('deposition_types') def pattern_deposition_types(cls, v): - pattern = re.compile(r"(^annotation$)|(^dataset$)|(^tomogram$)") - if isinstance(v, list): + pattern=re.compile(r"(^annotation$)|(^dataset$)|(^tomogram$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid deposition_types format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid deposition_types format: {v}") return v @@ -1460,52 +1002,28 @@ class CameraDetails(ConfiguredBaseModel): """ The camera used to collect the tilt series. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - acquire_mode: Optional[Union[TiltseriesCameraAcquireModeEnum, str]] = Field( - None, - description="""Camera acquisition mode""", - json_schema_extra={ - "linkml_meta": { - "alias": "acquire_mode", - "any_of": [{"range": "StringFormattedString"}, {"range": "tiltseries_camera_acquire_mode_enum"}], - "domain_of": ["CameraDetails"], - "exact_mappings": ["cdp-common:tiltseries_camera_acquire_mode"], - } - }, - ) - manufacturer: str = Field( - ..., - description="""Name of the camera manufacturer""", - json_schema_extra={ - "linkml_meta": { - "alias": "manufacturer", - "domain_of": ["CameraDetails", "MicroscopeDetails"], - "exact_mappings": ["cdp-common:tiltseries_camera_manufacturer"], - } - }, - ) - model: str = Field( - ..., - description="""Camera model name""", - json_schema_extra={ - "linkml_meta": { - "alias": "model", - "domain_of": ["CameraDetails", "MicroscopeDetails"], - "exact_mappings": ["cdp-common:tiltseries_camera_model"], - } - }, - ) - - @field_validator("acquire_mode") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + acquire_mode: Optional[Union[TiltseriesCameraAcquireModeEnum, str]] = Field(None, description="""Camera acquisition mode""", json_schema_extra = { "linkml_meta": {'alias': 'acquire_mode', + 'any_of': [{'range': 'StringFormattedString'}, + {'range': 'tiltseries_camera_acquire_mode_enum'}], + 'domain_of': ['CameraDetails'], + 'exact_mappings': ['cdp-common:tiltseries_camera_acquire_mode']} }) + manufacturer: str = Field(..., description="""Name of the camera manufacturer""", json_schema_extra = { "linkml_meta": {'alias': 'manufacturer', + 'domain_of': ['CameraDetails', 'MicroscopeDetails'], + 'exact_mappings': ['cdp-common:tiltseries_camera_manufacturer']} }) + model: str = Field(..., description="""Camera model name""", json_schema_extra = { "linkml_meta": {'alias': 'model', + 'domain_of': ['CameraDetails', 'MicroscopeDetails'], + 'exact_mappings': ['cdp-common:tiltseries_camera_model']} }) + + @field_validator('acquire_mode') def pattern_acquire_mode(cls, v): - pattern = re.compile(r"(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)|((^counting$)|(^superresolution$)|(^linear$)|(^cds$))") - if isinstance(v, list): + pattern=re.compile(r"(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)|((^counting$)|(^superresolution$)|(^linear$)|(^cds$))") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid acquire_mode format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid acquire_mode format: {v}") return v @@ -1515,59 +1033,30 @@ class MicroscopeDetails(ConfiguredBaseModel): """ The microscope used to collect the tilt series. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - additional_info: Optional[str] = Field( - None, - description="""Other microscope optical setup information, in addition to energy filter, phase plate and image corrector""", - json_schema_extra={ - "linkml_meta": { - "alias": "additional_info", - "domain_of": ["MicroscopeDetails"], - "exact_mappings": ["cdp-common:tiltseries_microscope_additional_info"], - } - }, - ) - manufacturer: Union[TiltseriesMicroscopeManufacturerEnum, str] = Field( - ..., - description="""Name of the microscope manufacturer""", - json_schema_extra={ - "linkml_meta": { - "alias": "manufacturer", - "any_of": [ - { - "description": "Name of the microscope manufacturer", - "exact_mappings": ["cdp-common:tiltseries_microscope_manufacturer"], - "range": "tiltseries_microscope_manufacturer_enum", - "required": True, - }, - {"range": "StringFormattedString"}, - ], - "domain_of": ["CameraDetails", "MicroscopeDetails"], - } - }, - ) - model: str = Field( - ..., - description="""Microscope model name""", - json_schema_extra={ - "linkml_meta": { - "alias": "model", - "domain_of": ["CameraDetails", "MicroscopeDetails"], - "exact_mappings": ["cdp-common:tiltseries_microscope_model"], - } - }, - ) - - @field_validator("manufacturer") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + additional_info: Optional[str] = Field(None, description="""Other microscope optical setup information, in addition to energy filter, phase plate and image corrector""", json_schema_extra = { "linkml_meta": {'alias': 'additional_info', + 'domain_of': ['MicroscopeDetails'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_additional_info']} }) + manufacturer: Union[TiltseriesMicroscopeManufacturerEnum, str] = Field(..., description="""Name of the microscope manufacturer""", json_schema_extra = { "linkml_meta": {'alias': 'manufacturer', + 'any_of': [{'description': 'Name of the microscope manufacturer', + 'exact_mappings': ['cdp-common:tiltseries_microscope_manufacturer'], + 'range': 'tiltseries_microscope_manufacturer_enum', + 'required': True}, + {'range': 'StringFormattedString'}], + 'domain_of': ['CameraDetails', 'MicroscopeDetails']} }) + model: str = Field(..., description="""Microscope model name""", json_schema_extra = { "linkml_meta": {'alias': 'model', + 'domain_of': ['CameraDetails', 'MicroscopeDetails'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_model']} }) + + @field_validator('manufacturer') def pattern_manufacturer(cls, v): - pattern = re.compile(r"(^FEI$)|(^TFS$)|(^JEOL$)|(^SIMULATED$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v, list): + pattern=re.compile(r"(^FEI$)|(^TFS$)|(^JEOL$)|(^SIMULATED$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid manufacturer format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid manufacturer format: {v}") return v @@ -1577,122 +1066,68 @@ class MicroscopeOpticalSetup(ConfiguredBaseModel): """ The optical setup of the microscope used to collect the tilt series. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - energy_filter: str = Field( - ..., - description="""Energy filter setup used""", - json_schema_extra={ - "linkml_meta": { - "alias": "energy_filter", - "domain_of": ["MicroscopeOpticalSetup"], - "exact_mappings": ["cdp-common:tiltseries_microscope_energy_filter"], - } - }, - ) - phase_plate: Optional[str] = Field( - None, - description="""Phase plate configuration""", - json_schema_extra={ - "linkml_meta": { - "alias": "phase_plate", - "domain_of": ["MicroscopeOpticalSetup"], - "exact_mappings": ["cdp-common:tiltseries_microscope_phase_plate"], - } - }, - ) - image_corrector: Optional[str] = Field( - None, - description="""Image corrector setup""", - json_schema_extra={ - "linkml_meta": { - "alias": "image_corrector", - "domain_of": ["MicroscopeOpticalSetup"], - "exact_mappings": ["cdp-common:tiltseries_microscope_image_corrector"], - } - }, - ) + energy_filter: str = Field(..., description="""Energy filter setup used""", json_schema_extra = { "linkml_meta": {'alias': 'energy_filter', + 'domain_of': ['MicroscopeOpticalSetup'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_energy_filter']} }) + phase_plate: Optional[str] = Field(None, description="""Phase plate configuration""", json_schema_extra = { "linkml_meta": {'alias': 'phase_plate', + 'domain_of': ['MicroscopeOpticalSetup'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_phase_plate']} }) + image_corrector: Optional[str] = Field(None, description="""Image corrector setup""", json_schema_extra = { "linkml_meta": {'alias': 'image_corrector', + 'domain_of': ['MicroscopeOpticalSetup'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_image_corrector']} }) class TiltRange(ConfiguredBaseModel): """ The range of tilt angles in the tilt series. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - min: Union[float, str] = Field( - ..., - description="""Minimal tilt angle in degrees""", - ge=-90, - le=90, - json_schema_extra={ - "linkml_meta": { - "alias": "min", - "any_of": [ - { - "description": "Minimal tilt angle in degrees", - "exact_mappings": ["cdp-common:tiltseries_tilt_min"], - "maximum_value": 90, - "minimum_value": -90, - "range": "float", - "required": True, - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltRange"], - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - } - }, - ) - max: Union[float, str] = Field( - ..., - description="""Maximal tilt angle in degrees""", - ge=-90, - le=90, - json_schema_extra={ - "linkml_meta": { - "alias": "max", - "any_of": [ - { - "description": "Maximal tilt angle in degrees", - "exact_mappings": ["cdp-common:tiltseries_tilt_max"], - "maximum_value": 90, - "minimum_value": -90, - "range": "float", - "required": True, - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltRange"], - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - } - }, - ) - - @field_validator("min") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + min: Union[float, str] = Field(..., description="""Minimal tilt angle in degrees""", ge=-90, le=90, json_schema_extra = { "linkml_meta": {'alias': 'min', + 'any_of': [{'description': 'Minimal tilt angle in degrees', + 'exact_mappings': ['cdp-common:tiltseries_tilt_min'], + 'maximum_value': 90, + 'minimum_value': -90, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltRange'], + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) + max: Union[float, str] = Field(..., description="""Maximal tilt angle in degrees""", ge=-90, le=90, json_schema_extra = { "linkml_meta": {'alias': 'max', + 'any_of': [{'description': 'Maximal tilt angle in degrees', + 'exact_mappings': ['cdp-common:tiltseries_tilt_max'], + 'maximum_value': 90, + 'minimum_value': -90, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltRange'], + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) + + @field_validator('min') def pattern_min(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid min format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid min format: {v}") return v - @field_validator("max") + @field_validator('max') def pattern_max(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid max format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid max format: {v}") return v @@ -1702,399 +1137,223 @@ class TiltSeries(ConfiguredBaseModel): """ Metadata describing a tilt series. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - acceleration_voltage: float = Field( - ..., - description="""Electron Microscope Accelerator voltage in volts""", - ge=20000, - json_schema_extra={ - "linkml_meta": { - "alias": "acceleration_voltage", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_acceleration_voltage"], - "unit": {"descriptive_name": "volts", "symbol": "V"}, - } - }, - ) - aligned_tiltseries_binning: Optional[Union[float, str]] = Field( - 1.0, - description="""Binning factor of the aligned tilt series""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "aligned_tiltseries_binning", - "any_of": [ - { - "description": "Binning factor of the aligned tilt series", - "exact_mappings": ["cdp-common:tiltseries_aligned_tiltseries_binning"], - "minimum_value": 0, - "range": "float", - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "ifabsent": "float(1)", - } - }, - ) - binning_from_frames: Optional[Union[float, str]] = Field( - 1.0, - description="""Describes the binning factor from frames to tilt series file""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "binning_from_frames", - "any_of": [ - { - "description": "Describes the binning factor from frames to tilt " "series file", - "exact_mappings": ["cdp-common:tiltseries_binning_from_frames"], - "minimum_value": 0, - "range": "float", - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "ifabsent": "float(1)", - } - }, - ) - camera: CameraDetails = Field( - ..., - description="""The camera used to collect the tilt series.""", - json_schema_extra={"linkml_meta": {"alias": "camera", "domain_of": ["TiltSeries"]}}, - ) - data_acquisition_software: str = Field( - ..., - description="""Software used to collect data""", - json_schema_extra={ - "linkml_meta": { - "alias": "data_acquisition_software", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_data_acquisition_software"], - } - }, - ) - frames_count: Optional[int] = Field( - None, - description="""Number of frames associated with this tiltseries""", - json_schema_extra={ - "linkml_meta": { - "alias": "frames_count", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_frames_count"], - } - }, - ) - is_aligned: bool = Field( - ..., - description="""Whether this tilt series is aligned""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_aligned", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_is_aligned"], - } - }, - ) - microscope: MicroscopeDetails = Field( - ..., - description="""The microscope used to collect the tilt series.""", - json_schema_extra={"linkml_meta": {"alias": "microscope", "domain_of": ["TiltSeries"]}}, - ) - microscope_optical_setup: MicroscopeOpticalSetup = Field( - ..., - description="""The optical setup of the microscope used to collect the tilt series.""", - json_schema_extra={"linkml_meta": {"alias": "microscope_optical_setup", "domain_of": ["TiltSeries"]}}, - ) - related_empiar_entry: Optional[str] = Field( - None, - description="""If a tilt series is deposited into EMPIAR, enter the EMPIAR dataset identifier""", - json_schema_extra={ - "linkml_meta": { - "alias": "related_empiar_entry", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_related_empiar_entry"], - } - }, - ) - spherical_aberration_constant: Union[float, str] = Field( - ..., - description="""Spherical Aberration Constant of the objective lens in millimeters""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "spherical_aberration_constant", - "any_of": [ - { - "description": "Spherical Aberration Constant of the objective " "lens in millimeters", - "exact_mappings": ["cdp-common:tiltseries_spherical_aberration_constant"], - "minimum_value": 0, - "range": "float", - "required": True, - "unit": {"descriptive_name": "millimeters", "symbol": "mm"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "millimeters", "symbol": "mm"}, - } - }, - ) - tilt_alignment_software: Optional[str] = Field( - None, - description="""Software used for tilt alignment""", - json_schema_extra={ - "linkml_meta": { - "alias": "tilt_alignment_software", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_tilt_alignment_software"], - } - }, - ) - tilt_axis: Union[float, str] = Field( - ..., - description="""Rotation angle in degrees""", - ge=-360, - le=360, - json_schema_extra={ - "linkml_meta": { - "alias": "tilt_axis", - "any_of": [ - { - "description": "Rotation angle in degrees", - "exact_mappings": ["cdp-common:tiltseries_tilt_axis"], - "maximum_value": 360, - "minimum_value": -360, - "range": "float", - "required": True, - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - } - }, - ) - tilt_range: TiltRange = Field( - ..., - description="""The range of tilt angles in the tilt series.""", - json_schema_extra={"linkml_meta": {"alias": "tilt_range", "domain_of": ["TiltSeries"]}}, - ) - tilt_series_quality: Union[int, str] = Field( - ..., - description="""Author assessment of tilt series quality within the dataset (1-5, 5 is best)""", - ge=1, - le=5, - json_schema_extra={ - "linkml_meta": { - "alias": "tilt_series_quality", - "any_of": [ - { - "description": "Author assessment of tilt series quality within " - "the dataset (1-5, 5 is best)", - "exact_mappings": ["cdp-common:tiltseries_tilt_series_quality"], - "maximum_value": 5, - "minimum_value": 1, - "range": "integer", - "required": True, - }, - {"range": "IntegerFormattedString"}, - ], - "domain_of": ["TiltSeries"], - } - }, - ) - tilt_step: Union[float, str] = Field( - ..., - description="""Tilt step in degrees""", - ge=0, - le=90, - json_schema_extra={ - "linkml_meta": { - "alias": "tilt_step", - "any_of": [ - { - "description": "Tilt step in degrees", - "exact_mappings": ["cdp-common:tiltseries_tilt_step"], - "maximum_value": 90, - "minimum_value": 0, - "range": "float", - "required": True, - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - } - }, - ) - tilting_scheme: str = Field( - ..., - description="""The order of stage tilting during acquisition of the data""", - json_schema_extra={ - "linkml_meta": { - "alias": "tilting_scheme", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_tilting_scheme"], - } - }, - ) - total_flux: Union[float, str] = Field( - ..., - description="""Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "total_flux", - "any_of": [ - { - "description": "Number of Electrons reaching the specimen in a " - "square Angstrom area for the entire tilt series", - "exact_mappings": ["cdp-common:tiltseries_total_flux"], - "minimum_value": 0, - "range": "float", - "required": True, - "unit": {"descriptive_name": "electrons per square Angstrom", "symbol": "e^-/Å^2"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "electrons per square Angstrom", "symbol": "e^-/Å^2"}, - } - }, - ) - pixel_spacing: Union[float, str] = Field( - ..., - description="""Pixel spacing for the tilt series""", - ge=0.001, - json_schema_extra={ - "linkml_meta": { - "alias": "pixel_spacing", - "any_of": [ - { - "description": "Pixel spacing for the tilt series", - "exact_mappings": ["cdp-common:tiltseries_pixel_spacing"], - "minimum_value": 0.001, - "range": "float", - "required": True, - "unit": {"descriptive_name": "Angstroms per pixel", "symbol": "Å/px"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "Angstroms per pixel", "symbol": "Å/px"}, - } - }, - ) - - @field_validator("aligned_tiltseries_binning") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + acceleration_voltage: float = Field(..., description="""Electron Microscope Accelerator voltage in volts""", ge=20000, json_schema_extra = { "linkml_meta": {'alias': 'acceleration_voltage', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_acceleration_voltage'], + 'unit': {'descriptive_name': 'volts', 'symbol': 'V'}} }) + aligned_tiltseries_binning: Optional[Union[float, str]] = Field(1.0, description="""Binning factor of the aligned tilt series""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'aligned_tiltseries_binning', + 'any_of': [{'description': 'Binning factor of the aligned tilt series', + 'exact_mappings': ['cdp-common:tiltseries_aligned_tiltseries_binning'], + 'minimum_value': 0, + 'range': 'float'}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'ifabsent': 'float(1)'} }) + binning_from_frames: Optional[Union[float, str]] = Field(1.0, description="""Describes the binning factor from frames to tilt series file""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning_from_frames', + 'any_of': [{'description': 'Describes the binning factor from frames to tilt ' + 'series file', + 'exact_mappings': ['cdp-common:tiltseries_binning_from_frames'], + 'minimum_value': 0, + 'range': 'float'}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'ifabsent': 'float(1)'} }) + camera: CameraDetails = Field(..., description="""The camera used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'camera', 'domain_of': ['TiltSeries']} }) + data_acquisition_software: str = Field(..., description="""Software used to collect data""", json_schema_extra = { "linkml_meta": {'alias': 'data_acquisition_software', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_data_acquisition_software']} }) + frames_count: Optional[int] = Field(None, description="""Number of frames associated with this tiltseries""", json_schema_extra = { "linkml_meta": {'alias': 'frames_count', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_frames_count']} }) + is_aligned: bool = Field(..., description="""Whether this tilt series is aligned""", json_schema_extra = { "linkml_meta": {'alias': 'is_aligned', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_is_aligned']} }) + microscope: MicroscopeDetails = Field(..., description="""The microscope used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'microscope', 'domain_of': ['TiltSeries']} }) + microscope_optical_setup: MicroscopeOpticalSetup = Field(..., description="""The optical setup of the microscope used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'microscope_optical_setup', 'domain_of': ['TiltSeries']} }) + related_empiar_entry: Optional[str] = Field(None, description="""If a tilt series is deposited into EMPIAR, enter the EMPIAR dataset identifier""", json_schema_extra = { "linkml_meta": {'alias': 'related_empiar_entry', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_related_empiar_entry']} }) + spherical_aberration_constant: Union[float, str] = Field(..., description="""Spherical Aberration Constant of the objective lens in millimeters""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'spherical_aberration_constant', + 'any_of': [{'description': 'Spherical Aberration Constant of the objective ' + 'lens in millimeters', + 'exact_mappings': ['cdp-common:tiltseries_spherical_aberration_constant'], + 'minimum_value': 0, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'millimeters', 'symbol': 'mm'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'millimeters', 'symbol': 'mm'}} }) + tilt_alignment_software: Optional[str] = Field(None, description="""Software used for tilt alignment""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_alignment_software', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_tilt_alignment_software']} }) + tilt_axis: Union[float, str] = Field(..., description="""Rotation angle in degrees""", ge=-360, le=360, json_schema_extra = { "linkml_meta": {'alias': 'tilt_axis', + 'any_of': [{'description': 'Rotation angle in degrees', + 'exact_mappings': ['cdp-common:tiltseries_tilt_axis'], + 'maximum_value': 360, + 'minimum_value': -360, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) + tilt_range: TiltRange = Field(..., description="""The range of tilt angles in the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_range', 'domain_of': ['TiltSeries']} }) + tilt_series_quality: Union[int, str] = Field(..., description="""Author assessment of tilt series quality within the dataset (1-5, 5 is best)""", ge=1, le=5, json_schema_extra = { "linkml_meta": {'alias': 'tilt_series_quality', + 'any_of': [{'description': 'Author assessment of tilt series quality within ' + 'the dataset (1-5, 5 is best)', + 'exact_mappings': ['cdp-common:tiltseries_tilt_series_quality'], + 'maximum_value': 5, + 'minimum_value': 1, + 'range': 'integer', + 'required': True}, + {'range': 'IntegerFormattedString'}], + 'domain_of': ['TiltSeries']} }) + tilt_step: Union[float, str] = Field(..., description="""Tilt step in degrees""", ge=0, le=90, json_schema_extra = { "linkml_meta": {'alias': 'tilt_step', + 'any_of': [{'description': 'Tilt step in degrees', + 'exact_mappings': ['cdp-common:tiltseries_tilt_step'], + 'maximum_value': 90, + 'minimum_value': 0, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) + tilting_scheme: str = Field(..., description="""The order of stage tilting during acquisition of the data""", json_schema_extra = { "linkml_meta": {'alias': 'tilting_scheme', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_tilting_scheme']} }) + total_flux: Union[float, str] = Field(..., description="""Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'total_flux', + 'any_of': [{'description': 'Number of Electrons reaching the specimen in a ' + 'square Angstrom area for the entire tilt series', + 'exact_mappings': ['cdp-common:tiltseries_total_flux'], + 'minimum_value': 0, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'electrons per square Angstrom', + 'symbol': 'e^-/Å^2'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'electrons per square Angstrom', + 'symbol': 'e^-/Å^2'}} }) + pixel_spacing: Union[float, str] = Field(..., description="""Pixel spacing for the tilt series""", ge=0.001, json_schema_extra = { "linkml_meta": {'alias': 'pixel_spacing', + 'any_of': [{'description': 'Pixel spacing for the tilt series', + 'exact_mappings': ['cdp-common:tiltseries_pixel_spacing'], + 'minimum_value': 0.001, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'Angstroms per pixel', + 'symbol': 'Å/px'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'Angstroms per pixel', 'symbol': 'Å/px'}} }) + + @field_validator('aligned_tiltseries_binning') def pattern_aligned_tiltseries_binning(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid aligned_tiltseries_binning format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid aligned_tiltseries_binning format: {v}") return v - @field_validator("binning_from_frames") + @field_validator('binning_from_frames') def pattern_binning_from_frames(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid binning_from_frames format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid binning_from_frames format: {v}") return v - @field_validator("related_empiar_entry") + @field_validator('related_empiar_entry') def pattern_related_empiar_entry(cls, v): - pattern = re.compile(r"^EMPIAR-[0-9]+$") - if isinstance(v, list): + pattern=re.compile(r"^EMPIAR-[0-9]+$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid related_empiar_entry format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid related_empiar_entry format: {v}") return v - @field_validator("spherical_aberration_constant") + @field_validator('spherical_aberration_constant') def pattern_spherical_aberration_constant(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid spherical_aberration_constant format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid spherical_aberration_constant format: {v}") return v - @field_validator("tilt_axis") + @field_validator('tilt_axis') def pattern_tilt_axis(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid tilt_axis format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid tilt_axis format: {v}") return v - @field_validator("tilt_series_quality") + @field_validator('tilt_series_quality') def pattern_tilt_series_quality(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid tilt_series_quality format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid tilt_series_quality format: {v}") return v - @field_validator("tilt_step") + @field_validator('tilt_step') def pattern_tilt_step(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid tilt_step format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid tilt_step format: {v}") return v - @field_validator("total_flux") + @field_validator('total_flux') def pattern_total_flux(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid total_flux format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid total_flux format: {v}") return v - @field_validator("pixel_spacing") + @field_validator('pixel_spacing') def pattern_pixel_spacing(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid pixel_spacing format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid pixel_spacing format: {v}") return v @@ -2104,123 +1363,70 @@ class TomogramSize(ConfiguredBaseModel): """ The size of a tomogram in voxels in each dimension. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - x: int = Field( - ..., - description="""Number of pixels in the 3D data fast axis""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "x", - "domain_of": ["TomogramSize", "TomogramOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - y: int = Field( - ..., - description="""Number of pixels in the 3D data medium axis""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "y", - "domain_of": ["TomogramSize", "TomogramOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - z: int = Field( - ..., - description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "z", - "domain_of": ["TomogramSize", "TomogramOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) + x: int = Field(..., description="""Number of pixels in the 3D data fast axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'x', + 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + y: int = Field(..., description="""Number of pixels in the 3D data medium axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'y', + 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + z: int = Field(..., description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'z', + 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) class TomogramOffset(ConfiguredBaseModel): """ The offset of a tomogram in voxels in each dimension relative to the canonical tomogram. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - x: Union[int, str] = Field( - ..., - description="""x offset data relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "x", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - y: Union[int, str] = Field( - ..., - description="""y offset data relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "y", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - z: Union[int, str] = Field( - ..., - description="""z offset data relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "z", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - - @field_validator("x") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + x: Union[int, str] = Field(..., description="""x offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + y: Union[int, str] = Field(..., description="""y offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + z: Union[int, str] = Field(..., description="""z offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + + @field_validator('x') def pattern_x(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid x format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid x format: {v}") return v - @field_validator("y") + @field_validator('y') def pattern_y(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid y format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid y format: {v}") return v - @field_validator("z") + @field_validator('z') def pattern_z(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid z format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid z format: {v}") return v @@ -2230,221 +1436,116 @@ class Tomogram(AuthoredEntity): """ Metadata describing a tomogram. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["AuthoredEntity"]}) - - voxel_spacing: Union[float, str] = Field( - ..., - description="""Voxel spacing equal in all three axes in angstroms""", - ge=0.001, - json_schema_extra={ - "linkml_meta": { - "alias": "voxel_spacing", - "any_of": [ - { - "description": "Voxel spacing equal in all three axes in " "angstroms", - "exact_mappings": ["cdp-common:tomogram_voxel_spacing"], - "minimum_value": 0.001, - "range": "float", - "required": True, - "unit": {"descriptive_name": "Angstroms per voxel", "symbol": "Å/voxel"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["Tomogram", "AnnotationParent", "KeyImageParent", "TomogramParent"], - "unit": {"descriptive_name": "Angstroms per voxel", "symbol": "Å/voxel"}, - } - }, - ) - fiducial_alignment_status: Union[FiducialAlignmentStatusEnum, str] = Field( - ..., - description="""Whether the tomographic alignment was computed based on fiducial markers.""", - json_schema_extra={ - "linkml_meta": { - "alias": "fiducial_alignment_status", - "any_of": [ - { - "description": "Whether the tomographic alignment was computed " "based on fiducial markers.", - "exact_mappings": ["cdp-common:tomogram_fiducial_alignment_status"], - "range": "fiducial_alignment_status_enum", - "required": True, - }, - {"range": "StringFormattedString"}, - ], - "domain_of": ["Tomogram"], - } - }, - ) - ctf_corrected: Optional[bool] = Field( - None, - description="""Whether this tomogram is CTF corrected""", - json_schema_extra={ - "linkml_meta": { - "alias": "ctf_corrected", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_ctf_corrected"], - "recommended": True, - } - }, - ) - align_software: Optional[str] = Field( - None, - description="""Software used for alignment""", - json_schema_extra={ - "linkml_meta": { - "alias": "align_software", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_align_software"], - } - }, - ) - reconstruction_method: Union[TomogramReconstructionMethodEnum, str] = Field( - ..., - description="""Describe reconstruction method (WBP, SART, SIRT)""", - json_schema_extra={ - "linkml_meta": { - "alias": "reconstruction_method", - "any_of": [ - { - "description": "Describe reconstruction method (WBP, SART, SIRT)", - "exact_mappings": ["cdp-common:tomogram_reconstruction_method"], - "range": "tomogram_reconstruction_method_enum", - "required": True, - }, - {"range": "StringFormattedString"}, - ], - "domain_of": ["Tomogram"], - } - }, - ) - reconstruction_software: str = Field( - ..., - description="""Name of software used for reconstruction""", - json_schema_extra={ - "linkml_meta": { - "alias": "reconstruction_software", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_reconstruction_software"], - } - }, - ) - processing: TomogramProcessingEnum = Field( - ..., - description="""Describe additional processing used to derive the tomogram""", - json_schema_extra={ - "linkml_meta": { - "alias": "processing", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_processing"], - } - }, - ) - processing_software: Optional[str] = Field( - None, - description="""Processing software used to derive the tomogram""", - json_schema_extra={ - "linkml_meta": { - "alias": "processing_software", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_processing_software"], - "recommended": True, - } - }, - ) - tomogram_version: float = Field( - ..., - description="""Version of tomogram""", - json_schema_extra={ - "linkml_meta": { - "alias": "tomogram_version", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_version"], - } - }, - ) - affine_transformation_matrix: Optional[ - conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float)) - ] = Field( - None, - description="""The flip or rotation transformation of this author submitted tomogram is indicated here""", - json_schema_extra={ - "linkml_meta": { - "alias": "affine_transformation_matrix", - "array": { - "dimensions": [{"exact_cardinality": 4}, {"exact_cardinality": 4}], - "exact_number_dimensions": 2, - }, - "domain_of": ["Tomogram"], - } - }, - ) - size: Optional[TomogramSize] = Field( - None, - description="""The size of a tomogram in voxels in each dimension.""", - json_schema_extra={"linkml_meta": {"alias": "size", "domain_of": ["Tomogram"]}}, - ) - offset: TomogramOffset = Field( - ..., - description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", - json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram"]}}, - ) - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - - @field_validator("voxel_spacing") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['AuthoredEntity']}) + + voxel_spacing: Union[float, str] = Field(..., description="""Voxel spacing equal in all three axes in angstroms""", ge=0.001, json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'any_of': [{'description': 'Voxel spacing equal in all three axes in ' + 'angstroms', + 'exact_mappings': ['cdp-common:tomogram_voxel_spacing'], + 'minimum_value': 0.001, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'Angstroms per voxel', + 'symbol': 'Å/voxel'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['Tomogram', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent'], + 'unit': {'descriptive_name': 'Angstroms per voxel', 'symbol': 'Å/voxel'}} }) + fiducial_alignment_status: Union[FiducialAlignmentStatusEnum, str] = Field(..., description="""Whether the tomographic alignment was computed based on fiducial markers.""", json_schema_extra = { "linkml_meta": {'alias': 'fiducial_alignment_status', + 'any_of': [{'description': 'Whether the tomographic alignment was computed ' + 'based on fiducial markers.', + 'exact_mappings': ['cdp-common:tomogram_fiducial_alignment_status'], + 'range': 'fiducial_alignment_status_enum', + 'required': True}, + {'range': 'StringFormattedString'}], + 'domain_of': ['Tomogram']} }) + ctf_corrected: Optional[bool] = Field(None, description="""Whether this tomogram is CTF corrected""", json_schema_extra = { "linkml_meta": {'alias': 'ctf_corrected', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_ctf_corrected'], + 'recommended': True} }) + align_software: Optional[str] = Field(None, description="""Software used for alignment""", json_schema_extra = { "linkml_meta": {'alias': 'align_software', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_align_software']} }) + reconstruction_method: Union[TomogramReconstructionMethodEnum, str] = Field(..., description="""Describe reconstruction method (WBP, SART, SIRT)""", json_schema_extra = { "linkml_meta": {'alias': 'reconstruction_method', + 'any_of': [{'description': 'Describe reconstruction method (WBP, SART, SIRT)', + 'exact_mappings': ['cdp-common:tomogram_reconstruction_method'], + 'range': 'tomogram_reconstruction_method_enum', + 'required': True}, + {'range': 'StringFormattedString'}], + 'domain_of': ['Tomogram']} }) + reconstruction_software: str = Field(..., description="""Name of software used for reconstruction""", json_schema_extra = { "linkml_meta": {'alias': 'reconstruction_software', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_reconstruction_software']} }) + processing: TomogramProcessingEnum = Field(..., description="""Describe additional processing used to derive the tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'processing', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_processing']} }) + processing_software: Optional[str] = Field(None, description="""Processing software used to derive the tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'processing_software', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_processing_software'], + 'recommended': True} }) + tomogram_version: float = Field(..., description="""Version of tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_version', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_version']} }) + affine_transformation_matrix: Optional[conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float))] = Field(None, description="""The flip or rotation transformation of this author submitted tomogram is indicated here""", json_schema_extra = { "linkml_meta": {'alias': 'affine_transformation_matrix', + 'array': {'dimensions': [{'exact_cardinality': 4}, {'exact_cardinality': 4}], + 'exact_number_dimensions': 2}, + 'domain_of': ['Tomogram']} }) + size: Optional[TomogramSize] = Field(None, description="""The size of a tomogram in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'size', 'domain_of': ['Tomogram']} }) + offset: TomogramOffset = Field(..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram']} }) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + + @field_validator('voxel_spacing') def pattern_voxel_spacing(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid voxel_spacing format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid voxel_spacing format: {v}") return v - @field_validator("fiducial_alignment_status") + @field_validator('fiducial_alignment_status') def pattern_fiducial_alignment_status(cls, v): - pattern = re.compile(r"(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v, list): + pattern=re.compile(r"(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid fiducial_alignment_status format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid fiducial_alignment_status format: {v}") return v - @field_validator("reconstruction_method") + @field_validator('reconstruction_method') def pattern_reconstruction_method(cls, v): - pattern = re.compile(r"(^SART$)|(^Fourier Space$)|(^SIRT$)|(^WBP$)|(^Unknown$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v, list): + pattern=re.compile(r"(^SART$)|(^Fourier Space$)|(^SIRT$)|(^WBP$)|(^Unknown$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid reconstruction_method format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid reconstruction_method format: {v}") return v - @field_validator("processing") + @field_validator('processing') def pattern_processing(cls, v): - pattern = re.compile(r"(^denoised$)|(^filtered$)|(^raw$)") - if isinstance(v, list): + pattern=re.compile(r"(^denoised$)|(^filtered$)|(^raw$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid processing format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid processing format: {v}") return v @@ -2454,122 +1555,60 @@ class AnnotationConfidence(ConfiguredBaseModel): """ Metadata describing the confidence of an annotation. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - precision: Optional[float] = Field( - None, - description="""Describe the confidence level of the annotation. Precision is defined as the % of annotation objects being true positive""", - ge=0, - le=100, - json_schema_extra={ - "linkml_meta": { - "alias": "precision", - "domain_of": ["AnnotationConfidence"], - "exact_mappings": ["cdp-common:annotation_confidence_precision"], - "unit": {"descriptive_name": "percentage", "symbol": "%"}, - } - }, - ) - recall: Optional[float] = Field( - None, - description="""Describe the confidence level of the annotation. Recall is defined as the % of true positives being annotated correctly""", - ge=0, - le=100, - json_schema_extra={ - "linkml_meta": { - "alias": "recall", - "domain_of": ["AnnotationConfidence"], - "exact_mappings": ["cdp-common:annotation_confidence_recall"], - "unit": {"descriptive_name": "percentage", "symbol": "%"}, - } - }, - ) - ground_truth_used: Optional[str] = Field( - None, - description="""Annotation filename used as ground truth for precision and recall""", - json_schema_extra={ - "linkml_meta": { - "alias": "ground_truth_used", - "domain_of": ["AnnotationConfidence"], - "exact_mappings": ["cdp-common:annotation_ground_truth_used"], - } - }, - ) + precision: Optional[float] = Field(None, description="""Describe the confidence level of the annotation. Precision is defined as the % of annotation objects being true positive""", ge=0, le=100, json_schema_extra = { "linkml_meta": {'alias': 'precision', + 'domain_of': ['AnnotationConfidence'], + 'exact_mappings': ['cdp-common:annotation_confidence_precision'], + 'unit': {'descriptive_name': 'percentage', 'symbol': '%'}} }) + recall: Optional[float] = Field(None, description="""Describe the confidence level of the annotation. Recall is defined as the % of true positives being annotated correctly""", ge=0, le=100, json_schema_extra = { "linkml_meta": {'alias': 'recall', + 'domain_of': ['AnnotationConfidence'], + 'exact_mappings': ['cdp-common:annotation_confidence_recall'], + 'unit': {'descriptive_name': 'percentage', 'symbol': '%'}} }) + ground_truth_used: Optional[str] = Field(None, description="""Annotation filename used as ground truth for precision and recall""", json_schema_extra = { "linkml_meta": {'alias': 'ground_truth_used', + 'domain_of': ['AnnotationConfidence'], + 'exact_mappings': ['cdp-common:annotation_ground_truth_used']} }) class AnnotationObject(ConfiguredBaseModel): """ Metadata describing the object being annotated. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - id: str = Field( - ..., - description="""Gene Ontology Cellular Component identifier or UniProtKB accession for the annotation object.""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "any_of": [{"range": "GO_ID"}, {"range": "UNIPROT_ID"}], - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:annotation_object_id"], - } - }, - ) - name: str = Field( - ..., - description="""Name of the object being annotated (e.g. ribosome, nuclear pore complex, actin filament, membrane)""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:annotation_object_name"], - } - }, - ) - description: Optional[str] = Field( - None, - description="""A textual description of the annotation object, can be a longer description to include additional information not covered by the Annotation object name and state.""", - json_schema_extra={ - "linkml_meta": { - "alias": "description", - "domain_of": ["AnnotationObject"], - "exact_mappings": ["cdp-common:annotation_object_description"], - } - }, - ) - state: Optional[str] = Field( - None, - description="""Molecule state annotated (e.g. open, closed)""", - json_schema_extra={ - "linkml_meta": { - "alias": "state", - "domain_of": ["AnnotationObject"], - "exact_mappings": ["cdp-common:annotation_object_state"], - } - }, - ) - - @field_validator("id") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + id: str = Field(..., description="""Gene Ontology Cellular Component identifier or UniProtKB accession for the annotation object.""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'any_of': [{'range': 'GO_ID'}, {'range': 'UNIPROT_ID'}], + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:annotation_object_id']} }) + name: str = Field(..., description="""Name of the object being annotated (e.g. ribosome, nuclear pore complex, actin filament, membrane)""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:annotation_object_name']} }) + description: Optional[str] = Field(None, description="""A textual description of the annotation object, can be a longer description to include additional information not covered by the Annotation object name and state.""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'domain_of': ['AnnotationObject'], + 'exact_mappings': ['cdp-common:annotation_object_description']} }) + state: Optional[str] = Field(None, description="""Molecule state annotated (e.g. open, closed)""", json_schema_extra = { "linkml_meta": {'alias': 'state', + 'domain_of': ['AnnotationObject'], + 'exact_mappings': ['cdp-common:annotation_object_state']} }) + + @field_validator('id') def pattern_id(cls, v): - pattern = re.compile( - r"(^GO:[0-9]{7}$)|(^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$)" - ) - if isinstance(v, list): + pattern=re.compile(r"(^GO:[0-9]{7}$)|(^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid id format: {v}") return v @@ -2579,52 +1618,27 @@ class AnnotationMethodLinks(ConfiguredBaseModel): """ A set of links to models, source code, documentation, etc referenced by annotation the method """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - link: str = Field( - ..., - description="""URL to the annotation method reference""", - json_schema_extra={ - "linkml_meta": { - "alias": "link", - "domain_of": ["AnnotationMethodLinks"], - "exact_mappings": ["cdp-common:annotation_method_link"], - } - }, - ) - link_type: AnnotationMethodLinkTypeEnum = Field( - ..., - description="""Type of link (e.g. model, source code, documentation)""", - json_schema_extra={ - "linkml_meta": { - "alias": "link_type", - "domain_of": ["AnnotationMethodLinks"], - "exact_mappings": ["cdp-common:annotation_method_link_type"], - } - }, - ) - custom_name: Optional[str] = Field( - None, - description="""user readable name of the resource""", - json_schema_extra={ - "linkml_meta": { - "alias": "custom_name", - "domain_of": ["AnnotationMethodLinks"], - "exact_mappings": ["cdp-common:annotation_method_link_custom_name"], - "recommended": True, - } - }, - ) + link: str = Field(..., description="""URL to the annotation method reference""", json_schema_extra = { "linkml_meta": {'alias': 'link', + 'domain_of': ['AnnotationMethodLinks'], + 'exact_mappings': ['cdp-common:annotation_method_link']} }) + link_type: AnnotationMethodLinkTypeEnum = Field(..., description="""Type of link (e.g. model, source code, documentation)""", json_schema_extra = { "linkml_meta": {'alias': 'link_type', + 'domain_of': ['AnnotationMethodLinks'], + 'exact_mappings': ['cdp-common:annotation_method_link_type']} }) + custom_name: Optional[str] = Field(None, description="""user readable name of the resource""", json_schema_extra = { "linkml_meta": {'alias': 'custom_name', + 'domain_of': ['AnnotationMethodLinks'], + 'exact_mappings': ['cdp-common:annotation_method_link_custom_name'], + 'recommended': True} }) - @field_validator("link_type") + @field_validator('link_type') def pattern_link_type(cls, v): - pattern = re.compile(r"(^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$)") - if isinstance(v, list): + pattern=re.compile(r"(^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid link_type format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid link_type format: {v}") return v @@ -2634,915 +1648,437 @@ class AnnotationSourceFile(ConfiguredBaseModel): """ File and sourcing data for an annotation. Represents an entry in annotation.sources. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) class AnnotationOrientedPointFile(AnnotationSourceFile): """ File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["OrientedPoint"], "from_schema": "metadata"}) - - binning: Optional[float] = Field( - 1.0, - description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "binning", - "domain_of": [ - "AnnotationOrientedPointFile", - "AnnotationPointFile", - "AnnotationInstanceSegmentationFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_binning"], - "ifabsent": "float(1)", - } - }, - ) - filter_value: Optional[str] = Field( - None, - description="""The filter value for an oriented point / instance segmentation annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "filter_value", - "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], - "exact_mappings": ["cdp-common:annotation_source_file_filter_value"], - } - }, - ) - order: Optional[str] = Field( - "xyz", - description="""The order of axes for an oriented point / instance segmentation annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "order", - "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], - "exact_mappings": ["cdp-common:annotation_source_file_order"], - "ifabsent": "string(xyz)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['OrientedPoint'], 'from_schema': 'metadata'}) + + binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_binning'], + 'ifabsent': 'float(1)'} }) + filter_value: Optional[str] = Field(None, description="""The filter value for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'filter_value', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_filter_value']} }) + order: Optional[str] = Field("xyz", description="""The order of axes for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'order', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_order'], + 'ifabsent': 'string(xyz)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): """ File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["InstanceSegmentation"], "from_schema": "metadata"}) - - binning: Optional[float] = Field( - 1.0, - description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "binning", - "domain_of": [ - "AnnotationOrientedPointFile", - "AnnotationPointFile", - "AnnotationInstanceSegmentationFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_binning"], - "ifabsent": "float(1)", - } - }, - ) - filter_value: Optional[str] = Field( - None, - description="""The filter value for an oriented point / instance segmentation annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "filter_value", - "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], - "exact_mappings": ["cdp-common:annotation_source_file_filter_value"], - } - }, - ) - order: Optional[str] = Field( - "xyz", - description="""The order of axes for an oriented point / instance segmentation annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "order", - "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], - "exact_mappings": ["cdp-common:annotation_source_file_order"], - "ifabsent": "string(xyz)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['InstanceSegmentation'], 'from_schema': 'metadata'}) + + binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_binning'], + 'ifabsent': 'float(1)'} }) + filter_value: Optional[str] = Field(None, description="""The filter value for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'filter_value', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_filter_value']} }) + order: Optional[str] = Field("xyz", description="""The order of axes for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'order', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_order'], + 'ifabsent': 'string(xyz)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) class AnnotationPointFile(AnnotationSourceFile): """ File and sourcing data for a point annotation. Annotation that identifies points in the volume. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["Point"], "from_schema": "metadata"}) - - binning: Optional[float] = Field( - 1.0, - description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "binning", - "domain_of": [ - "AnnotationOrientedPointFile", - "AnnotationPointFile", - "AnnotationInstanceSegmentationFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_binning"], - "ifabsent": "float(1)", - } - }, - ) - columns: Optional[str] = Field( - "xyz", - description="""The columns used in a point annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "columns", - "domain_of": ["AnnotationPointFile"], - "exact_mappings": ["cdp-common:annotation_source_file_columns"], - "ifabsent": "string(xyz)", - } - }, - ) - delimiter: Optional[str] = Field( - ",", - description="""The delimiter used in a point annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "delimiter", - "domain_of": ["AnnotationPointFile"], - "exact_mappings": ["cdp-common:annotation_source_file_delimiter"], - "ifabsent": "string(,)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['Point'], 'from_schema': 'metadata'}) + + binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_binning'], + 'ifabsent': 'float(1)'} }) + columns: Optional[str] = Field("xyz", description="""The columns used in a point annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'columns', + 'domain_of': ['AnnotationPointFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_columns'], + 'ifabsent': 'string(xyz)'} }) + delimiter: Optional[str] = Field(",", description="""The delimiter used in a point annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'delimiter', + 'domain_of': ['AnnotationPointFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_delimiter'], + 'ifabsent': 'string(,)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) class AnnotationSegmentationMaskFile(AnnotationSourceFile): """ File and sourcing data for a segmentation mask annotation. Annotation that identifies an object. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["SegmentationMask"], "from_schema": "metadata"}) - - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['SegmentationMask'], 'from_schema': 'metadata'}) + + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): """ File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["SemanticSegmentationMask"], "from_schema": "metadata"}) - - mask_label: Optional[int] = Field( - 1, - description="""The mask label for a semantic segmentation mask annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "mask_label", - "domain_of": ["AnnotationSemanticSegmentationMaskFile"], - "exact_mappings": ["cdp-common:annotation_source_file_mask_label"], - "ifabsent": "int(1)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['SemanticSegmentationMask'], 'from_schema': 'metadata'}) + + mask_label: Optional[int] = Field(1, description="""The mask label for a semantic segmentation mask annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'mask_label', + 'domain_of': ['AnnotationSemanticSegmentationMaskFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_mask_label'], + 'ifabsent': 'int(1)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) class AnnotationTriangularMeshFile(AnnotationSourceFile): """ File and sourcing data for a triangular mesh annotation. Annotation that identifies an object. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["TriangularMesh"], "from_schema": "metadata"}) - - scale_factor: Optional[float] = Field( - 1.0, - description="""The scale factor for a mesh annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "scale_factor", - "domain_of": ["AnnotationTriangularMeshFile"], - "exact_mappings": ["cdp-common:annotation_source_file_scale_factor"], - "ifabsent": "float(1)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['TriangularMesh'], 'from_schema': 'metadata'}) + + scale_factor: Optional[float] = Field(1.0, description="""The scale factor for a mesh annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'scale_factor', + 'domain_of': ['AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_scale_factor'], + 'ifabsent': 'float(1)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) class Annotation(AuthoredEntity, DateStampedEntity): """ Metadata describing an annotation. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "metadata", "mixins": ["DateStampedEntity", "AuthoredEntity"]} - ) - - annotation_method: str = Field( - ..., - description="""Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)""", - json_schema_extra={ - "linkml_meta": { - "alias": "annotation_method", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_method"], - } - }, - ) - annotation_object: AnnotationObject = Field( - ..., - description="""Metadata describing the object being annotated.""", - json_schema_extra={"linkml_meta": {"alias": "annotation_object", "domain_of": ["Annotation"]}}, - ) - annotation_publications: Optional[str] = Field( - None, - description="""List of publication IDs (EMPIAR, EMDB, DOI, PDB) that describe this annotation method. Comma separated.""", - json_schema_extra={ - "linkml_meta": { - "alias": "annotation_publications", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_publications"], - } - }, - ) - annotation_software: Optional[str] = Field( - None, - description="""Software used for generating this annotation""", - json_schema_extra={ - "linkml_meta": { - "alias": "annotation_software", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_software"], - "recommended": True, - } - }, - ) - confidence: Optional[AnnotationConfidence] = Field( - None, - description="""Metadata describing the confidence of an annotation.""", - json_schema_extra={"linkml_meta": {"alias": "confidence", "domain_of": ["Annotation"]}}, - ) - files: Optional[List[AnnotationSourceFile]] = Field( - None, - description="""File and sourcing data for an annotation. Represents an entry in annotation.sources.""", - json_schema_extra={ - "linkml_meta": {"alias": "files", "domain_of": ["Annotation"], "list_elements_ordered": True} - }, - ) - ground_truth_status: Optional[bool] = Field( - False, - description="""Whether an annotation is considered ground truth, as determined by the annotator.""", - json_schema_extra={ - "linkml_meta": { - "alias": "ground_truth_status", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_ground_truth_status"], - "ifabsent": "False", - "recommended": True, - } - }, - ) - is_curator_recommended: Optional[bool] = Field( - False, - description="""This annotation is recommended by the curator to be preferred for this object type.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_curator_recommended", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_is_curator_recommended"], - "ifabsent": "False", - } - }, - ) - method_type: AnnotationMethodTypeEnum = Field( - ..., - description="""Classification of the annotation method based on supervision.""", - json_schema_extra={ - "linkml_meta": { - "alias": "method_type", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_method_type"], - } - }, - ) - method_links: Optional[List[AnnotationMethodLinks]] = Field( - None, - description="""A set of links to models, source code, documentation, etc referenced by annotation the method""", - json_schema_extra={"linkml_meta": {"alias": "method_links", "domain_of": ["Annotation"]}}, - ) - object_count: Optional[int] = Field( - None, - description="""Number of objects identified""", - json_schema_extra={ - "linkml_meta": { - "alias": "object_count", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_object_count"], - } - }, - ) - version: Optional[float] = Field( - None, - description="""Version of annotation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "version", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_version"], - } - }, - ) - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": {"alias": "dates", "domain_of": ["DateStampedEntity", "Dataset", "Deposition", "Annotation"]} - }, - ) - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - - @field_validator("annotation_publications") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['DateStampedEntity', 'AuthoredEntity']}) + + annotation_method: str = Field(..., description="""Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_method', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_method']} }) + annotation_object: AnnotationObject = Field(..., description="""Metadata describing the object being annotated.""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_object', 'domain_of': ['Annotation']} }) + annotation_publications: Optional[str] = Field(None, description="""List of publication IDs (EMPIAR, EMDB, DOI, PDB) that describe this annotation method. Comma separated.""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_publications', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_publications']} }) + annotation_software: Optional[str] = Field(None, description="""Software used for generating this annotation""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_software', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_software'], + 'recommended': True} }) + confidence: Optional[AnnotationConfidence] = Field(None, description="""Metadata describing the confidence of an annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'confidence', 'domain_of': ['Annotation']} }) + files: Optional[List[AnnotationSourceFile]] = Field(None, description="""File and sourcing data for an annotation. Represents an entry in annotation.sources.""", json_schema_extra = { "linkml_meta": {'alias': 'files', 'domain_of': ['Annotation'], 'list_elements_ordered': True} }) + ground_truth_status: Optional[bool] = Field(False, description="""Whether an annotation is considered ground truth, as determined by the annotator.""", json_schema_extra = { "linkml_meta": {'alias': 'ground_truth_status', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_ground_truth_status'], + 'ifabsent': 'False', + 'recommended': True} }) + is_curator_recommended: Optional[bool] = Field(False, description="""This annotation is recommended by the curator to be preferred for this object type.""", json_schema_extra = { "linkml_meta": {'alias': 'is_curator_recommended', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_is_curator_recommended'], + 'ifabsent': 'False'} }) + method_type: AnnotationMethodTypeEnum = Field(..., description="""Classification of the annotation method based on supervision.""", json_schema_extra = { "linkml_meta": {'alias': 'method_type', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_method_type']} }) + method_links: Optional[List[AnnotationMethodLinks]] = Field(None, description="""A set of links to models, source code, documentation, etc referenced by annotation the method""", json_schema_extra = { "linkml_meta": {'alias': 'method_links', 'domain_of': ['Annotation']} }) + object_count: Optional[int] = Field(None, description="""Number of objects identified""", json_schema_extra = { "linkml_meta": {'alias': 'object_count', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_object_count']} }) + version: Optional[float] = Field(None, description="""Version of annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'version', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_version']} }) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', 'Dataset', 'Deposition', 'Annotation']} }) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + + @field_validator('annotation_publications') def pattern_annotation_publications(cls, v): - pattern = re.compile( - r"^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$" - ) - if isinstance(v, list): + pattern=re.compile(r"^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid annotation_publications format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid annotation_publications format: {v}") return v - @field_validator("method_type") + @field_validator('method_type') def pattern_method_type(cls, v): - pattern = re.compile(r"(^manual$)|(^automated$)|(^hybrid$)|(^simulated$)") - if isinstance(v, list): + pattern=re.compile(r"(^manual$)|(^automated$)|(^hybrid$)|(^simulated$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid method_type format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid method_type format: {v}") return v @@ -3552,154 +2088,73 @@ class DateStampedEntityMixin(ConfiguredBaseModel): """ A set of dates at which a data item was deposited, published and last modified. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config", "mixin": True}) - - deposition_date: date = Field( - ..., - description="""The date a data item was received by the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:deposition_date"], - } - }, - ) - release_date: date = Field( - ..., - description="""The date a data item was received by the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "release_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:release_date"], - } - }, - ) - last_modified_date: date = Field( - ..., - description="""The date a piece of data was last modified on the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "last_modified_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:last_modified_date"], - } - }, - ) + deposition_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:deposition_date']} }) + release_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'release_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:release_date']} }) + last_modified_date: date = Field(..., description="""The date a piece of data was last modified on the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'last_modified_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:last_modified_date']} }) class DateStamp(DateStampedEntityMixin): """ A set of dates at which a data item was deposited, published and last modified. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['DateStampedEntityMixin']}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["DateStampedEntityMixin"]}) - - deposition_date: date = Field( - ..., - description="""The date a data item was received by the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:deposition_date"], - } - }, - ) - release_date: date = Field( - ..., - description="""The date a data item was received by the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "release_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:release_date"], - } - }, - ) - last_modified_date: date = Field( - ..., - description="""The date a piece of data was last modified on the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "last_modified_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:last_modified_date"], - } - }, - ) + deposition_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:deposition_date']} }) + release_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'release_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:release_date']} }) + last_modified_date: date = Field(..., description="""The date a piece of data was last modified on the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'last_modified_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:last_modified_date']} }) class CrossReferencesMixin(ConfiguredBaseModel): """ A set of cross-references to other databases and publications. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config", "mixin": True}) - - publications: Optional[str] = Field( - None, - description="""Comma-separated list of DOIs for publications associated with the dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "publications", - "domain_of": ["CrossReferencesMixin", "CrossReferences"], - "recommended": True, - } - }, - ) - related_database_entries: Optional[str] = Field( - None, - description="""Comma-separated list of related database entries for the dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "related_database_entries", - "domain_of": ["CrossReferencesMixin", "CrossReferences"], - "recommended": True, - } - }, - ) - related_database_links: Optional[str] = Field( - None, - description="""Comma-separated list of related database links for the dataset.""", - json_schema_extra={ - "linkml_meta": {"alias": "related_database_links", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} - }, - ) - dataset_citations: Optional[str] = Field( - None, - description="""Comma-separated list of DOIs for publications citing the dataset.""", - json_schema_extra={ - "linkml_meta": {"alias": "dataset_citations", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} - }, - ) + publications: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications associated with the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'publications', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], + 'recommended': True} }) + related_database_entries: Optional[str] = Field(None, description="""Comma-separated list of related database entries for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_entries', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], + 'recommended': True} }) + related_database_links: Optional[str] = Field(None, description="""Comma-separated list of related database links for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_links', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) + dataset_citations: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications citing the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_citations', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) - @field_validator("publications") + @field_validator('publications') def pattern_publications(cls, v): - pattern = re.compile( - r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)" - ) - if isinstance(v, list): + pattern=re.compile(r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid publications format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid publications format: {v}") return v - @field_validator("related_database_entries") + @field_validator('related_database_entries') def pattern_related_database_entries(cls, v): - pattern = re.compile( - r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)" - ) - if isinstance(v, list): + pattern=re.compile(r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid related_database_entries format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid related_database_entries format: {v}") return v @@ -3709,70 +2164,39 @@ class CrossReferences(CrossReferencesMixin): """ A set of cross-references to other databases and publications. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['CrossReferencesMixin']}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["CrossReferencesMixin"]}) + publications: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications associated with the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'publications', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], + 'recommended': True} }) + related_database_entries: Optional[str] = Field(None, description="""Comma-separated list of related database entries for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_entries', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], + 'recommended': True} }) + related_database_links: Optional[str] = Field(None, description="""Comma-separated list of related database links for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_links', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) + dataset_citations: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications citing the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_citations', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) - publications: Optional[str] = Field( - None, - description="""Comma-separated list of DOIs for publications associated with the dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "publications", - "domain_of": ["CrossReferencesMixin", "CrossReferences"], - "recommended": True, - } - }, - ) - related_database_entries: Optional[str] = Field( - None, - description="""Comma-separated list of related database entries for the dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "related_database_entries", - "domain_of": ["CrossReferencesMixin", "CrossReferences"], - "recommended": True, - } - }, - ) - related_database_links: Optional[str] = Field( - None, - description="""Comma-separated list of related database links for the dataset.""", - json_schema_extra={ - "linkml_meta": {"alias": "related_database_links", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} - }, - ) - dataset_citations: Optional[str] = Field( - None, - description="""Comma-separated list of DOIs for publications citing the dataset.""", - json_schema_extra={ - "linkml_meta": {"alias": "dataset_citations", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} - }, - ) - - @field_validator("publications") + @field_validator('publications') def pattern_publications(cls, v): - pattern = re.compile( - r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)" - ) - if isinstance(v, list): + pattern=re.compile(r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid publications format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid publications format: {v}") return v - @field_validator("related_database_entries") + @field_validator('related_database_entries') def pattern_related_database_entries(cls, v): - pattern = re.compile( - r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)" - ) - if isinstance(v, list): + pattern=re.compile(r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid related_database_entries format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid related_database_entries format: {v}") return v @@ -3782,217 +2206,91 @@ class AuthorMixin(ConfiguredBaseModel): """ An entity with author data """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config", "mixin": True}) - - name: str = Field( - ..., - description="""The full name of the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "AuthorMixin", - "Author", - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - ], - "exact_mappings": ["cdp-common:author_name"], - } - }, - ) - email: Optional[str] = Field( - None, - description="""The email address of the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "email", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_email"], - } - }, - ) - affiliation_name: Optional[str] = Field( - None, - description="""The name of the author's affiliation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_name", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_name"], - } - }, - ) - affiliation_address: Optional[str] = Field( - None, - description="""The address of the author's affiliation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_address", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_address"], - } - }, - ) - affiliation_identifier: Optional[str] = Field( - None, - description="""A Research Organization Registry (ROR) identifier.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_identifier", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_identifier"], - "recommended": True, - } - }, - ) - corresponding_author_status: Optional[bool] = Field( - False, - description="""Whether the author is a corresponding author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "corresponding_author_status", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_corresponding_author_status"], - "ifabsent": "False", - } - }, - ) - primary_author_status: Optional[bool] = Field( - False, - description="""Whether the author is a primary author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "primary_author_status", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_primary_author_status"], - "ifabsent": "False", - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) + + name: str = Field(..., description="""The full name of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['AuthorMixin', + 'Author', + 'OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:author_name']} }) + email: Optional[str] = Field(None, description="""The email address of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'email', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_email']} }) + affiliation_name: Optional[str] = Field(None, description="""The name of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_name', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_name']} }) + affiliation_address: Optional[str] = Field(None, description="""The address of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_address', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_address']} }) + affiliation_identifier: Optional[str] = Field(None, description="""A Research Organization Registry (ROR) identifier.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_identifier', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_identifier'], + 'recommended': True} }) + corresponding_author_status: Optional[bool] = Field(False, description="""Whether the author is a corresponding author.""", json_schema_extra = { "linkml_meta": {'alias': 'corresponding_author_status', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_corresponding_author_status'], + 'ifabsent': 'False'} }) + primary_author_status: Optional[bool] = Field(False, description="""Whether the author is a primary author.""", json_schema_extra = { "linkml_meta": {'alias': 'primary_author_status', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_primary_author_status'], + 'ifabsent': 'False'} }) class Author(AuthorMixin): """ Author of a scientific data entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["AuthorMixin"]}) - - ORCID: Optional[str] = Field( - None, - description="""The ORCID identifier for the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "ORCID", - "domain_of": ["Author"], - "exact_mappings": ["cdp-common:author_orcid"], - "recommended": True, - } - }, - ) - name: str = Field( - ..., - description="""The full name of the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "AuthorMixin", - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "Author", - ], - "exact_mappings": ["cdp-common:author_name"], - } - }, - ) - email: Optional[str] = Field( - None, - description="""The email address of the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "email", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_email"], - } - }, - ) - affiliation_name: Optional[str] = Field( - None, - description="""The name of the author's affiliation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_name", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_name"], - } - }, - ) - affiliation_address: Optional[str] = Field( - None, - description="""The address of the author's affiliation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_address", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_address"], - } - }, - ) - affiliation_identifier: Optional[str] = Field( - None, - description="""A Research Organization Registry (ROR) identifier.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_identifier", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_identifier"], - "recommended": True, - } - }, - ) - corresponding_author_status: Optional[bool] = Field( - False, - description="""Whether the author is a corresponding author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "corresponding_author_status", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_corresponding_author_status"], - "ifabsent": "False", - } - }, - ) - primary_author_status: Optional[bool] = Field( - False, - description="""Whether the author is a primary author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "primary_author_status", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_primary_author_status"], - "ifabsent": "False", - } - }, - ) - - @field_validator("ORCID") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['AuthorMixin']}) + + ORCID: Optional[str] = Field(None, description="""The ORCID identifier for the author.""", json_schema_extra = { "linkml_meta": {'alias': 'ORCID', + 'domain_of': ['Author'], + 'exact_mappings': ['cdp-common:author_orcid'], + 'recommended': True} }) + name: str = Field(..., description="""The full name of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['AuthorMixin', + 'OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'Author'], + 'exact_mappings': ['cdp-common:author_name']} }) + email: Optional[str] = Field(None, description="""The email address of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'email', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_email']} }) + affiliation_name: Optional[str] = Field(None, description="""The name of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_name', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_name']} }) + affiliation_address: Optional[str] = Field(None, description="""The address of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_address', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_address']} }) + affiliation_identifier: Optional[str] = Field(None, description="""A Research Organization Registry (ROR) identifier.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_identifier', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_identifier'], + 'recommended': True} }) + corresponding_author_status: Optional[bool] = Field(False, description="""Whether the author is a corresponding author.""", json_schema_extra = { "linkml_meta": {'alias': 'corresponding_author_status', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_corresponding_author_status'], + 'ifabsent': 'False'} }) + primary_author_status: Optional[bool] = Field(False, description="""Whether the author is a primary author.""", json_schema_extra = { "linkml_meta": {'alias': 'primary_author_status', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_primary_author_status'], + 'ifabsent': 'False'} }) + + @field_validator('ORCID') def pattern_ORCID(cls, v): - pattern = re.compile(r"[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$") - if isinstance(v, list): + pattern=re.compile(r"[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$") + if isinstance(v,list): for element in v: if not pattern.match(element): raise ValueError(f"Invalid ORCID format: {element}") - elif isinstance(v, str): + elif isinstance(v,str): if not pattern.match(v): raise ValueError(f"Invalid ORCID format: {v}") return v @@ -4002,4697 +2300,3303 @@ class Container(ConfiguredBaseModel): """ Class that models the ingestion config file. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config", "tree_root": True}) - - annotations: Optional[List[AnnotationEntity]] = Field( - None, - description="""An annotation entity.""", - json_schema_extra={"linkml_meta": {"alias": "annotations", "domain_of": ["Container"]}}, - ) - dataset_keyphotos: Optional[List[DatasetKeyPhotoEntity]] = Field( - None, - description="""A dataset key photo entity.""", - json_schema_extra={"linkml_meta": {"alias": "dataset_keyphotos", "domain_of": ["Container"]}}, - ) - datasets: List[DatasetEntity] = Field( - ..., - description="""A dataset entity.""", - min_length=1, - json_schema_extra={"linkml_meta": {"alias": "datasets", "domain_of": ["Container"]}}, - ) - deposition_keyphotos: Optional[List[DepositionKeyPhotoEntity]] = Field( - None, - description="""A deposition key photo entity.""", - json_schema_extra={"linkml_meta": {"alias": "deposition_keyphotos", "domain_of": ["Container"]}}, - ) - depositions: List[DepositionEntity] = Field( - ..., - description="""A deposition entity.""", - min_length=1, - json_schema_extra={"linkml_meta": {"alias": "depositions", "domain_of": ["Container"]}}, - ) - frames: Optional[List[FrameEntity]] = Field( - None, - description="""A frame entity.""", - json_schema_extra={"linkml_meta": {"alias": "frames", "domain_of": ["Container"]}}, - ) - gains: Optional[List[GainEntity]] = Field( - None, - description="""A gain entity.""", - json_schema_extra={"linkml_meta": {"alias": "gains", "domain_of": ["Container"]}}, - ) - key_images: Optional[List[KeyImageEntity]] = Field( - None, - description="""A key image entity.""", - json_schema_extra={"linkml_meta": {"alias": "key_images", "domain_of": ["Container"]}}, - ) - rawtilts: Optional[List[RawTiltEntity]] = Field( - None, - description="""A raw tilt entity.""", - json_schema_extra={"linkml_meta": {"alias": "rawtilts", "domain_of": ["Container"]}}, - ) - runs: List[RunEntity] = Field( - ..., - description="""A run entity.""", - min_length=1, - json_schema_extra={"linkml_meta": {"alias": "runs", "domain_of": ["Container"]}}, - ) - standardization_config: StandardizationConfig = Field( - ..., - description="""A standardization configuration.""", - json_schema_extra={"linkml_meta": {"alias": "standardization_config", "domain_of": ["Container"]}}, - ) - tiltseries: Optional[List[TiltSeriesEntity]] = Field( - None, - description="""A tilt series entity.""", - json_schema_extra={"linkml_meta": {"alias": "tiltseries", "domain_of": ["Container"]}}, - ) - tomograms: Optional[List[TomogramEntity]] = Field( - None, - description="""A tomogram entity.""", - json_schema_extra={"linkml_meta": {"alias": "tomograms", "domain_of": ["Container"]}}, - ) - voxel_spacings: List[VoxelSpacingEntity] = Field( - ..., - description="""A voxel spacing entity.""", - min_length=1, - json_schema_extra={"linkml_meta": {"alias": "voxel_spacings", "domain_of": ["Container"]}}, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'tree_root': True}) + + annotations: Optional[List[AnnotationEntity]] = Field(None, description="""An annotation entity.""", json_schema_extra = { "linkml_meta": {'alias': 'annotations', 'domain_of': ['Container']} }) + collection_metadata: Optional[List[CollectionMetadataEntity]] = Field(None, description="""A collection_metadata entity.""", json_schema_extra = { "linkml_meta": {'alias': 'collection_metadata', 'domain_of': ['Container']} }) + dataset_keyphotos: Optional[List[DatasetKeyPhotoEntity]] = Field(None, description="""A dataset key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_keyphotos', 'domain_of': ['Container']} }) + datasets: List[DatasetEntity] = Field(..., description="""A dataset entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'datasets', 'domain_of': ['Container']} }) + deposition_keyphotos: Optional[List[DepositionKeyPhotoEntity]] = Field(None, description="""A deposition key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_keyphotos', 'domain_of': ['Container']} }) + depositions: List[DepositionEntity] = Field(..., description="""A deposition entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'depositions', 'domain_of': ['Container']} }) + frames: Optional[List[FrameEntity]] = Field(None, description="""A frame entity.""", json_schema_extra = { "linkml_meta": {'alias': 'frames', 'domain_of': ['Container']} }) + gains: Optional[List[GainEntity]] = Field(None, description="""A gain entity.""", json_schema_extra = { "linkml_meta": {'alias': 'gains', 'domain_of': ['Container']} }) + key_images: Optional[List[KeyImageEntity]] = Field(None, description="""A key image entity.""", json_schema_extra = { "linkml_meta": {'alias': 'key_images', 'domain_of': ['Container']} }) + rawtilts: Optional[List[RawTiltEntity]] = Field(None, description="""A raw tilt entity.""", json_schema_extra = { "linkml_meta": {'alias': 'rawtilts', 'domain_of': ['Container']} }) + runs: List[RunEntity] = Field(..., description="""A run entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'runs', 'domain_of': ['Container']} }) + standardization_config: StandardizationConfig = Field(..., description="""A standardization configuration.""", json_schema_extra = { "linkml_meta": {'alias': 'standardization_config', 'domain_of': ['Container']} }) + tiltseries: Optional[List[TiltSeriesEntity]] = Field(None, description="""A tilt series entity.""", json_schema_extra = { "linkml_meta": {'alias': 'tiltseries', 'domain_of': ['Container']} }) + tomograms: Optional[List[TomogramEntity]] = Field(None, description="""A tomogram entity.""", json_schema_extra = { "linkml_meta": {'alias': 'tomograms', 'domain_of': ['Container']} }) + voxel_spacings: List[VoxelSpacingEntity] = Field(..., description="""A voxel spacing entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacings', 'domain_of': ['Container']} }) class GeneralGlob(ConfiguredBaseModel): """ An abstracted glob class for destination and source globs. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, 'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"abstract": True, "from_schema": "cdp-ingestion-config"}) - - list_glob: str = Field( - ..., - description="""The glob for the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "list_glob", - "domain_of": ["GeneralGlob", "TomogramHeader", "DestinationGlob", "SourceGlob"], - } - }, - ) - match_regex: Optional[str] = Field( - ".*", - description="""The regex for the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "match_regex", - "domain_of": ["GeneralGlob", "TomogramHeader", "DestinationGlob", "SourceGlob"], - "ifabsent": "string(.*)", - } - }, - ) - name_regex: Optional[str] = Field( - "(.*)", - description="""The regex for the name of the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name_regex", - "domain_of": ["GeneralGlob", "DestinationGlob", "SourceGlob"], - "ifabsent": "string((.*))", - } - }, - ) + list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob']} }) + match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob'], + 'ifabsent': 'string(.*)'} }) + name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', + 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], + 'ifabsent': 'string((.*))'} }) class DestinationGlob(GeneralGlob): """ A glob class for finding files in the output / destination directory. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - list_glob: str = Field( - ..., - description="""The glob for the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "list_glob", - "domain_of": ["GeneralGlob", "TomogramHeader", "DestinationGlob", "SourceGlob"], - } - }, - ) - match_regex: Optional[str] = Field( - ".*", - description="""The regex for the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "match_regex", - "domain_of": ["GeneralGlob", "TomogramHeader", "DestinationGlob", "SourceGlob"], - "ifabsent": "string(.*)", - } - }, - ) - name_regex: Optional[str] = Field( - "(.*)", - description="""The regex for the name of the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name_regex", - "domain_of": ["GeneralGlob", "DestinationGlob", "SourceGlob"], - "ifabsent": "string((.*))", - } - }, - ) + list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob']} }) + match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob'], + 'ifabsent': 'string(.*)'} }) + name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', + 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], + 'ifabsent': 'string((.*))'} }) class SourceGlob(GeneralGlob): """ A glob class for finding files in the source directory. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - list_glob: str = Field( - ..., - description="""The glob for the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "list_glob", - "domain_of": ["GeneralGlob", "TomogramHeader", "DestinationGlob", "SourceGlob"], - } - }, - ) - match_regex: Optional[str] = Field( - ".*", - description="""The regex for the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "match_regex", - "domain_of": ["GeneralGlob", "TomogramHeader", "DestinationGlob", "SourceGlob"], - "ifabsent": "string(.*)", - } - }, - ) - name_regex: Optional[str] = Field( - "(.*)", - description="""The regex for the name of the file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name_regex", - "domain_of": ["GeneralGlob", "DestinationGlob", "SourceGlob"], - "ifabsent": "string((.*))", - } - }, - ) + list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob']} }) + match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob'], + 'ifabsent': 'string(.*)'} }) + name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', + 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], + 'ifabsent': 'string((.*))'} }) class SourceMultiGlob(ConfiguredBaseModel): """ A glob class for finding files in the source directory (with multiple globs). """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - list_globs: List[str] = Field( - ..., - description="""The globs for the file.""", - min_length=1, - json_schema_extra={"linkml_meta": {"alias": "list_globs", "domain_of": ["SourceMultiGlob"]}}, - ) + list_globs: List[str] = Field(..., description="""The globs for the file.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'list_globs', 'domain_of': ['SourceMultiGlob']} }) class DefaultSource(ConfiguredBaseModel): """ A default source class that all source classes inherit from. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class StandardSource(DefaultSource): """ A generalized source class with glob finders. Inherited by a majority of source classes. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class StandardLiteral(ConfiguredBaseModel): """ A literal class with a value attribute. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - value: List[Any] = Field( - ..., - description="""The value for the literal.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "value", - "domain_of": ["StandardLiteral", "KeyPhotoLiteral", "VoxelSpacingLiteral"], - } - }, - ) + value: List[Any] = Field(..., description="""The value for the literal.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'value', + 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) class KeyPhotoLiteral(ConfiguredBaseModel): """ A literal for a key photo. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - value: PicturePath = Field( - ..., - description="""A set of paths to representative images of a piece of data.""", - json_schema_extra={ - "linkml_meta": { - "alias": "value", - "domain_of": ["StandardLiteral", "KeyPhotoLiteral", "VoxelSpacingLiteral"], - } - }, - ) + value: PicturePath = Field(..., description="""A set of paths to representative images of a piece of data.""", json_schema_extra = { "linkml_meta": {'alias': 'value', + 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) class AnnotationEntity(ConfiguredBaseModel): """ An annotation entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - metadata: Annotation = Field( - ..., - description="""Metadata describing an annotation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "metadata", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DepositionEntity", - "TiltSeriesEntity", - "TomogramEntity", - ], - } - }, - ) - sources: List[AnnotationSource] = Field( - ..., - description="""An annotation source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Annotation = Field(..., description="""Metadata describing an annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[AnnotationSource] = Field(..., description="""An annotation source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class AnnotationSource(DefaultSource): """ An annotation source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - InstanceSegmentation: Optional[AnnotationInstanceSegmentationFile] = Field( - None, - description="""File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes.""", - json_schema_extra={"linkml_meta": {"alias": "InstanceSegmentation", "domain_of": ["AnnotationSource"]}}, - ) - OrientedPoint: Optional[AnnotationOrientedPointFile] = Field( - None, - description="""File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume.""", - json_schema_extra={"linkml_meta": {"alias": "OrientedPoint", "domain_of": ["AnnotationSource"]}}, - ) - Point: Optional[AnnotationPointFile] = Field( - None, - description="""File and sourcing data for a point annotation. Annotation that identifies points in the volume.""", - json_schema_extra={"linkml_meta": {"alias": "Point", "domain_of": ["AnnotationSource"]}}, - ) - SegmentationMask: Optional[AnnotationSegmentationMaskFile] = Field( - None, - description="""File and sourcing data for a segmentation mask annotation. Annotation that identifies an object.""", - json_schema_extra={"linkml_meta": {"alias": "SegmentationMask", "domain_of": ["AnnotationSource"]}}, - ) - SemanticSegmentationMask: Optional[AnnotationSemanticSegmentationMaskFile] = Field( - None, - description="""File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects.""", - json_schema_extra={"linkml_meta": {"alias": "SemanticSegmentationMask", "domain_of": ["AnnotationSource"]}}, - ) - TriangularMesh: Optional[AnnotationTriangularMeshFile] = Field( - None, - description="""File and sourcing data for a triangular mesh annotation. Annotation that identifies an object.""", - json_schema_extra={"linkml_meta": {"alias": "TriangularMesh", "domain_of": ["AnnotationSource"]}}, - ) - parent_filters: Optional[AnnotationParentFilters] = Field( - None, - description="""Filters for the parent of an annotation source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + InstanceSegmentation: Optional[AnnotationInstanceSegmentationFile] = Field(None, description="""File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes.""", json_schema_extra = { "linkml_meta": {'alias': 'InstanceSegmentation', 'domain_of': ['AnnotationSource']} }) + OrientedPoint: Optional[AnnotationOrientedPointFile] = Field(None, description="""File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume.""", json_schema_extra = { "linkml_meta": {'alias': 'OrientedPoint', 'domain_of': ['AnnotationSource']} }) + Point: Optional[AnnotationPointFile] = Field(None, description="""File and sourcing data for a point annotation. Annotation that identifies points in the volume.""", json_schema_extra = { "linkml_meta": {'alias': 'Point', 'domain_of': ['AnnotationSource']} }) + SegmentationMask: Optional[AnnotationSegmentationMaskFile] = Field(None, description="""File and sourcing data for a segmentation mask annotation. Annotation that identifies an object.""", json_schema_extra = { "linkml_meta": {'alias': 'SegmentationMask', 'domain_of': ['AnnotationSource']} }) + SemanticSegmentationMask: Optional[AnnotationSemanticSegmentationMaskFile] = Field(None, description="""File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects.""", json_schema_extra = { "linkml_meta": {'alias': 'SemanticSegmentationMask', 'domain_of': ['AnnotationSource']} }) + TriangularMesh: Optional[AnnotationTriangularMeshFile] = Field(None, description="""File and sourcing data for a triangular mesh annotation. Annotation that identifies an object.""", json_schema_extra = { "linkml_meta": {'alias': 'TriangularMesh', 'domain_of': ['AnnotationSource']} }) + parent_filters: Optional[AnnotationParentFilters] = Field(None, description="""Filters for the parent of an annotation source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class AnnotationParentFilters(ConfiguredBaseModel): """ Filters for the parent of an annotation source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[AnnotationParent] = Field( - None, - description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[AnnotationParent] = Field( - None, - description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class AnnotationParent(ConfiguredBaseModel): """ A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - run: Optional[List[str]] = Field( - None, - description="""Include or exclude runs for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "run", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - voxel_spacing: Optional[List[str]] = Field( - None, - description="""Include or exclude voxel spacings for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "voxel_spacing", - "domain_of": ["Tomogram", "AnnotationParent", "KeyImageParent", "TomogramParent"], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'domain_of': ['Tomogram', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent']} }) + + +class CollectionMetadataEntity(ConfiguredBaseModel): + """ + A collection_metadata entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[CollectionMetadataSource] = Field(..., description="""A collection_metadata source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class CollectionMetadataSource(StandardSource): + """ + A collection_metadata source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[CollectionMetadataParentFilters] = Field(None, description="""Types of parent filters for a collection_metadata source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class CollectionMetadataParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a collection_metadata source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class CollectionMetadataParent(ConfiguredBaseModel): + """ + A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class DatasetEntity(ConfiguredBaseModel): """ A dataset entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - metadata: Optional[Dataset] = Field( - None, - description="""High-level description of a cryoET dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "metadata", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DepositionEntity", - "TiltSeriesEntity", - "TomogramEntity", - ], - } - }, - ) - sources: List[DatasetSource] = Field( - ..., - description="""A dataset source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Optional[Dataset] = Field(None, description="""High-level description of a cryoET dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[DatasetSource] = Field(..., description="""A dataset source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class DatasetSource(StandardSource): """ A dataset source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - parent_filters: Optional[DatasetParentFilters] = Field( - None, - description="""Types of parent filters for a dataset source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[DatasetParentFilters] = Field(None, description="""Types of parent filters for a dataset source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class DatasetParentFilters(ConfiguredBaseModel): """ Types of parent filters for a dataset source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[DatasetParent] = Field( - None, - description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[DatasetParent] = Field( - None, - description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class DatasetParent(ConfiguredBaseModel): """ A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class DatasetKeyPhotoEntity(ConfiguredBaseModel): """ A dataset key photo entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - sources: List[DatasetKeyPhotoSource] = Field( - ..., - description="""A key photo source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[DatasetKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class DatasetKeyPhotoSource(StandardSource): """ A key photo source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - literal: Optional[KeyPhotoLiteral] = Field( - None, - description="""A literal for a key photo.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - parent_filters: Optional[DatasetKeyPhotoParentFilters] = Field( - None, - description="""Types of parent filters for a key photo source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + literal: Optional[KeyPhotoLiteral] = Field(None, description="""A literal for a key photo.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + parent_filters: Optional[DatasetKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): """ Types of parent filters for a key photo source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[DatasetKeyPhotoParent] = Field( - None, - description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[DatasetKeyPhotoParent] = Field( - None, - description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class DatasetKeyPhotoParent(ConfiguredBaseModel): """ A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class DepositionEntity(ConfiguredBaseModel): """ A deposition entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - metadata: Optional[Deposition] = Field( - None, - description="""Metadata describing a deposition.""", - json_schema_extra={ - "linkml_meta": { - "alias": "metadata", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DepositionEntity", - "TiltSeriesEntity", - "TomogramEntity", - ], - } - }, - ) - sources: List[DepositionSource] = Field( - ..., - description="""A deposition source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Optional[Deposition] = Field(None, description="""Metadata describing a deposition.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[DepositionSource] = Field(..., description="""A deposition source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class DepositionSource(StandardSource): """ A deposition source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class DepositionKeyPhotoEntity(ConfiguredBaseModel): """ A deposition key photo entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - sources: List[DepositionKeyPhotoSource] = Field( - ..., - description="""A key photo source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[DepositionKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class DepositionKeyPhotoSource(StandardSource): """ A key photo source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - literal: Optional[KeyPhotoLiteral] = Field( - None, - description="""A literal for a key photo.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - parent_filters: Optional[DepositionKeyPhotoParentFilters] = Field( - None, - description="""Types of parent filters for a key photo source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + literal: Optional[KeyPhotoLiteral] = Field(None, description="""A literal for a key photo.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + parent_filters: Optional[DepositionKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): """ Types of parent filters for a key photo source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[DepositionKeyPhotoParent] = Field( - None, - description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[DepositionKeyPhotoParent] = Field( - None, - description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class DepositionKeyPhotoParent(ConfiguredBaseModel): """ A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class FrameEntity(ConfiguredBaseModel): """ A frame entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - sources: List[FrameSource] = Field( - ..., - description="""A frame source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[FrameSource] = Field(..., description="""A frame source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class FrameSource(StandardSource): """ A frame source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - parent_filters: Optional[FrameParentFilters] = Field( - None, - description="""Types of parent filters for a frame source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[FrameParentFilters] = Field(None, description="""Types of parent filters for a frame source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class FrameParentFilters(ConfiguredBaseModel): """ Types of parent filters for a frame source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[FrameParent] = Field( - None, - description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[FrameParent] = Field( - None, - description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class FrameParent(ConfiguredBaseModel): """ A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - run: Optional[List[str]] = Field( - None, - description="""Include or exclude runs for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "run", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class GainEntity(ConfiguredBaseModel): """ A gain entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - sources: List[GainSource] = Field( - ..., - description="""A gain source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[GainSource] = Field(..., description="""A gain source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class GainSource(StandardSource): """ A gain source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - parent_filters: Optional[GainParentFilters] = Field( - None, - description="""Types of parent filters for a gain source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[GainParentFilters] = Field(None, description="""Types of parent filters for a gain source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class GainParentFilters(ConfiguredBaseModel): """ Types of parent filters for a gain source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[GainParent] = Field( - None, - description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[GainParent] = Field( - None, - description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class GainParent(ConfiguredBaseModel): """ A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - run: Optional[List[str]] = Field( - None, - description="""Include or exclude runs for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "run", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class KeyImageEntity(ConfiguredBaseModel): """ A key image entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - sources: List[KeyImageSource] = Field( - ..., - description="""A key image source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[KeyImageSource] = Field(..., description="""A key image source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class KeyImageSource(StandardSource): """ A key image source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - parent_filters: Optional[KeyImageParentFilters] = Field( - None, - description="""Types of parent filters for a key image source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[KeyImageParentFilters] = Field(None, description="""Types of parent filters for a key image source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class KeyImageParentFilters(ConfiguredBaseModel): """ Types of parent filters for a key image source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[KeyImageParent] = Field( - None, - description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[KeyImageParent] = Field( - None, - description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class KeyImageParent(ConfiguredBaseModel): """ A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - run: Optional[List[str]] = Field( - None, - description="""Include or exclude runs for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "run", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - tomogram: Optional[List[str]] = Field( - None, - description="""Include or exclude tomograms for a source.""", - json_schema_extra={"linkml_meta": {"alias": "tomogram", "domain_of": ["KeyImageParent"]}}, - ) - voxel_spacing: Optional[List[str]] = Field( - None, - description="""Include or exclude voxel spacings for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "voxel_spacing", - "domain_of": ["Tomogram", "AnnotationParent", "KeyImageParent", "TomogramParent"], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['KeyImageParent']} }) + voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'domain_of': ['Tomogram', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent']} }) class RawTiltEntity(ConfiguredBaseModel): """ A raw tilt entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - sources: List[RawTiltSource] = Field( - ..., - description="""A raw tilt source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[RawTiltSource] = Field(..., description="""A raw tilt source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class RawTiltSource(StandardSource): """ A raw tilt source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - parent_filters: Optional[RawTiltParentFilters] = Field( - None, - description="""Types of parent filters for a raw tilt source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[RawTiltParentFilters] = Field(None, description="""Types of parent filters for a raw tilt source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class RawTiltParentFilters(ConfiguredBaseModel): """ Types of parent filters for a raw tilt source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[RawTiltParent] = Field( - None, - description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[RawTiltParent] = Field( - None, - description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class RawTiltParent(ConfiguredBaseModel): """ A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - run: Optional[List[str]] = Field( - None, - description="""Include or exclude runs for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "run", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class RunEntity(ConfiguredBaseModel): """ A run entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - sources: List[RunSource] = Field( - ..., - description="""A run source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[RunSource] = Field(..., description="""A run source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class RunSource(StandardSource): """ A run source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - parent_filters: Optional[RunParentFilters] = Field( - None, - description="""Types of parent filters for a run source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[RunParentFilters] = Field(None, description="""Types of parent filters for a run source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class RunParentFilters(ConfiguredBaseModel): """ Types of parent filters for a run source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[RunParent] = Field( - None, - description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[RunParent] = Field( - None, - description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class RunParent(ConfiguredBaseModel): """ A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class StandardizationConfig(ConfiguredBaseModel): """ A standardization configuration. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - deposition_id: int = Field( - ..., - description="""The deposition ID.""", - json_schema_extra={"linkml_meta": {"alias": "deposition_id", "domain_of": ["StandardizationConfig"]}}, - ) - run_data_map_file: Optional[str] = Field( - None, - description="""The run data map file.""", - json_schema_extra={"linkml_meta": {"alias": "run_data_map_file", "domain_of": ["StandardizationConfig"]}}, - ) - run_to_frame_map_csv: Optional[str] = Field( - None, - description="""The run to frame map CSV.""", - json_schema_extra={"linkml_meta": {"alias": "run_to_frame_map_csv", "domain_of": ["StandardizationConfig"]}}, - ) - run_to_tomo_map_csv: Optional[str] = Field( - None, - description="""The run to tomogram map CSV.""", - json_schema_extra={"linkml_meta": {"alias": "run_to_tomo_map_csv", "domain_of": ["StandardizationConfig"]}}, - ) - run_to_ts_map_csv: Optional[str] = Field( - None, - description="""The run to tilt series map CSV.""", - json_schema_extra={"linkml_meta": {"alias": "run_to_ts_map_csv", "domain_of": ["StandardizationConfig"]}}, - ) - source_prefix: str = Field( - ..., - description="""The source prefix of the input files.""", - json_schema_extra={"linkml_meta": {"alias": "source_prefix", "domain_of": ["StandardizationConfig"]}}, - ) + deposition_id: int = Field(..., description="""The deposition ID.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_id', 'domain_of': ['StandardizationConfig']} }) + run_data_map_file: Optional[str] = Field(None, description="""The run data map file.""", json_schema_extra = { "linkml_meta": {'alias': 'run_data_map_file', 'domain_of': ['StandardizationConfig']} }) + run_to_frame_map_csv: Optional[str] = Field(None, description="""The run to frame map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_frame_map_csv', 'domain_of': ['StandardizationConfig']} }) + run_to_tomo_map_csv: Optional[str] = Field(None, description="""The run to tomogram map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_tomo_map_csv', 'domain_of': ['StandardizationConfig']} }) + run_to_ts_map_csv: Optional[str] = Field(None, description="""The run to tilt series map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_ts_map_csv', 'domain_of': ['StandardizationConfig']} }) + source_prefix: str = Field(..., description="""The source prefix of the input files.""", json_schema_extra = { "linkml_meta": {'alias': 'source_prefix', 'domain_of': ['StandardizationConfig']} }) class TiltSeriesEntity(ConfiguredBaseModel): """ A tilt series entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - metadata: Optional[TiltSeries] = Field( - None, - description="""Metadata describing a tilt series.""", - json_schema_extra={ - "linkml_meta": { - "alias": "metadata", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DepositionEntity", - "TiltSeriesEntity", - "TomogramEntity", - ], - } - }, - ) - sources: List[TiltSeriesSource] = Field( - ..., - description="""A tilt series source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Optional[TiltSeries] = Field(None, description="""Metadata describing a tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[TiltSeriesSource] = Field(..., description="""A tilt series source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class TiltSeriesSource(StandardSource): """ A tilt series source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - parent_filters: Optional[TiltSeriesParentFilters] = Field( - None, - description="""Types of parent filters for a tilt series source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[TiltSeriesParentFilters] = Field(None, description="""Types of parent filters for a tilt series source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class TiltSeriesParentFilters(ConfiguredBaseModel): """ Types of parent filters for a tilt series source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[TiltSeriesParent] = Field( - None, - description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[TiltSeriesParent] = Field( - None, - description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class TiltSeriesParent(ConfiguredBaseModel): """ A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - run: Optional[List[str]] = Field( - None, - description="""Include or exclude runs for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "run", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class TomogramEntity(ConfiguredBaseModel): """ A tomogram entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - metadata: Optional[Tomogram] = Field( - None, - description="""Metadata describing a tomogram.""", - json_schema_extra={ - "linkml_meta": { - "alias": "metadata", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DepositionEntity", - "TiltSeriesEntity", - "TomogramEntity", - ], - } - }, - ) - sources: List[TomogramSource] = Field( - ..., - description="""A tomogram source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Optional[Tomogram] = Field(None, description="""Metadata describing a tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[TomogramSource] = Field(..., description="""A tomogram source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class TomogramSource(StandardSource): """ A tomogram source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - parent_filters: Optional[TomogramParentFilters] = Field( - None, - description="""Types of parent filters for a tomogram source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_multi_glob: Optional[SourceMultiGlob] = Field( - None, - description="""A glob class for finding files in the source directory (with multiple globs).""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_multi_glob", - "domain_of": [ - "StandardSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[StandardLiteral] = Field( - None, - description="""A literal class with a value attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[TomogramParentFilters] = Field(None, description="""Types of parent filters for a tomogram source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class TomogramParentFilters(ConfiguredBaseModel): """ Types of parent filters for a tomogram source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[TomogramParent] = Field( - None, - description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[TomogramParent] = Field( - None, - description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class TomogramParent(ConfiguredBaseModel): """ A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - run: Optional[List[str]] = Field( - None, - description="""Include or exclude runs for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "run", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - voxel_spacing: Optional[List[str]] = Field( - None, - description="""Include or exclude voxel spacings for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "voxel_spacing", - "domain_of": ["Tomogram", "AnnotationParent", "KeyImageParent", "TomogramParent"], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'domain_of': ['Tomogram', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent']} }) class VoxelSpacingEntity(ConfiguredBaseModel): """ A voxel spacing entity. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - sources: List[VoxelSpacingSource] = Field( - ..., - description="""A voxel spacing source.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "sources", - "domain_of": [ - "AnnotationEntity", - "DatasetEntity", - "DatasetKeyPhotoEntity", - "DepositionEntity", - "DepositionKeyPhotoEntity", - "FrameEntity", - "GainEntity", - "KeyImageEntity", - "RawTiltEntity", - "RunEntity", - "TiltSeriesEntity", - "TomogramEntity", - "VoxelSpacingEntity", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[VoxelSpacingSource] = Field(..., description="""A voxel spacing source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) class VoxelSpacingSource(DefaultSource): """ A voxel spacing source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - destination_glob: Optional[DestinationGlob] = Field( - None, - description="""A glob class for finding files in the output / destination directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "destination_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - source_glob: Optional[SourceGlob] = Field( - None, - description="""A glob class for finding files in the source directory.""", - json_schema_extra={ - "linkml_meta": { - "alias": "source_glob", - "domain_of": [ - "StandardSource", - "VoxelSpacingSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - literal: Optional[VoxelSpacingLiteral] = Field( - None, - description="""A literal for a voxel spacing.""", - json_schema_extra={ - "linkml_meta": { - "alias": "literal", - "domain_of": [ - "StandardSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "VoxelSpacingSource", - "DatasetSource", - "DepositionSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - ], - } - }, - ) - tomogram_header: Optional[TomogramHeader] = Field( - None, - description="""A tomogram header, a unique source attribute for voxel spacing.""", - json_schema_extra={"linkml_meta": {"alias": "tomogram_header", "domain_of": ["VoxelSpacingSource"]}}, - ) - parent_filters: Optional[VoxelSpacingParentFilters] = Field( - None, - description="""Types of parent filters for a voxel spacing source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "parent_filters", - "domain_of": [ - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) - exclude: Optional[List[str]] = Field( - None, - description="""Exclude files from the source that match (regexes).""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[VoxelSpacingLiteral] = Field(None, description="""A literal for a voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + tomogram_header: Optional[TomogramHeader] = Field(None, description="""A tomogram header, a unique source attribute for voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_header', 'domain_of': ['VoxelSpacingSource']} }) + parent_filters: Optional[VoxelSpacingParentFilters] = Field(None, description="""Types of parent filters for a voxel spacing source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class VoxelSpacingParentFilters(ConfiguredBaseModel): """ Types of parent filters for a voxel spacing source. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - include: Optional[VoxelSpacingParent] = Field( - None, - description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "include", - "domain_of": [ - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - ], - } - }, - ) - exclude: Optional[VoxelSpacingParent] = Field( - None, - description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", - json_schema_extra={ - "linkml_meta": { - "alias": "exclude", - "domain_of": [ - "DefaultSource", - "AnnotationParentFilters", - "DatasetParentFilters", - "DatasetKeyPhotoParentFilters", - "DepositionKeyPhotoParentFilters", - "FrameParentFilters", - "GainParentFilters", - "KeyImageParentFilters", - "RawTiltParentFilters", - "RunParentFilters", - "TiltSeriesParentFilters", - "TomogramParentFilters", - "VoxelSpacingParentFilters", - "StandardSource", - "AnnotationSource", - "DatasetSource", - "DatasetKeyPhotoSource", - "DepositionSource", - "DepositionKeyPhotoSource", - "FrameSource", - "GainSource", - "KeyImageSource", - "RawTiltSource", - "RunSource", - "TiltSeriesSource", - "TomogramSource", - "VoxelSpacingSource", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) class VoxelSpacingParent(ConfiguredBaseModel): """ A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute. """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - dataset: Optional[List[str]] = Field( - None, - description="""Include or exclude datasets for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - deposition: Optional[List[str]] = Field( - None, - description="""Include or exclude depositions for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition", - "domain_of": [ - "AnnotationParent", - "DatasetParent", - "DatasetKeyPhotoParent", - "DepositionKeyPhotoParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "RunParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) - run: Optional[List[str]] = Field( - None, - description="""Include or exclude runs for a source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "run", - "domain_of": [ - "AnnotationParent", - "FrameParent", - "GainParent", - "KeyImageParent", - "RawTiltParent", - "TiltSeriesParent", - "TomogramParent", - "VoxelSpacingParent", - ], - } - }, - ) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) class VoxelSpacingLiteral(ConfiguredBaseModel): """ A literal for a voxel spacing. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - value: List[float] = Field( - ..., - description="""The value for the voxel spacing literal.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "value", - "domain_of": ["StandardLiteral", "KeyPhotoLiteral", "VoxelSpacingLiteral"], - } - }, - ) + value: List[float] = Field(..., description="""The value for the voxel spacing literal.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'value', + 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) class TomogramHeader(ConfiguredBaseModel): """ A tomogram header, a unique source attribute for voxel spacing. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "cdp-ingestion-config"}) - - list_glob: str = Field( - ..., - description="""The glob for the tomogram header file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "list_glob", - "domain_of": ["GeneralGlob", "TomogramHeader", "DestinationGlob", "SourceGlob"], - } - }, - ) - match_regex: Optional[str] = Field( - ".*", - description="""The regex for the tomogram header file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "match_regex", - "domain_of": ["GeneralGlob", "TomogramHeader", "DestinationGlob", "SourceGlob"], - "ifabsent": "string(.*)", - } - }, - ) - header_key: Optional[str] = Field( - "voxel_size", - description="""The key in the header file for the voxel spacing.""", - json_schema_extra={ - "linkml_meta": {"alias": "header_key", "domain_of": ["TomogramHeader"], "ifabsent": "string(voxel_size)"} - }, - ) + list_glob: str = Field(..., description="""The glob for the tomogram header file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob']} }) + match_regex: Optional[str] = Field(".*", description="""The regex for the tomogram header file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob'], + 'ifabsent': 'string(.*)'} }) + header_key: Optional[str] = Field("voxel_size", description="""The key in the header file for the voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'header_key', + 'domain_of': ['TomogramHeader'], + 'ifabsent': 'string(voxel_size)'} }) # Model rebuild @@ -8750,6 +5654,10 @@ class TomogramHeader(ConfiguredBaseModel): AnnotationSource.model_rebuild() AnnotationParentFilters.model_rebuild() AnnotationParent.model_rebuild() +CollectionMetadataEntity.model_rebuild() +CollectionMetadataSource.model_rebuild() +CollectionMetadataParentFilters.model_rebuild() +CollectionMetadataParent.model_rebuild() DatasetEntity.model_rebuild() DatasetSource.model_rebuild() DatasetParentFilters.model_rebuild() diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json index 447e38fbc..8a079d245 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -1017,6 +1017,166 @@ "title": "CellType", "type": "object" }, + "CollectionMetadataEntity": { + "additionalProperties": false, + "description": "A collection_metadata entity.", + "properties": { + "sources": { + "description": "A collection_metadata source.", + "items": { + "$ref": "#/$defs/CollectionMetadataSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "CollectionMetadataEntity", + "type": "object" + }, + "CollectionMetadataParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "CollectionMetadataParent", + "type": "object" + }, + "CollectionMetadataParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a collection_metadata source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/CollectionMetadataParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/CollectionMetadataParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "CollectionMetadataParentFilters", + "type": "object" + }, + "CollectionMetadataSource": { + "additionalProperties": false, + "description": "A collection_metadata source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/CollectionMetadataParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a collection_metadata source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "CollectionMetadataSource", + "type": "object" + }, "Container": { "additionalProperties": false, "description": "Class that models the ingestion config file.", @@ -1031,6 +1191,16 @@ "null" ] }, + "collection_metadata": { + "description": "A collection_metadata entity.", + "items": { + "$ref": "#/$defs/CollectionMetadataEntity" + }, + "type": [ + "array", + "null" + ] + }, "dataset_keyphotos": { "description": "A dataset key photo entity.", "items": { @@ -4458,6 +4628,16 @@ "null" ] }, + "collection_metadata": { + "description": "A collection_metadata entity.", + "items": { + "$ref": "#/$defs/CollectionMetadataEntity" + }, + "type": [ + "array", + "null" + ] + }, "dataset_keyphotos": { "description": "A dataset key photo entity.", "items": { diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml index 020dc3037..213f3a7da 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml @@ -562,6 +562,7 @@ slots: from_schema: cdp-ingestion-config domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -578,6 +579,7 @@ slots: from_schema: cdp-ingestion-config domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -597,6 +599,7 @@ slots: from_schema: cdp-ingestion-config domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -643,6 +646,18 @@ classes: multivalued: true inlined: true inlined_as_list: true + collection_metadata: + name: collection_metadata + description: A collection_metadata entity. + from_schema: cdp-ingestion-config + alias: collection_metadata + owner: Container + domain_of: + - Container + range: CollectionMetadataEntity + multivalued: true + inlined: true + inlined_as_list: true dataset_keyphotos: name: dataset_keyphotos description: A dataset key photo entity. @@ -974,6 +989,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1055,6 +1071,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1139,6 +1156,7 @@ classes: owner: AnnotationEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -1243,6 +1261,7 @@ classes: owner: AnnotationSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -1266,6 +1285,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1296,6 +1316,7 @@ classes: owner: AnnotationParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1321,6 +1342,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1354,6 +1376,7 @@ classes: owner: AnnotationParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -1374,6 +1397,7 @@ classes: owner: AnnotationParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -1397,6 +1421,7 @@ classes: owner: AnnotationParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -1423,6 +1448,274 @@ classes: multivalued: true inlined: true inlined_as_list: true + CollectionMetadataEntity: + name: CollectionMetadataEntity + description: A collection_metadata entity. + from_schema: cdp-ingestion-config + attributes: + sources: + name: sources + description: A collection_metadata source. + from_schema: cdp-ingestion-config + alias: sources + owner: CollectionMetadataEntity + domain_of: + - AnnotationEntity + - CollectionMetadataEntity + - DatasetEntity + - DatasetKeyPhotoEntity + - DepositionEntity + - DepositionKeyPhotoEntity + - FrameEntity + - GainEntity + - KeyImageEntity + - RawTiltEntity + - RunEntity + - TiltSeriesEntity + - TomogramEntity + - VoxelSpacingEntity + range: CollectionMetadataSource + required: true + multivalued: true + inlined: true + inlined_as_list: true + minimum_cardinality: 1 + CollectionMetadataSource: + name: CollectionMetadataSource + description: A collection_metadata source. + from_schema: cdp-ingestion-config + is_a: StandardSource + attributes: + parent_filters: + name: parent_filters + description: Types of parent filters for a collection_metadata source. + from_schema: cdp-ingestion-config + alias: parent_filters + owner: CollectionMetadataSource + domain_of: + - AnnotationSource + - CollectionMetadataSource + - DatasetSource + - DatasetKeyPhotoSource + - DepositionKeyPhotoSource + - FrameSource + - GainSource + - KeyImageSource + - RawTiltSource + - RunSource + - TiltSeriesSource + - TomogramSource + - VoxelSpacingSource + range: CollectionMetadataParentFilters + inlined: true + inlined_as_list: true + destination_glob: + name: destination_glob + description: A glob class for finding files in the output / destination directory. + from_schema: cdp-ingestion-config + alias: destination_glob + owner: CollectionMetadataSource + domain_of: + - StandardSource + - VoxelSpacingSource + range: DestinationGlob + inlined: true + inlined_as_list: true + source_glob: + name: source_glob + description: A glob class for finding files in the source directory. + from_schema: cdp-ingestion-config + alias: source_glob + owner: CollectionMetadataSource + domain_of: + - StandardSource + - VoxelSpacingSource + range: SourceGlob + inlined: true + inlined_as_list: true + source_multi_glob: + name: source_multi_glob + description: A glob class for finding files in the source directory (with + multiple globs). + from_schema: cdp-ingestion-config + alias: source_multi_glob + owner: CollectionMetadataSource + domain_of: + - StandardSource + range: SourceMultiGlob + inlined: true + inlined_as_list: true + literal: + name: literal + description: A literal class with a value attribute. + from_schema: cdp-ingestion-config + alias: literal + owner: CollectionMetadataSource + domain_of: + - StandardSource + - DatasetKeyPhotoSource + - DepositionKeyPhotoSource + - VoxelSpacingSource + range: StandardLiteral + inlined: true + inlined_as_list: true + exclude: + name: exclude + description: Exclude files from the source that match (regexes). + from_schema: cdp-ingestion-config + alias: exclude + owner: CollectionMetadataSource + domain_of: + - DefaultSource + - AnnotationParentFilters + - CollectionMetadataParentFilters + - DatasetParentFilters + - DatasetKeyPhotoParentFilters + - DepositionKeyPhotoParentFilters + - FrameParentFilters + - GainParentFilters + - KeyImageParentFilters + - RawTiltParentFilters + - RunParentFilters + - TiltSeriesParentFilters + - TomogramParentFilters + - VoxelSpacingParentFilters + range: string + multivalued: true + inlined: true + inlined_as_list: true + CollectionMetadataParentFilters: + name: CollectionMetadataParentFilters + description: Types of parent filters for a collection_metadata source. + from_schema: cdp-ingestion-config + attributes: + include: + name: include + description: A filter for a parent class of a collection_metadata source. + For a given attribute, it can only be used if the current class is a subclass + of the attribute. + from_schema: cdp-ingestion-config + alias: include + owner: CollectionMetadataParentFilters + domain_of: + - AnnotationParentFilters + - CollectionMetadataParentFilters + - DatasetParentFilters + - DatasetKeyPhotoParentFilters + - DepositionKeyPhotoParentFilters + - FrameParentFilters + - GainParentFilters + - KeyImageParentFilters + - RawTiltParentFilters + - RunParentFilters + - TiltSeriesParentFilters + - TomogramParentFilters + - VoxelSpacingParentFilters + range: CollectionMetadataParent + inlined: true + inlined_as_list: true + exclude: + name: exclude + description: A filter for a parent class of a collection_metadata source. + For a given attribute, it can only be used if the current class is a subclass + of the attribute. + from_schema: cdp-ingestion-config + alias: exclude + owner: CollectionMetadataParentFilters + domain_of: + - DefaultSource + - AnnotationParentFilters + - CollectionMetadataParentFilters + - DatasetParentFilters + - DatasetKeyPhotoParentFilters + - DepositionKeyPhotoParentFilters + - FrameParentFilters + - GainParentFilters + - KeyImageParentFilters + - RawTiltParentFilters + - RunParentFilters + - TiltSeriesParentFilters + - TomogramParentFilters + - VoxelSpacingParentFilters + range: CollectionMetadataParent + inlined: true + inlined_as_list: true + CollectionMetadataParent: + name: CollectionMetadataParent + description: A filter for a parent class of a collection_metadata source. For + a given attribute, it can only be used if the current class is a subclass of + the attribute. + from_schema: cdp-ingestion-config + slots: + - dataset + - deposition + - run + attributes: + dataset: + name: dataset + description: Include or exclude datasets for a source. + from_schema: cdp-ingestion-config + alias: dataset + owner: CollectionMetadataParent + domain_of: + - AnnotationParent + - CollectionMetadataParent + - FrameParent + - GainParent + - KeyImageParent + - RawTiltParent + - RunParent + - TiltSeriesParent + - TomogramParent + - VoxelSpacingParent + range: string + multivalued: true + inlined: true + inlined_as_list: true + deposition: + name: deposition + description: Include or exclude depositions for a source. + from_schema: cdp-ingestion-config + alias: deposition + owner: CollectionMetadataParent + domain_of: + - AnnotationParent + - CollectionMetadataParent + - DatasetParent + - DatasetKeyPhotoParent + - DepositionKeyPhotoParent + - FrameParent + - GainParent + - KeyImageParent + - RawTiltParent + - RunParent + - TiltSeriesParent + - TomogramParent + - VoxelSpacingParent + range: string + multivalued: true + inlined: true + inlined_as_list: true + run: + name: run + description: Include or exclude runs for a source. + from_schema: cdp-ingestion-config + alias: run + owner: CollectionMetadataParent + domain_of: + - AnnotationParent + - CollectionMetadataParent + - FrameParent + - GainParent + - KeyImageParent + - RawTiltParent + - TiltSeriesParent + - TomogramParent + - VoxelSpacingParent + range: string + multivalued: true + inlined: true + inlined_as_list: true DatasetEntity: name: DatasetEntity description: A dataset entity. @@ -1451,6 +1744,7 @@ classes: owner: DatasetEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -1483,6 +1777,7 @@ classes: owner: DatasetSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -1556,6 +1851,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1586,6 +1882,7 @@ classes: owner: DatasetParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1611,6 +1908,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1641,6 +1939,7 @@ classes: owner: DatasetParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -1669,6 +1968,7 @@ classes: owner: DatasetKeyPhotoEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -1715,6 +2015,7 @@ classes: owner: DatasetKeyPhotoSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -1774,6 +2075,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1804,6 +2106,7 @@ classes: owner: DatasetKeyPhotoParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1829,6 +2132,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -1859,6 +2163,7 @@ classes: owner: DatasetKeyPhotoParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -1902,6 +2207,7 @@ classes: owner: DepositionEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -1985,6 +2291,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2013,6 +2320,7 @@ classes: owner: DepositionKeyPhotoEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -2059,6 +2367,7 @@ classes: owner: DepositionKeyPhotoSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -2118,6 +2427,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2148,6 +2458,7 @@ classes: owner: DepositionKeyPhotoParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2173,6 +2484,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2203,6 +2515,7 @@ classes: owner: DepositionKeyPhotoParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -2231,6 +2544,7 @@ classes: owner: FrameEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -2263,6 +2577,7 @@ classes: owner: FrameSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -2336,6 +2651,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2365,6 +2681,7 @@ classes: owner: FrameParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2389,6 +2706,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2421,6 +2739,7 @@ classes: owner: FrameParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -2441,6 +2760,7 @@ classes: owner: FrameParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -2464,6 +2784,7 @@ classes: owner: FrameParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -2488,6 +2809,7 @@ classes: owner: GainEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -2520,6 +2842,7 @@ classes: owner: GainSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -2593,6 +2916,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2622,6 +2946,7 @@ classes: owner: GainParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2646,6 +2971,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2678,6 +3004,7 @@ classes: owner: GainParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -2698,6 +3025,7 @@ classes: owner: GainParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -2721,6 +3049,7 @@ classes: owner: GainParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -2745,6 +3074,7 @@ classes: owner: KeyImageEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -2777,6 +3107,7 @@ classes: owner: KeyImageSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -2850,6 +3181,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2880,6 +3212,7 @@ classes: owner: KeyImageParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2905,6 +3238,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -2939,6 +3273,7 @@ classes: owner: KeyImageParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -2959,6 +3294,7 @@ classes: owner: KeyImageParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -2982,6 +3318,7 @@ classes: owner: KeyImageParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -3033,6 +3370,7 @@ classes: owner: RawTiltEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -3065,6 +3403,7 @@ classes: owner: RawTiltSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -3138,6 +3477,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3168,6 +3508,7 @@ classes: owner: RawTiltParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3193,6 +3534,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3225,6 +3567,7 @@ classes: owner: RawTiltParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -3245,6 +3588,7 @@ classes: owner: RawTiltParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -3268,6 +3612,7 @@ classes: owner: RawTiltParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -3292,6 +3637,7 @@ classes: owner: RunEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -3324,6 +3670,7 @@ classes: owner: RunSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -3397,6 +3744,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3426,6 +3774,7 @@ classes: owner: RunParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3450,6 +3799,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3481,6 +3831,7 @@ classes: owner: RunParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -3501,6 +3852,7 @@ classes: owner: RunParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -3617,6 +3969,7 @@ classes: owner: TiltSeriesEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -3649,6 +4002,7 @@ classes: owner: TiltSeriesSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -3722,6 +4076,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3752,6 +4107,7 @@ classes: owner: TiltSeriesParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3777,6 +4133,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -3809,6 +4166,7 @@ classes: owner: TiltSeriesParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -3829,6 +4187,7 @@ classes: owner: TiltSeriesParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -3852,6 +4211,7 @@ classes: owner: TiltSeriesParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -3891,6 +4251,7 @@ classes: owner: TomogramEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -3923,6 +4284,7 @@ classes: owner: TomogramSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -3996,6 +4358,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -4026,6 +4389,7 @@ classes: owner: TomogramParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -4051,6 +4415,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -4084,6 +4449,7 @@ classes: owner: TomogramParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -4104,6 +4470,7 @@ classes: owner: TomogramParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -4127,6 +4494,7 @@ classes: owner: TomogramParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -4166,6 +4534,7 @@ classes: owner: VoxelSpacingEntity domain_of: - AnnotationEntity + - CollectionMetadataEntity - DatasetEntity - DatasetKeyPhotoEntity - DepositionEntity @@ -4247,6 +4616,7 @@ classes: owner: VoxelSpacingSource domain_of: - AnnotationSource + - CollectionMetadataSource - DatasetSource - DatasetKeyPhotoSource - DepositionKeyPhotoSource @@ -4270,6 +4640,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -4300,6 +4671,7 @@ classes: owner: VoxelSpacingParentFilters domain_of: - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -4325,6 +4697,7 @@ classes: domain_of: - DefaultSource - AnnotationParentFilters + - CollectionMetadataParentFilters - DatasetParentFilters - DatasetKeyPhotoParentFilters - DepositionKeyPhotoParentFilters @@ -4357,6 +4730,7 @@ classes: owner: VoxelSpacingParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent @@ -4377,6 +4751,7 @@ classes: owner: VoxelSpacingParent domain_of: - AnnotationParent + - CollectionMetadataParent - DatasetParent - DatasetKeyPhotoParent - DepositionKeyPhotoParent @@ -4400,6 +4775,7 @@ classes: owner: VoxelSpacingParent domain_of: - AnnotationParent + - CollectionMetadataParent - FrameParent - GainParent - KeyImageParent diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml index 28037fb61..da3055f5d 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml @@ -54,6 +54,10 @@ classes: description: Annotations for the dataset. multivalued: true range: AnnotationEntity + collection_metadata: + description: Metadata for the collection. + range: CollectionMetadataEntity + multivalued: true dataset_keyphotos: description: Key photos for the dataset. multivalued: true @@ -254,6 +258,39 @@ classes: - run - voxel_spacing + CollectionMetadataEntity: + description: A collection_metadata entity. + attributes: + sources: + multivalued: true + range: CollectionMetadataSource + required: true + + CollectionMetadataSource: + description: A collection_metadata source. + is_a: StandardSource + attributes: + parent_filters: + description: Permitted parent filters for a collection_metadata source. + range: CollectionMetadataParentFilters + + CollectionMetadataParentFilters: + description: Types of parent filters for a collection_metadata source. + attributes: + include: + description: Include files for the parent of a collection_metadata source (regexes). + range: CollectionMetadataParent + exclude: + description: Exclude files for the parent of a collection_metadata source (regexes). + range: CollectionMetadataParent + + CollectionMetadataParent: + description: A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + slots: + - dataset + - deposition + - run + DatasetEntity: description: A dataset entity. attributes: From a7b83ccbb50df1573b8a905777c5aa6e100d331c Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 5 Sep 2024 14:15:07 -0700 Subject: [PATCH 04/59] address comments --- ingestion_tools/scripts/common/config.py | 2 ++ ingestion_tools/scripts/importers/collection_metadata.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ingestion_tools/scripts/common/config.py b/ingestion_tools/scripts/common/config.py index 1c3c7c1d0..953581936 100644 --- a/ingestion_tools/scripts/common/config.py +++ b/ingestion_tools/scripts/common/config.py @@ -266,6 +266,8 @@ def resolve_output_path(self, key: str, obj: BaseImporter) -> str: "deposition_metadata": "depositions_metadata/{deposition_name}/deposition_metadata.json", "deposition_keyphoto": "depositions_metadata/{deposition_name}/Images", } + paths["collection_metadata"] = paths["rawtilt"] + output_prefix = self.output_prefix glob_vars = obj.get_glob_vars() path = os.path.join(output_prefix, paths[key].format(**glob_vars)) diff --git a/ingestion_tools/scripts/importers/collection_metadata.py b/ingestion_tools/scripts/importers/collection_metadata.py index abab26051..ac8afb7dc 100644 --- a/ingestion_tools/scripts/importers/collection_metadata.py +++ b/ingestion_tools/scripts/importers/collection_metadata.py @@ -3,6 +3,6 @@ class CollectionMetadataImporter(BaseFileImporter): - type_key = "collection_metadata" + type_key = plural_key = "collection_metadata" finder_factory = DefaultImporterFactory has_metadata = False From b4319d5a491feaef854f7fee639ab7c65da470b8 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 6 Sep 2024 15:06:59 -0700 Subject: [PATCH 05/59] address comments --- ingestion_tools/scripts/common/config.py | 2 +- ingestion_tools/scripts/standardize_dirs.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ingestion_tools/scripts/common/config.py b/ingestion_tools/scripts/common/config.py index 953581936..7276466f5 100644 --- a/ingestion_tools/scripts/common/config.py +++ b/ingestion_tools/scripts/common/config.py @@ -249,6 +249,7 @@ def resolve_output_path(self, key: str, obj: BaseImporter) -> str: "gain": "{dataset_name}/{run_name}/Frames/{run_name}_gain", "frame": "{dataset_name}/{run_name}/Frames", "rawtilt": "{dataset_name}/{run_name}/TiltSeries", + "collection_metadata": "{dataset_name}/{run_name}/TiltSeries", "annotation": "{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/Annotations", "annotation_metadata": "{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/Annotations", "run_metadata": "{dataset_name}/{run_name}/run_metadata.json", @@ -266,7 +267,6 @@ def resolve_output_path(self, key: str, obj: BaseImporter) -> str: "deposition_metadata": "depositions_metadata/{deposition_name}/deposition_metadata.json", "deposition_keyphoto": "depositions_metadata/{deposition_name}/Images", } - paths["collection_metadata"] = paths["rawtilt"] output_prefix = self.output_prefix glob_vars = obj.get_glob_vars() diff --git a/ingestion_tools/scripts/standardize_dirs.py b/ingestion_tools/scripts/standardize_dirs.py index 033042248..99e49c37c 100644 --- a/ingestion_tools/scripts/standardize_dirs.py +++ b/ingestion_tools/scripts/standardize_dirs.py @@ -24,6 +24,7 @@ IMPORTERS = [ AnnotationImporter, + CollectionMetadataImporter, DatasetKeyPhotoImporter, DatasetImporter, DepositionImporter, From 9aaf3f4f4b48280d029c321c746402cc9250131b Mon Sep 17 00:00:00 2001 From: Daniel Ji Date: Fri, 6 Sep 2024 16:44:56 -0700 Subject: [PATCH 06/59] add extended validation check for collection metadata (#259) --- ingestion_tools/dataset_configs/10010.yaml | 6 +++--- .../v1.0.0/ingestion_config_models_extended.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ingestion_tools/dataset_configs/10010.yaml b/ingestion_tools/dataset_configs/10010.yaml index 6a5b36ae4..22be1e57a 100644 --- a/ingestion_tools/dataset_configs/10010.yaml +++ b/ingestion_tools/dataset_configs/10010.yaml @@ -149,9 +149,9 @@ key_images: value: - from_tomogram rawtilts: -- sources: - - source_multi_glob: - list_globs: [] +# - sources: +# - source_multi_glob: +# list_globs: runs: - sources: - source_glob: diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py b/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py index fdca228f8..8af97daa1 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py @@ -22,6 +22,8 @@ CellComponent, CellStrain, CellType, + CollectionMetadataEntity, + CollectionMetadataSource, Container, CrossReferences, Dataset, @@ -660,6 +662,18 @@ def valid_sources(cls: Self, source_list: List[AnnotationSource]) -> List[Annota return source_list +# ============================================================================== +# Collection Metadata Validation +# ============================================================================== + + +class ExtendedValidationCollectionMetadataEntity(CollectionMetadataEntity): + @field_validator("sources") + @classmethod + def valid_sources(cls: Self, source_list: List[CollectionMetadataSource]) -> List[CollectionMetadataSource]: + return validate_sources(source_list) + + # ============================================================================== # Dataset Key Photo Validation # ============================================================================== @@ -974,6 +988,9 @@ def __init__(self, **data): super().__init__(**data) annotations: Optional[List[ExtendedValidationAnnotationEntity]] = Container.model_fields["annotations"] + collection_metadata: Optional[List[ExtendedValidationCollectionMetadataEntity]] = Container.model_fields[ + "collection_metadata" + ] dataset_keyphotos: Optional[List[ExtendedValidationDatasetKeyPhotoEntity]] = Container.model_fields[ "dataset_keyphotos" ] From b4c611bff7d4be2ee34b96c5c5b1d1ab16f26a90 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 6 Sep 2024 16:49:53 -0700 Subject: [PATCH 07/59] update schema --- schema/api/v1.0.0/codegen/ER_DIAGRAM.md | 325 +++++++------- schema/core/v1.1.0/codegen/metadata_models.py | 1 + .../v1.0.0/codegen/ingestion_config_models.py | 412 +++++++++++++++++- 3 files changed, 573 insertions(+), 165 deletions(-) diff --git a/schema/api/v1.0.0/codegen/ER_DIAGRAM.md b/schema/api/v1.0.0/codegen/ER_DIAGRAM.md index 70d56b1d8..4a7104d19 100644 --- a/schema/api/v1.0.0/codegen/ER_DIAGRAM.md +++ b/schema/api/v1.0.0/codegen/ER_DIAGRAM.md @@ -1,193 +1,193 @@ ```mermaid erDiagram Dataset { - string title - string description - string organism_name - integer organism_taxid - string tissue_name - BTO_ID tissue_id - string cell_name - CL_ID cell_type_id - string cell_strain_name - string cell_strain_id - string sample_preparation - string grid_preparation - string other_setup - string key_photo_url - string key_photo_thumbnail_url - string cell_component_name - GO_ID cell_component_id - integer id - date deposition_date - date release_date - date last_modified_date - DOI_LIST publications - EMPIAR_EMDB_PDB_LIST related_database_entries - string related_database_links - string dataset_citations - string s3_prefix - string https_prefix + string title + string description + string organism_name + integer organism_taxid + string tissue_name + BTO_ID tissue_id + string cell_name + CL_ID cell_type_id + string cell_strain_name + string cell_strain_id + string sample_preparation + string grid_preparation + string other_setup + string key_photo_url + string key_photo_thumbnail_url + string cell_component_name + GO_ID cell_component_id + integer id + date deposition_date + date release_date + date last_modified_date + DOI_LIST publications + EMPIAR_EMDB_PDB_LIST related_database_entries + string related_database_links + string dataset_citations + string s3_prefix + string https_prefix } DatasetAuthor { - integer author_list_order - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status - ORCID orcid - integer annotation_id - integer id + integer author_list_order + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status + ORCID orcid + integer annotation_id + integer id } Run { - string name - integer id - string s3_prefix - string https_prefix + string name + integer id + string s3_prefix + string https_prefix } TomogramVoxelSpacing { - TomogramList tomograms - float voxel_spacing - integer id - string s3_prefix - string https_prefix + TomogramList tomograms + float voxel_spacing + integer id + string s3_prefix + string https_prefix } Annotation { - string s3_metadata_path - string https_metadata_path - EMPIAR_EMDB_DOI_PDB_LIST annotation_publication - string annotation_method - boolean ground_truth_status - string object_id - string object_name - string object_description - string object_state - integer object_count - float confidence_precision - float confidence_recall - string ground_truth_used - string annotation_software - boolean is_curator_recommended - annotation_method_type_enum method_type - string method_links - integer id - date deposition_date - date release_date - date last_modified_date + string s3_metadata_path + string https_metadata_path + EMPIAR_EMDB_DOI_PDB_LIST annotation_publication + string annotation_method + boolean ground_truth_status + string object_id + string object_name + string object_description + string object_state + integer object_count + float confidence_precision + float confidence_recall + string ground_truth_used + string annotation_software + boolean is_curator_recommended + annotation_method_type_enum method_type + string method_links + integer id + date deposition_date + date release_date + date last_modified_date } Deposition { - integer id + integer id } Tomograms { - string name - float size_x - float size_y - float size_z - float voxel_spacing - fiducial_alignment_status_enum fiducial_alignment_status - tomogram_reconstruction_method_enum reconstruction_method - tomogram_processing_enum processing - boolean is_canonical - string s3_omezarr_dir - string https_omezarr_dir - string s3_mrc_scale0 - string https_mrc_scale0 - string scale0_dimensions - string scale1_dimensions - string scale2_dimensions - boolean ctf_corrected - integer offset_x - integer offset_y - integer offset_z - string key_photo_url - string key_photo_thumbnail_url - string neuroglancer_config - TomogramType type - integer id - string s3_prefix - string https_prefix + string name + float size_x + float size_y + float size_z + float voxel_spacing + fiducial_alignment_status_enum fiducial_alignment_status + tomogram_reconstruction_method_enum reconstruction_method + tomogram_processing_enum processing + boolean is_canonical + string s3_omezarr_dir + string https_omezarr_dir + string s3_mrc_scale0 + string https_mrc_scale0 + string scale0_dimensions + string scale1_dimensions + string scale2_dimensions + boolean ctf_corrected + integer offset_x + integer offset_y + integer offset_z + string key_photo_url + string key_photo_thumbnail_url + string neuroglancer_config + TomogramType type + integer id + string s3_prefix + string https_prefix } Any { } TomogramAuthor { - Tomogram tomogram - integer id - integer author_list_order - ORCID orcid - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status + Tomogram tomogram + integer id + integer author_list_order + ORCID orcid + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status } AnnotationAuthor { - integer id - integer author_list_order - ORCID orcid - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status + integer id + integer author_list_order + ORCID orcid + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status } AnnotationFile { - annotation_file_shape_type_enum shape_type - string format - string s3_path - string https_path - boolean is_visualization_default - integer id + annotation_file_shape_type_enum shape_type + string format + string s3_path + string https_path + boolean is_visualization_default + integer id } Tiltseries { - string s3_omezarr_dir - string s3_mrc_bin1 - string https_omezarr_dir - string https_mrc_bin1 - string s3_collection_metadata - string https_collection_metadata - string s3_angle_list - string https_angle_list - string s3_alignment_file - string https_alignment_file - float acceleration_voltage - float spherical_abberation_constant - tiltseries_microscope_manufacturer_enum microscope_manufacturer - string microscope_model - string microscope_energy_filter - string microscope_phase_plate - string microscope_image_corrector - string microscope_additional_info - string camera_manufacturer - string camera_model - float tilt_min - float tilt_max - float tilt_range - float tilt_step - string tilting_scheme - float tilt_axis - float total_flux - string data_acquisition_software - EMPIAR_ID related_empiar_entry - float binning_from_frames - integer tilt_series_quality - boolean is_aligned - float pixel_spacing - float aligned_tiltseries_binning - integer tiltseries_frames_count - integer id + string s3_omezarr_dir + string s3_mrc_bin1 + string https_omezarr_dir + string https_mrc_bin1 + string s3_collection_metadata + string https_collection_metadata + string s3_angle_list + string https_angle_list + string s3_alignment_file + string https_alignment_file + float acceleration_voltage + float spherical_abberation_constant + tiltseries_microscope_manufacturer_enum microscope_manufacturer + string microscope_model + string microscope_energy_filter + string microscope_phase_plate + string microscope_image_corrector + string microscope_additional_info + string camera_manufacturer + string camera_model + float tilt_min + float tilt_max + float tilt_range + float tilt_step + string tilting_scheme + float tilt_axis + float total_flux + string data_acquisition_software + EMPIAR_ID related_empiar_entry + float binning_from_frames + integer tilt_series_quality + boolean is_aligned + float pixel_spacing + float aligned_tiltseries_binning + integer tiltseries_frames_count + integer id } DatasetFunding { - string funding_agency_name - string grant_id - integer id + string funding_agency_name + string grant_id + integer id } Dataset ||--|o Deposition : "deposition" @@ -218,3 +218,4 @@ Tiltseries ||--|| Run : "run" DatasetFunding ||--|o Dataset : "dataset" ``` + diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 5d416f69b..6f161b0f6 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4207,3 +4207,4 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() + diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 40b086ffb..28f06fe67 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -2407,6 +2407,7 @@ class Container(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'tree_root': True}) annotations: Optional[List[AnnotationEntity]] = Field(None, description="""An annotation entity.""", json_schema_extra = { "linkml_meta": {'alias': 'annotations', 'domain_of': ['Container']} }) + collection_metadata: Optional[List[CollectionMetadataEntity]] = Field(None, description="""A collection_metadata entity.""", json_schema_extra = { "linkml_meta": {'alias': 'collection_metadata', 'domain_of': ['Container']} }) dataset_keyphotos: Optional[List[DatasetKeyPhotoEntity]] = Field(None, description="""A dataset key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_keyphotos', 'domain_of': ['Container']} }) datasets: List[DatasetEntity] = Field(..., description="""A dataset entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'datasets', 'domain_of': ['Container']} }) deposition_keyphotos: Optional[List[DepositionKeyPhotoEntity]] = Field(None, description="""A deposition key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_keyphotos', 'domain_of': ['Container']} }) @@ -2506,6 +2507,7 @@ class DefaultSource(ConfiguredBaseModel): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -2519,6 +2521,7 @@ class DefaultSource(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2542,6 +2545,7 @@ class StandardSource(DefaultSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2556,6 +2560,7 @@ class StandardSource(DefaultSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2569,6 +2574,7 @@ class StandardSource(DefaultSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2585,6 +2591,7 @@ class StandardSource(DefaultSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -2597,6 +2604,7 @@ class StandardSource(DefaultSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -2610,6 +2618,7 @@ class StandardSource(DefaultSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2658,6 +2667,7 @@ class AnnotationEntity(ConfiguredBaseModel): 'TomogramEntity']} }) sources: List[AnnotationSource] = Field(..., description="""An annotation source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -2687,6 +2697,7 @@ class AnnotationSource(DefaultSource): TriangularMeshGroup: Optional[AnnotationTriangularMeshGroupFile] = Field(None, description="""File and sourcing data containing one or more triangular mesh annotations.""", json_schema_extra = { "linkml_meta": {'alias': 'TriangularMeshGroup', 'domain_of': ['AnnotationSource']} }) parent_filters: Optional[AnnotationParentFilters] = Field(None, description="""Filters for the parent of an annotation source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -2701,6 +2712,7 @@ class AnnotationSource(DefaultSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -2714,6 +2726,7 @@ class AnnotationSource(DefaultSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2736,6 +2749,7 @@ class AnnotationParentFilters(ConfiguredBaseModel): include: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -2750,6 +2764,7 @@ class AnnotationParentFilters(ConfiguredBaseModel): exclude: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -2763,6 +2778,7 @@ class AnnotationParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2785,6 +2801,7 @@ class AnnotationParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -2795,6 +2812,7 @@ class AnnotationParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -2808,6 +2826,7 @@ class AnnotationParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -2822,6 +2841,235 @@ class AnnotationParent(ConfiguredBaseModel): 'TomogramParent']} }) +class CollectionMetadataEntity(ConfiguredBaseModel): + """ + A collection_metadata entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[CollectionMetadataSource] = Field(..., description="""A collection_metadata source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class CollectionMetadataSource(StandardSource): + """ + A collection_metadata source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[CollectionMetadataParentFilters] = Field(None, description="""Types of parent filters for a collection_metadata source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class CollectionMetadataParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a collection_metadata source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class CollectionMetadataParent(ConfiguredBaseModel): + """ + A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + class DatasetEntity(ConfiguredBaseModel): """ A dataset entity. @@ -2836,6 +3084,7 @@ class DatasetEntity(ConfiguredBaseModel): 'TomogramEntity']} }) sources: List[DatasetSource] = Field(..., description="""A dataset source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -2858,6 +3107,7 @@ class DatasetSource(StandardSource): parent_filters: Optional[DatasetParentFilters] = Field(None, description="""Types of parent filters for a dataset source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -2872,6 +3122,7 @@ class DatasetSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2886,6 +3137,7 @@ class DatasetSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2899,6 +3151,7 @@ class DatasetSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2915,6 +3168,7 @@ class DatasetSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -2927,6 +3181,7 @@ class DatasetSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -2940,6 +3195,7 @@ class DatasetSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -2962,6 +3218,7 @@ class DatasetParentFilters(ConfiguredBaseModel): include: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -2976,6 +3233,7 @@ class DatasetParentFilters(ConfiguredBaseModel): exclude: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -2989,6 +3247,7 @@ class DatasetParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3011,6 +3270,7 @@ class DatasetParent(ConfiguredBaseModel): deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -3032,6 +3292,7 @@ class DatasetKeyPhotoEntity(ConfiguredBaseModel): sources: List[DatasetKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -3057,6 +3318,7 @@ class DatasetKeyPhotoSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -3068,6 +3330,7 @@ class DatasetKeyPhotoSource(StandardSource): 'TomogramSource']} }) parent_filters: Optional[DatasetKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -3082,6 +3345,7 @@ class DatasetKeyPhotoSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3096,6 +3360,7 @@ class DatasetKeyPhotoSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3109,6 +3374,7 @@ class DatasetKeyPhotoSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3123,6 +3389,7 @@ class DatasetKeyPhotoSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3136,6 +3403,7 @@ class DatasetKeyPhotoSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3158,6 +3426,7 @@ class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): include: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3172,6 +3441,7 @@ class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): exclude: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3185,6 +3455,7 @@ class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3207,6 +3478,7 @@ class DatasetKeyPhotoParent(ConfiguredBaseModel): deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -3234,6 +3506,7 @@ class DepositionEntity(ConfiguredBaseModel): 'TomogramEntity']} }) sources: List[DepositionSource] = Field(..., description="""A deposition source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -3257,6 +3530,7 @@ class DepositionSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3271,6 +3545,7 @@ class DepositionSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3284,6 +3559,7 @@ class DepositionSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3300,6 +3576,7 @@ class DepositionSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -3312,6 +3589,7 @@ class DepositionSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3325,6 +3603,7 @@ class DepositionSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3347,6 +3626,7 @@ class DepositionKeyPhotoEntity(ConfiguredBaseModel): sources: List[DepositionKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -3372,6 +3652,7 @@ class DepositionKeyPhotoSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -3383,6 +3664,7 @@ class DepositionKeyPhotoSource(StandardSource): 'TomogramSource']} }) parent_filters: Optional[DepositionKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -3397,6 +3679,7 @@ class DepositionKeyPhotoSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3411,6 +3694,7 @@ class DepositionKeyPhotoSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3424,6 +3708,7 @@ class DepositionKeyPhotoSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3438,6 +3723,7 @@ class DepositionKeyPhotoSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3451,6 +3737,7 @@ class DepositionKeyPhotoSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3473,6 +3760,7 @@ class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): include: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3487,6 +3775,7 @@ class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): exclude: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3500,6 +3789,7 @@ class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3522,6 +3812,7 @@ class DepositionKeyPhotoParent(ConfiguredBaseModel): deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -3543,6 +3834,7 @@ class FrameEntity(ConfiguredBaseModel): sources: List[FrameSource] = Field(..., description="""A frame source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -3565,6 +3857,7 @@ class FrameSource(StandardSource): parent_filters: Optional[FrameParentFilters] = Field(None, description="""Types of parent filters for a frame source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -3579,6 +3872,7 @@ class FrameSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3593,6 +3887,7 @@ class FrameSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3606,6 +3901,7 @@ class FrameSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3622,6 +3918,7 @@ class FrameSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -3634,6 +3931,7 @@ class FrameSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3647,6 +3945,7 @@ class FrameSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3669,6 +3968,7 @@ class FrameParentFilters(ConfiguredBaseModel): include: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3683,6 +3983,7 @@ class FrameParentFilters(ConfiguredBaseModel): exclude: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3696,6 +3997,7 @@ class FrameParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3718,6 +4020,7 @@ class FrameParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -3728,6 +4031,7 @@ class FrameParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -3741,6 +4045,7 @@ class FrameParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -3758,6 +4063,7 @@ class GainEntity(ConfiguredBaseModel): sources: List[GainSource] = Field(..., description="""A gain source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -3780,6 +4086,7 @@ class GainSource(StandardSource): parent_filters: Optional[GainParentFilters] = Field(None, description="""Types of parent filters for a gain source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -3794,6 +4101,7 @@ class GainSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3808,6 +4116,7 @@ class GainSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3821,6 +4130,7 @@ class GainSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3837,6 +4147,7 @@ class GainSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -3849,6 +4160,7 @@ class GainSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3862,6 +4174,7 @@ class GainSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3884,6 +4197,7 @@ class GainParentFilters(ConfiguredBaseModel): include: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3898,6 +4212,7 @@ class GainParentFilters(ConfiguredBaseModel): exclude: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -3911,6 +4226,7 @@ class GainParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -3933,6 +4249,7 @@ class GainParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -3943,6 +4260,7 @@ class GainParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -3956,6 +4274,7 @@ class GainParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -3973,6 +4292,7 @@ class KeyImageEntity(ConfiguredBaseModel): sources: List[KeyImageSource] = Field(..., description="""A key image source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -3995,6 +4315,7 @@ class KeyImageSource(StandardSource): parent_filters: Optional[KeyImageParentFilters] = Field(None, description="""Types of parent filters for a key image source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -4009,6 +4330,7 @@ class KeyImageSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4023,6 +4345,7 @@ class KeyImageSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4036,6 +4359,7 @@ class KeyImageSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4052,6 +4376,7 @@ class KeyImageSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -4064,6 +4389,7 @@ class KeyImageSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4077,6 +4403,7 @@ class KeyImageSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4099,6 +4426,7 @@ class KeyImageParentFilters(ConfiguredBaseModel): include: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4113,6 +4441,7 @@ class KeyImageParentFilters(ConfiguredBaseModel): exclude: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4126,6 +4455,7 @@ class KeyImageParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4148,6 +4478,7 @@ class KeyImageParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -4158,6 +4489,7 @@ class KeyImageParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -4171,6 +4503,7 @@ class KeyImageParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -4194,6 +4527,7 @@ class RawTiltEntity(ConfiguredBaseModel): sources: List[RawTiltSource] = Field(..., description="""A raw tilt source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -4216,6 +4550,7 @@ class RawTiltSource(StandardSource): parent_filters: Optional[RawTiltParentFilters] = Field(None, description="""Types of parent filters for a raw tilt source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -4230,6 +4565,7 @@ class RawTiltSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4244,6 +4580,7 @@ class RawTiltSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4257,6 +4594,7 @@ class RawTiltSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4273,6 +4611,7 @@ class RawTiltSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -4285,6 +4624,7 @@ class RawTiltSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4298,6 +4638,7 @@ class RawTiltSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4320,6 +4661,7 @@ class RawTiltParentFilters(ConfiguredBaseModel): include: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4334,6 +4676,7 @@ class RawTiltParentFilters(ConfiguredBaseModel): exclude: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4347,6 +4690,7 @@ class RawTiltParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4369,6 +4713,7 @@ class RawTiltParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -4379,6 +4724,7 @@ class RawTiltParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -4392,6 +4738,7 @@ class RawTiltParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -4409,6 +4756,7 @@ class RunEntity(ConfiguredBaseModel): sources: List[RunSource] = Field(..., description="""A run source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -4431,6 +4779,7 @@ class RunSource(StandardSource): parent_filters: Optional[RunParentFilters] = Field(None, description="""Types of parent filters for a run source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -4445,6 +4794,7 @@ class RunSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4459,6 +4809,7 @@ class RunSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4472,6 +4823,7 @@ class RunSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4488,6 +4840,7 @@ class RunSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -4500,6 +4853,7 @@ class RunSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4513,6 +4867,7 @@ class RunSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4535,6 +4890,7 @@ class RunParentFilters(ConfiguredBaseModel): include: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4549,6 +4905,7 @@ class RunParentFilters(ConfiguredBaseModel): exclude: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4562,6 +4919,7 @@ class RunParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4584,6 +4942,7 @@ class RunParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -4594,6 +4953,7 @@ class RunParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -4635,6 +4995,7 @@ class TiltSeriesEntity(ConfiguredBaseModel): 'TomogramEntity']} }) sources: List[TiltSeriesSource] = Field(..., description="""A tilt series source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -4657,6 +5018,7 @@ class TiltSeriesSource(StandardSource): parent_filters: Optional[TiltSeriesParentFilters] = Field(None, description="""Types of parent filters for a tilt series source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -4671,6 +5033,7 @@ class TiltSeriesSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4685,6 +5048,7 @@ class TiltSeriesSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4698,6 +5062,7 @@ class TiltSeriesSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4714,6 +5079,7 @@ class TiltSeriesSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -4726,6 +5092,7 @@ class TiltSeriesSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4739,6 +5106,7 @@ class TiltSeriesSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4761,6 +5129,7 @@ class TiltSeriesParentFilters(ConfiguredBaseModel): include: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4775,6 +5144,7 @@ class TiltSeriesParentFilters(ConfiguredBaseModel): exclude: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4788,6 +5158,7 @@ class TiltSeriesParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4810,6 +5181,7 @@ class TiltSeriesParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -4820,6 +5192,7 @@ class TiltSeriesParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -4833,6 +5206,7 @@ class TiltSeriesParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -4856,6 +5230,7 @@ class TomogramEntity(ConfiguredBaseModel): 'TomogramEntity']} }) sources: List[TomogramSource] = Field(..., description="""A tomogram source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -4878,6 +5253,7 @@ class TomogramSource(StandardSource): parent_filters: Optional[TomogramParentFilters] = Field(None, description="""Types of parent filters for a tomogram source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -4892,6 +5268,7 @@ class TomogramSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4906,6 +5283,7 @@ class TomogramSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4919,6 +5297,7 @@ class TomogramSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4935,6 +5314,7 @@ class TomogramSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -4947,6 +5327,7 @@ class TomogramSource(StandardSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4960,6 +5341,7 @@ class TomogramSource(StandardSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -4982,6 +5364,7 @@ class TomogramParentFilters(ConfiguredBaseModel): include: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -4996,6 +5379,7 @@ class TomogramParentFilters(ConfiguredBaseModel): exclude: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -5009,6 +5393,7 @@ class TomogramParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -5031,6 +5416,7 @@ class TomogramParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -5041,6 +5427,7 @@ class TomogramParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -5054,6 +5441,7 @@ class TomogramParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -5076,6 +5464,7 @@ class VoxelSpacingEntity(ConfiguredBaseModel): sources: List[VoxelSpacingSource] = Field(..., description="""A voxel spacing source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', 'domain_of': ['AnnotationEntity', + 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', 'DepositionEntity', @@ -5099,6 +5488,7 @@ class VoxelSpacingSource(DefaultSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -5113,6 +5503,7 @@ class VoxelSpacingSource(DefaultSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -5129,6 +5520,7 @@ class VoxelSpacingSource(DefaultSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', 'FrameSource', @@ -5141,6 +5533,7 @@ class VoxelSpacingSource(DefaultSource): tomogram_header: Optional[TomogramHeader] = Field(None, description="""A tomogram header, a unique source attribute for voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_header', 'domain_of': ['VoxelSpacingSource']} }) parent_filters: Optional[VoxelSpacingParentFilters] = Field(None, description="""Types of parent filters for a voxel spacing source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', 'domain_of': ['AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', @@ -5155,6 +5548,7 @@ class VoxelSpacingSource(DefaultSource): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -5168,6 +5562,7 @@ class VoxelSpacingSource(DefaultSource): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -5190,6 +5585,7 @@ class VoxelSpacingParentFilters(ConfiguredBaseModel): include: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', 'domain_of': ['AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -5204,6 +5600,7 @@ class VoxelSpacingParentFilters(ConfiguredBaseModel): exclude: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', 'DepositionKeyPhotoParentFilters', @@ -5217,6 +5614,7 @@ class VoxelSpacingParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters', 'StandardSource', 'AnnotationSource', + 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', 'DepositionSource', @@ -5239,6 +5637,7 @@ class VoxelSpacingParent(ConfiguredBaseModel): dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -5249,6 +5648,7 @@ class VoxelSpacingParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', 'DepositionKeyPhotoParent', @@ -5262,6 +5662,7 @@ class VoxelSpacingParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', 'domain_of': ['AnnotationParent', + 'CollectionMetadataParent', 'FrameParent', 'GainParent', 'KeyImageParent', @@ -5359,6 +5760,10 @@ class TomogramHeader(ConfiguredBaseModel): AnnotationSource.model_rebuild() AnnotationParentFilters.model_rebuild() AnnotationParent.model_rebuild() +CollectionMetadataEntity.model_rebuild() +CollectionMetadataSource.model_rebuild() +CollectionMetadataParentFilters.model_rebuild() +CollectionMetadataParent.model_rebuild() DatasetEntity.model_rebuild() DatasetSource.model_rebuild() DatasetParentFilters.model_rebuild() @@ -5408,3 +5813,4 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() + From 87f7732153eedf4ec72653f1451bbe768268b998 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 6 Sep 2024 16:58:00 -0700 Subject: [PATCH 08/59] remove rawtilts from 10010.yaml --- ingestion_tools/dataset_configs/10010.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ingestion_tools/dataset_configs/10010.yaml b/ingestion_tools/dataset_configs/10010.yaml index 22be1e57a..76c5ff304 100644 --- a/ingestion_tools/dataset_configs/10010.yaml +++ b/ingestion_tools/dataset_configs/10010.yaml @@ -148,10 +148,6 @@ key_images: - literal: value: - from_tomogram -rawtilts: -# - sources: -# - source_multi_glob: -# list_globs: runs: - sources: - source_glob: From 7421f5d3655095609b357c41a8a0a82f208b35cf Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 6 Sep 2024 17:00:05 -0700 Subject: [PATCH 09/59] lint --- schema/api/v1.0.0/codegen/ER_DIAGRAM.md | 325 +++++++++--------- schema/core/v1.1.0/codegen/metadata_models.py | 1 - .../v1.0.0/codegen/ingestion_config_models.py | 7 +- 3 files changed, 165 insertions(+), 168 deletions(-) diff --git a/schema/api/v1.0.0/codegen/ER_DIAGRAM.md b/schema/api/v1.0.0/codegen/ER_DIAGRAM.md index 4a7104d19..70d56b1d8 100644 --- a/schema/api/v1.0.0/codegen/ER_DIAGRAM.md +++ b/schema/api/v1.0.0/codegen/ER_DIAGRAM.md @@ -1,193 +1,193 @@ ```mermaid erDiagram Dataset { - string title - string description - string organism_name - integer organism_taxid - string tissue_name - BTO_ID tissue_id - string cell_name - CL_ID cell_type_id - string cell_strain_name - string cell_strain_id - string sample_preparation - string grid_preparation - string other_setup - string key_photo_url - string key_photo_thumbnail_url - string cell_component_name - GO_ID cell_component_id - integer id - date deposition_date - date release_date - date last_modified_date - DOI_LIST publications - EMPIAR_EMDB_PDB_LIST related_database_entries - string related_database_links - string dataset_citations - string s3_prefix - string https_prefix + string title + string description + string organism_name + integer organism_taxid + string tissue_name + BTO_ID tissue_id + string cell_name + CL_ID cell_type_id + string cell_strain_name + string cell_strain_id + string sample_preparation + string grid_preparation + string other_setup + string key_photo_url + string key_photo_thumbnail_url + string cell_component_name + GO_ID cell_component_id + integer id + date deposition_date + date release_date + date last_modified_date + DOI_LIST publications + EMPIAR_EMDB_PDB_LIST related_database_entries + string related_database_links + string dataset_citations + string s3_prefix + string https_prefix } DatasetAuthor { - integer author_list_order - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status - ORCID orcid - integer annotation_id - integer id + integer author_list_order + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status + ORCID orcid + integer annotation_id + integer id } Run { - string name - integer id - string s3_prefix - string https_prefix + string name + integer id + string s3_prefix + string https_prefix } TomogramVoxelSpacing { - TomogramList tomograms - float voxel_spacing - integer id - string s3_prefix - string https_prefix + TomogramList tomograms + float voxel_spacing + integer id + string s3_prefix + string https_prefix } Annotation { - string s3_metadata_path - string https_metadata_path - EMPIAR_EMDB_DOI_PDB_LIST annotation_publication - string annotation_method - boolean ground_truth_status - string object_id - string object_name - string object_description - string object_state - integer object_count - float confidence_precision - float confidence_recall - string ground_truth_used - string annotation_software - boolean is_curator_recommended - annotation_method_type_enum method_type - string method_links - integer id - date deposition_date - date release_date - date last_modified_date + string s3_metadata_path + string https_metadata_path + EMPIAR_EMDB_DOI_PDB_LIST annotation_publication + string annotation_method + boolean ground_truth_status + string object_id + string object_name + string object_description + string object_state + integer object_count + float confidence_precision + float confidence_recall + string ground_truth_used + string annotation_software + boolean is_curator_recommended + annotation_method_type_enum method_type + string method_links + integer id + date deposition_date + date release_date + date last_modified_date } Deposition { - integer id + integer id } Tomograms { - string name - float size_x - float size_y - float size_z - float voxel_spacing - fiducial_alignment_status_enum fiducial_alignment_status - tomogram_reconstruction_method_enum reconstruction_method - tomogram_processing_enum processing - boolean is_canonical - string s3_omezarr_dir - string https_omezarr_dir - string s3_mrc_scale0 - string https_mrc_scale0 - string scale0_dimensions - string scale1_dimensions - string scale2_dimensions - boolean ctf_corrected - integer offset_x - integer offset_y - integer offset_z - string key_photo_url - string key_photo_thumbnail_url - string neuroglancer_config - TomogramType type - integer id - string s3_prefix - string https_prefix + string name + float size_x + float size_y + float size_z + float voxel_spacing + fiducial_alignment_status_enum fiducial_alignment_status + tomogram_reconstruction_method_enum reconstruction_method + tomogram_processing_enum processing + boolean is_canonical + string s3_omezarr_dir + string https_omezarr_dir + string s3_mrc_scale0 + string https_mrc_scale0 + string scale0_dimensions + string scale1_dimensions + string scale2_dimensions + boolean ctf_corrected + integer offset_x + integer offset_y + integer offset_z + string key_photo_url + string key_photo_thumbnail_url + string neuroglancer_config + TomogramType type + integer id + string s3_prefix + string https_prefix } Any { } TomogramAuthor { - Tomogram tomogram - integer id - integer author_list_order - ORCID orcid - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status + Tomogram tomogram + integer id + integer author_list_order + ORCID orcid + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status } AnnotationAuthor { - integer id - integer author_list_order - ORCID orcid - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status + integer id + integer author_list_order + ORCID orcid + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status } AnnotationFile { - annotation_file_shape_type_enum shape_type - string format - string s3_path - string https_path - boolean is_visualization_default - integer id + annotation_file_shape_type_enum shape_type + string format + string s3_path + string https_path + boolean is_visualization_default + integer id } Tiltseries { - string s3_omezarr_dir - string s3_mrc_bin1 - string https_omezarr_dir - string https_mrc_bin1 - string s3_collection_metadata - string https_collection_metadata - string s3_angle_list - string https_angle_list - string s3_alignment_file - string https_alignment_file - float acceleration_voltage - float spherical_abberation_constant - tiltseries_microscope_manufacturer_enum microscope_manufacturer - string microscope_model - string microscope_energy_filter - string microscope_phase_plate - string microscope_image_corrector - string microscope_additional_info - string camera_manufacturer - string camera_model - float tilt_min - float tilt_max - float tilt_range - float tilt_step - string tilting_scheme - float tilt_axis - float total_flux - string data_acquisition_software - EMPIAR_ID related_empiar_entry - float binning_from_frames - integer tilt_series_quality - boolean is_aligned - float pixel_spacing - float aligned_tiltseries_binning - integer tiltseries_frames_count - integer id + string s3_omezarr_dir + string s3_mrc_bin1 + string https_omezarr_dir + string https_mrc_bin1 + string s3_collection_metadata + string https_collection_metadata + string s3_angle_list + string https_angle_list + string s3_alignment_file + string https_alignment_file + float acceleration_voltage + float spherical_abberation_constant + tiltseries_microscope_manufacturer_enum microscope_manufacturer + string microscope_model + string microscope_energy_filter + string microscope_phase_plate + string microscope_image_corrector + string microscope_additional_info + string camera_manufacturer + string camera_model + float tilt_min + float tilt_max + float tilt_range + float tilt_step + string tilting_scheme + float tilt_axis + float total_flux + string data_acquisition_software + EMPIAR_ID related_empiar_entry + float binning_from_frames + integer tilt_series_quality + boolean is_aligned + float pixel_spacing + float aligned_tiltseries_binning + integer tiltseries_frames_count + integer id } DatasetFunding { - string funding_agency_name - string grant_id - integer id + string funding_agency_name + string grant_id + integer id } Dataset ||--|o Deposition : "deposition" @@ -218,4 +218,3 @@ Tiltseries ||--|| Run : "run" DatasetFunding ||--|o Dataset : "dataset" ``` - diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 6f161b0f6..5d416f69b 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4207,4 +4207,3 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() - diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 28f06fe67..852f58676 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -5813,4 +5813,3 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() - From 35b05ee2d50090f511323a3da3cff7ad75c3b6d6 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 9 Sep 2024 15:21:41 -0700 Subject: [PATCH 10/59] update ingest schema --- schema/core/v1.1.0/metadata.yaml | 66 +++++++++++++++++++ .../v1.0.0/ingestion_config_models.yaml | 40 +++++++++++ 2 files changed, 106 insertions(+) diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index f6fb0714d..f0e707f06 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -720,3 +720,69 @@ classes: - cdp-common:annotation_version # ============================================================================ + + # ============================================================================ + # Alignment metadata + # ============================================================================ + Alignment: + attributes: + alignment_type: + description: The type of alignment. + range: string + required: true + offset_x: + description: The x offset. + range: integer + required: true + ifabsent: 0 + offset_y: + description: The y offset. + range: integer + required: true + ifabsent: 0 + offset_z: + description: The z offset. + range: integer + required: true + ifabsent: 0 + x_rotation_offset: + description: The x rotation offset. + range: integer + required: true + ifabsent: 0 + tilt_offset: + description: The tilt offset. + range: float + required: true + ifabsent: 0.0 + affine_transformation_matrix: + # use the value in tomogram.affine_transformation_matrix if tomogram.afine_transformation_matrix is defined + description: The flip or rotation transformation of this author submitted tomogram is indicated here + range: float + array: + exact_number_dimensions: 2 + dimensions: + - exact_cardinality: 4 + - exact_cardinality: 4 + ifabsent: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + is_canonical: + description: Whether the alignment is canonical. + range: boolean + required: true + ifabsent: true diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml index dbff7a290..e8ba06f50 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml @@ -201,6 +201,46 @@ classes: # ============================================================================ # Ingestion config classes # ============================================================================ + AlignmentEntity: + description: An alignment entity. + attributes: + metadata: + description: The metadata for the alignment. + range: Alignment + required: true + sources: + description: The sources for the alignment. + multivalued: true + range: AlignmentSource + required: true + + AlignmentSource: + description: An alignment source. + is_a: StandardSource + attributes: + parent_filters: + description: Permitted parent filters for an alignment source. + range: AlignmentParentFilters + + AlignmentParentFilters: + description: Types of parent filters for an alignment source. + attributes: + include: + description: Include files for the parent of an alignment source (regexes). + range: AlignmentParent + exclude: + description: Exclude files for the parent of an alignment source (regexes). + range: AlignmentParent + + AlignmentParent: + description: A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + slots: + - dataset + - deposition + - run + - tomogram + - voxel_spacing + AnnotationEntity: description: An annotation entity. attributes: From 991b9d7e91010d138de5597a487f0affa947757d Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 9 Sep 2024 15:21:56 -0700 Subject: [PATCH 11/59] update ingest config template --- ingestion_tools/dataset_configs/template.yaml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index 16fd1d293..ef38aeaeb 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -1,4 +1,18 @@ # Future TODO: Create example_config.yaml file to show how to use this template. +alignment: OPTIONAL +- metadata: + affine_transformation_matrix: OPTIONAL 4x4 FLOAT MATRIX (DEFAULT 4x4 identity matrix) + - - REQUIRED, FLOAT + - ... (4 ELEMENTS) + - ... (4 ELEMENTS) + alignment_type: REQUIRED, STRING + is_canonical: REQUIRED, BOOLEAN (DEFAULT TRUE) + offset_x: REQUIRED, INTEGER (DEFAULT 0) + offset_y: REQUIRED, INTEGER (DEFAULT 0) + offset_z: REQUIRED, INTEGER (DEFAULT 0) + tilt_offset: REQUIRED, FLOAT (DEFAULT 0.0) + x_rotation_offset: REQUIRED, INTEGER (DEFAULT 0) +- sources: SEE datasets.sources and runs.sources.parent_filters annotations: OPTIONAL - metadata: REQUIRED confidence: OPTIONAL @@ -240,10 +254,6 @@ tiltseries: OPTIONAL - source_glob: SEE dataset.sources.source_glob tomograms: OPTIONAL - metadata: OPTIONAL - affine_transformation_matrix: OPTIONAL 4x4 FLOAT MATRIX (DEFAULT 4x4 identity matrix) - - - REQUIRED, FLOAT - - ... (4 ELEMENTS) - - ... (4 ELEMENTS) align_software: OPTIONAL, STRING # CURRENTLY NOT USED authors: SEE annotations.authors ctf_corrected: RECOMMENDED, BOOLEAN From 06e1ea0112a912f45acc43dd6dcf8650a0b7ddb3 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 9 Sep 2024 15:56:22 -0700 Subject: [PATCH 12/59] add AlignmentImporter --- ingestion_tools/scripts/common/config.py | 1 + ingestion_tools/scripts/importers/aligment.py | 16 ++++++++++++++++ ingestion_tools/scripts/standardize_dirs.py | 4 ++++ 3 files changed, 21 insertions(+) create mode 100644 ingestion_tools/scripts/importers/aligment.py diff --git a/ingestion_tools/scripts/common/config.py b/ingestion_tools/scripts/common/config.py index 7276466f5..4d83d2f92 100644 --- a/ingestion_tools/scripts/common/config.py +++ b/ingestion_tools/scripts/common/config.py @@ -250,6 +250,7 @@ def resolve_output_path(self, key: str, obj: BaseImporter) -> str: "frame": "{dataset_name}/{run_name}/Frames", "rawtilt": "{dataset_name}/{run_name}/TiltSeries", "collection_metadata": "{dataset_name}/{run_name}/TiltSeries", + "alignment": "{dataset_name}/{run_name}/TiltSeries", "annotation": "{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/Annotations", "annotation_metadata": "{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/Annotations", "run_metadata": "{dataset_name}/{run_name}/run_metadata.json", diff --git a/ingestion_tools/scripts/importers/aligment.py b/ingestion_tools/scripts/importers/aligment.py new file mode 100644 index 000000000..78fa6a826 --- /dev/null +++ b/ingestion_tools/scripts/importers/aligment.py @@ -0,0 +1,16 @@ +from common.finders import DefaultImporterFactory +from importers.base_importer import BaseFileImporter + + +class AlignmentImporter(BaseFileImporter): + type_key = "alignment" + plural_key = "alignments" + finder_factory = DefaultImporterFactory + has_metadata = True + + # TODO: check if this is needed? + # def import_metadata(self): + # dest_ts_metadata = self.get_metadata_path() + # base_metadata = self.get_base_metadata() + # metadata = AlignmentMetadata(self.config.fs, self.get_deposition().name, base_metadata) + # metadata.write_metadata(dest_ts_metadata, {}) diff --git a/ingestion_tools/scripts/standardize_dirs.py b/ingestion_tools/scripts/standardize_dirs.py index 99e49c37c..b59541b91 100644 --- a/ingestion_tools/scripts/standardize_dirs.py +++ b/ingestion_tools/scripts/standardize_dirs.py @@ -2,6 +2,8 @@ from typing import Any, Optional import click + +from importers.aligment import AlignmentImporter from importers.annotation import AnnotationImporter from importers.collection_metadata import CollectionMetadataImporter from importers.dataset import DatasetImporter @@ -24,6 +26,7 @@ IMPORTERS = [ AnnotationImporter, + AlignmentImporter, CollectionMetadataImporter, DatasetKeyPhotoImporter, DatasetImporter, @@ -61,6 +64,7 @@ TiltSeriesImporter: {}, RawTiltImporter: {}, CollectionMetadataImporter: {}, + AlignmentImporter: {}, }, DatasetKeyPhotoImporter: {}, }, From e9b190d7511f49647620d93ec4a4e934f1c64aad Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 9 Sep 2024 15:56:43 -0700 Subject: [PATCH 13/59] lint --- ingestion_tools/scripts/standardize_dirs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ingestion_tools/scripts/standardize_dirs.py b/ingestion_tools/scripts/standardize_dirs.py index b59541b91..206f3a805 100644 --- a/ingestion_tools/scripts/standardize_dirs.py +++ b/ingestion_tools/scripts/standardize_dirs.py @@ -2,7 +2,6 @@ from typing import Any, Optional import click - from importers.aligment import AlignmentImporter from importers.annotation import AnnotationImporter from importers.collection_metadata import CollectionMetadataImporter From 847369358ccc245109a7cc3d9ccc8fc9f27f2eb1 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 9 Sep 2024 16:03:00 -0700 Subject: [PATCH 14/59] correct offset format --- ingestion_tools/dataset_configs/template.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index ef38aeaeb..7eb25aad3 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -7,9 +7,10 @@ alignment: OPTIONAL - ... (4 ELEMENTS) alignment_type: REQUIRED, STRING is_canonical: REQUIRED, BOOLEAN (DEFAULT TRUE) - offset_x: REQUIRED, INTEGER (DEFAULT 0) - offset_y: REQUIRED, INTEGER (DEFAULT 0) - offset_z: REQUIRED, INTEGER (DEFAULT 0) + offset: REQUIRED + x: REQUIRED, INTEGER + y: REQUIRED, INTEGER + z: REQUIRED, INTEGER tilt_offset: REQUIRED, FLOAT (DEFAULT 0.0) x_rotation_offset: REQUIRED, INTEGER (DEFAULT 0) - sources: SEE datasets.sources and runs.sources.parent_filters @@ -254,6 +255,10 @@ tiltseries: OPTIONAL - source_glob: SEE dataset.sources.source_glob tomograms: OPTIONAL - metadata: OPTIONAL + affine_transformation_matrix: OPTIONAL 4x4 FLOAT MATRIX (DEFAULT 4x4 identity matrix) + - - REQUIRED, FLOAT + - ... (4 ELEMENTS) + - ... (4 ELEMENTS) align_software: OPTIONAL, STRING # CURRENTLY NOT USED authors: SEE annotations.authors ctf_corrected: RECOMMENDED, BOOLEAN From df622bbe5f18d8b835dec7efc444d4a9880323aa Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 9 Sep 2024 16:50:11 -0700 Subject: [PATCH 15/59] update existing ingestion_configs --- ingestion_tools/dataset_configs/10000.yaml | 6 +- ingestion_tools/dataset_configs/10001.yaml | 6 +- ingestion_tools/dataset_configs/10002.yaml | 8 +- ingestion_tools/dataset_configs/10004.yaml | 10 +- ingestion_tools/dataset_configs/10007.yaml | 6 +- ingestion_tools/dataset_configs/10008.yaml | 10 +- ingestion_tools/dataset_configs/10009.yaml | 10 +- .../dataset_configs/10011_draft.yaml | 6 +- ingestion_tools/dataset_configs/10301.yaml | 8 +- ingestion_tools/dataset_configs/10302.yaml | 8 +- ingestion_tools/dataset_configs/10436.yaml | 813 +++++++------ ingestion_tools/dataset_configs/10437.yaml | 1033 ++++++++++------- ingestion_tools/dataset_configs/10439.yaml | 544 +++++---- .../tests/fixtures/alignment/alignment1.yaml | 83 ++ schema/core/v1.1.0/metadata.yaml | 55 +- 15 files changed, 1551 insertions(+), 1055 deletions(-) create mode 100644 ingestion_tools/scripts/tests/fixtures/alignment/alignment1.yaml diff --git a/ingestion_tools/dataset_configs/10000.yaml b/ingestion_tools/dataset_configs/10000.yaml index 33b588bc0..2190dd5db 100644 --- a/ingestion_tools/dataset_configs/10000.yaml +++ b/ingestion_tools/dataset_configs/10000.yaml @@ -1,3 +1,8 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - metadata/{run_name}.xf annotations: - metadata: annotation_method: Cumulative template-matching trained 2D CNN predictions + visual @@ -443,7 +448,6 @@ rawtilts: - source_multi_glob: list_globs: - metadata/{run_name}.rawtlt - - metadata/{run_name}.xf runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index 4369d886b..29b03b474 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -1,3 +1,8 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - metadata/{run_name}.xf annotations: - metadata: annotation_method: Cumulative template-matching trained 2D CNN predictions + visual @@ -427,7 +432,6 @@ rawtilts: - source_multi_glob: list_globs: - metadata/{run_name}.rawtlt - - metadata/{run_name}.xf runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index 9e16ff5d5..62c8d35b2 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -1,3 +1,8 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - metadata/{run_name}_sq_df_sorted_fid.xf annotations: - metadata: annotation_method: manual segmentation @@ -165,8 +170,7 @@ key_images: rawtilts: - sources: - source_multi_glob: - list_globs: - - metadata/{run_name}_sq_df_sorted_fid.xf + list_globs: [] runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index 42efe5e2b..857207b58 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -1,3 +1,9 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/{run_name}.mdoc-dose_filt.tlt' + - '{run_name}/{run_name}.mdoc-dose_filt.xf' annotations: - metadata: annotation_method: Template matching + 2D classification filtering @@ -164,9 +170,7 @@ key_images: rawtilts: - sources: - source_multi_glob: - list_globs: - - '{run_name}/{run_name}.mdoc-dose_filt.tlt' - - '{run_name}/{run_name}.mdoc-dose_filt.xf' + list_globs: [] runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10007.yaml b/ingestion_tools/dataset_configs/10007.yaml index 6617c658b..b11a5e631 100644 --- a/ingestion_tools/dataset_configs/10007.yaml +++ b/ingestion_tools/dataset_configs/10007.yaml @@ -1,3 +1,8 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/AreTomo/*_dose-filt.xf' annotations: - metadata: annotation_method: crYOLO picking @@ -128,7 +133,6 @@ rawtilts: - source_multi_glob: list_globs: - '{run_name}/*_dose-filt.rawtlt' - - '{run_name}/AreTomo/*_dose-filt.xf' runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index 6795f4401..83ea349e7 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -1,3 +1,9 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.tlt + - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.xf annotations: - metadata: annotation_method: Template matching + manual filtering + 3D classification filtering @@ -168,9 +174,7 @@ key_images: rawtilts: - sources: - source_multi_glob: - list_globs: - - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.tlt - - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.xf + list_globs: [] runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index 82a3521f2..e89428d6a 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -1,3 +1,9 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - Tomo{run_name}/raw_data/imod_metadata/*.tlt + - Tomo{run_name}/raw_data/imod_metadata/*.xf annotations: - metadata: annotation_method: manual picking + line fit + pick on line + CC based filtering @@ -298,9 +304,7 @@ key_images: rawtilts: - sources: - source_multi_glob: - list_globs: - - Tomo{run_name}/raw_data/imod_metadata/*.tlt - - Tomo{run_name}/raw_data/imod_metadata/*.xf + list_globs: [] runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10011_draft.yaml b/ingestion_tools/dataset_configs/10011_draft.yaml index 513c78dd1..7b0d36f1f 100644 --- a/ingestion_tools/dataset_configs/10011_draft.yaml +++ b/ingestion_tools/dataset_configs/10011_draft.yaml @@ -1,3 +1,8 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - metadata/{run_name}.xf annotations: - metadata: annotation_method: REQUIRED @@ -102,7 +107,6 @@ rawtilts: - source_multi_glob: list_globs: - metadata/{run_name}.rawtlt - - metadata/{run_name}.xf runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index cc9ba5ce9..6f60da049 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -1,3 +1,9 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/AreTomo/{run_name}_dose-filt.tlt' + - '{run_name}/AreTomo/{run_name}_dose-filt.xf' annotations: - metadata: annotation_method: Template matching + manual filtering + 3D classification filtering @@ -281,8 +287,6 @@ rawtilts: - source_multi_glob: list_globs: - '{run_name}/{run_name}.rawtlt' - - '{run_name}/AreTomo/{run_name}_dose-filt.tlt' - - '{run_name}/AreTomo/{run_name}_dose-filt.xf' - '{run_name}/ctffind4/ctfphaseflip_ctffind4.txt' runs: - sources: diff --git a/ingestion_tools/dataset_configs/10302.yaml b/ingestion_tools/dataset_configs/10302.yaml index b600fb924..8079d622b 100644 --- a/ingestion_tools/dataset_configs/10302.yaml +++ b/ingestion_tools/dataset_configs/10302.yaml @@ -1,3 +1,9 @@ +alignment: +- sources: + - source_multi_glob: + list_globs: + - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.tlt + - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.xf annotations: [] collection_metadata: - sources: @@ -97,8 +103,6 @@ rawtilts: - source_multi_glob: list_globs: - chlamy_visual_proteomics/{run_name}/{run_name}.rawtlt - - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.tlt - - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.xf - chlamy_visual_proteomics/{run_name}/ctffind4/ctfphaseflip_ctffind4.txt runs: - sources: diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index fd1d5d483..e13de3df7 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -1,379 +1,462 @@ -datasets: - - metadata: - authors: &id001 - - name: Mahrukh Usmani - ORCID: 0000-0002-9479-3800 - primary_author_status: true - corresponding_author_status: true - - name: Nicolas Coudray - ORCID: 0000-0002-6050-2219 - primary_author_status: true - corresponding_author_status: true - - name: Daija Bobe - ORCID: 0000-0002-7388-8907 - - name: Mykhailo Kopylov - ORCID: 0000-0003-0188-9799 - - name: Damian C. Ekiert - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - cell_strain: - name: ATCC-50506 - cell_type: - name: fungal spore - id: CL:0002369 - cross_references: - publications: 10.1101/2024.07.13.603322 - #TODO: Add EMPIAR-12176 once available - related_database_entries: EMD-45674, EMD-45671, EMD-45672, EMD-45673 - dataset_description: This dataset contains raw frames, tilt series, tomogram reconstructions and segmentations from - Encephalitozoon intestinalis microsporidian spores. Samples were cryo-FIB milled. - dataset_identifier: 10436 - dataset_title: Cryo-ET datasets (1 and 2) of dormant microporidian spores from Encephalitozoon intestinalis - dates: &id002 - deposition_date: '2024-07-09' - last_modified_date: '2024-07-24' - release_date: '2024-07-29' - funding: - - funding_agency_name: American Heart Association - grant_id: '915749' - - funding_agency_name: Searle Scholars Program - grant_id: 'SSP-2018-2737' - - funding_agency_name: NIH/NIAID - grant_id: 'R01AI147131' - - funding_agency_name: The Pew Charitable Trusts - grant_id: 'PEW-00033055' - - funding_agency_name: NIH Common Fund Transformative High Resolution Cryo-Electron Microscopy program - grant_id: 'U24 GM129539' - - funding_agency_name: Simons Foundation - grant_id: "SF349247" - - funding_agency_name: NY State Assembly - - funding_agency_name: NIH/NIGMS - grant_id: "9 P41 GM103310" - - funding_agency_name: Irma T. Hirschl Career Scientist Award - grid_preparation: quantifoil 2/2 200mesh, ~20nm evaporated carbon, prepared using waffle method - organism: - name: Encephalitozoon intestinalis - taxonomy_id: 58839 - other_setup: Cryo-FIB milling - sample_preparation: "E. intestinalis spores were purified from infected vero cells, then ran over a discontinuous - percoll gradient to separate out mature spores. For details, (see manuscript: Cryo-ET reveals the in situ - architecture of the polar tube invasion apparatus from microsporidian parasites)" - sample_type: cell - sources: - - literal: - value: - - '10436' +alignment: +- sources: + - source_multi_glob: + list_globs: + - Data_Set_2/{run_name}/aligned_tilt_series/*.st.aln + - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xf + - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.tlt + - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.com annotations: - - metadata: &annotation_metadata - annotation_method: Each organelle was segmented as a separate region of interest in 8X binned tomogram by tracing - + A 3-D reconstruction of each organelle was generated + Reconstructions were converted to contour meshes which - were smoothed - annotation_object: - id: GO:0090642 - name: microsporidian-type exospore - annotation_publications: 10.1101/2024.07.13.603322 - annotation_software: Dragonfly - authors: - - name: Mahrukh Usmani - ORCID: 0000-0002-9479-3800 - primary_author_status: true - corresponding_author_status: true - - name: Harshita Ramchandani - - name: Damian C. Ekiert - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - dates: *id002 - ground_truth_status: true - is_curator_recommended: true - method_type: hybrid - version: 1.0 - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_1/{run_name}/segmentation_masks/Exospore.mrc" - - "Data_Set_2/{run_name}/segmentation_masks/Exospore.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0090641 - name: microsporidian-type endospore - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_1/{run_name}/segmentation_masks/Endospore.mrc" - - "Data_Set_2/{run_name}/segmentation_masks/Endospore.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0005886 - name: plasma membrane - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_1/{run_name}/segmentation_masks/Plasma_Membrane.mrc" - - "Data_Set_2/{run_name}/segmentation_masks/Plasma_Membrane.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0160201 - name: polaroplast - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_2/{run_name}/segmentation_masks/Polaroplast.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0005635 - name: nuclear envelope - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_1/{run_name}/segmentation_masks/Nuclear_Envelope.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0031981 - name: nuclear lumen - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_1/{run_name}/segmentation_masks/Nuclear_Fill.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: M-Layer - description: polar tube M-Layer - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_1/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: OF-Layer - description: polar tube OF-Layer - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_1/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0031160 - name: spore wall - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_1/{run_name}/segmentation_masks/Sporewall.mrc" - is_visualization_default: true - mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + id: GO:0090642 + name: microsporidian-type exospore + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: &id001 + - ORCID: 0000-0002-9479-3800 + corresponding_author_status: true + name: Mahrukh Usmani + primary_author_status: true + - name: Harshita Ramchandani + - ORCID: 0000-0002-2570-0404 + corresponding_author_status: true + name: Damian C. Ekiert + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + dates: &id002 + deposition_date: '2024-07-09' + last_modified_date: '2024-07-24' + release_date: '2024-07-29' + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_1/{run_name}/segmentation_masks/Exospore.mrc + - Data_Set_2/{run_name}/segmentation_masks/Exospore.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + id: GO:0090641 + name: microsporidian-type endospore + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_1/{run_name}/segmentation_masks/Endospore.mrc + - Data_Set_2/{run_name}/segmentation_masks/Endospore.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + id: GO:0005886 + name: plasma membrane + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_1/{run_name}/segmentation_masks/Plasma_Membrane.mrc + - Data_Set_2/{run_name}/segmentation_masks/Plasma_Membrane.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + id: GO:0160201 + name: polaroplast + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_2/{run_name}/segmentation_masks/Polaroplast.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + id: GO:0005635 + name: nuclear envelope + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_1/{run_name}/segmentation_masks/Nuclear_Envelope.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + id: GO:0031981 + name: nuclear lumen + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_1/{run_name}/segmentation_masks/Nuclear_Fill.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + description: polar tube M-Layer + id: GO:0044099 + name: polar tube + state: M-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_1/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + description: polar tube OF-Layer + id: GO:0044099 + name: polar tube + state: OF-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_1/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed + annotation_object: + id: GO:0031160 + name: spore wall + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_1/{run_name}/segmentation_masks/Sporewall.mrc + is_visualization_default: true + mask_label: 1 dataset_keyphotos: - - sources: - - literal: - value: - snapshot: 'cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_1/snapshot.png' - thumbnail: 'cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_1/thumbnail.png' +- sources: + - literal: + value: + snapshot: cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_1/snapshot.png + thumbnail: cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_1/thumbnail.png +datasets: +- metadata: + authors: &id003 + - ORCID: 0000-0002-9479-3800 + corresponding_author_status: true + name: Mahrukh Usmani + primary_author_status: true + - ORCID: 0000-0002-6050-2219 + corresponding_author_status: true + name: Nicolas Coudray + primary_author_status: true + - ORCID: 0000-0002-7388-8907 + name: Daija Bobe + - ORCID: 0000-0003-0188-9799 + name: Mykhailo Kopylov + - ORCID: 0000-0002-2570-0404 + corresponding_author_status: true + name: Damian C. Ekiert + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + cell_strain: + name: ATCC-50506 + cell_type: + id: CL:0002369 + name: fungal spore + cross_references: + publications: 10.1101/2024.07.13.603322 + related_database_entries: EMD-45674, EMD-45671, EMD-45672, EMD-45673 + dataset_description: This dataset contains raw frames, tilt series, tomogram reconstructions + and segmentations from Encephalitozoon intestinalis microsporidian spores. Samples + were cryo-FIB milled. + dataset_identifier: 10436 + dataset_title: Cryo-ET datasets (1 and 2) of dormant microporidian spores from + Encephalitozoon intestinalis + dates: *id002 + funding: + - funding_agency_name: American Heart Association + grant_id: '915749' + - funding_agency_name: Searle Scholars Program + grant_id: SSP-2018-2737 + - funding_agency_name: NIH/NIAID + grant_id: R01AI147131 + - funding_agency_name: The Pew Charitable Trusts + grant_id: PEW-00033055 + - funding_agency_name: NIH Common Fund Transformative High Resolution Cryo-Electron + Microscopy program + grant_id: U24 GM129539 + - funding_agency_name: Simons Foundation + grant_id: SF349247 + - funding_agency_name: NY State Assembly + - funding_agency_name: NIH/NIGMS + grant_id: 9 P41 GM103310 + - funding_agency_name: Irma T. Hirschl Career Scientist Award + grid_preparation: quantifoil 2/2 200mesh, ~20nm evaporated carbon, prepared using + waffle method + organism: + name: Encephalitozoon intestinalis + taxonomy_id: 58839 + other_setup: Cryo-FIB milling + sample_preparation: 'E. intestinalis spores were purified from infected vero cells, + then ran over a discontinuous percoll gradient to separate out mature spores. + For details, (see manuscript: Cryo-ET reveals the in situ architecture of the + polar tube invasion apparatus from microsporidian parasites)' + sample_type: cell + sources: + - literal: + value: + - '10436' depositions: - - metadata: - authors: *id001 - dates: *id002 - deposition_description: This deposition contains three datasets of dormant microsporidian spores from - Encephalitozoon intestinalis and Encephalitozoon hellem. The datasets contain raw frames, tilt series, tomogram - reconstructions and segmentations. Samples were prepared using the waffle-method and cryo-FIB milled. A subset - of runs contains manual and manually curated annotations of spore organelles. - deposition_identifier: 10307 - deposition_title: In situ architecture of the polar tube invasion apparatus from microsporidian parasites - deposition_types: - - dataset - sources: - - literal: - value: - - 10307 +- metadata: + authors: *id003 + dates: *id002 + deposition_description: This deposition contains three datasets of dormant microsporidian + spores from Encephalitozoon intestinalis and Encephalitozoon hellem. The datasets + contain raw frames, tilt series, tomogram reconstructions and segmentations. + Samples were prepared using the waffle-method and cryo-FIB milled. A subset + of runs contains manual and manually curated annotations of spore organelles. + deposition_identifier: 10307 + deposition_title: In situ architecture of the polar tube invasion apparatus from + microsporidian parasites + deposition_types: + - dataset + sources: + - literal: + value: + - 10307 frames: - - sources: - - source_glob: - list_glob: Data_Set_1/{run_name}/raw_frames/*.tif - - source_glob: - list_glob: Data_Set_2/{run_name}/raw_frames/*.tif +- sources: + - source_glob: + list_glob: Data_Set_1/{run_name}/raw_frames/*.tif + - source_glob: + list_glob: Data_Set_2/{run_name}/raw_frames/*.tif +gains: +- sources: + - source_glob: + list_glob: '{gain_ref}' key_images: - - sources: - - source_glob: - list_glob: .*\.jpg +- sources: + - source_glob: + list_glob: .*\.jpg rawtilts: - - sources: - - source_multi_glob: - list_globs: - - Data_Set_2/{run_name}/tilt_series/*.st.rawtlt - - Data_Set_2/{run_name}/aligned_tilt_series/*.st.aln - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xf - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xtilt - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.tlt - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.com - - source_multi_glob: - list_globs: - - Data_Set_1/{run_name}/tilt_series/*.mrc.tlt - - Data_Set_1/{run_name}/aligned_tilt_series/*.st.aln - - Data_Set_1/{run_name}/aligned_tilt_series/*_Imod/*.xf - - Data_Set_1/{run_name}/aligned_tilt_series/*_Imod/*.xtilt - - Data_Set_1/{run_name}/aligned_tilt_series/*_Imod/*.tlt - - Data_Set_1/{run_name}/aligned_tilt_series/*_Imod/*.com +- sources: + - source_multi_glob: + list_globs: + - Data_Set_2/{run_name}/tilt_series/*.st.rawtlt + - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xtilt + - source_multi_glob: + list_globs: + - Data_Set_1/{run_name}/tilt_series/*.mrc.tlt + - Data_Set_1/{run_name}/aligned_tilt_series/*.st.aln + - Data_Set_1/{run_name}/aligned_tilt_series/*_Imod/*.xf + - Data_Set_1/{run_name}/aligned_tilt_series/*_Imod/*.xtilt + - Data_Set_1/{run_name}/aligned_tilt_series/*_Imod/*.tlt + - Data_Set_1/{run_name}/aligned_tilt_series/*_Imod/*.com runs: - - sources: - - source_glob: - list_glob: Data_Set_1/tomo_* - match_regex: tomo_\d{4}$ - name_regex: (tomo_\d{4})$ - - source_glob: - list_glob: Data_Set_2/tomo_* - match_regex: tomo_\d{4}$ - name_regex: (tomo_\d{4})$ +- sources: + - source_glob: + list_glob: Data_Set_1/tomo_* + match_regex: tomo_\d{4}$ + name_regex: (tomo_\d{4})$ + - source_glob: + list_glob: Data_Set_2/tomo_* + match_regex: tomo_\d{4}$ + name_regex: (tomo_\d{4})$ standardization_config: deposition_id: 10307 run_data_map_file: Data_Set_1/run_to_data_map.tsv source_prefix: mahrukh_usmani_06_2024 tiltseries: - - metadata: - acceleration_voltage: 300000 - binning_from_frames: float {tilt_series_binning_from_frames} - camera: - manufacturer: GATAN - model: K3 - data_acquisition_software: "{tilt_series_acquisition_software}" - is_aligned: false - microscope: - manufacturer: FEI - model: TITAN KRIOS - microscope_optical_setup: - energy_filter: Gatan BioQuantum - pixel_spacing: float {tilt_series_pixel_spacing} - spherical_aberration_constant: 2.7 - tilt_axis: float {tilt_series_tilt_axis} - tilt_range: - max: float {tilt_series_max_tilt} - min: float {tilt_series_min_tilt} - tilt_series_quality: int {tilt_series_quality} - tilt_step: 3.0 - tilting_scheme: bi-directional - total_flux: float {tilt_series_total_flux} - sources: - - source_glob: - list_glob: Data_Set_1/{run_name}/tilt_series/*.mrc - match_regex: ^.*\.mrc$ - - source_glob: - list_glob: Data_Set_2/{run_name}/tilt_series/*.st - match_regex: ^.*\.st$ +- metadata: + acceleration_voltage: 300000 + binning_from_frames: float {tilt_series_binning_from_frames} + camera: + manufacturer: GATAN + model: K3 + data_acquisition_software: '{tilt_series_acquisition_software}' + is_aligned: false + microscope: + manufacturer: FEI + model: TITAN KRIOS + microscope_optical_setup: + energy_filter: Gatan BioQuantum + pixel_spacing: float {tilt_series_pixel_spacing} + spherical_aberration_constant: 2.7 + tilt_axis: float {tilt_series_tilt_axis} + tilt_range: + max: float {tilt_series_max_tilt} + min: float {tilt_series_min_tilt} + tilt_series_quality: int {tilt_series_quality} + tilt_step: 3.0 + tilting_scheme: bi-directional + total_flux: float {tilt_series_total_flux} + sources: + - source_glob: + list_glob: Data_Set_1/{run_name}/tilt_series/*.mrc + match_regex: ^.*\.mrc$ + - source_glob: + list_glob: Data_Set_2/{run_name}/tilt_series/*.st + match_regex: ^.*\.st$ tomograms: - - metadata: &tomogram_metadata - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 - authors: &id003 - - name: Mahrukh Usmani - ORCID: 0000-0002-9479-3800 - primary_author_status: true - corresponding_author_status: true - - name: Nicolas Coudray - ORCID: 0000-0002-6050-2219 - primary_author_status: true - corresponding_author_status: true - - name: Damian C. Ekiert - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - ctf_corrected: false - fiducial_alignment_status: NON_FIDUCIAL - offset: - x: 0 - y: 0 - z: 0 - processing: raw - reconstruction_method: SART - reconstruction_software: Aretomo 1.3.0 - tomogram_version: 1 - voxel_spacing: float {tomograms_voxel_spacing} - sources: - - source_glob: - list_glob: Data_Set_1/{run_name}/tomo_rec_4bin_SART/*.mrc - match_regex: (.*)\.mrc - parent_filters: - exclude: - run: - - '^tomo_0001$' - - source_glob: - list_glob: Data_Set_1/tomo_0001/Segmentation_Volumes/series0059_tiltcore-16_volz1600_AlignZ1400_nopatches_tiltaxis270_fixed.mrc - match_regex: (.*)\.mrc - parent_filters: - include: - run: - - '^tomo_0001$' - - source_glob: - list_glob: Data_Set_2/{run_name}/tomo_rec_4bin_SART/*.mrc - match_regex: (.*)\.mrc - +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + authors: + - ORCID: 0000-0002-9479-3800 + corresponding_author_status: true + name: Mahrukh Usmani + primary_author_status: true + - ORCID: 0000-0002-6050-2219 + corresponding_author_status: true + name: Nicolas Coudray + primary_author_status: true + - ORCID: 0000-0002-2570-0404 + corresponding_author_status: true + name: Damian C. Ekiert + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + ctf_corrected: false + fiducial_alignment_status: NON_FIDUCIAL + offset: + x: 0 + y: 0 + z: 0 + processing: raw + reconstruction_method: SART + reconstruction_software: Aretomo 1.3.0 + tomogram_version: 1 + voxel_spacing: float {tomograms_voxel_spacing} + sources: + - parent_filters: + exclude: + run: + - ^tomo_0001$ + source_glob: + list_glob: Data_Set_1/{run_name}/tomo_rec_4bin_SART/*.mrc + match_regex: (.*)\.mrc + - parent_filters: + include: + run: + - ^tomo_0001$ + source_glob: + list_glob: Data_Set_1/tomo_0001/Segmentation_Volumes/series0059_tiltcore-16_volz1600_AlignZ1400_nopatches_tiltaxis270_fixed.mrc + match_regex: (.*)\.mrc + - source_glob: + list_glob: Data_Set_2/{run_name}/tomo_rec_4bin_SART/*.mrc + match_regex: (.*)\.mrc voxel_spacings: - - sources: - - literal: - value: - - float {tomograms_voxel_spacing} - -gains: - - sources: - - source_glob: - list_glob: "{gain_ref}" - -#TODO: Ingest full set of gains when import of multiple files is supported -#(see https://github.com/chanzuckerberg/cryoet-data-portal/issues/947) +- sources: + - literal: + value: + - float {tomograms_voxel_spacing} diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index e4608ea60..342dd329d 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -1,432 +1,629 @@ -datasets: - - metadata: - authors: &id001 - - name: Mahrukh Usmani - ORCID: 0000-0002-9479-3800 - primary_author_status: true - corresponding_author_status: true - - name: Nicolas Coudray - ORCID: 0000-0002-6050-2219 - primary_author_status: true - corresponding_author_status: true - - name: Daija Bobe - ORCID: 0000-0002-7388-8907 - - name: Mykhailo Kopylov - ORCID: 0000-0003-0188-9799 - - name: Damian C. Ekiert - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - cell_strain: - name: ATCC-50506 - cell_type: - name: fungal spore - id: CL:0002369 - cross_references: - publications: 10.1101/2024.07.13.603322 - #TODO: Add EMPIAR-12177 once available - related_database_entries: EMD-45674, EMD-45671, EMD-45672, EMD-45673 - dataset_description: This dataset contains raw frames, tilt series, tomogram reconstructions and segmentations - from Encephalitozoon intestinalis microsporidian spores. Samples were cryo-FIB milled. - dataset_identifier: 10437 - dataset_title: Cryo-ET dataset (3) of dormant microporidian spores from Encephalitozoon intestinalis - dates: &id002 - deposition_date: '2024-07-09' - last_modified_date: '2024-07-24' - release_date: '2024-07-29' - funding: - - funding_agency_name: American Heart Association - grant_id: '915749' - - funding_agency_name: Searle Scholars Program - grant_id: 'SSP-2018-2737' - - funding_agency_name: NIH/NIAID - grant_id: 'R01AI147131' - - funding_agency_name: The Pew Charitable Trusts - grant_id: 'PEW-00033055' - - funding_agency_name: NIH Common Fund Transformative High Resolution Cryo-Electron Microscopy program - grant_id: 'U24 GM129539' - - funding_agency_name: Simons Foundation - grant_id: "SF349247" - - funding_agency_name: NY State Assembly - - funding_agency_name: NIH/NIGMS - grant_id: "9 P41 GM103310" - - funding_agency_name: Irma T. Hirschl Career Scientist Award - grid_preparation: quantifoil 2/2 200mesh, ~20nm evaporated carbon,prepared using waffle method - organism: - name: Encephalitozoon intestinalis - taxonomy_id: 58839 - other_setup: Cryo-FIB milling - sample_preparation: "E. intestinalis spores were purified from infected vero cells. (For method details see: - Cryo-ET reveals the in situ architecture of the polar tube invasion apparatus from microsporidian parasites)" - sample_type: cell - sources: - - literal: - value: - - '10437' +alignment: +- sources: + - source_multi_glob: + list_globs: + - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xf + - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.tlt + - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.com annotations: - - metadata: &annotation_metadata - annotation_method: Manually annotate 5 slices of object of interest on 8X binned tomogram+ Train a 2D U net model - with DICE Loss in segmentation wizard of dragonfly + Use trained model to predict segmentation for all slices - in the tomogram + manually correct any aberrations, then retrain + Overlay predicted segmentations with raw - slices and perform any clean up manually + convert to contour meshes and smooth - annotation_object: - id: GO:0090642 - name: microsporidian-type exospore - annotation_publications: 10.1101/2024.07.13.603322 - annotation_software: Dragonfly - authors: - - name: Mahrukh Usmani - ORCID: 0000-0002-9479-3800 - primary_author_status: true - corresponding_author_status: true - - name: Harshita Ramchandani - - name: Rishwanth Raghu - ORCID: 0009-0006-6651-142X - - name: Ellen D. Zhong - ORCID: 0000-0001-6345-1907 - - name: Damian C. Ekiert - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - dates: *id002 - ground_truth_status: false - is_curator_recommended: true - method_type: hybrid - version: 1.0 - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Exospore.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0090641 - name: microsporidian-type endospore - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Endospore.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0005886 - name: plasma membrane - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Plasma_Membrane.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0160202 - name: polar tube anchoring disc - description: anchoring disc lumen - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Anchoring_Disk_Fill.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0160202 - name: polar tube anchoring disc - description: anchoring disc boundary - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Anchoring_Disk_Outline.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0160201 - name: polaroplast - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Polaroplast.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0160201 - name: polaroplast - description: vesicles in polaroplast - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Vesicles_in_Polaroplast.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0005635 - name: nuclear envelope - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Nuclear_Envelope.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0031981 - name: nuclear lumen - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Nuclear_Fill.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: M-Layer - description: polar tube M-Layer - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: M-Layer - description: polar tube M-Layer, top coils only - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_M-Layer_TopCoilsOnly.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: OF-Layer - description: polar tube OF-Layer - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: OF-Layer - description: polar tube OF-Layer, straight portion - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_Straight_Portion.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - description: polar tube, unknown cluster - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_Unknown_Cluster.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0110165 - name: cellular anatomical entity - description: unknown structure - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Unknown_Structure.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0031982 - name: vesicle - description: extra-membranous vesicle - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_3/{run_name}/segmentation_masks/Extra_Membranous_Vesicles.mrc" - is_visualization_default: true - mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + id: GO:0090642 + name: microsporidian-type exospore + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: &id001 + - ORCID: 0000-0002-9479-3800 + corresponding_author_status: true + name: Mahrukh Usmani + primary_author_status: true + - name: Harshita Ramchandani + - ORCID: 0009-0006-6651-142X + name: Rishwanth Raghu + - ORCID: 0000-0001-6345-1907 + name: Ellen D. Zhong + - ORCID: 0000-0002-2570-0404 + corresponding_author_status: true + name: Damian C. Ekiert + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + dates: &id002 + deposition_date: '2024-07-09' + last_modified_date: '2024-07-24' + release_date: '2024-07-29' + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Exospore.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + id: GO:0090641 + name: microsporidian-type endospore + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Endospore.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + id: GO:0005886 + name: plasma membrane + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Plasma_Membrane.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: anchoring disc lumen + id: GO:0160202 + name: polar tube anchoring disc + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Anchoring_Disk_Fill.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: anchoring disc boundary + id: GO:0160202 + name: polar tube anchoring disc + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Anchoring_Disk_Outline.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + id: GO:0160201 + name: polaroplast + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Polaroplast.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: vesicles in polaroplast + id: GO:0160201 + name: polaroplast + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Vesicles_in_Polaroplast.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + id: GO:0005635 + name: nuclear envelope + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Nuclear_Envelope.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + id: GO:0031981 + name: nuclear lumen + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Nuclear_Fill.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: polar tube M-Layer + id: GO:0044099 + name: polar tube + state: M-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: polar tube M-Layer, top coils only + id: GO:0044099 + name: polar tube + state: M-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_M-Layer_TopCoilsOnly.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: polar tube OF-Layer + id: GO:0044099 + name: polar tube + state: OF-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: polar tube OF-Layer, straight portion + id: GO:0044099 + name: polar tube + state: OF-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_Straight_Portion.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: polar tube, unknown cluster + id: GO:0044099 + name: polar tube + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_Unknown_Cluster.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: unknown structure + id: GO:0110165 + name: cellular anatomical entity + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Unknown_Structure.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Manually annotate 5 slices of object of interest on 8X binned + tomogram+ Train a 2D U net model with DICE Loss in segmentation wizard of dragonfly + + Use trained model to predict segmentation for all slices in the tomogram + + manually correct any aberrations, then retrain + Overlay predicted segmentations + with raw slices and perform any clean up manually + convert to contour meshes + and smooth + annotation_object: + description: extra-membranous vesicle + id: GO:0031982 + name: vesicle + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: false + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_3/{run_name}/segmentation_masks/Extra_Membranous_Vesicles.mrc + is_visualization_default: true + mask_label: 1 dataset_keyphotos: - - sources: - - literal: - value: - snapshot: 'cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_3/snapshot.png' - thumbnail: 'cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_3/thumbnail.png' +- sources: + - literal: + value: + snapshot: cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_3/snapshot.png + thumbnail: cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_3/thumbnail.png +datasets: +- metadata: + authors: + - ORCID: 0000-0002-9479-3800 + corresponding_author_status: true + name: Mahrukh Usmani + primary_author_status: true + - ORCID: 0000-0002-6050-2219 + corresponding_author_status: true + name: Nicolas Coudray + primary_author_status: true + - ORCID: 0000-0002-7388-8907 + name: Daija Bobe + - ORCID: 0000-0003-0188-9799 + name: Mykhailo Kopylov + - ORCID: 0000-0002-2570-0404 + corresponding_author_status: true + name: Damian C. Ekiert + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + cell_strain: + name: ATCC-50506 + cell_type: + id: CL:0002369 + name: fungal spore + cross_references: + publications: 10.1101/2024.07.13.603322 + related_database_entries: EMD-45674, EMD-45671, EMD-45672, EMD-45673 + dataset_description: This dataset contains raw frames, tilt series, tomogram reconstructions + and segmentations from Encephalitozoon intestinalis microsporidian spores. Samples + were cryo-FIB milled. + dataset_identifier: 10437 + dataset_title: Cryo-ET dataset (3) of dormant microporidian spores from Encephalitozoon + intestinalis + dates: *id002 + funding: + - funding_agency_name: American Heart Association + grant_id: '915749' + - funding_agency_name: Searle Scholars Program + grant_id: SSP-2018-2737 + - funding_agency_name: NIH/NIAID + grant_id: R01AI147131 + - funding_agency_name: The Pew Charitable Trusts + grant_id: PEW-00033055 + - funding_agency_name: NIH Common Fund Transformative High Resolution Cryo-Electron + Microscopy program + grant_id: U24 GM129539 + - funding_agency_name: Simons Foundation + grant_id: SF349247 + - funding_agency_name: NY State Assembly + - funding_agency_name: NIH/NIGMS + grant_id: 9 P41 GM103310 + - funding_agency_name: Irma T. Hirschl Career Scientist Award + grid_preparation: quantifoil 2/2 200mesh, ~20nm evaporated carbon,prepared using + waffle method + organism: + name: Encephalitozoon intestinalis + taxonomy_id: 58839 + other_setup: Cryo-FIB milling + sample_preparation: 'E. intestinalis spores were purified from infected vero cells. + (For method details see: Cryo-ET reveals the in situ architecture of the polar + tube invasion apparatus from microsporidian parasites)' + sample_type: cell + sources: + - literal: + value: + - '10437' depositions: - - sources: - - literal: - value: - - 10307 +- sources: + - literal: + value: + - 10307 frames: - - sources: - - source_glob: - list_glob: Data_Set_3/{run_name}/raw_frames/*.tif +- sources: + - source_glob: + list_glob: Data_Set_3/{run_name}/raw_frames/*.tif +gains: +- sources: + - source_glob: + list_glob: '{gain_ref}' key_images: - - sources: - - source_glob: - list_glob: .*\.jpg +- sources: + - source_glob: + list_glob: .*\.jpg rawtilts: - - sources: - - source_multi_glob: - list_globs: - - Data_Set_3/{run_name}/tilt_series/*.mrc.rawtlt - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xf - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xtilt - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.tlt - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.com +- sources: + - source_multi_glob: + list_globs: + - Data_Set_3/{run_name}/tilt_series/*.mrc.rawtlt + - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xtilt runs: - - sources: - - source_glob: - list_glob: Data_Set_3/tomo_* - match_regex: tomo_\d{4}$ - name_regex: (tomo_\d{4})$ +- sources: + - source_glob: + list_glob: Data_Set_3/tomo_* + match_regex: tomo_\d{4}$ + name_regex: (tomo_\d{4})$ standardization_config: deposition_id: 10307 run_data_map_file: Data_Set_3/run_to_data_map.tsv source_prefix: mahrukh_usmani_06_2024 tiltseries: - - metadata: - acceleration_voltage: 300000 - binning_from_frames: 1 - camera: - manufacturer: GATAN - model: K3 - data_acquisition_software: SerialEM - is_aligned: false - microscope: - manufacturer: FEI - model: TITAN KRIOS - microscope_optical_setup: - energy_filter: Gatan BioQuantum - pixel_spacing: 3.431 - spherical_aberration_constant: 2.7 - tilt_axis: 80 - tilt_range: - max: float {tilt_series_max_tilt} - min: float {tilt_series_min_tilt} - tilt_series_quality: int {tilt_series_quality} - tilt_step: 3.0 - tilting_scheme: dose-symmetric - total_flux: float {tilt_series_total_flux} - sources: - - source_glob: - list_glob: Data_Set_3/{run_name}/tilt_series/*.st - match_regex: ^.*\.st$ +- metadata: + acceleration_voltage: 300000 + binning_from_frames: 1 + camera: + manufacturer: GATAN + model: K3 + data_acquisition_software: SerialEM + is_aligned: false + microscope: + manufacturer: FEI + model: TITAN KRIOS + microscope_optical_setup: + energy_filter: Gatan BioQuantum + pixel_spacing: 3.431 + spherical_aberration_constant: 2.7 + tilt_axis: 80 + tilt_range: + max: float {tilt_series_max_tilt} + min: float {tilt_series_min_tilt} + tilt_series_quality: int {tilt_series_quality} + tilt_step: 3.0 + tilting_scheme: dose-symmetric + total_flux: float {tilt_series_total_flux} + sources: + - source_glob: + list_glob: Data_Set_3/{run_name}/tilt_series/*.st + match_regex: ^.*\.st$ tomograms: - - metadata: &tomogram_metadata - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 - authors: &id003 - - name: Mahrukh Usmani - ORCID: 0000-0002-9479-3800 - primary_author_status: true - corresponding_author_status: true - - name: Nicolas Coudray - ORCID: 0000-0002-6050-2219 - primary_author_status: true - corresponding_author_status: true - - name: Damian C. Ekiert - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - ctf_corrected: false - fiducial_alignment_status: NON_FIDUCIAL - offset: - x: 0 - y: 0 - z: 0 - processing: raw - reconstruction_method: SART - reconstruction_software: Aretomo 1.3.0 - tomogram_version: 1 - voxel_spacing: 13.72 - sources: - - source_glob: - list_glob: Data_Set_3/{run_name}/tomo_rec_4bin_SART/*.mrc - match_regex: (.*)\.mrc +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + authors: + - ORCID: 0000-0002-9479-3800 + corresponding_author_status: true + name: Mahrukh Usmani + primary_author_status: true + - ORCID: 0000-0002-6050-2219 + corresponding_author_status: true + name: Nicolas Coudray + primary_author_status: true + - ORCID: 0000-0002-2570-0404 + corresponding_author_status: true + name: Damian C. Ekiert + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + ctf_corrected: false + fiducial_alignment_status: NON_FIDUCIAL + offset: + x: 0 + y: 0 + z: 0 + processing: raw + reconstruction_method: SART + reconstruction_software: Aretomo 1.3.0 + tomogram_version: 1 + voxel_spacing: 13.72 + sources: + - source_glob: + list_glob: Data_Set_3/{run_name}/tomo_rec_4bin_SART/*.mrc + match_regex: (.*)\.mrc voxel_spacings: - - sources: - - literal: - value: - - 13.72 -gains: - - sources: - - source_glob: - list_glob: '{gain_ref}' - -#TODO: Ingest full set of gains when import of multiple files is supported -#(see https://github.com/chanzuckerberg/cryoet-data-portal/issues/947) +- sources: + - literal: + value: + - 13.72 diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index 1d3f42262..458424e25 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -1,255 +1,325 @@ -datasets: - - metadata: - authors: &id001 - - name: Jonathan Schwartz - ORCID: 0000-0002-8063-6951 - primary_author_status: true - - name: Bridget Carragher - ORCID: 0000-0002-0624-5020 - corresponding_author_status: true - cross_references: - publications: 10.1109/TMI.2024.3398401 - related_database_entries: PDB-6MRD, PDB-1ZEF, PDB-6UPH, PDB-7TM3, PDB-7PKZ, PDB-6NK5 - dataset_description: This dataset is comprised of simulated tiltseries, tomograms and ground truth annotations for - the purpose of benchmarking and training particle picking algorithms for cryoET. The data was simulated - using polnet. - dataset_identifier: 10439 - dataset_title: CZ Imaging Institute simulated dataset 1 - dates: &id002 - deposition_date: '2024-08-21' - last_modified_date: '2024-08-21' - release_date: '2024-08-21' - funding: - - funding_agency_name: Chan Zuckerberg Initiative - grant_id: 'CZII-2023–327779' - grid_preparation: "" - sample_preparation: "Simulation of 3D volumes with polnet + projection using IMOD's xyzproj + addition of noise - + reconstruction with IMOD's tilt" - sample_type: in_silico - sources: - - literal: - value: - - '10439' +alignment: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/TiltSeries/*.tlt' + - '{run_name}/TiltSeries/*.xf' annotations: - - metadata: &annotation_metadata - annotation_method: "polnet-simulated ground truth" - annotation_object: - id: GO:0016020 - name: membrane - annotation_publications: 10.1109/TMI.2024.3398401 - annotation_software: polnet - authors: *id001 - dates: *id002 - ground_truth_status: true - is_curator_recommended: true - method_type: hybrid - version: 1.0 - sources: - - SemanticSegmentationMask: &segmentation_mask_source - file_format: mrc - is_visualization_default: true - mask_label: 1 - glob_strings: - - "{run_name}/Segmentations/ground_truth.mrc" - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:1990220 - name: GroEL-GroES complex - annotation_publications: 10.1109/TMI.2024.3398401, PDB-6MRD - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 2 - - OrientedPoint: &oriented_point_source - binning: 10 - file_format: relion3_star - is_visualization_default: true - order: xyz - glob_strings: - - "{run_name}/Picks/adp-mitochondrial.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: UniProtKB:P05187 - name: "Alkaline phosphatase, placental type" - annotation_publications: 10.1109/TMI.2024.3398401, PDB-1ZEF - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 3 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/alkaline-phosphatase.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0000786 - name: nucleosome - annotation_publications: 10.1109/TMI.2024.3398401, PDB-6UPH - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 4 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/nucleosome.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0022626 - name: cytosolic ribosome - annotation_publications: 10.1109/TMI.2024.3398401, PDB-7TM3 - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 5 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/ribosome.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: UniProtKB:Q62667 - name: Major vault protein - annotation_publications: 10.1109/TMI.2024.3398401, PDB-7PKZ - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 6 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/vault.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0170047 - name: virus-like capsid - description: Chikungunya VLP - annotation_publications: 10.1109/TMI.2024.3398401, PDB-6NK5 - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 7 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/virus-like-particle.star" +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: GO:0016020 + name: membrane + annotation_publications: 10.1109/TMI.2024.3398401 + annotation_software: polnet + authors: &id001 + - ORCID: 0000-0002-8063-6951 + name: Jonathan Schwartz + primary_author_status: true + - ORCID: 0000-0002-0624-5020 + corresponding_author_status: true + name: Bridget Carragher + dates: &id002 + deposition_date: '2024-08-21' + last_modified_date: '2024-08-21' + release_date: '2024-08-21' + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: &id003 + - '{run_name}/Segmentations/ground_truth.mrc' + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: GO:1990220 + name: GroEL-GroES complex + annotation_publications: 10.1109/TMI.2024.3398401, PDB-6MRD + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id003 + is_visualization_default: true + mask_label: 2 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/adp-mitochondrial.star' + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: UniProtKB:P05187 + name: Alkaline phosphatase, placental type + annotation_publications: 10.1109/TMI.2024.3398401, PDB-1ZEF + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id003 + is_visualization_default: true + mask_label: 3 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/alkaline-phosphatase.star' + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: GO:0000786 + name: nucleosome + annotation_publications: 10.1109/TMI.2024.3398401, PDB-6UPH + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id003 + is_visualization_default: true + mask_label: 4 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/nucleosome.star' + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: GO:0022626 + name: cytosolic ribosome + annotation_publications: 10.1109/TMI.2024.3398401, PDB-7TM3 + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id003 + is_visualization_default: true + mask_label: 5 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/ribosome.star' + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: UniProtKB:Q62667 + name: Major vault protein + annotation_publications: 10.1109/TMI.2024.3398401, PDB-7PKZ + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id003 + is_visualization_default: true + mask_label: 6 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/vault.star' + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + description: Chikungunya VLP + id: GO:0170047 + name: virus-like capsid + annotation_publications: 10.1109/TMI.2024.3398401, PDB-6NK5 + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id003 + is_visualization_default: true + mask_label: 7 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/virus-like-particle.star' + is_visualization_default: true + order: xyz dataset_keyphotos: - sources: - literal: value: snapshot: null thumbnail: null - +datasets: +- metadata: + authors: *id001 + cross_references: + publications: 10.1109/TMI.2024.3398401 + related_database_entries: PDB-6MRD, PDB-1ZEF, PDB-6UPH, PDB-7TM3, PDB-7PKZ, + PDB-6NK5 + dataset_description: This dataset is comprised of simulated tiltseries, tomograms + and ground truth annotations for the purpose of benchmarking and training particle + picking algorithms for cryoET. The data was simulated using polnet. + dataset_identifier: 10439 + dataset_title: CZ Imaging Institute simulated dataset 1 + dates: *id002 + funding: + - funding_agency_name: Chan Zuckerberg Initiative + grant_id: "CZII-2023\u2013327779" + grid_preparation: '' + sample_preparation: Simulation of 3D volumes with polnet + projection using IMOD's + xyzproj + addition of noise + reconstruction with IMOD's tilt + sample_type: in_silico + sources: + - literal: + value: + - '10439' depositions: - - metadata: - authors: *id001 - dates: *id002 - deposition_description: This deposition includes simulated data for the evaluation of particle picking - algorithms. The simulated data was generated using polnet and includes tilt series, tomograms and ground truth - annotations (oriented points, as well as segmentation masks). - deposition_identifier: 10309 - deposition_title: CZ Imaging Institute simulated data - deposition_types: - - dataset - sources: - - literal: - value: - - 10309 - +- metadata: + authors: *id001 + dates: *id002 + deposition_description: This deposition includes simulated data for the evaluation + of particle picking algorithms. The simulated data was generated using polnet + and includes tilt series, tomograms and ground truth annotations (oriented points, + as well as segmentation masks). + deposition_identifier: 10309 + deposition_title: CZ Imaging Institute simulated data + deposition_types: + - dataset + sources: + - literal: + value: + - 10309 frames: [] - +gains: [] key_images: - - sources: - - source_glob: - list_glob: .*\.jpg +- sources: + - source_glob: + list_glob: .*\.jpg rawtilts: - - sources: - - source_multi_glob: - list_globs: - - '{run_name}/TiltSeries/*.tlt' - - '{run_name}/TiltSeries/*.xf' +- sources: + - source_multi_glob: + list_globs: [] runs: - - sources: - - source_glob: - list_glob: TS_* - match_regex: TS_\d{1,2}$ - name_regex: (TS_\d{1,2})$ - +- sources: + - source_glob: + list_glob: TS_* + match_regex: TS_\d{1,2}$ + name_regex: (TS_\d{1,2})$ standardization_config: deposition_id: 10439 source_prefix: CZII/202408_simulated_1 - tiltseries: - - metadata: - acceleration_voltage: 300000 - binning_from_frames: 1 - aligned_tiltseries_binning: 1 - camera: - manufacturer: simulated - model: simulated - data_acquisition_software: polnet - is_aligned: true - microscope: - manufacturer: SIMULATED - model: simulated - microscope_optical_setup: - energy_filter: None - pixel_spacing: 10.000 - spherical_aberration_constant: 2.7 - tilt_axis: 0.0 - tilt_range: - max: 45 - min: -45 - tilt_series_quality: 5 - tilt_step: 3.0 - tilting_scheme: simulated - total_flux: 100 - sources: - - source_glob: - list_glob: '{run_name}/TiltSeries/tilt_series.mrc' +- metadata: + acceleration_voltage: 300000 + aligned_tiltseries_binning: 1 + binning_from_frames: 1 + camera: + manufacturer: simulated + model: simulated + data_acquisition_software: polnet + is_aligned: true + microscope: + manufacturer: SIMULATED + model: simulated + microscope_optical_setup: + energy_filter: None + pixel_spacing: 10.0 + spherical_aberration_constant: 2.7 + tilt_axis: 0.0 + tilt_range: + max: 45 + min: -45 + tilt_series_quality: 5 + tilt_step: 3.0 + tilting_scheme: simulated + total_flux: 100 + sources: + - source_glob: + list_glob: '{run_name}/TiltSeries/tilt_series.mrc' tomograms: - - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 - authors: *id001 - ctf_corrected: true - fiducial_alignment_status: NON_FIDUCIAL - offset: - x: 0 - y: 0 - z: 0 - processing: raw - reconstruction_method: WBP - reconstruction_software: IMOD - tomogram_version: 1 - voxel_spacing: 10.000 - sources: - - source_glob: - list_glob: '{run_name}/VoxelSpacing10.000/wbp.mrc' +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + authors: *id001 + ctf_corrected: true + fiducial_alignment_status: NON_FIDUCIAL + offset: + x: 0 + y: 0 + z: 0 + processing: raw + reconstruction_method: WBP + reconstruction_software: IMOD + tomogram_version: 1 + voxel_spacing: 10.0 + sources: + - source_glob: + list_glob: '{run_name}/VoxelSpacing10.000/wbp.mrc' voxel_spacings: - - sources: - - literal: - value: - - 10.000 -gains: [] +- sources: + - literal: + value: + - 10.0 diff --git a/ingestion_tools/scripts/tests/fixtures/alignment/alignment1.yaml b/ingestion_tools/scripts/tests/fixtures/alignment/alignment1.yaml new file mode 100644 index 000000000..361c14697 --- /dev/null +++ b/ingestion_tools/scripts/tests/fixtures/alignment/alignment1.yaml @@ -0,0 +1,83 @@ +alignment: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + alignment_type: +- sources: + - source_multi_glob: + list_glob: + - metadata/{run_name}.xf +datasets: +- metadata: + authors: &id002 + - ORCID: 0000-0001-0001-0001 + name: Author 1 + primary_author_status: true + - ORCID: 0000-0002-0002-0002 + name: Author 2 + - ORCID: 0000-0003-0003-0003 + corresponding_author_status: true + name: Author 3 + cell_component: + id: null + name: null + cell_strain: + id: https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=88888 + name: Strain 1 + cross_references: &id003 + publications: doi:10.1101/2022.01.01.00001 + related_database_entries: EMPIAR-00001, EMD-00001, EMD-00002 + dataset_description: Description for Dataset 1 + dataset_identifier: 10001 + dataset_title: Dataset 1 + dates: *id001 + funding: + - funding_agency_name: Super Funding Agency + grant_id: '100001' + grid_preparation: 'material: COPPER,' + organism: + name: Organism 1 + taxonomy_id: 9999 + sample_preparation: 'buffer_ph: 7.0' + sample_type: organism + sources: + - literal: + value: + - '10001' +depositions: +- metadata: + authors: *id002 + cross_references: *id003 + deposition_description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed" + deposition_identifier: 10301 + deposition_title: Deposition 1 + dates: *id001 + sources: + - literal: + value: + - '10301' +runs: +- sources: + - source_glob: + list_glob: tomograms/TS_*.rec + match_regex: .* + name_regex: (.*).rec +standardization_config: + deposition_id: 10001 + run_to_tomo_map_csv: null + source_prefix: input_bucket/10001_input diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index f0e707f06..c3b8c361a 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -671,6 +671,7 @@ classes: # ============================================================================ # annotation_metadata.json # ============================================================================ + Annotation: description: Metadata describing an annotation. mixins: @@ -724,34 +725,56 @@ classes: # ============================================================================ # Alignment metadata # ============================================================================ + + AlignmentOffset: + description: &desc_alignment_offset The offset of a alignment in voxels in each dimension relative to the canonical tomogram. + attributes: + x: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: x offset relative to the canonical tomogram in pixels + unit: + descriptive_name: pixels + symbol: px + y: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: y offset relative to the canonical tomogram in pixels + unit: + descriptive_name: pixels + symbol: px + z: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: z offset relative to the canonical tomogram in pixels + unit: + descriptive_name: pixels + symbol: px + + Alignment: attributes: alignment_type: description: The type of alignment. range: string required: true - offset_x: - description: The x offset. - range: integer - required: true - ifabsent: 0 - offset_y: - description: The y offset. - range: integer - required: true - ifabsent: 0 - offset_z: - description: The z offset. - range: integer + offset: + description: *desc_alignment_offset + range: AlignmentOffset required: true - ifabsent: 0 x_rotation_offset: - description: The x rotation offset. + description: The x rotation offset relative to the tomogram. range: integer required: true ifabsent: 0 tilt_offset: - description: The tilt offset. + description: The tilt offset relative to the tomogram. range: float required: true ifabsent: 0.0 From 49e929078e82215299db8e2d8f8105e264f2a9a8 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Wed, 11 Sep 2024 15:43:02 -0700 Subject: [PATCH 16/59] Add alignment to ingest_config validation --- ingestion_tools/dataset_configs/template.yaml | 19 +- .../v1.1.0/codegen/metadata_materialized.yaml | 191 ++++- schema/core/v1.1.0/codegen/metadata_models.py | 202 ++++- schema/core/v1.1.0/metadata.yaml | 86 +- .../v1.0.0/codegen/ingestion_config_models.py | 741 +++++++++++++++--- .../ingestion_config_models.schema.json | 349 ++++++++- .../ingestion_config_models_materialized.yaml | 450 +++++++++++ .../v1.0.0/ingestion_config_models.yaml | 44 ++ .../ingestion_config_models_extended.py | 70 +- 9 files changed, 1964 insertions(+), 188 deletions(-) diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index 16fd1d293..7c62140e7 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -1,4 +1,19 @@ # Future TODO: Create example_config.yaml file to show how to use this template. +alignments: OPTIONAL +- metadata: + affine_transformation_matrix: OPTIONAL 4x4 FLOAT MATRIX (DEFAULT 4x4 identity matrix) + - - REQUIRED, FLOAT + - ... (4 ELEMENTS) + - ... (4 ELEMENTS) + alignment_type: REQUIRED, STRING + is_canonical: REQUIRED, BOOLEAN (DEFAULT TRUE) + offset: REQUIRED + x: REQUIRED, INTEGER + y: REQUIRED, INTEGER + z: REQUIRED, INTEGER + tilt_offset: REQUIRED, FLOAT (DEFAULT 0.0) + x_rotation_offset: REQUIRED, INTEGER (DEFAULT 0) +- sources: SEE datasets.sources and runs.sources.parent_filters annotations: OPTIONAL - metadata: REQUIRED confidence: OPTIONAL @@ -240,10 +255,6 @@ tiltseries: OPTIONAL - source_glob: SEE dataset.sources.source_glob tomograms: OPTIONAL - metadata: OPTIONAL - affine_transformation_matrix: OPTIONAL 4x4 FLOAT MATRIX (DEFAULT 4x4 identity matrix) - - - REQUIRED, FLOAT - - ... (4 ELEMENTS) - - ... (4 ELEMENTS) align_software: OPTIONAL, STRING # CURRENTLY NOT USED authors: SEE annotations.authors ctf_corrected: RECOMMENDED, BOOLEAN diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index e8bbe0f38..81b614900 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -2242,6 +2242,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentOffset range: integer required: true inlined: true @@ -2259,6 +2260,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentOffset range: integer required: true inlined: true @@ -2277,6 +2279,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentOffset range: integer required: true inlined: true @@ -2300,6 +2303,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentOffset range: Any required: true inlined: true @@ -2320,6 +2324,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentOffset range: Any required: true inlined: true @@ -2340,6 +2345,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentOffset range: Any required: true inlined: true @@ -2513,23 +2519,6 @@ classes: required: true inlined: true inlined_as_list: true - affine_transformation_matrix: - name: affine_transformation_matrix - description: The flip or rotation transformation of this author submitted - tomogram is indicated here - from_schema: metadata - array: - exact_number_dimensions: 2 - dimensions: - - exact_cardinality: 4 - - exact_cardinality: 4 - alias: affine_transformation_matrix - owner: Tomogram - domain_of: - - Tomogram - range: float - inlined: true - inlined_as_list: true size: name: size description: The size of a tomogram in voxels in each dimension. @@ -2550,6 +2539,7 @@ classes: owner: Tomogram domain_of: - Tomogram + - Alignment range: TomogramOffset required: true inlined: true @@ -3698,6 +3688,173 @@ classes: inlined: true inlined_as_list: true minimum_cardinality: 1 + AlignmentOffset: + name: AlignmentOffset + description: The offset of a alignment in voxels in each dimension relative to + the canonical tomogram. + from_schema: metadata + attributes: + x: + name: x + description: x offset relative to the canonical tomogram in pixels + from_schema: metadata + ifabsent: int(0) + alias: x + owner: AlignmentOffset + domain_of: + - TomogramSize + - TomogramOffset + - AlignmentOffset + range: Any + required: true + inlined: true + inlined_as_list: true + pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ + unit: + symbol: px + descriptive_name: pixels + any_of: + - range: integer + - range: IntegerFormattedString + y: + name: y + description: y offset relative to the canonical tomogram in pixels + from_schema: metadata + ifabsent: int(0) + alias: y + owner: AlignmentOffset + domain_of: + - TomogramSize + - TomogramOffset + - AlignmentOffset + range: Any + required: true + inlined: true + inlined_as_list: true + pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ + unit: + symbol: px + descriptive_name: pixels + any_of: + - range: integer + - range: IntegerFormattedString + z: + name: z + description: z offset relative to the canonical tomogram in pixels + from_schema: metadata + ifabsent: int(0) + alias: z + owner: AlignmentOffset + domain_of: + - TomogramSize + - TomogramOffset + - AlignmentOffset + range: Any + required: true + inlined: true + inlined_as_list: true + pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ + unit: + symbol: px + descriptive_name: pixels + any_of: + - range: integer + - range: IntegerFormattedString + Alignment: + name: Alignment + from_schema: metadata + attributes: + alignment_type: + name: alignment_type + description: The type of alignment. + from_schema: metadata + alias: alignment_type + owner: Alignment + domain_of: + - Alignment + range: Any + required: true + inlined: true + inlined_as_list: true + pattern: ^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ + any_of: + - range: string + - range: StringFormattedString + offset: + name: offset + description: The offset of a alignment in voxels in each dimension relative + to the canonical tomogram. + from_schema: metadata + alias: offset + owner: Alignment + domain_of: + - Tomogram + - Alignment + range: AlignmentOffset + required: true + inlined: true + inlined_as_list: true + x_rotation_offset: + name: x_rotation_offset + description: The x rotation offset relative to the tomogram. + from_schema: metadata + ifabsent: int(0) + alias: x_rotation_offset + owner: Alignment + domain_of: + - Alignment + range: Any + required: true + inlined: true + inlined_as_list: true + pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ + any_of: + - range: integer + - range: IntegerFormattedString + tilt_offset: + name: tilt_offset + description: The tilt offset relative to the tomogram. + from_schema: metadata + ifabsent: float(0.0) + alias: tilt_offset + owner: Alignment + domain_of: + - Alignment + range: float + required: true + inlined: true + inlined_as_list: true + affine_transformation_matrix: + name: affine_transformation_matrix + description: The flip or rotation transformation of this author submitted + tomogram is indicated here. The default value if not present, is an identity + matrix. + from_schema: metadata + array: + exact_number_dimensions: 2 + dimensions: + - exact_cardinality: 4 + - exact_cardinality: 4 + alias: affine_transformation_matrix + owner: Alignment + domain_of: + - Alignment + range: float + inlined: true + inlined_as_list: true + is_canonical: + name: is_canonical + description: Whether the alignment is canonical. + from_schema: metadata + ifabsent: 'True' + alias: is_canonical + owner: Alignment + domain_of: + - Alignment + range: boolean + required: true + inlined: true + inlined_as_list: true Any: name: Any from_schema: metadata diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 5d416f69b..917afc52e 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -2125,7 +2125,7 @@ class TomogramSize(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "x", - "domain_of": ["TomogramSize", "TomogramOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2137,7 +2137,7 @@ class TomogramSize(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "y", - "domain_of": ["TomogramSize", "TomogramOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2149,7 +2149,7 @@ class TomogramSize(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "z", - "domain_of": ["TomogramSize", "TomogramOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2170,7 +2170,7 @@ class TomogramOffset(ConfiguredBaseModel): "linkml_meta": { "alias": "x", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2182,7 +2182,7 @@ class TomogramOffset(ConfiguredBaseModel): "linkml_meta": { "alias": "y", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2194,7 +2194,7 @@ class TomogramOffset(ConfiguredBaseModel): "linkml_meta": { "alias": "z", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2373,22 +2373,6 @@ class Tomogram(AuthoredEntity): } }, ) - affine_transformation_matrix: Optional[ - conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float)) - ] = Field( - None, - description="""The flip or rotation transformation of this author submitted tomogram is indicated here""", - json_schema_extra={ - "linkml_meta": { - "alias": "affine_transformation_matrix", - "array": { - "dimensions": [{"exact_cardinality": 4}, {"exact_cardinality": 4}], - "exact_number_dimensions": 2, - }, - "domain_of": ["Tomogram"], - } - }, - ) size: Optional[TomogramSize] = Field( None, description="""The size of a tomogram in voxels in each dimension.""", @@ -2397,7 +2381,7 @@ class Tomogram(AuthoredEntity): offset: TomogramOffset = Field( ..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", - json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram"]}}, + json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, ) authors: List[Author] = Field( ..., @@ -3712,6 +3696,175 @@ def pattern_method_type(cls, v): return v +class AlignmentOffset(ConfiguredBaseModel): + """ + The offset of a alignment in voxels in each dimension relative to the canonical tomogram. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + x: Union[int, str] = Field( + 0, + description="""x offset relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "x", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "ifabsent": "int(0)", + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + y: Union[int, str] = Field( + 0, + description="""y offset relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "y", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "ifabsent": "int(0)", + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + z: Union[int, str] = Field( + 0, + description="""z offset relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "z", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "ifabsent": "int(0)", + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + + @field_validator("x") + def pattern_x(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator("y") + def pattern_y(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator("z") + def pattern_z(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + +class Alignment(ConfiguredBaseModel): + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + alignment_type: str = Field( + ..., + description="""The type of alignment.""", + json_schema_extra={ + "linkml_meta": { + "alias": "alignment_type", + "any_of": [{"range": "string"}, {"range": "StringFormattedString"}], + "domain_of": ["Alignment"], + } + }, + ) + offset: AlignmentOffset = Field( + ..., + description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", + json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, + ) + x_rotation_offset: Union[int, str] = Field( + 0, + description="""The x rotation offset relative to the tomogram.""", + json_schema_extra={ + "linkml_meta": { + "alias": "x_rotation_offset", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["Alignment"], + "ifabsent": "int(0)", + } + }, + ) + tilt_offset: float = Field( + 0.0, + description="""The tilt offset relative to the tomogram.""", + json_schema_extra={ + "linkml_meta": {"alias": "tilt_offset", "domain_of": ["Alignment"], "ifabsent": "float(0.0)"} + }, + ) + affine_transformation_matrix: Optional[ + conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float)) + ] = Field( + None, + description="""The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix.""", + json_schema_extra={ + "linkml_meta": { + "alias": "affine_transformation_matrix", + "array": { + "dimensions": [{"exact_cardinality": 4}, {"exact_cardinality": 4}], + "exact_number_dimensions": 2, + }, + "domain_of": ["Alignment"], + } + }, + ) + is_canonical: bool = Field( + True, + description="""Whether the alignment is canonical.""", + json_schema_extra={"linkml_meta": {"alias": "is_canonical", "domain_of": ["Alignment"], "ifabsent": "True"}}, + ) + + @field_validator("alignment_type") + def pattern_alignment_type(cls, v): + pattern = re.compile(r"^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid alignment_type format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid alignment_type format: {v}") + return v + + @field_validator("x_rotation_offset") + def pattern_x_rotation_offset(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x_rotation_offset format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid x_rotation_offset format: {v}") + return v + + class DateStampedEntityMixin(ConfiguredBaseModel): """ A set of dates at which a data item was deposited, published and last modified. @@ -4201,9 +4354,12 @@ def pattern_ORCID(cls, v): AnnotationTriangularMeshFile.model_rebuild() AnnotationTriangularMeshGroupFile.model_rebuild() Annotation.model_rebuild() +AlignmentOffset.model_rebuild() +Alignment.model_rebuild() DateStampedEntityMixin.model_rebuild() DateStamp.model_rebuild() CrossReferencesMixin.model_rebuild() CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() + diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index f6fb0714d..689c20f19 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -511,14 +511,6 @@ classes: tomogram_version: exact_mappings: - cdp-common:tomogram_version - affine_transformation_matrix: - description: The flip or rotation transformation of this author submitted tomogram is indicated here - range: float - array: - exact_number_dimensions: 2 - dimensions: - - exact_cardinality: 4 - - exact_cardinality: 4 size: description: *desc_tomogram_size range: TomogramSize @@ -720,3 +712,81 @@ classes: - cdp-common:annotation_version # ============================================================================ + + # ============================================================================ + # Alignment metadata + # ============================================================================ + + AlignmentOffset: + description: &desc_alignment_offset The offset of a alignment in voxels in each dimension relative to the canonical tomogram. + attributes: + x: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: x offset relative to the canonical tomogram in pixels + ifabsent: "int(0)" + unit: + descriptive_name: pixels + symbol: px + y: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: y offset relative to the canonical tomogram in pixels + ifabsent: "int(0)" + unit: + descriptive_name: pixels + symbol: px + z: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + ifabsent: "int(0)" + description: z offset relative to the canonical tomogram in pixels + unit: + descriptive_name: pixels + symbol: px + + + Alignment: + attributes: + alignment_type: + description: The type of alignment. + any_of: + - range: string + - range: cdp-common:StringFormattedString + required: true + offset: + description: *desc_alignment_offset + range: AlignmentOffset + required: true + x_rotation_offset: + description: The x rotation offset relative to the tomogram. + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + ifabsent: "int(0)" + tilt_offset: + description: The tilt offset relative to the tomogram. + range: float + required: true + ifabsent: "float(0.0)" + affine_transformation_matrix: + # use the value in tomogram.affine_transformation_matrix if tomogram.afine_transformation_matrix is defined + description: The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix. + range: float + array: + exact_number_dimensions: 2 + dimensions: + - exact_cardinality: 4 + - exact_cardinality: 4 + is_canonical: + description: Whether the alignment is canonical. + range: boolean + required: true + ifabsent: true diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 852f58676..9f95875f4 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -1373,13 +1373,13 @@ class TomogramSize(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) x: int = Field(..., description="""Number of pixels in the 3D data fast axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'x', - 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) y: int = Field(..., description="""Number of pixels in the 3D data medium axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'y', - 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) z: int = Field(..., description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'z', - 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) @@ -1391,15 +1391,15 @@ class TomogramOffset(ConfiguredBaseModel): x: Union[int, str] = Field(..., description="""x offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) y: Union[int, str] = Field(..., description="""y offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) z: Union[int, str] = Field(..., description="""z offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset'], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) @field_validator('x') @@ -1456,6 +1456,7 @@ class Tomogram(AuthoredEntity): 'symbol': 'Å/voxel'}}, {'range': 'FloatFormattedString'}], 'domain_of': ['Tomogram', + 'AlignmentParent', 'AnnotationParent', 'KeyImageParent', 'TomogramParent'], @@ -1495,12 +1496,8 @@ class Tomogram(AuthoredEntity): tomogram_version: float = Field(..., description="""Version of tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_version', 'domain_of': ['Tomogram'], 'exact_mappings': ['cdp-common:tomogram_version']} }) - affine_transformation_matrix: Optional[conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float))] = Field(None, description="""The flip or rotation transformation of this author submitted tomogram is indicated here""", json_schema_extra = { "linkml_meta": {'alias': 'affine_transformation_matrix', - 'array': {'dimensions': [{'exact_cardinality': 4}, {'exact_cardinality': 4}], - 'exact_number_dimensions': 2}, - 'domain_of': ['Tomogram']} }) size: Optional[TomogramSize] = Field(None, description="""The size of a tomogram in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'size', 'domain_of': ['Tomogram']} }) - offset: TomogramOffset = Field(..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram']} }) + offset: TomogramOffset = Field(..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', 'domain_of': ['AuthoredEntity', 'Dataset', @@ -2186,6 +2183,108 @@ def pattern_method_type(cls, v): return v +class AlignmentOffset(ConfiguredBaseModel): + """ + The offset of a alignment in voxels in each dimension relative to the canonical tomogram. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + x: Union[int, str] = Field(0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'ifabsent': 'int(0)', + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + y: Union[int, str] = Field(0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'ifabsent': 'int(0)', + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + z: Union[int, str] = Field(0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'ifabsent': 'int(0)', + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + + @field_validator('x') + def pattern_x(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator('y') + def pattern_y(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator('z') + def pattern_z(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + +class Alignment(ConfiguredBaseModel): + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + alignment_type: str = Field(..., description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', + 'any_of': [{'range': 'string'}, {'range': 'StringFormattedString'}], + 'domain_of': ['Alignment']} }) + offset: AlignmentOffset = Field(..., description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) + x_rotation_offset: Union[int, str] = Field(0, description="""The x rotation offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'x_rotation_offset', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['Alignment'], + 'ifabsent': 'int(0)'} }) + tilt_offset: float = Field(0.0, description="""The tilt offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_offset', 'domain_of': ['Alignment'], 'ifabsent': 'float(0.0)'} }) + affine_transformation_matrix: Optional[conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float))] = Field(None, description="""The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix.""", json_schema_extra = { "linkml_meta": {'alias': 'affine_transformation_matrix', + 'array': {'dimensions': [{'exact_cardinality': 4}, {'exact_cardinality': 4}], + 'exact_number_dimensions': 2}, + 'domain_of': ['Alignment']} }) + is_canonical: bool = Field(True, description="""Whether the alignment is canonical.""", json_schema_extra = { "linkml_meta": {'alias': 'is_canonical', 'domain_of': ['Alignment'], 'ifabsent': 'True'} }) + + @field_validator('alignment_type') + def pattern_alignment_type(cls, v): + pattern=re.compile(r"^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid alignment_type format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid alignment_type format: {v}") + return v + + @field_validator('x_rotation_offset') + def pattern_x_rotation_offset(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x_rotation_offset format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid x_rotation_offset format: {v}") + return v + + class DateStampedEntityMixin(ConfiguredBaseModel): """ A set of dates at which a data item was deposited, published and last modified. @@ -2406,6 +2505,7 @@ class Container(ConfiguredBaseModel): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'tree_root': True}) + alignments: Optional[List[AlignmentEntity]] = Field(None, description="""An alignment entity.""", json_schema_extra = { "linkml_meta": {'alias': 'alignments', 'domain_of': ['Container']} }) annotations: Optional[List[AnnotationEntity]] = Field(None, description="""An annotation entity.""", json_schema_extra = { "linkml_meta": {'alias': 'annotations', 'domain_of': ['Container']} }) collection_metadata: Optional[List[CollectionMetadataEntity]] = Field(None, description="""A collection_metadata entity.""", json_schema_extra = { "linkml_meta": {'alias': 'collection_metadata', 'domain_of': ['Container']} }) dataset_keyphotos: Optional[List[DatasetKeyPhotoEntity]] = Field(None, description="""A dataset key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_keyphotos', 'domain_of': ['Container']} }) @@ -2506,6 +2606,7 @@ class DefaultSource(ConfiguredBaseModel): exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -2520,6 +2621,7 @@ class DefaultSource(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -2545,6 +2647,7 @@ class StandardSource(DefaultSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -2560,6 +2663,7 @@ class StandardSource(DefaultSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -2574,6 +2678,7 @@ class StandardSource(DefaultSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -2591,6 +2696,7 @@ class StandardSource(DefaultSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -2603,6 +2709,7 @@ class StandardSource(DefaultSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -2617,6 +2724,7 @@ class StandardSource(DefaultSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -2653,6 +2761,263 @@ class KeyPhotoLiteral(ConfiguredBaseModel): 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) +class AlignmentEntity(ConfiguredBaseModel): + """ + An alignment entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Alignment = Field(..., description="""The metadata for the alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[AlignmentSource] = Field(..., description="""An alignment source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class AlignmentSource(StandardSource): + """ + An alignment source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[AlignmentParentFilters] = Field(None, description="""Types of parent filters for an alignment source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class AlignmentParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for an alignment source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[AlignmentParent] = Field(None, description="""A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[AlignmentParent] = Field(None, description="""A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class AlignmentParent(ConfiguredBaseModel): + """ + A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['AlignmentParent', 'KeyImageParent']} }) + voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'domain_of': ['Tomogram', + 'AlignmentParent', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent']} }) + + class AnnotationEntity(ConfiguredBaseModel): """ An annotation entity. @@ -2660,13 +3025,15 @@ class AnnotationEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) metadata: Annotation = Field(..., description="""Metadata describing an annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[AnnotationSource] = Field(..., description="""An annotation source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -2696,7 +3063,8 @@ class AnnotationSource(DefaultSource): TriangularMesh: Optional[AnnotationTriangularMeshFile] = Field(None, description="""File and sourcing data for a triangular mesh annotation. Annotation that identifies an object.""", json_schema_extra = { "linkml_meta": {'alias': 'TriangularMesh', 'domain_of': ['AnnotationSource']} }) TriangularMeshGroup: Optional[AnnotationTriangularMeshGroupFile] = Field(None, description="""File and sourcing data containing one or more triangular mesh annotations.""", json_schema_extra = { "linkml_meta": {'alias': 'TriangularMeshGroup', 'domain_of': ['AnnotationSource']} }) parent_filters: Optional[AnnotationParentFilters] = Field(None, description="""Filters for the parent of an annotation source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -2711,6 +3079,7 @@ class AnnotationSource(DefaultSource): 'VoxelSpacingSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -2725,6 +3094,7 @@ class AnnotationSource(DefaultSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -2748,7 +3118,8 @@ class AnnotationParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -2763,6 +3134,7 @@ class AnnotationParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -2777,6 +3149,7 @@ class AnnotationParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -2800,7 +3173,8 @@ class AnnotationParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -2811,7 +3185,8 @@ class AnnotationParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -2825,7 +3200,8 @@ class AnnotationParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -2836,6 +3212,7 @@ class AnnotationParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', 'domain_of': ['Tomogram', + 'AlignmentParent', 'AnnotationParent', 'KeyImageParent', 'TomogramParent']} }) @@ -2848,7 +3225,8 @@ class CollectionMetadataEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[CollectionMetadataSource] = Field(..., description="""A collection_metadata source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -2871,7 +3249,8 @@ class CollectionMetadataSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[CollectionMetadataParentFilters] = Field(None, description="""Types of parent filters for a collection_metadata source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -2887,6 +3266,7 @@ class CollectionMetadataSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -2902,6 +3282,7 @@ class CollectionMetadataSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -2916,6 +3297,7 @@ class CollectionMetadataSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -2933,6 +3315,7 @@ class CollectionMetadataSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -2945,6 +3328,7 @@ class CollectionMetadataSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -2959,6 +3343,7 @@ class CollectionMetadataSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -2982,7 +3367,8 @@ class CollectionMetadataParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -2997,6 +3383,7 @@ class CollectionMetadataParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3011,6 +3398,7 @@ class CollectionMetadataParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3034,7 +3422,8 @@ class CollectionMetadataParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -3045,7 +3434,8 @@ class CollectionMetadataParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -3059,7 +3449,8 @@ class CollectionMetadataParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -3077,13 +3468,15 @@ class DatasetEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) metadata: Optional[Dataset] = Field(None, description="""High-level description of a cryoET dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[DatasetSource] = Field(..., description="""A dataset source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -3106,7 +3499,8 @@ class DatasetSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[DatasetParentFilters] = Field(None, description="""Types of parent filters for a dataset source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3122,6 +3516,7 @@ class DatasetSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3137,6 +3532,7 @@ class DatasetSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3151,6 +3547,7 @@ class DatasetSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3168,6 +3565,7 @@ class DatasetSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -3180,6 +3578,7 @@ class DatasetSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3194,6 +3593,7 @@ class DatasetSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3217,7 +3617,8 @@ class DatasetParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -3232,6 +3633,7 @@ class DatasetParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3246,6 +3648,7 @@ class DatasetParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3269,7 +3672,8 @@ class DatasetParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -3291,7 +3695,8 @@ class DatasetKeyPhotoEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[DatasetKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -3318,6 +3723,7 @@ class DatasetKeyPhotoSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -3329,7 +3735,8 @@ class DatasetKeyPhotoSource(StandardSource): 'TiltSeriesSource', 'TomogramSource']} }) parent_filters: Optional[DatasetKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3345,6 +3752,7 @@ class DatasetKeyPhotoSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3360,6 +3768,7 @@ class DatasetKeyPhotoSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3374,6 +3783,7 @@ class DatasetKeyPhotoSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3388,6 +3798,7 @@ class DatasetKeyPhotoSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3402,6 +3813,7 @@ class DatasetKeyPhotoSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3425,7 +3837,8 @@ class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -3440,6 +3853,7 @@ class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3454,6 +3868,7 @@ class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3477,7 +3892,8 @@ class DatasetKeyPhotoParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -3499,13 +3915,15 @@ class DepositionEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) metadata: Optional[Deposition] = Field(None, description="""Metadata describing a deposition.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[DepositionSource] = Field(..., description="""A deposition source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -3530,6 +3948,7 @@ class DepositionSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3545,6 +3964,7 @@ class DepositionSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3559,6 +3979,7 @@ class DepositionSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3576,6 +3997,7 @@ class DepositionSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -3588,6 +4010,7 @@ class DepositionSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3602,6 +4025,7 @@ class DepositionSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3625,7 +4049,8 @@ class DepositionKeyPhotoEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[DepositionKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -3652,6 +4077,7 @@ class DepositionKeyPhotoSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -3663,7 +4089,8 @@ class DepositionKeyPhotoSource(StandardSource): 'TiltSeriesSource', 'TomogramSource']} }) parent_filters: Optional[DepositionKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3679,6 +4106,7 @@ class DepositionKeyPhotoSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3694,6 +4122,7 @@ class DepositionKeyPhotoSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3708,6 +4137,7 @@ class DepositionKeyPhotoSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3722,6 +4152,7 @@ class DepositionKeyPhotoSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3736,6 +4167,7 @@ class DepositionKeyPhotoSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3759,7 +4191,8 @@ class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -3774,6 +4207,7 @@ class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3788,6 +4222,7 @@ class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3811,7 +4246,8 @@ class DepositionKeyPhotoParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -3833,7 +4269,8 @@ class FrameEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[FrameSource] = Field(..., description="""A frame source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -3856,7 +4293,8 @@ class FrameSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[FrameParentFilters] = Field(None, description="""Types of parent filters for a frame source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3872,6 +4310,7 @@ class FrameSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3887,6 +4326,7 @@ class FrameSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3901,6 +4341,7 @@ class FrameSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -3918,6 +4359,7 @@ class FrameSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -3930,6 +4372,7 @@ class FrameSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3944,6 +4387,7 @@ class FrameSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -3967,7 +4411,8 @@ class FrameParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -3982,6 +4427,7 @@ class FrameParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -3996,6 +4442,7 @@ class FrameParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4019,7 +4466,8 @@ class FrameParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4030,7 +4478,8 @@ class FrameParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -4044,7 +4493,8 @@ class FrameParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4062,7 +4512,8 @@ class GainEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[GainSource] = Field(..., description="""A gain source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -4085,7 +4536,8 @@ class GainSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[GainParentFilters] = Field(None, description="""Types of parent filters for a gain source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4101,6 +4553,7 @@ class GainSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4116,6 +4569,7 @@ class GainSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4130,6 +4584,7 @@ class GainSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4147,6 +4602,7 @@ class GainSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -4159,6 +4615,7 @@ class GainSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -4173,6 +4630,7 @@ class GainSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4196,7 +4654,8 @@ class GainParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -4211,6 +4670,7 @@ class GainParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -4225,6 +4685,7 @@ class GainParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4248,7 +4709,8 @@ class GainParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4259,7 +4721,8 @@ class GainParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -4273,7 +4736,8 @@ class GainParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4291,7 +4755,8 @@ class KeyImageEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[KeyImageSource] = Field(..., description="""A key image source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -4314,7 +4779,8 @@ class KeyImageSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[KeyImageParentFilters] = Field(None, description="""Types of parent filters for a key image source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4330,6 +4796,7 @@ class KeyImageSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4345,6 +4812,7 @@ class KeyImageSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4359,6 +4827,7 @@ class KeyImageSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4376,6 +4845,7 @@ class KeyImageSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -4388,6 +4858,7 @@ class KeyImageSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -4402,6 +4873,7 @@ class KeyImageSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4425,7 +4897,8 @@ class KeyImageParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -4440,6 +4913,7 @@ class KeyImageParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -4454,6 +4928,7 @@ class KeyImageParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4477,7 +4952,8 @@ class KeyImageParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4488,7 +4964,8 @@ class KeyImageParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -4502,7 +4979,8 @@ class KeyImageParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4511,9 +4989,10 @@ class KeyImageParent(ConfiguredBaseModel): 'TiltSeriesParent', 'TomogramParent', 'VoxelSpacingParent']} }) - tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['KeyImageParent']} }) + tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['AlignmentParent', 'KeyImageParent']} }) voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', 'domain_of': ['Tomogram', + 'AlignmentParent', 'AnnotationParent', 'KeyImageParent', 'TomogramParent']} }) @@ -4526,7 +5005,8 @@ class RawTiltEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[RawTiltSource] = Field(..., description="""A raw tilt source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -4549,7 +5029,8 @@ class RawTiltSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[RawTiltParentFilters] = Field(None, description="""Types of parent filters for a raw tilt source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4565,6 +5046,7 @@ class RawTiltSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4580,6 +5062,7 @@ class RawTiltSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4594,6 +5077,7 @@ class RawTiltSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4611,6 +5095,7 @@ class RawTiltSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -4623,6 +5108,7 @@ class RawTiltSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -4637,6 +5123,7 @@ class RawTiltSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4660,7 +5147,8 @@ class RawTiltParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -4675,6 +5163,7 @@ class RawTiltParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -4689,6 +5178,7 @@ class RawTiltParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4712,7 +5202,8 @@ class RawTiltParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4723,7 +5214,8 @@ class RawTiltParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -4737,7 +5229,8 @@ class RawTiltParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4755,7 +5248,8 @@ class RunEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[RunSource] = Field(..., description="""A run source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -4778,7 +5272,8 @@ class RunSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[RunParentFilters] = Field(None, description="""Types of parent filters for a run source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4794,6 +5289,7 @@ class RunSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4809,6 +5305,7 @@ class RunSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4823,6 +5320,7 @@ class RunSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -4840,6 +5338,7 @@ class RunSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -4852,6 +5351,7 @@ class RunSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -4866,6 +5366,7 @@ class RunSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4889,7 +5390,8 @@ class RunParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -4904,6 +5406,7 @@ class RunParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -4918,6 +5421,7 @@ class RunParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -4941,7 +5445,8 @@ class RunParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -4952,7 +5457,8 @@ class RunParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -4988,13 +5494,15 @@ class TiltSeriesEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) metadata: Optional[TiltSeries] = Field(None, description="""Metadata describing a tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[TiltSeriesSource] = Field(..., description="""A tilt series source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -5017,7 +5525,8 @@ class TiltSeriesSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[TiltSeriesParentFilters] = Field(None, description="""Types of parent filters for a tilt series source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5033,6 +5542,7 @@ class TiltSeriesSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5048,6 +5558,7 @@ class TiltSeriesSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5062,6 +5573,7 @@ class TiltSeriesSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5079,6 +5591,7 @@ class TiltSeriesSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -5091,6 +5604,7 @@ class TiltSeriesSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -5105,6 +5619,7 @@ class TiltSeriesSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -5128,7 +5643,8 @@ class TiltSeriesParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -5143,6 +5659,7 @@ class TiltSeriesParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -5157,6 +5674,7 @@ class TiltSeriesParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -5180,7 +5698,8 @@ class TiltSeriesParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -5191,7 +5710,8 @@ class TiltSeriesParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -5205,7 +5725,8 @@ class TiltSeriesParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -5223,13 +5744,15 @@ class TomogramEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) metadata: Optional[Tomogram] = Field(None, description="""Metadata describing a tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[TomogramSource] = Field(..., description="""A tomogram source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -5252,7 +5775,8 @@ class TomogramSource(StandardSource): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) parent_filters: Optional[TomogramParentFilters] = Field(None, description="""Types of parent filters for a tomogram source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5268,6 +5792,7 @@ class TomogramSource(StandardSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5283,6 +5808,7 @@ class TomogramSource(StandardSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5297,6 +5823,7 @@ class TomogramSource(StandardSource): 'TomogramSource']} }) source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', 'domain_of': ['StandardSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5314,6 +5841,7 @@ class TomogramSource(StandardSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -5326,6 +5854,7 @@ class TomogramSource(StandardSource): 'TomogramSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -5340,6 +5869,7 @@ class TomogramSource(StandardSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -5363,7 +5893,8 @@ class TomogramParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -5378,6 +5909,7 @@ class TomogramParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -5392,6 +5924,7 @@ class TomogramParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -5415,7 +5948,8 @@ class TomogramParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -5426,7 +5960,8 @@ class TomogramParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -5440,7 +5975,8 @@ class TomogramParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -5451,6 +5987,7 @@ class TomogramParent(ConfiguredBaseModel): 'VoxelSpacingParent']} }) voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', 'domain_of': ['Tomogram', + 'AlignmentParent', 'AnnotationParent', 'KeyImageParent', 'TomogramParent']} }) @@ -5463,7 +6000,8 @@ class VoxelSpacingEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) sources: List[VoxelSpacingSource] = Field(..., description="""A voxel spacing source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AnnotationEntity', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', 'CollectionMetadataEntity', 'DatasetEntity', 'DatasetKeyPhotoEntity', @@ -5488,6 +6026,7 @@ class VoxelSpacingSource(DefaultSource): destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5503,6 +6042,7 @@ class VoxelSpacingSource(DefaultSource): source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', 'domain_of': ['StandardSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5520,6 +6060,7 @@ class VoxelSpacingSource(DefaultSource): 'DatasetKeyPhotoSource', 'DepositionKeyPhotoSource', 'VoxelSpacingSource', + 'AlignmentSource', 'CollectionMetadataSource', 'DatasetSource', 'DepositionSource', @@ -5532,7 +6073,8 @@ class VoxelSpacingSource(DefaultSource): 'TomogramSource']} }) tomogram_header: Optional[TomogramHeader] = Field(None, description="""A tomogram header, a unique source attribute for voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_header', 'domain_of': ['VoxelSpacingSource']} }) parent_filters: Optional[VoxelSpacingParentFilters] = Field(None, description="""Types of parent filters for a voxel spacing source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AnnotationSource', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', 'DatasetKeyPhotoSource', @@ -5547,6 +6089,7 @@ class VoxelSpacingSource(DefaultSource): 'VoxelSpacingSource']} }) exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -5561,6 +6104,7 @@ class VoxelSpacingSource(DefaultSource): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -5584,7 +6128,8 @@ class VoxelSpacingParentFilters(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) include: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AnnotationParentFilters', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', 'DatasetKeyPhotoParentFilters', @@ -5599,6 +6144,7 @@ class VoxelSpacingParentFilters(ConfiguredBaseModel): 'VoxelSpacingParentFilters']} }) exclude: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', 'AnnotationParentFilters', 'CollectionMetadataParentFilters', 'DatasetParentFilters', @@ -5613,6 +6159,7 @@ class VoxelSpacingParentFilters(ConfiguredBaseModel): 'TomogramParentFilters', 'VoxelSpacingParentFilters', 'StandardSource', + 'AlignmentSource', 'AnnotationSource', 'CollectionMetadataSource', 'DatasetSource', @@ -5636,7 +6183,8 @@ class VoxelSpacingParent(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -5647,7 +6195,8 @@ class VoxelSpacingParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'DatasetParent', 'DatasetKeyPhotoParent', @@ -5661,7 +6210,8 @@ class VoxelSpacingParent(ConfiguredBaseModel): 'TomogramParent', 'VoxelSpacingParent']} }) run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AnnotationParent', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', 'CollectionMetadataParent', 'FrameParent', 'GainParent', @@ -5741,6 +6291,8 @@ class TomogramHeader(ConfiguredBaseModel): AnnotationTriangularMeshFile.model_rebuild() AnnotationTriangularMeshGroupFile.model_rebuild() Annotation.model_rebuild() +AlignmentOffset.model_rebuild() +Alignment.model_rebuild() DateStampedEntityMixin.model_rebuild() DateStamp.model_rebuild() CrossReferencesMixin.model_rebuild() @@ -5756,6 +6308,10 @@ class TomogramHeader(ConfiguredBaseModel): StandardSource.model_rebuild() StandardLiteral.model_rebuild() KeyPhotoLiteral.model_rebuild() +AlignmentEntity.model_rebuild() +AlignmentSource.model_rebuild() +AlignmentParentFilters.model_rebuild() +AlignmentParent.model_rebuild() AnnotationEntity.model_rebuild() AnnotationSource.model_rebuild() AnnotationParentFilters.model_rebuild() @@ -5813,3 +6369,4 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() + diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json index 1a205af06..b8727d91f 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -1,5 +1,317 @@ { "$defs": { + "Alignment": { + "additionalProperties": false, + "description": "", + "properties": { + "affine_transformation_matrix": { + "items": { + "additionalProperties": true, + "type": [ + "null", + "boolean", + "object", + "number", + "string", + "array" + ] + }, + "type": [ + "array", + "null" + ] + }, + "alignment_type": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "string" + }, + { + "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "The type of alignment.", + "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "is_canonical": { + "description": "Whether the alignment is canonical.", + "type": "boolean" + }, + "offset": { + "$ref": "#/$defs/AlignmentOffset", + "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram." + }, + "tilt_offset": { + "description": "The tilt offset relative to the tomogram.", + "type": "number" + }, + "x_rotation_offset": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "The x rotation offset relative to the tomogram.", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "alignment_type", + "offset", + "x_rotation_offset", + "tilt_offset", + "is_canonical" + ], + "title": "Alignment", + "type": "object" + }, + "AlignmentEntity": { + "additionalProperties": false, + "description": "An alignment entity.", + "properties": { + "metadata": { + "$ref": "#/$defs/Alignment", + "description": "The metadata for the alignment." + }, + "sources": { + "description": "An alignment source.", + "items": { + "$ref": "#/$defs/AlignmentSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "metadata", + "sources" + ], + "title": "AlignmentEntity", + "type": "object" + }, + "AlignmentOffset": { + "additionalProperties": false, + "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram.", + "properties": { + "x": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "x offset relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "y": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "y offset relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "z": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "z offset relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "x", + "y", + "z" + ], + "title": "AlignmentOffset", + "type": "object" + }, + "AlignmentParent": { + "additionalProperties": false, + "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "tomogram": { + "description": "Include or exclude tomograms for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "voxel_spacing": { + "description": "Include or exclude voxel spacings for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "AlignmentParent", + "type": "object" + }, + "AlignmentParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for an alignment source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "AlignmentParentFilters", + "type": "object" + }, + "AlignmentSource": { + "additionalProperties": false, + "description": "An alignment source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for an alignment source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "AlignmentSource", + "type": "object" + }, "Annotation": { "additionalProperties": false, "description": "Metadata describing an annotation.", @@ -1247,6 +1559,16 @@ "additionalProperties": false, "description": "Class that models the ingestion config file.", "properties": { + "alignments": { + "description": "An alignment entity.", + "items": { + "$ref": "#/$defs/AlignmentEntity" + }, + "type": [ + "array", + "null" + ] + }, "annotations": { "description": "An annotation entity.", "items": { @@ -4039,23 +4361,6 @@ "additionalProperties": false, "description": "Metadata describing a tomogram.", "properties": { - "affine_transformation_matrix": { - "items": { - "additionalProperties": true, - "type": [ - "null", - "boolean", - "object", - "number", - "string", - "array" - ] - }, - "type": [ - "array", - "null" - ] - }, "align_software": { "description": "Software used for alignment", "type": [ @@ -4684,6 +4989,16 @@ "description": "Class that models the ingestion config file.", "metamodel_version": "1.7.0", "properties": { + "alignments": { + "description": "An alignment entity.", + "items": { + "$ref": "#/$defs/AlignmentEntity" + }, + "type": [ + "array", + "null" + ] + }, "annotations": { "description": "An annotation entity.", "items": { diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml index 62e187b5e..5c7162efd 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml @@ -564,6 +564,7 @@ slots: description: Include or exclude datasets for a source. from_schema: cdp-ingestion-config domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -581,6 +582,7 @@ slots: description: Include or exclude depositions for a source. from_schema: cdp-ingestion-config domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -601,6 +603,7 @@ slots: description: Include or exclude runs for a source. from_schema: cdp-ingestion-config domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -617,6 +620,7 @@ slots: description: Include or exclude tomograms for a source. from_schema: cdp-ingestion-config domain_of: + - AlignmentParent - KeyImageParent range: string multivalued: true @@ -626,6 +630,7 @@ slots: from_schema: cdp-ingestion-config domain_of: - Tomogram + - AlignmentParent - AnnotationParent - KeyImageParent - TomogramParent @@ -637,6 +642,18 @@ classes: description: Class that models the ingestion config file. from_schema: cdp-ingestion-config attributes: + alignments: + name: alignments + description: An alignment entity. + from_schema: cdp-ingestion-config + alias: alignments + owner: Container + domain_of: + - Container + range: AlignmentEntity + multivalued: true + inlined: true + inlined_as_list: true annotations: name: annotations description: An annotation entity. @@ -991,6 +1008,7 @@ classes: owner: DefaultSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1073,6 +1091,7 @@ classes: owner: StandardSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1130,6 +1149,329 @@ classes: required: true inlined: true inlined_as_list: true + AlignmentEntity: + name: AlignmentEntity + description: An alignment entity. + from_schema: cdp-ingestion-config + attributes: + metadata: + name: metadata + description: The metadata for the alignment. + from_schema: cdp-ingestion-config + alias: metadata + owner: AlignmentEntity + domain_of: + - AlignmentEntity + - AnnotationEntity + - DatasetEntity + - DepositionEntity + - TiltSeriesEntity + - TomogramEntity + range: Alignment + required: true + inlined: true + inlined_as_list: true + sources: + name: sources + description: An alignment source. + from_schema: cdp-ingestion-config + alias: sources + owner: AlignmentEntity + domain_of: + - AlignmentEntity + - AnnotationEntity + - CollectionMetadataEntity + - DatasetEntity + - DatasetKeyPhotoEntity + - DepositionEntity + - DepositionKeyPhotoEntity + - FrameEntity + - GainEntity + - KeyImageEntity + - RawTiltEntity + - RunEntity + - TiltSeriesEntity + - TomogramEntity + - VoxelSpacingEntity + range: AlignmentSource + required: true + multivalued: true + inlined: true + inlined_as_list: true + minimum_cardinality: 1 + AlignmentSource: + name: AlignmentSource + description: An alignment source. + from_schema: cdp-ingestion-config + is_a: StandardSource + attributes: + parent_filters: + name: parent_filters + description: Types of parent filters for an alignment source. + from_schema: cdp-ingestion-config + alias: parent_filters + owner: AlignmentSource + domain_of: + - AlignmentSource + - AnnotationSource + - CollectionMetadataSource + - DatasetSource + - DatasetKeyPhotoSource + - DepositionKeyPhotoSource + - FrameSource + - GainSource + - KeyImageSource + - RawTiltSource + - RunSource + - TiltSeriesSource + - TomogramSource + - VoxelSpacingSource + range: AlignmentParentFilters + inlined: true + inlined_as_list: true + destination_glob: + name: destination_glob + description: A glob class for finding files in the output / destination directory. + from_schema: cdp-ingestion-config + alias: destination_glob + owner: AlignmentSource + domain_of: + - StandardSource + - VoxelSpacingSource + range: DestinationGlob + inlined: true + inlined_as_list: true + source_glob: + name: source_glob + description: A glob class for finding files in the source directory. + from_schema: cdp-ingestion-config + alias: source_glob + owner: AlignmentSource + domain_of: + - StandardSource + - VoxelSpacingSource + range: SourceGlob + inlined: true + inlined_as_list: true + source_multi_glob: + name: source_multi_glob + description: A glob class for finding files in the source directory (with + multiple globs). + from_schema: cdp-ingestion-config + alias: source_multi_glob + owner: AlignmentSource + domain_of: + - StandardSource + range: SourceMultiGlob + inlined: true + inlined_as_list: true + literal: + name: literal + description: A literal class with a value attribute. + from_schema: cdp-ingestion-config + alias: literal + owner: AlignmentSource + domain_of: + - StandardSource + - DatasetKeyPhotoSource + - DepositionKeyPhotoSource + - VoxelSpacingSource + range: StandardLiteral + inlined: true + inlined_as_list: true + exclude: + name: exclude + description: Exclude files from the source that match (regexes). + from_schema: cdp-ingestion-config + alias: exclude + owner: AlignmentSource + domain_of: + - DefaultSource + - AlignmentParentFilters + - AnnotationParentFilters + - CollectionMetadataParentFilters + - DatasetParentFilters + - DatasetKeyPhotoParentFilters + - DepositionKeyPhotoParentFilters + - FrameParentFilters + - GainParentFilters + - KeyImageParentFilters + - RawTiltParentFilters + - RunParentFilters + - TiltSeriesParentFilters + - TomogramParentFilters + - VoxelSpacingParentFilters + range: string + multivalued: true + inlined: true + inlined_as_list: true + AlignmentParentFilters: + name: AlignmentParentFilters + description: Types of parent filters for an alignment source. + from_schema: cdp-ingestion-config + attributes: + include: + name: include + description: A filter for a parent class of an alignment source. For a given + attribute, it can only be used if the current class is a subclass of the + attribute. + from_schema: cdp-ingestion-config + alias: include + owner: AlignmentParentFilters + domain_of: + - AlignmentParentFilters + - AnnotationParentFilters + - CollectionMetadataParentFilters + - DatasetParentFilters + - DatasetKeyPhotoParentFilters + - DepositionKeyPhotoParentFilters + - FrameParentFilters + - GainParentFilters + - KeyImageParentFilters + - RawTiltParentFilters + - RunParentFilters + - TiltSeriesParentFilters + - TomogramParentFilters + - VoxelSpacingParentFilters + range: AlignmentParent + inlined: true + inlined_as_list: true + exclude: + name: exclude + description: A filter for a parent class of an alignment source. For a given + attribute, it can only be used if the current class is a subclass of the + attribute. + from_schema: cdp-ingestion-config + alias: exclude + owner: AlignmentParentFilters + domain_of: + - DefaultSource + - AlignmentParentFilters + - AnnotationParentFilters + - CollectionMetadataParentFilters + - DatasetParentFilters + - DatasetKeyPhotoParentFilters + - DepositionKeyPhotoParentFilters + - FrameParentFilters + - GainParentFilters + - KeyImageParentFilters + - RawTiltParentFilters + - RunParentFilters + - TiltSeriesParentFilters + - TomogramParentFilters + - VoxelSpacingParentFilters + range: AlignmentParent + inlined: true + inlined_as_list: true + AlignmentParent: + name: AlignmentParent + description: A filter for a parent class of an alignment source. For a given attribute, + it can only be used if the current class is a subclass of the attribute. + from_schema: cdp-ingestion-config + slots: + - dataset + - deposition + - run + - tomogram + - voxel_spacing + attributes: + dataset: + name: dataset + description: Include or exclude datasets for a source. + from_schema: cdp-ingestion-config + alias: dataset + owner: AlignmentParent + domain_of: + - AlignmentParent + - AnnotationParent + - CollectionMetadataParent + - FrameParent + - GainParent + - KeyImageParent + - RawTiltParent + - RunParent + - TiltSeriesParent + - TomogramParent + - VoxelSpacingParent + range: string + multivalued: true + inlined: true + inlined_as_list: true + deposition: + name: deposition + description: Include or exclude depositions for a source. + from_schema: cdp-ingestion-config + alias: deposition + owner: AlignmentParent + domain_of: + - AlignmentParent + - AnnotationParent + - CollectionMetadataParent + - DatasetParent + - DatasetKeyPhotoParent + - DepositionKeyPhotoParent + - FrameParent + - GainParent + - KeyImageParent + - RawTiltParent + - RunParent + - TiltSeriesParent + - TomogramParent + - VoxelSpacingParent + range: string + multivalued: true + inlined: true + inlined_as_list: true + run: + name: run + description: Include or exclude runs for a source. + from_schema: cdp-ingestion-config + alias: run + owner: AlignmentParent + domain_of: + - AlignmentParent + - AnnotationParent + - CollectionMetadataParent + - FrameParent + - GainParent + - KeyImageParent + - RawTiltParent + - TiltSeriesParent + - TomogramParent + - VoxelSpacingParent + range: string + multivalued: true + inlined: true + inlined_as_list: true + tomogram: + name: tomogram + description: Include or exclude tomograms for a source. + from_schema: cdp-ingestion-config + alias: tomogram + owner: AlignmentParent + domain_of: + - AlignmentParent + - KeyImageParent + range: string + multivalued: true + inlined: true + inlined_as_list: true + voxel_spacing: + name: voxel_spacing + description: Include or exclude voxel spacings for a source. + from_schema: cdp-ingestion-config + alias: voxel_spacing + owner: AlignmentParent + domain_of: + - Tomogram + - AlignmentParent + - AnnotationParent + - KeyImageParent + - TomogramParent + range: string + multivalued: true + inlined: true + inlined_as_list: true AnnotationEntity: name: AnnotationEntity description: An annotation entity. @@ -1142,6 +1484,7 @@ classes: alias: metadata owner: AnnotationEntity domain_of: + - AlignmentEntity - AnnotationEntity - DatasetEntity - DepositionEntity @@ -1158,6 +1501,7 @@ classes: alias: sources owner: AnnotationEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -1275,6 +1619,7 @@ classes: alias: parent_filters owner: AnnotationSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -1299,6 +1644,7 @@ classes: owner: AnnotationSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1330,6 +1676,7 @@ classes: alias: include owner: AnnotationParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1356,6 +1703,7 @@ classes: owner: AnnotationParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1390,6 +1738,7 @@ classes: alias: dataset owner: AnnotationParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -1411,6 +1760,7 @@ classes: alias: deposition owner: AnnotationParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -1435,6 +1785,7 @@ classes: alias: run owner: AnnotationParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -1456,6 +1807,7 @@ classes: owner: AnnotationParent domain_of: - Tomogram + - AlignmentParent - AnnotationParent - KeyImageParent - TomogramParent @@ -1475,6 +1827,7 @@ classes: alias: sources owner: CollectionMetadataEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -1508,6 +1861,7 @@ classes: alias: parent_filters owner: CollectionMetadataSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -1582,6 +1936,7 @@ classes: owner: CollectionMetadataSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1613,6 +1968,7 @@ classes: alias: include owner: CollectionMetadataParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1639,6 +1995,7 @@ classes: owner: CollectionMetadataParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1673,6 +2030,7 @@ classes: alias: dataset owner: CollectionMetadataParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -1694,6 +2052,7 @@ classes: alias: deposition owner: CollectionMetadataParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -1718,6 +2077,7 @@ classes: alias: run owner: CollectionMetadataParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -1743,6 +2103,7 @@ classes: alias: metadata owner: DatasetEntity domain_of: + - AlignmentEntity - AnnotationEntity - DatasetEntity - DepositionEntity @@ -1758,6 +2119,7 @@ classes: alias: sources owner: DatasetEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -1791,6 +2153,7 @@ classes: alias: parent_filters owner: DatasetSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -1865,6 +2228,7 @@ classes: owner: DatasetSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1896,6 +2260,7 @@ classes: alias: include owner: DatasetParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1922,6 +2287,7 @@ classes: owner: DatasetParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -1953,6 +2319,7 @@ classes: alias: deposition owner: DatasetParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -1982,6 +2349,7 @@ classes: alias: sources owner: DatasetKeyPhotoEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -2029,6 +2397,7 @@ classes: alias: parent_filters owner: DatasetKeyPhotoSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -2089,6 +2458,7 @@ classes: owner: DatasetKeyPhotoSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2120,6 +2490,7 @@ classes: alias: include owner: DatasetKeyPhotoParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2146,6 +2517,7 @@ classes: owner: DatasetKeyPhotoParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2177,6 +2549,7 @@ classes: alias: deposition owner: DatasetKeyPhotoParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -2206,6 +2579,7 @@ classes: alias: metadata owner: DepositionEntity domain_of: + - AlignmentEntity - AnnotationEntity - DatasetEntity - DepositionEntity @@ -2221,6 +2595,7 @@ classes: alias: sources owner: DepositionEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -2305,6 +2680,7 @@ classes: owner: DepositionSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2334,6 +2710,7 @@ classes: alias: sources owner: DepositionKeyPhotoEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -2381,6 +2758,7 @@ classes: alias: parent_filters owner: DepositionKeyPhotoSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -2441,6 +2819,7 @@ classes: owner: DepositionKeyPhotoSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2472,6 +2851,7 @@ classes: alias: include owner: DepositionKeyPhotoParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2498,6 +2878,7 @@ classes: owner: DepositionKeyPhotoParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2529,6 +2910,7 @@ classes: alias: deposition owner: DepositionKeyPhotoParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -2558,6 +2940,7 @@ classes: alias: sources owner: FrameEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -2591,6 +2974,7 @@ classes: alias: parent_filters owner: FrameSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -2665,6 +3049,7 @@ classes: owner: FrameSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2695,6 +3080,7 @@ classes: alias: include owner: FrameParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2720,6 +3106,7 @@ classes: owner: FrameParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2753,6 +3140,7 @@ classes: alias: dataset owner: FrameParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -2774,6 +3162,7 @@ classes: alias: deposition owner: FrameParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -2798,6 +3187,7 @@ classes: alias: run owner: FrameParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -2823,6 +3213,7 @@ classes: alias: sources owner: GainEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -2856,6 +3247,7 @@ classes: alias: parent_filters owner: GainSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -2930,6 +3322,7 @@ classes: owner: GainSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2960,6 +3353,7 @@ classes: alias: include owner: GainParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -2985,6 +3379,7 @@ classes: owner: GainParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3018,6 +3413,7 @@ classes: alias: dataset owner: GainParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -3039,6 +3435,7 @@ classes: alias: deposition owner: GainParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -3063,6 +3460,7 @@ classes: alias: run owner: GainParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -3088,6 +3486,7 @@ classes: alias: sources owner: KeyImageEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -3121,6 +3520,7 @@ classes: alias: parent_filters owner: KeyImageSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -3195,6 +3595,7 @@ classes: owner: KeyImageSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3226,6 +3627,7 @@ classes: alias: include owner: KeyImageParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3252,6 +3654,7 @@ classes: owner: KeyImageParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3287,6 +3690,7 @@ classes: alias: dataset owner: KeyImageParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -3308,6 +3712,7 @@ classes: alias: deposition owner: KeyImageParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -3332,6 +3737,7 @@ classes: alias: run owner: KeyImageParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -3352,6 +3758,7 @@ classes: alias: tomogram owner: KeyImageParent domain_of: + - AlignmentParent - KeyImageParent range: string multivalued: true @@ -3365,6 +3772,7 @@ classes: owner: KeyImageParent domain_of: - Tomogram + - AlignmentParent - AnnotationParent - KeyImageParent - TomogramParent @@ -3384,6 +3792,7 @@ classes: alias: sources owner: RawTiltEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -3417,6 +3826,7 @@ classes: alias: parent_filters owner: RawTiltSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -3491,6 +3901,7 @@ classes: owner: RawTiltSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3522,6 +3933,7 @@ classes: alias: include owner: RawTiltParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3548,6 +3960,7 @@ classes: owner: RawTiltParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3581,6 +3994,7 @@ classes: alias: dataset owner: RawTiltParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -3602,6 +4016,7 @@ classes: alias: deposition owner: RawTiltParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -3626,6 +4041,7 @@ classes: alias: run owner: RawTiltParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -3651,6 +4067,7 @@ classes: alias: sources owner: RunEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -3684,6 +4101,7 @@ classes: alias: parent_filters owner: RunSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -3758,6 +4176,7 @@ classes: owner: RunSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3788,6 +4207,7 @@ classes: alias: include owner: RunParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3813,6 +4233,7 @@ classes: owner: RunParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -3845,6 +4266,7 @@ classes: alias: dataset owner: RunParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -3866,6 +4288,7 @@ classes: alias: deposition owner: RunParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -3968,6 +4391,7 @@ classes: alias: metadata owner: TiltSeriesEntity domain_of: + - AlignmentEntity - AnnotationEntity - DatasetEntity - DepositionEntity @@ -3983,6 +4407,7 @@ classes: alias: sources owner: TiltSeriesEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -4016,6 +4441,7 @@ classes: alias: parent_filters owner: TiltSeriesSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -4090,6 +4516,7 @@ classes: owner: TiltSeriesSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4121,6 +4548,7 @@ classes: alias: include owner: TiltSeriesParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4147,6 +4575,7 @@ classes: owner: TiltSeriesParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4180,6 +4609,7 @@ classes: alias: dataset owner: TiltSeriesParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -4201,6 +4631,7 @@ classes: alias: deposition owner: TiltSeriesParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -4225,6 +4656,7 @@ classes: alias: run owner: TiltSeriesParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -4250,6 +4682,7 @@ classes: alias: metadata owner: TomogramEntity domain_of: + - AlignmentEntity - AnnotationEntity - DatasetEntity - DepositionEntity @@ -4265,6 +4698,7 @@ classes: alias: sources owner: TomogramEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -4298,6 +4732,7 @@ classes: alias: parent_filters owner: TomogramSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -4372,6 +4807,7 @@ classes: owner: TomogramSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4403,6 +4839,7 @@ classes: alias: include owner: TomogramParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4429,6 +4866,7 @@ classes: owner: TomogramParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4463,6 +4901,7 @@ classes: alias: dataset owner: TomogramParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -4484,6 +4923,7 @@ classes: alias: deposition owner: TomogramParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -4508,6 +4948,7 @@ classes: alias: run owner: TomogramParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -4529,6 +4970,7 @@ classes: owner: TomogramParent domain_of: - Tomogram + - AlignmentParent - AnnotationParent - KeyImageParent - TomogramParent @@ -4548,6 +4990,7 @@ classes: alias: sources owner: VoxelSpacingEntity domain_of: + - AlignmentEntity - AnnotationEntity - CollectionMetadataEntity - DatasetEntity @@ -4630,6 +5073,7 @@ classes: alias: parent_filters owner: VoxelSpacingSource domain_of: + - AlignmentSource - AnnotationSource - CollectionMetadataSource - DatasetSource @@ -4654,6 +5098,7 @@ classes: owner: VoxelSpacingSource domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4685,6 +5130,7 @@ classes: alias: include owner: VoxelSpacingParentFilters domain_of: + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4711,6 +5157,7 @@ classes: owner: VoxelSpacingParentFilters domain_of: - DefaultSource + - AlignmentParentFilters - AnnotationParentFilters - CollectionMetadataParentFilters - DatasetParentFilters @@ -4744,6 +5191,7 @@ classes: alias: dataset owner: VoxelSpacingParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent @@ -4765,6 +5213,7 @@ classes: alias: deposition owner: VoxelSpacingParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - DatasetParent @@ -4789,6 +5238,7 @@ classes: alias: run owner: VoxelSpacingParent domain_of: + - AlignmentParent - AnnotationParent - CollectionMetadataParent - FrameParent diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml index dbff7a290..4101f21f0 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml @@ -50,6 +50,10 @@ classes: description: Class that models the ingestion config file. tree_root: true attributes: + alignments: + description: Alignments for the dataset. + multivalued: true + range: AlignmentEntity annotations: description: Annotations for the dataset. multivalued: true @@ -201,6 +205,46 @@ classes: # ============================================================================ # Ingestion config classes # ============================================================================ + AlignmentEntity: + description: An alignment entity. + attributes: + metadata: + description: The metadata for the alignment. + range: Alignment + required: true + sources: + description: The sources for the alignment. + multivalued: true + range: AlignmentSource + required: true + + AlignmentSource: + description: An alignment source. + is_a: StandardSource + attributes: + parent_filters: + description: Permitted parent filters for an alignment source. + range: AlignmentParentFilters + + AlignmentParentFilters: + description: Types of parent filters for an alignment source. + attributes: + include: + description: Include files for the parent of an alignment source (regexes). + range: AlignmentParent + exclude: + description: Exclude files for the parent of an alignment source (regexes). + range: AlignmentParent + + AlignmentParent: + description: A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + slots: + - dataset + - deposition + - run + - tomogram + - voxel_spacing + AnnotationEntity: description: An annotation entity. attributes: diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py b/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py index 8af97daa1..896cb5d65 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py @@ -12,6 +12,8 @@ import numpy from async_lru import alru_cache from codegen.ingestion_config_models import ( + Alignment, AlignmentEntity, + AlignmentSource, Annotation, AnnotationConfidence, AnnotationEntity, @@ -531,6 +533,47 @@ def validate_sources(source_list: List[StandardSource] | List[VoxelSpacingSource raise ValueError(total_errors) +# ============================================================================== +# Alignment Entity Validation +# ============================================================================== +class ExtendedValidationAlignmentEntity(AlignmentEntity): + @field_validator("sources") + @classmethod + def valid_sources(cls: Self, source_list: List[AlignmentSource]) -> List[AlignmentSource]: + return validate_sources(source_list) + +# ============================================================================== +# Alignment Validation +# ============================================================================== +class ExtendValidationAlignment(Alignment): + @field_validator("affine_transformation_matrix") + @classmethod + def valid_affine_transformation_matrix( + cls: Self, + affine_transformation_matrix: Optional[List[List[float]]], + ) -> Optional[List[List[float]]]: + if affine_transformation_matrix is None: + return None + + errors = [] + # Bottom row of the matrix should be [0, 0, 0, 1] + if affine_transformation_matrix[3] != [0, 0, 0, 1]: + errors.append(ValueError("Bottom row of the affine transformation matrix must be [0, 0, 0, 1]")) + + # Check that top left 3x3 matrix is an invertible matrix + top_left_matrix = numpy.array( + [ + affine_transformation_matrix[0][0:3], + affine_transformation_matrix[1][0:3], + affine_transformation_matrix[2][0:3], + ], + ) + if numpy.linalg.det(top_left_matrix) == 0: + errors.append(ValueError("Top left 3x3 matrix of the affine transformation matrix must be invertible")) + + return affine_transformation_matrix + + # ============================================================================== # Annotation Object Validation # ============================================================================== @@ -917,33 +960,6 @@ def valid_sources(cls: Self, source_list: List[TiltSeriesSource]) -> List[TiltSe # Tomogram Validation # ============================================================================== class ExtendedValidationTomogram(Tomogram): - @field_validator("affine_transformation_matrix") - @classmethod - def valid_affine_transformation_matrix( - cls: Self, - affine_transformation_matrix: Optional[List[List[float]]], - ) -> Optional[List[List[float]]]: - if affine_transformation_matrix is None: - return None - - errors = [] - # Bottom row of the matrix should be [0, 0, 0, 1] - if affine_transformation_matrix[3] != [0, 0, 0, 1]: - errors.append(ValueError("Bottom row of the affine transformation matrix must be [0, 0, 0, 1]")) - - # Check that top left 3x3 matrix is an invertible matrix - top_left_matrix = numpy.array( - [ - affine_transformation_matrix[0][0:3], - affine_transformation_matrix[1][0:3], - affine_transformation_matrix[2][0:3], - ], - ) - if numpy.linalg.det(top_left_matrix) == 0: - errors.append(ValueError("Top left 3x3 matrix of the affine transformation matrix must be invertible")) - - return affine_transformation_matrix - @field_validator("authors") @classmethod def valid_tomogram_authors(cls: Self, authors: List[Author]) -> List[Author]: From ac69f5ea643b562831dd52e3e5091e02d887b08b Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 12 Sep 2024 13:40:41 -0700 Subject: [PATCH 17/59] - add format, volume_dimensions to ingest config schema - add enums for alignment types and format --- ingestion_tools/dataset_configs/template.yaml | 22 ++- .../v1.1.0/codegen/metadata_materialized.yaml | 138 ++++++++++++++- schema/core/v1.1.0/codegen/metadata_models.py | 164 +++++++++++++++--- schema/core/v1.1.0/common.yaml | 15 ++ schema/core/v1.1.0/metadata.yaml | 42 ++++- .../v1.0.0/codegen/ingestion_config_models.py | 157 +++++++++++++++-- .../ingestion_config_models.schema.json | 123 ++++++++++--- .../ingestion_config_models_materialized.yaml | 22 +++ 8 files changed, 604 insertions(+), 79 deletions(-) diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index 7c62140e7..5889c7378 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -2,18 +2,24 @@ alignments: OPTIONAL - metadata: affine_transformation_matrix: OPTIONAL 4x4 FLOAT MATRIX (DEFAULT 4x4 identity matrix) - - - REQUIRED, FLOAT - - ... (4 ELEMENTS) - - ... (4 ELEMENTS) - alignment_type: REQUIRED, STRING + - ... (4 FLOAT ELEMENTS) + - ... (4 FLOAT ELEMENTS) + - ... (4 FLOAT ELEMENTS) + - ... (4 FLOAT ELEMENTS) + alignment_type: REQUIRED, ENUM(LOCAL,GLOBAL) is_canonical: REQUIRED, BOOLEAN (DEFAULT TRUE) - offset: REQUIRED + offset: OPTIONAL + x: REQUIRED, INTEGER, DEFAULT 0 + y: REQUIRED, INTEGER, DEFAULT 0 + z: REQUIRED, INTEGER, DEFAULT 0 + tilt_offset: REQUIRED, FLOAT (DEFAULT 0.0) + x_rotation_offset: REQUIRED, INTEGER (DEFAULT 0) + format: REQUIRED, ENUM(IMOD, ARETOMO3) + volume_dimension: OPTIONAL x: REQUIRED, INTEGER y: REQUIRED, INTEGER z: REQUIRED, INTEGER - tilt_offset: REQUIRED, FLOAT (DEFAULT 0.0) - x_rotation_offset: REQUIRED, INTEGER (DEFAULT 0) -- sources: SEE datasets.sources and runs.sources.parent_filters + sources: SEE datasets.sources and runs.sources.parent_filters annotations: OPTIONAL - metadata: REQUIRED confidence: OPTIONAL diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index 81b614900..7ecdbfc65 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -373,6 +373,28 @@ types: base: str pattern: ^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$ enums: + alignment_type_enum: + name: alignment_type_enum + description: Type of alignment + from_schema: metadata + permissible_values: + LOCAL: + text: LOCAL + description: Local alignment + GLOBAL: + text: GLOBAL + description: Global alignment + alignment_format_enum: + name: alignment_format_enum + description: Used to determine what alignment alogrithm to use. + from_schema: metadata + permissible_values: + IMOD: + text: IMOD + description: formats xf, tlt, xtlt, rawtlt + ARETOMO3: + text: ARETOMO3 + description: formats aln, _TLT.txt, rawtlt annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. @@ -2242,6 +2264,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: integer required: true @@ -2260,6 +2283,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: integer required: true @@ -2279,6 +2303,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: integer required: true @@ -2303,6 +2328,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: Any required: true @@ -2324,6 +2350,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: Any required: true @@ -2345,6 +2372,7 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: Any required: true @@ -3688,6 +3716,78 @@ classes: inlined: true inlined_as_list: true minimum_cardinality: 1 + AlignmentSize: + name: AlignmentSize + description: The size of an alignment in voxels in each dimension. + from_schema: metadata + attributes: + x: + name: x + description: Number of pixels in the 3D data fast axis + from_schema: metadata + alias: x + owner: AlignmentSize + domain_of: + - TomogramSize + - TomogramOffset + - AlignmentSize + - AlignmentOffset + range: Any + required: true + inlined: true + inlined_as_list: true + pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ + unit: + symbol: px + descriptive_name: pixels + any_of: + - range: integer + - range: IntegerFormattedString + y: + name: y + description: Number of pixels in the 3D data medium axis + from_schema: metadata + alias: y + owner: AlignmentSize + domain_of: + - TomogramSize + - TomogramOffset + - AlignmentSize + - AlignmentOffset + range: Any + required: true + inlined: true + inlined_as_list: true + pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ + unit: + symbol: px + descriptive_name: pixels + any_of: + - range: integer + - range: IntegerFormattedString + z: + name: z + description: Number of pixels in the 3D data slow axis. This is the image + projection direction at zero stage tilt + from_schema: metadata + alias: z + owner: AlignmentSize + domain_of: + - TomogramSize + - TomogramOffset + - AlignmentSize + - AlignmentOffset + range: Any + required: true + inlined: true + inlined_as_list: true + pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ + unit: + symbol: px + descriptive_name: pixels + any_of: + - range: integer + - range: IntegerFormattedString AlignmentOffset: name: AlignmentOffset description: The offset of a alignment in voxels in each dimension relative to @@ -3704,9 +3804,9 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: Any - required: true inlined: true inlined_as_list: true pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ @@ -3726,9 +3826,9 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: Any - required: true inlined: true inlined_as_list: true pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ @@ -3748,9 +3848,9 @@ classes: domain_of: - TomogramSize - TomogramOffset + - AlignmentSize - AlignmentOffset range: Any - required: true inlined: true inlined_as_list: true pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ @@ -3772,14 +3872,10 @@ classes: owner: Alignment domain_of: - Alignment - range: Any - required: true + range: alignment_type_enum inlined: true inlined_as_list: true - pattern: ^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ - any_of: - - range: string - - range: StringFormattedString + pattern: (^LOCAL$)|(^GLOBAL$) offset: name: offset description: The offset of a alignment in voxels in each dimension relative @@ -3794,6 +3890,17 @@ classes: required: true inlined: true inlined_as_list: true + volume_dimesion: + name: volume_dimesion + description: The size of an alignment in voxels in each dimension. + from_schema: metadata + alias: volume_dimesion + owner: Alignment + domain_of: + - Alignment + range: AlignmentSize + inlined: true + inlined_as_list: true x_rotation_offset: name: x_rotation_offset description: The x rotation offset relative to the tomogram. @@ -3855,6 +3962,19 @@ classes: required: true inlined: true inlined_as_list: true + format: + name: format + description: The format of the alignment. + from_schema: metadata + alias: format + owner: Alignment + domain_of: + - Alignment + range: alignment_format_enum + required: true + inlined: true + inlined_as_list: true + pattern: (^IMOD$)|(^ARETOMO3$) Any: name: Any from_schema: metadata diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 917afc52e..5c98e6276 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -487,6 +487,28 @@ def __contains__(self, key: str) -> bool: ) +class AlignmentTypeEnum(str, Enum): + """ + Type of alignment + """ + + # Local alignment + LOCAL = "LOCAL" + # Global alignment + GLOBAL = "GLOBAL" + + +class AlignmentFormatEnum(str, Enum): + """ + Used to determine what alignment alogrithm to use. + """ + + # formats xf, tlt, xtlt, rawtlt + IMOD = "IMOD" + # formats aln, _TLT.txt, rawtlt + ARETOMO3 = "ARETOMO3" + + class AnnotationMethodTypeEnum(str, Enum): """ Describes how the annotations were generated. @@ -2125,7 +2147,7 @@ class TomogramSize(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "x", - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2137,7 +2159,7 @@ class TomogramSize(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "y", - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2149,7 +2171,7 @@ class TomogramSize(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "z", - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2170,7 +2192,7 @@ class TomogramOffset(ConfiguredBaseModel): "linkml_meta": { "alias": "x", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2182,7 +2204,7 @@ class TomogramOffset(ConfiguredBaseModel): "linkml_meta": { "alias": "y", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -2194,7 +2216,7 @@ class TomogramOffset(ConfiguredBaseModel): "linkml_meta": { "alias": "z", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, @@ -3696,6 +3718,87 @@ def pattern_method_type(cls, v): return v +class AlignmentSize(ConfiguredBaseModel): + """ + The size of an alignment in voxels in each dimension. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + x: Union[int, str] = Field( + ..., + description="""Number of pixels in the 3D data fast axis""", + json_schema_extra={ + "linkml_meta": { + "alias": "x", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + y: Union[int, str] = Field( + ..., + description="""Number of pixels in the 3D data medium axis""", + json_schema_extra={ + "linkml_meta": { + "alias": "y", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + z: Union[int, str] = Field( + ..., + description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", + json_schema_extra={ + "linkml_meta": { + "alias": "z", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + + @field_validator("x") + def pattern_x(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator("y") + def pattern_y(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator("z") + def pattern_z(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + class AlignmentOffset(ConfiguredBaseModel): """ The offset of a alignment in voxels in each dimension relative to the canonical tomogram. @@ -3703,40 +3806,40 @@ class AlignmentOffset(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - x: Union[int, str] = Field( + x: Optional[Union[int, str]] = Field( 0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra={ "linkml_meta": { "alias": "x", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "ifabsent": "int(0)", "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, ) - y: Union[int, str] = Field( + y: Optional[Union[int, str]] = Field( 0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra={ "linkml_meta": { "alias": "y", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "ifabsent": "int(0)", "unit": {"descriptive_name": "pixels", "symbol": "px"}, } }, ) - z: Union[int, str] = Field( + z: Optional[Union[int, str]] = Field( 0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra={ "linkml_meta": { "alias": "z", "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentOffset"], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], "ifabsent": "int(0)", "unit": {"descriptive_name": "pixels", "symbol": "px"}, } @@ -3783,22 +3886,21 @@ def pattern_z(cls, v): class Alignment(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - alignment_type: str = Field( - ..., + alignment_type: Optional[AlignmentTypeEnum] = Field( + None, description="""The type of alignment.""", - json_schema_extra={ - "linkml_meta": { - "alias": "alignment_type", - "any_of": [{"range": "string"}, {"range": "StringFormattedString"}], - "domain_of": ["Alignment"], - } - }, + json_schema_extra={"linkml_meta": {"alias": "alignment_type", "domain_of": ["Alignment"]}}, ) offset: AlignmentOffset = Field( ..., description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, ) + volume_dimesion: Optional[AlignmentSize] = Field( + None, + description="""The size of an alignment in voxels in each dimension.""", + json_schema_extra={"linkml_meta": {"alias": "volume_dimesion", "domain_of": ["Alignment"]}}, + ) x_rotation_offset: Union[int, str] = Field( 0, description="""The x rotation offset relative to the tomogram.""", @@ -3839,10 +3941,15 @@ class Alignment(ConfiguredBaseModel): description="""Whether the alignment is canonical.""", json_schema_extra={"linkml_meta": {"alias": "is_canonical", "domain_of": ["Alignment"], "ifabsent": "True"}}, ) + format: AlignmentFormatEnum = Field( + ..., + description="""The format of the alignment.""", + json_schema_extra={"linkml_meta": {"alias": "format", "domain_of": ["Alignment"]}}, + ) @field_validator("alignment_type") def pattern_alignment_type(cls, v): - pattern = re.compile(r"^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + pattern = re.compile(r"(^LOCAL$)|(^GLOBAL$)") if isinstance(v, list): for element in v: if not pattern.match(element): @@ -3864,6 +3971,18 @@ def pattern_x_rotation_offset(cls, v): raise ValueError(f"Invalid x_rotation_offset format: {v}") return v + @field_validator("format") + def pattern_format(cls, v): + pattern = re.compile(r"(^IMOD$)|(^ARETOMO3$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid format format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid format format: {v}") + return v + class DateStampedEntityMixin(ConfiguredBaseModel): """ @@ -4354,6 +4473,7 @@ def pattern_ORCID(cls, v): AnnotationTriangularMeshFile.model_rebuild() AnnotationTriangularMeshGroupFile.model_rebuild() Annotation.model_rebuild() +AlignmentSize.model_rebuild() AlignmentOffset.model_rebuild() Alignment.model_rebuild() DateStampedEntityMixin.model_rebuild() diff --git a/schema/core/v1.1.0/common.yaml b/schema/core/v1.1.0/common.yaml index ed7f812fc..261fcb84a 100644 --- a/schema/core/v1.1.0/common.yaml +++ b/schema/core/v1.1.0/common.yaml @@ -806,6 +806,21 @@ enums: # ============================================================================ # Controlled vocabularies # ============================================================================ + alignment_type_enum: + description: Type of alignment + permissible_values: + LOCAL: + description: Local alignment + GLOBAL: + description: Global alignment + + alignment_format_enum: + description: Used to determine what alignment alogrithm to use. + permissible_values: + IMOD: + description: formats xf, tlt, xtlt, rawtlt + ARETOMO3: + description: formats aln, _TLT.txt, rawtlt annotation_method_type_enum: description: Describes how the annotations were generated. permissible_values: diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index 689c20f19..bd0f82cea 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -717,6 +717,37 @@ classes: # Alignment metadata # ============================================================================ + AlignmentSize: + description: &desc_alignment_size The size of an alignment in voxels in each dimension. + attributes: + x: + any_of: + - range: integer + - range: IntegerFormattedString + required: true + description: Number of pixels in the 3D data fast axis + unit: + descriptive_name: pixels + symbol: px + y: + any_of: + - range: integer + - range: IntegerFormattedString + required: true + description: Number of pixels in the 3D data medium axis + unit: + descriptive_name: pixels + symbol: px + z: + any_of: + - range: integer + - range: IntegerFormattedString + required: true + description: Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt + unit: + descriptive_name: pixels + symbol: px + AlignmentOffset: description: &desc_alignment_offset The offset of a alignment in voxels in each dimension relative to the canonical tomogram. attributes: @@ -756,14 +787,15 @@ classes: attributes: alignment_type: description: The type of alignment. - any_of: - - range: string - - range: cdp-common:StringFormattedString + range: alignment_type_enum required: true offset: description: *desc_alignment_offset range: AlignmentOffset required: true + volume_dimesion: + description: *desc_alignment_size + range: AlignmentSize x_rotation_offset: description: The x rotation offset relative to the tomogram. any_of: @@ -790,3 +822,7 @@ classes: range: boolean required: true ifabsent: true + format: + description: The format of the alignment. + range: alignment_format_enum + required: true diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 9f95875f4..9db5f21fd 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -403,6 +403,26 @@ def __contains__(self, key:str) -> bool: 'repr': 'str', 'uri': 'xsd:anyURI'}}} ) +class AlignmentTypeEnum(str, Enum): + """ + Type of alignment + """ + # Local alignment + LOCAL = "LOCAL" + # Global alignment + GLOBAL = "GLOBAL" + + +class AlignmentFormatEnum(str, Enum): + """ + Used to determine what alignment alogrithm to use. + """ + # formats xf, tlt, xtlt, rawtlt + IMOD = "IMOD" + # formats aln, _TLT.txt, rawtlt + ARETOMO3 = "ARETOMO3" + + class AnnotationMethodTypeEnum(str, Enum): """ Describes how the annotations were generated. @@ -1373,13 +1393,22 @@ class TomogramSize(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) x: int = Field(..., description="""Number of pixels in the 3D data fast axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'x', - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) y: int = Field(..., description="""Number of pixels in the 3D data medium axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'y', - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) z: int = Field(..., description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'z', - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) @@ -1391,15 +1420,24 @@ class TomogramOffset(ConfiguredBaseModel): x: Union[int, str] = Field(..., description="""x offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) y: Union[int, str] = Field(..., description="""y offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) z: Union[int, str] = Field(..., description="""z offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) @field_validator('x') @@ -2183,25 +2221,99 @@ def pattern_method_type(cls, v): return v +class AlignmentSize(ConfiguredBaseModel): + """ + The size of an alignment in voxels in each dimension. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + x: Union[int, str] = Field(..., description="""Number of pixels in the 3D data fast axis""", json_schema_extra = { "linkml_meta": {'alias': 'x', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + y: Union[int, str] = Field(..., description="""Number of pixels in the 3D data medium axis""", json_schema_extra = { "linkml_meta": {'alias': 'y', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + z: Union[int, str] = Field(..., description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", json_schema_extra = { "linkml_meta": {'alias': 'z', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + + @field_validator('x') + def pattern_x(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator('y') + def pattern_y(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator('z') + def pattern_z(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + class AlignmentOffset(ConfiguredBaseModel): """ The offset of a alignment in voxels in each dimension relative to the canonical tomogram. """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - x: Union[int, str] = Field(0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', + x: Optional[Union[int, str]] = Field(0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'ifabsent': 'int(0)', 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - y: Union[int, str] = Field(0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', + y: Optional[Union[int, str]] = Field(0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'ifabsent': 'int(0)', 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - z: Union[int, str] = Field(0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', + z: Optional[Union[int, str]] = Field(0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', 'TomogramOffset', 'AlignmentOffset'], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], 'ifabsent': 'int(0)', 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) @@ -2245,10 +2357,9 @@ def pattern_z(cls, v): class Alignment(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - alignment_type: str = Field(..., description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', - 'any_of': [{'range': 'string'}, {'range': 'StringFormattedString'}], - 'domain_of': ['Alignment']} }) + alignment_type: Optional[AlignmentTypeEnum] = Field(None, description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', 'domain_of': ['Alignment']} }) offset: AlignmentOffset = Field(..., description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) + volume_dimesion: Optional[AlignmentSize] = Field(None, description="""The size of an alignment in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'volume_dimesion', 'domain_of': ['Alignment']} }) x_rotation_offset: Union[int, str] = Field(0, description="""The x rotation offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'x_rotation_offset', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], 'domain_of': ['Alignment'], @@ -2259,10 +2370,11 @@ class Alignment(ConfiguredBaseModel): 'exact_number_dimensions': 2}, 'domain_of': ['Alignment']} }) is_canonical: bool = Field(True, description="""Whether the alignment is canonical.""", json_schema_extra = { "linkml_meta": {'alias': 'is_canonical', 'domain_of': ['Alignment'], 'ifabsent': 'True'} }) + format: AlignmentFormatEnum = Field(..., description="""The format of the alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'format', 'domain_of': ['Alignment']} }) @field_validator('alignment_type') def pattern_alignment_type(cls, v): - pattern=re.compile(r"^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + pattern=re.compile(r"(^LOCAL$)|(^GLOBAL$)") if isinstance(v,list): for element in v: if not pattern.match(element): @@ -2284,6 +2396,18 @@ def pattern_x_rotation_offset(cls, v): raise ValueError(f"Invalid x_rotation_offset format: {v}") return v + @field_validator('format') + def pattern_format(cls, v): + pattern=re.compile(r"(^IMOD$)|(^ARETOMO3$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid format format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid format format: {v}") + return v + class DateStampedEntityMixin(ConfiguredBaseModel): """ @@ -6291,6 +6415,7 @@ class TomogramHeader(ConfiguredBaseModel): AnnotationTriangularMeshFile.model_rebuild() AnnotationTriangularMeshGroupFile.model_rebuild() Annotation.model_rebuild() +AlignmentSize.model_rebuild() AlignmentOffset.model_rebuild() Alignment.model_rebuild() DateStampedEntityMixin.model_rebuild() diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json index b8727d91f..26a119680 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -22,18 +22,14 @@ ] }, "alignment_type": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "string" - }, - { - "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], + "$ref": "#/$defs/AlignmentTypeEnum", "description": "The type of alignment.", - "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + "pattern": "(^LOCAL$)|(^GLOBAL$)" + }, + "format": { + "$ref": "#/$defs/AlignmentFormatEnum", + "description": "The format of the alignment.", + "pattern": "(^IMOD$)|(^ARETOMO3$)" }, "is_canonical": { "description": "Whether the alignment is canonical.", @@ -47,6 +43,17 @@ "description": "The tilt offset relative to the tomogram.", "type": "number" }, + "volume_dimesion": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentSize" + }, + { + "type": "null" + } + ], + "description": "The size of an alignment in voxels in each dimension." + }, "x_rotation_offset": { "$ref": "#/$defs/Any", "anyOf": [ @@ -63,11 +70,11 @@ } }, "required": [ - "alignment_type", "offset", "x_rotation_offset", "tilt_offset", - "is_canonical" + "is_canonical", + "format" ], "title": "Alignment", "type": "object" @@ -96,12 +103,20 @@ "title": "AlignmentEntity", "type": "object" }, + "AlignmentFormatEnum": { + "description": "Used to determine what alignment alogrithm to use.", + "enum": [ + "IMOD", + "ARETOMO3" + ], + "title": "AlignmentFormatEnum", + "type": "string" + }, "AlignmentOffset": { "additionalProperties": false, "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram.", "properties": { "x": { - "$ref": "#/$defs/Any", "anyOf": [ { "type": "integer" @@ -109,13 +124,15 @@ { "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", "type": "string" + }, + { + "type": "null" } ], "description": "x offset relative to the canonical tomogram in pixels", "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" }, "y": { - "$ref": "#/$defs/Any", "anyOf": [ { "type": "integer" @@ -123,13 +140,15 @@ { "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", "type": "string" + }, + { + "type": "null" } ], "description": "y offset relative to the canonical tomogram in pixels", "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" }, "z": { - "$ref": "#/$defs/Any", "anyOf": [ { "type": "integer" @@ -137,17 +156,15 @@ { "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", "type": "string" + }, + { + "type": "null" } ], "description": "z offset relative to the canonical tomogram in pixels", "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" } }, - "required": [ - "x", - "y", - "z" - ], "title": "AlignmentOffset", "type": "object" }, @@ -239,6 +256,61 @@ "title": "AlignmentParentFilters", "type": "object" }, + "AlignmentSize": { + "additionalProperties": false, + "description": "The size of an alignment in voxels in each dimension.", + "properties": { + "x": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Number of pixels in the 3D data fast axis", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "y": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Number of pixels in the 3D data medium axis", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "z": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "x", + "y", + "z" + ], + "title": "AlignmentSize", + "type": "object" + }, "AlignmentSource": { "additionalProperties": false, "description": "An alignment source.", @@ -312,6 +384,15 @@ "title": "AlignmentSource", "type": "object" }, + "AlignmentTypeEnum": { + "description": "Type of alignment", + "enum": [ + "LOCAL", + "GLOBAL" + ], + "title": "AlignmentTypeEnum", + "type": "string" + }, "Annotation": { "additionalProperties": false, "description": "Metadata describing an annotation.", diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml index 5c7162efd..51338c05d 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml @@ -357,6 +357,28 @@ types: base: str pattern: ^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$ enums: + alignment_type_enum: + name: alignment_type_enum + description: Type of alignment + from_schema: cdp-ingestion-config + permissible_values: + LOCAL: + text: LOCAL + description: Local alignment + GLOBAL: + text: GLOBAL + description: Global alignment + alignment_format_enum: + name: alignment_format_enum + description: Used to determine what alignment alogrithm to use. + from_schema: cdp-ingestion-config + permissible_values: + IMOD: + text: IMOD + description: formats xf, tlt, xtlt, rawtlt + ARETOMO3: + text: ARETOMO3 + description: formats aln, _TLT.txt, rawtlt annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. From b92c420c614a41984c464eea45fbd752e63cf7f1 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 12 Sep 2024 16:35:22 -0700 Subject: [PATCH 18/59] add alignment metadata --- schema/core/v2.0.0/metadata.yaml | 77 ++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/schema/core/v2.0.0/metadata.yaml b/schema/core/v2.0.0/metadata.yaml index a5e8cd08e..bd3156a86 100644 --- a/schema/core/v2.0.0/metadata.yaml +++ b/schema/core/v2.0.0/metadata.yaml @@ -705,3 +705,80 @@ classes: - cdp-common:annotation_version # ============================================================================ + + # ============================================================================ + # Alignment metadata + # ============================================================================ + + AlignmentOffset: + description: &desc_alignment_offset The offset of a alignment in voxels in each dimension relative to the canonical tomogram. + attributes: + x: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: x offset relative to the canonical tomogram in pixels + unit: + descriptive_name: pixels + symbol: px + y: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: y offset relative to the canonical tomogram in pixels + unit: + descriptive_name: pixels + symbol: px + z: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: z offset relative to the canonical tomogram in pixels + unit: + descriptive_name: pixels + symbol: px + + + Alignment: + attributes: + alignment_type: + description: The type of alignment. + any_of: + - range: string + - range: cdp-common:StringFormattedString + required: true + offset: + description: *desc_alignment_offset + range: AlignmentOffset + required: true + x_rotation_offset: + description: The x rotation offset relative to the tomogram. + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + ifabsent: "int(0)" + tilt_offset: + description: The tilt offset relative to the tomogram. + range: float + required: true + ifabsent: "float(0.0)" + affine_transformation_matrix: + # use the value in tomogram.affine_transformation_matrix if tomogram.afine_transformation_matrix is defined + description: The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix. + any_of: + - range: float + - range: cdp-common:FloatFormattedString + array: + exact_number_dimensions: 2 + dimensions: + - exact_cardinality: 4 + - exact_cardinality: 4 + is_canonical: + description: Whether the alignment is canonical. + range: boolean + required: true + ifabsent: true From 1e8fe9872779c797261cc7ddf97d48eaf8febc8c Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 12 Sep 2024 16:38:25 -0700 Subject: [PATCH 19/59] fix format documentation --- schema/core/v1.1.0/common.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/schema/core/v1.1.0/common.yaml b/schema/core/v1.1.0/common.yaml index 261fcb84a..77b608020 100644 --- a/schema/core/v1.1.0/common.yaml +++ b/schema/core/v1.1.0/common.yaml @@ -818,9 +818,10 @@ enums: description: Used to determine what alignment alogrithm to use. permissible_values: IMOD: - description: formats xf, tlt, xtlt, rawtlt + description: formats (xf, tlt) ARETOMO3: - description: formats aln, _TLT.txt, rawtlt + description: formats (aln) + annotation_method_type_enum: description: Describes how the annotations were generated. permissible_values: From afe9d0cfa466aa32b4d1758bcf3cb05a7328c78b Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 12 Sep 2024 20:50:13 -0700 Subject: [PATCH 20/59] Update config for alignment --- ingestion_tools/dataset_configs/10000.yaml | 40 ++++++++-------- ingestion_tools/dataset_configs/10001.yaml | 40 ++++++++-------- ingestion_tools/dataset_configs/10002.yaml | 44 +++++++++-------- ingestion_tools/dataset_configs/10004.yaml | 44 +++++++++-------- ingestion_tools/dataset_configs/10007.yaml | 40 ++++++++-------- ingestion_tools/dataset_configs/10008.yaml | 44 +++++++++-------- ingestion_tools/dataset_configs/10009.yaml | 44 +++++++++-------- .../dataset_configs/10011_draft.yaml | 40 ++++++++-------- ingestion_tools/dataset_configs/10301.yaml | 40 ++++++++-------- ingestion_tools/dataset_configs/10302.yaml | 40 ++++++++-------- ingestion_tools/dataset_configs/10436.yaml | 47 +++++++++++-------- ingestion_tools/dataset_configs/10437.yaml | 40 ++++++++-------- ingestion_tools/dataset_configs/10439.yaml | 46 +++++++++--------- .../dataset_configs/gjensen/10014.yaml | 6 ++- .../dataset_configs/gjensen/10015.yaml | 6 ++- .../dataset_configs/gjensen/10016.yaml | 6 ++- .../dataset_configs/gjensen/10017.yaml | 6 ++- .../dataset_configs/gjensen/10018.yaml | 6 ++- .../dataset_configs/gjensen/10019.yaml | 6 ++- .../dataset_configs/gjensen/10020.yaml | 6 ++- .../dataset_configs/gjensen/10021.yaml | 6 ++- .../dataset_configs/gjensen/10022.yaml | 6 ++- .../dataset_configs/gjensen/10023.yaml | 6 ++- .../dataset_configs/gjensen/10024.yaml | 6 ++- .../dataset_configs/gjensen/10025.yaml | 6 ++- .../dataset_configs/gjensen/10026.yaml | 6 ++- .../dataset_configs/gjensen/10027.yaml | 6 ++- .../dataset_configs/gjensen/10028.yaml | 6 ++- .../dataset_configs/gjensen/10029.yaml | 6 ++- .../dataset_configs/gjensen/10030.yaml | 6 ++- .../dataset_configs/gjensen/10031.yaml | 6 ++- .../dataset_configs/gjensen/10032.yaml | 6 ++- .../dataset_configs/gjensen/10033.yaml | 6 ++- .../dataset_configs/gjensen/10034.yaml | 6 ++- .../dataset_configs/gjensen/10035.yaml | 6 ++- .../dataset_configs/gjensen/10036.yaml | 6 ++- .../dataset_configs/gjensen/10037.yaml | 6 ++- .../dataset_configs/gjensen/10038.yaml | 6 ++- .../dataset_configs/gjensen/10039.yaml | 6 ++- .../dataset_configs/gjensen/10040.yaml | 6 ++- .../dataset_configs/gjensen/10041.yaml | 6 ++- .../dataset_configs/gjensen/10042.yaml | 6 ++- .../dataset_configs/gjensen/10043.yaml | 6 ++- .../dataset_configs/gjensen/10044.yaml | 6 ++- .../dataset_configs/gjensen/10045.yaml | 6 ++- .../dataset_configs/gjensen/10046.yaml | 6 ++- .../dataset_configs/gjensen/10047.yaml | 6 ++- .../dataset_configs/gjensen/10048.yaml | 6 ++- .../dataset_configs/gjensen/10049.yaml | 6 ++- .../dataset_configs/gjensen/10050.yaml | 6 ++- .../dataset_configs/gjensen/10051.yaml | 6 ++- .../dataset_configs/gjensen/10052.yaml | 6 ++- .../dataset_configs/gjensen/10053.yaml | 6 ++- .../dataset_configs/gjensen/10054.yaml | 6 ++- .../dataset_configs/gjensen/10055.yaml | 6 ++- .../dataset_configs/gjensen/10056.yaml | 6 ++- .../dataset_configs/gjensen/10057.yaml | 6 ++- .../dataset_configs/gjensen/10058.yaml | 6 ++- .../dataset_configs/gjensen/10059.yaml | 6 ++- .../dataset_configs/gjensen/10060.yaml | 6 ++- .../dataset_configs/gjensen/10061.yaml | 6 ++- .../dataset_configs/gjensen/10062.yaml | 6 ++- .../dataset_configs/gjensen/10063.yaml | 6 ++- .../dataset_configs/gjensen/10064.yaml | 6 ++- .../dataset_configs/gjensen/10065.yaml | 6 ++- .../dataset_configs/gjensen/10066.yaml | 6 ++- .../dataset_configs/gjensen/10067.yaml | 6 ++- .../dataset_configs/gjensen/10068.yaml | 6 ++- .../dataset_configs/gjensen/10069.yaml | 6 ++- .../dataset_configs/gjensen/10070.yaml | 6 ++- .../dataset_configs/gjensen/10071.yaml | 6 ++- .../dataset_configs/gjensen/10072.yaml | 6 ++- .../dataset_configs/gjensen/10073.yaml | 6 ++- .../dataset_configs/gjensen/10074.yaml | 6 ++- .../dataset_configs/gjensen/10075.yaml | 6 ++- .../dataset_configs/gjensen/10076.yaml | 6 ++- .../dataset_configs/gjensen/10077.yaml | 6 ++- .../dataset_configs/gjensen/10078.yaml | 6 ++- .../dataset_configs/gjensen/10079.yaml | 6 ++- .../dataset_configs/gjensen/10080.yaml | 6 ++- .../dataset_configs/gjensen/10081.yaml | 6 ++- .../dataset_configs/gjensen/10082.yaml | 6 ++- .../dataset_configs/gjensen/10083.yaml | 6 ++- .../dataset_configs/gjensen/10084.yaml | 6 ++- .../dataset_configs/gjensen/10085.yaml | 6 ++- .../dataset_configs/gjensen/10086.yaml | 6 ++- .../dataset_configs/gjensen/10087.yaml | 6 ++- .../dataset_configs/gjensen/10088.yaml | 6 ++- .../dataset_configs/gjensen/10089.yaml | 6 ++- .../dataset_configs/gjensen/10090.yaml | 6 ++- .../dataset_configs/gjensen/10091.yaml | 6 ++- .../dataset_configs/gjensen/10092.yaml | 6 ++- .../dataset_configs/gjensen/10093.yaml | 6 ++- .../dataset_configs/gjensen/10094.yaml | 6 ++- .../dataset_configs/gjensen/10095.yaml | 6 ++- .../dataset_configs/gjensen/10096.yaml | 6 ++- .../dataset_configs/gjensen/10097.yaml | 6 ++- .../dataset_configs/gjensen/10098.yaml | 6 ++- .../dataset_configs/gjensen/10099.yaml | 6 ++- .../dataset_configs/gjensen/10100.yaml | 6 ++- .../dataset_configs/gjensen/10101.yaml | 6 ++- .../dataset_configs/gjensen/10102.yaml | 6 ++- .../dataset_configs/gjensen/10103.yaml | 6 ++- .../dataset_configs/gjensen/10104.yaml | 6 ++- .../dataset_configs/gjensen/10105.yaml | 6 ++- .../dataset_configs/gjensen/10106.yaml | 6 ++- .../dataset_configs/gjensen/10107.yaml | 6 ++- .../dataset_configs/gjensen/10108.yaml | 6 ++- .../dataset_configs/gjensen/10109.yaml | 6 ++- .../dataset_configs/gjensen/10110.yaml | 6 ++- .../dataset_configs/gjensen/10111.yaml | 6 ++- .../dataset_configs/gjensen/10112.yaml | 6 ++- .../dataset_configs/gjensen/10113.yaml | 6 ++- .../dataset_configs/gjensen/10114.yaml | 6 ++- .../dataset_configs/gjensen/10115.yaml | 6 ++- .../dataset_configs/gjensen/10116.yaml | 6 ++- .../dataset_configs/gjensen/10117.yaml | 6 ++- .../dataset_configs/gjensen/10118.yaml | 6 ++- .../dataset_configs/gjensen/10119.yaml | 6 ++- .../dataset_configs/gjensen/10120.yaml | 6 ++- .../dataset_configs/gjensen/10121.yaml | 6 ++- .../dataset_configs/gjensen/10122.yaml | 6 ++- .../dataset_configs/gjensen/10123.yaml | 6 ++- .../dataset_configs/gjensen/10124.yaml | 6 ++- .../dataset_configs/gjensen/10125.yaml | 6 ++- .../dataset_configs/gjensen/10126.yaml | 6 ++- .../dataset_configs/gjensen/10127.yaml | 6 ++- .../dataset_configs/gjensen/10128.yaml | 6 ++- .../dataset_configs/gjensen/10129.yaml | 6 ++- .../dataset_configs/gjensen/10130.yaml | 6 ++- .../dataset_configs/gjensen/10131.yaml | 6 ++- .../dataset_configs/gjensen/10132.yaml | 6 ++- .../dataset_configs/gjensen/10133.yaml | 6 ++- .../dataset_configs/gjensen/10134.yaml | 6 ++- .../dataset_configs/gjensen/10135.yaml | 6 ++- .../dataset_configs/gjensen/10136.yaml | 6 ++- .../dataset_configs/gjensen/10137.yaml | 6 ++- .../dataset_configs/gjensen/10138.yaml | 6 ++- .../dataset_configs/gjensen/10139.yaml | 6 ++- .../dataset_configs/gjensen/10140.yaml | 6 ++- .../dataset_configs/gjensen/10141.yaml | 6 ++- .../dataset_configs/gjensen/10142.yaml | 6 ++- .../dataset_configs/gjensen/10143.yaml | 6 ++- .../dataset_configs/gjensen/10144.yaml | 6 ++- .../dataset_configs/gjensen/10145.yaml | 6 ++- .../dataset_configs/gjensen/10146.yaml | 6 ++- .../dataset_configs/gjensen/10147.yaml | 6 ++- .../dataset_configs/gjensen/10148.yaml | 6 ++- .../dataset_configs/gjensen/10149.yaml | 6 ++- .../dataset_configs/gjensen/10150.yaml | 6 ++- .../dataset_configs/gjensen/10151.yaml | 6 ++- .../dataset_configs/gjensen/10152.yaml | 6 ++- .../dataset_configs/gjensen/10153.yaml | 6 ++- .../dataset_configs/gjensen/10154.yaml | 6 ++- .../dataset_configs/gjensen/10155.yaml | 6 ++- .../dataset_configs/gjensen/10156.yaml | 6 ++- .../dataset_configs/gjensen/10157.yaml | 6 ++- .../dataset_configs/gjensen/10158.yaml | 6 ++- .../dataset_configs/gjensen/10159.yaml | 6 ++- .../dataset_configs/gjensen/10160.yaml | 6 ++- .../dataset_configs/gjensen/10161.yaml | 6 ++- .../dataset_configs/gjensen/10162.yaml | 6 ++- .../dataset_configs/gjensen/10163.yaml | 6 ++- .../dataset_configs/gjensen/10164.yaml | 6 ++- .../dataset_configs/gjensen/10165.yaml | 6 ++- .../dataset_configs/gjensen/10166.yaml | 6 ++- .../dataset_configs/gjensen/10167.yaml | 6 ++- .../dataset_configs/gjensen/10168.yaml | 6 ++- .../dataset_configs/gjensen/10169.yaml | 6 ++- .../dataset_configs/gjensen/10170.yaml | 6 ++- .../dataset_configs/gjensen/10171.yaml | 6 ++- .../dataset_configs/gjensen/10172.yaml | 6 ++- .../dataset_configs/gjensen/10173.yaml | 6 ++- .../dataset_configs/gjensen/10174.yaml | 6 ++- .../dataset_configs/gjensen/10175.yaml | 6 ++- .../dataset_configs/gjensen/10176.yaml | 6 ++- .../dataset_configs/gjensen/10177.yaml | 6 ++- .../dataset_configs/gjensen/10178.yaml | 6 ++- .../dataset_configs/gjensen/10179.yaml | 6 ++- .../dataset_configs/gjensen/10180.yaml | 6 ++- .../dataset_configs/gjensen/10181.yaml | 6 ++- .../dataset_configs/gjensen/10182.yaml | 6 ++- .../dataset_configs/gjensen/10183.yaml | 6 ++- .../dataset_configs/gjensen/10184.yaml | 6 ++- .../dataset_configs/gjensen/10185.yaml | 6 ++- .../dataset_configs/gjensen/10186.yaml | 6 ++- .../dataset_configs/gjensen/10187.yaml | 6 ++- .../dataset_configs/gjensen/10188.yaml | 6 ++- .../dataset_configs/gjensen/10189.yaml | 6 ++- .../dataset_configs/gjensen/10190.yaml | 6 ++- .../dataset_configs/gjensen/10191.yaml | 6 ++- .../dataset_configs/gjensen/10192.yaml | 6 ++- .../dataset_configs/gjensen/10193.yaml | 6 ++- .../dataset_configs/gjensen/10194.yaml | 6 ++- .../dataset_configs/gjensen/10195.yaml | 6 ++- .../dataset_configs/gjensen/10196.yaml | 6 ++- .../dataset_configs/gjensen/10197.yaml | 6 ++- .../dataset_configs/gjensen/10198.yaml | 6 ++- .../dataset_configs/gjensen/10199.yaml | 6 ++- .../dataset_configs/gjensen/10200.yaml | 6 ++- .../dataset_configs/gjensen/10201.yaml | 6 ++- .../dataset_configs/gjensen/10202.yaml | 6 ++- .../dataset_configs/gjensen/10203.yaml | 6 ++- .../dataset_configs/gjensen/10204.yaml | 6 ++- .../dataset_configs/gjensen/10205.yaml | 6 ++- .../dataset_configs/gjensen/10206.yaml | 6 ++- .../dataset_configs/gjensen/10207.yaml | 6 ++- .../dataset_configs/gjensen/10208.yaml | 6 ++- .../dataset_configs/gjensen/10209.yaml | 6 ++- .../dataset_configs/gjensen/10210.yaml | 6 ++- .../dataset_configs/gjensen/10211.yaml | 6 ++- .../dataset_configs/gjensen/10212.yaml | 6 ++- .../dataset_configs/gjensen/10213.yaml | 6 ++- .../dataset_configs/gjensen/10214.yaml | 6 ++- .../dataset_configs/gjensen/10215.yaml | 6 ++- .../dataset_configs/gjensen/10216.yaml | 6 ++- .../dataset_configs/gjensen/10217.yaml | 6 ++- .../dataset_configs/gjensen/10218.yaml | 6 ++- .../dataset_configs/gjensen/10219.yaml | 6 ++- .../dataset_configs/gjensen/10220.yaml | 6 ++- .../dataset_configs/gjensen/10221.yaml | 6 ++- .../dataset_configs/gjensen/10222.yaml | 6 ++- .../dataset_configs/gjensen/10223.yaml | 6 ++- .../dataset_configs/gjensen/10224.yaml | 6 ++- .../dataset_configs/gjensen/10225.yaml | 6 ++- .../dataset_configs/gjensen/10226.yaml | 6 ++- .../dataset_configs/gjensen/10227.yaml | 6 ++- .../dataset_configs/gjensen/10228.yaml | 6 ++- .../dataset_configs/gjensen/10229.yaml | 6 ++- .../dataset_configs/gjensen/10230.yaml | 6 ++- .../dataset_configs/gjensen/10231.yaml | 6 ++- .../dataset_configs/gjensen/10232.yaml | 6 ++- .../dataset_configs/gjensen/10233.yaml | 6 ++- .../dataset_configs/gjensen/10234.yaml | 6 ++- .../dataset_configs/gjensen/10235.yaml | 6 ++- .../dataset_configs/gjensen/10236.yaml | 6 ++- .../dataset_configs/gjensen/10237.yaml | 6 ++- .../dataset_configs/gjensen/10238.yaml | 6 ++- .../dataset_configs/gjensen/10239.yaml | 6 ++- .../dataset_configs/gjensen/10240.yaml | 6 ++- .../dataset_configs/gjensen/10241.yaml | 6 ++- .../dataset_configs/gjensen/10242.yaml | 6 ++- .../dataset_configs/gjensen/10243.yaml | 6 ++- .../dataset_configs/gjensen/10244.yaml | 6 ++- .../dataset_configs/gjensen/10245.yaml | 6 ++- .../dataset_configs/gjensen/10246.yaml | 6 ++- .../dataset_configs/gjensen/10247.yaml | 6 ++- .../dataset_configs/gjensen/10248.yaml | 6 ++- .../dataset_configs/gjensen/10249.yaml | 6 ++- .../dataset_configs/gjensen/10250.yaml | 6 ++- .../dataset_configs/gjensen/10251.yaml | 6 ++- .../dataset_configs/gjensen/10252.yaml | 6 ++- .../dataset_configs/gjensen/10253.yaml | 6 ++- .../dataset_configs/gjensen/10254.yaml | 6 ++- .../dataset_configs/gjensen/10255.yaml | 6 ++- .../dataset_configs/gjensen/10256.yaml | 6 ++- .../dataset_configs/gjensen/10257.yaml | 6 ++- .../dataset_configs/gjensen/10258.yaml | 6 ++- .../dataset_configs/gjensen/10259.yaml | 6 ++- .../dataset_configs/gjensen/10260.yaml | 6 ++- .../dataset_configs/gjensen/10261.yaml | 6 ++- .../dataset_configs/gjensen/10262.yaml | 6 ++- .../dataset_configs/gjensen/10263.yaml | 6 ++- .../dataset_configs/gjensen/10264.yaml | 6 ++- .../dataset_configs/gjensen/10265.yaml | 6 ++- .../dataset_configs/gjensen/10266.yaml | 6 ++- .../dataset_configs/gjensen/10267.yaml | 6 ++- .../dataset_configs/gjensen/10268.yaml | 6 ++- .../dataset_configs/gjensen/10269.yaml | 6 ++- .../dataset_configs/gjensen/10270.yaml | 6 ++- .../dataset_configs/gjensen/10271.yaml | 6 ++- .../dataset_configs/gjensen/10272.yaml | 6 ++- .../dataset_configs/gjensen/10273.yaml | 6 ++- .../dataset_configs/gjensen/10274.yaml | 6 ++- .../dataset_configs/gjensen/10275.yaml | 6 ++- .../dataset_configs/gjensen/10276.yaml | 6 ++- .../dataset_configs/gjensen/10277.yaml | 6 ++- .../dataset_configs/gjensen/10278.yaml | 6 ++- .../dataset_configs/gjensen/10279.yaml | 6 ++- .../dataset_configs/gjensen/10280.yaml | 6 ++- .../dataset_configs/gjensen/10281.yaml | 6 ++- .../dataset_configs/gjensen/10282.yaml | 6 ++- .../dataset_configs/gjensen/10283.yaml | 6 ++- .../dataset_configs/gjensen/10284.yaml | 6 ++- .../dataset_configs/gjensen/10285.yaml | 6 ++- .../dataset_configs/gjensen/10286.yaml | 6 ++- .../dataset_configs/gjensen/10287.yaml | 6 ++- .../dataset_configs/gjensen/10288.yaml | 6 ++- .../dataset_configs/gjensen/10289.yaml | 6 ++- .../dataset_configs/gjensen/10290.yaml | 6 ++- .../dataset_configs/gjensen/10291.yaml | 6 ++- .../dataset_configs/gjensen/10292.yaml | 6 ++- .../dataset_configs/gjensen/10293.yaml | 6 ++- .../dataset_configs/gjensen/10294.yaml | 6 ++- .../dataset_configs/gjensen/10295.yaml | 6 ++- .../dataset_configs/gjensen/10296.yaml | 6 ++- .../dataset_configs/gjensen/10297.yaml | 6 ++- .../dataset_configs/gjensen/10298.yaml | 6 ++- .../dataset_configs/gjensen/10299.yaml | 6 ++- .../dataset_configs/gjensen/10300.yaml | 6 ++- ingestion_tools/dataset_configs/template.yaml | 4 ++ schema/core/v1.1.0/common.yaml | 2 +- 302 files changed, 1719 insertions(+), 558 deletions(-) diff --git a/ingestion_tools/dataset_configs/10000.yaml b/ingestion_tools/dataset_configs/10000.yaml index 2190dd5db..0282a78e8 100644 --- a/ingestion_tools/dataset_configs/10000.yaml +++ b/ingestion_tools/dataset_configs/10000.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - metadata/{run_name}.xf @@ -489,23 +508,6 @@ tiltseries: match_regex: (.*)\.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id003 ctf_corrected: false fiducial_alignment_status: NON_FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index 29b03b474..1e20267fb 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - metadata/{run_name}.xf @@ -473,23 +492,6 @@ tiltseries: match_regex: (.*)\.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id003 ctf_corrected: false fiducial_alignment_status: NON_FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index 62c8d35b2..884d11fff 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - -1 + - 0 + - - 0 + - 0 + - 625 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - metadata/{run_name}_sq_df_sorted_fid.xf @@ -167,10 +186,6 @@ key_images: - literal: value: - from_tomogram -rawtilts: -- sources: - - source_multi_glob: - list_globs: [] runs: - sources: - source_glob: @@ -213,23 +228,6 @@ tiltseries: match_regex: .* tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - -1 - - 0 - - - 0 - - 0 - - 625 - - 1 authors: *id003 ctf_corrected: false fiducial_alignment_status: NON_FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index 857207b58..4b0e3988d 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - '{run_name}/{run_name}.mdoc-dose_filt.tlt' @@ -167,10 +186,6 @@ key_images: - literal: value: - from_tomogram -rawtilts: -- sources: - - source_multi_glob: - list_globs: [] runs: - sources: - source_glob: @@ -210,23 +225,6 @@ tiltseries: match_regex: .* tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id002 ctf_corrected: true fiducial_alignment_status: NON_FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10007.yaml b/ingestion_tools/dataset_configs/10007.yaml index b11a5e631..98a7e1daf 100644 --- a/ingestion_tools/dataset_configs/10007.yaml +++ b/ingestion_tools/dataset_configs/10007.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - '{run_name}/AreTomo/*_dose-filt.xf' @@ -214,23 +233,6 @@ tiltseries: source_glob: *id007 tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id002 ctf_corrected: false fiducial_alignment_status: NON_FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index 83ea349e7..756c952de 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.tlt @@ -171,10 +190,6 @@ key_images: - literal: value: - from_tomogram -rawtilts: -- sources: - - source_multi_glob: - list_globs: [] runs: - sources: - source_glob: @@ -217,23 +232,6 @@ tiltseries: match_regex: .* tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id003 ctf_corrected: false fiducial_alignment_status: FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index e89428d6a..2bf48ca29 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - Tomo{run_name}/raw_data/imod_metadata/*.tlt @@ -301,10 +320,6 @@ key_images: - literal: value: - from_tomogram -rawtilts: -- sources: - - source_multi_glob: - list_globs: [] runs: - sources: - source_glob: @@ -394,23 +409,6 @@ tiltseries: source_glob: *id008 tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id003 ctf_corrected: true fiducial_alignment_status: FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10011_draft.yaml b/ingestion_tools/dataset_configs/10011_draft.yaml index 7b0d36f1f..2991db5aa 100644 --- a/ingestion_tools/dataset_configs/10011_draft.yaml +++ b/ingestion_tools/dataset_configs/10011_draft.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - metadata/{run_name}.xf @@ -148,23 +167,6 @@ tiltseries: match_regex: .* tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 ctf_corrected: REQUIRED fiducial_alignment_status: null offset: diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index 6f60da049..0470c542f 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - '{run_name}/AreTomo/{run_name}_dose-filt.tlt' @@ -329,23 +348,6 @@ tiltseries: match_regex: (.*) tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id003 ctf_corrected: true fiducial_alignment_status: NON_FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10302.yaml b/ingestion_tools/dataset_configs/10302.yaml index 8079d622b..780aad9f7 100644 --- a/ingestion_tools/dataset_configs/10302.yaml +++ b/ingestion_tools/dataset_configs/10302.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.tlt @@ -164,23 +183,6 @@ tiltseries: match_regex: (.*) tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: true fiducial_alignment_status: NON_FIDUCIAL diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index e13de3df7..ea51d5479 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -1,11 +1,35 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - - Data_Set_2/{run_name}/aligned_tilt_series/*.st.aln - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xf - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.tlt - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.com +- metadata: + format: ARETOMO3 + sources: + - source_multi_glob: + list_globs: + - Data_Set_2/{run_name}/aligned_tilt_series/*.st.aln annotations: - metadata: annotation_method: Each organelle was segmented as a separate region of interest @@ -394,23 +418,6 @@ tiltseries: match_regex: ^.*\.st$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: - ORCID: 0000-0002-9479-3800 corresponding_author_status: true diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index 342dd329d..412ef9ba0 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xf @@ -575,23 +594,6 @@ tiltseries: match_regex: ^.*\.st$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: - ORCID: 0000-0002-9479-3800 corresponding_author_status: true diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index 458424e25..c42a87acd 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -1,5 +1,24 @@ -alignment: -- sources: +alignments: +- metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 + format: IMOD + sources: - source_multi_glob: list_globs: - '{run_name}/TiltSeries/*.tlt' @@ -237,16 +256,10 @@ depositions: - literal: value: - 10309 -frames: [] -gains: [] key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: [] runs: - sources: - source_glob: @@ -286,23 +299,6 @@ tiltseries: list_glob: '{run_name}/TiltSeries/tilt_series.mrc' tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: true fiducial_alignment_status: NON_FIDUCIAL diff --git a/ingestion_tools/dataset_configs/gjensen/10014.yaml b/ingestion_tools/dataset_configs/gjensen/10014.yaml index 607efe07a..a57a64a73 100644 --- a/ingestion_tools/dataset_configs/gjensen/10014.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10014.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -71,7 +76,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10015.yaml b/ingestion_tools/dataset_configs/gjensen/10015.yaml index f6cb823a1..a346f2789 100644 --- a/ingestion_tools/dataset_configs/gjensen/10015.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10015.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -71,7 +76,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10016.yaml b/ingestion_tools/dataset_configs/gjensen/10016.yaml index 29bff46a3..c3a870141 100644 --- a/ingestion_tools/dataset_configs/gjensen/10016.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10016.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -71,7 +76,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10017.yaml b/ingestion_tools/dataset_configs/gjensen/10017.yaml index 5afadf646..ec157fe39 100644 --- a/ingestion_tools/dataset_configs/gjensen/10017.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10017.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -68,7 +73,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10018.yaml b/ingestion_tools/dataset_configs/gjensen/10018.yaml index 5975e4b84..7f327ee62 100644 --- a/ingestion_tools/dataset_configs/gjensen/10018.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10018.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -67,7 +72,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10019.yaml b/ingestion_tools/dataset_configs/gjensen/10019.yaml index 121b58997..6fadc1cac 100644 --- a/ingestion_tools/dataset_configs/gjensen/10019.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10019.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10020.yaml b/ingestion_tools/dataset_configs/gjensen/10020.yaml index 347a78d42..571af362c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10020.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10020.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -71,7 +76,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10021.yaml b/ingestion_tools/dataset_configs/gjensen/10021.yaml index a0b2a4af1..c350ba6b5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10021.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10021.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10022.yaml b/ingestion_tools/dataset_configs/gjensen/10022.yaml index 353f0fc25..4c0156c43 100644 --- a/ingestion_tools/dataset_configs/gjensen/10022.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10022.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10023.yaml b/ingestion_tools/dataset_configs/gjensen/10023.yaml index 8222d6c01..0d275df39 100644 --- a/ingestion_tools/dataset_configs/gjensen/10023.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10023.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10024.yaml b/ingestion_tools/dataset_configs/gjensen/10024.yaml index 51143f0aa..cd66e3594 100644 --- a/ingestion_tools/dataset_configs/gjensen/10024.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10024.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10025.yaml b/ingestion_tools/dataset_configs/gjensen/10025.yaml index 28167861c..62466a7b9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10025.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10025.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10026.yaml b/ingestion_tools/dataset_configs/gjensen/10026.yaml index 8cceb1ab7..970562529 100644 --- a/ingestion_tools/dataset_configs/gjensen/10026.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10026.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10027.yaml b/ingestion_tools/dataset_configs/gjensen/10027.yaml index 7ee1084de..93d6df2c2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10027.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10027.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10028.yaml b/ingestion_tools/dataset_configs/gjensen/10028.yaml index a9a7e6d38..e7712adbf 100644 --- a/ingestion_tools/dataset_configs/gjensen/10028.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10028.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10029.yaml b/ingestion_tools/dataset_configs/gjensen/10029.yaml index 68c143d58..1fc8ce5f4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10029.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10029.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10030.yaml b/ingestion_tools/dataset_configs/gjensen/10030.yaml index ae91e433b..1595346da 100644 --- a/ingestion_tools/dataset_configs/gjensen/10030.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10030.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10031.yaml b/ingestion_tools/dataset_configs/gjensen/10031.yaml index 190e1f162..6bf082468 100644 --- a/ingestion_tools/dataset_configs/gjensen/10031.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10031.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10032.yaml b/ingestion_tools/dataset_configs/gjensen/10032.yaml index 2c46b0fc0..7931c9a45 100644 --- a/ingestion_tools/dataset_configs/gjensen/10032.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10032.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10033.yaml b/ingestion_tools/dataset_configs/gjensen/10033.yaml index a4fae2584..e0e911687 100644 --- a/ingestion_tools/dataset_configs/gjensen/10033.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10033.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10034.yaml b/ingestion_tools/dataset_configs/gjensen/10034.yaml index c1334b92f..0d110eaa4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10034.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10034.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10035.yaml b/ingestion_tools/dataset_configs/gjensen/10035.yaml index c954cd551..5894bea73 100644 --- a/ingestion_tools/dataset_configs/gjensen/10035.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10035.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10036.yaml b/ingestion_tools/dataset_configs/gjensen/10036.yaml index 54783e4be..af420c71b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10036.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10036.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10037.yaml b/ingestion_tools/dataset_configs/gjensen/10037.yaml index 8e2fb75da..5a695cbb5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10037.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10037.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10038.yaml b/ingestion_tools/dataset_configs/gjensen/10038.yaml index 4699ae91f..8c0666e82 100644 --- a/ingestion_tools/dataset_configs/gjensen/10038.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10038.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10039.yaml b/ingestion_tools/dataset_configs/gjensen/10039.yaml index 3cc3ef6b1..9858caf56 100644 --- a/ingestion_tools/dataset_configs/gjensen/10039.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10039.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10040.yaml b/ingestion_tools/dataset_configs/gjensen/10040.yaml index 80d5f54f5..d9a2e2772 100644 --- a/ingestion_tools/dataset_configs/gjensen/10040.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10040.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10041.yaml b/ingestion_tools/dataset_configs/gjensen/10041.yaml index b7f2139ae..154a9b7d3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10041.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10041.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -56,7 +61,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10042.yaml b/ingestion_tools/dataset_configs/gjensen/10042.yaml index 7c7b9df4e..0292d95af 100644 --- a/ingestion_tools/dataset_configs/gjensen/10042.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10042.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10043.yaml b/ingestion_tools/dataset_configs/gjensen/10043.yaml index 2e3e74b25..c5963c550 100644 --- a/ingestion_tools/dataset_configs/gjensen/10043.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10043.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10044.yaml b/ingestion_tools/dataset_configs/gjensen/10044.yaml index 9acaef39d..9e192da43 100644 --- a/ingestion_tools/dataset_configs/gjensen/10044.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10044.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10045.yaml b/ingestion_tools/dataset_configs/gjensen/10045.yaml index ec6bcff25..e14b64045 100644 --- a/ingestion_tools/dataset_configs/gjensen/10045.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10045.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10046.yaml b/ingestion_tools/dataset_configs/gjensen/10046.yaml index e1c863334..e99560b0a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10046.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10046.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10047.yaml b/ingestion_tools/dataset_configs/gjensen/10047.yaml index 5ccc7482e..6e6e03bb8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10047.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10047.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10048.yaml b/ingestion_tools/dataset_configs/gjensen/10048.yaml index a8bdb5bfe..9b94032c8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10048.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10048.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10049.yaml b/ingestion_tools/dataset_configs/gjensen/10049.yaml index e80a02d75..43e51fbec 100644 --- a/ingestion_tools/dataset_configs/gjensen/10049.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10049.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10050.yaml b/ingestion_tools/dataset_configs/gjensen/10050.yaml index 7d91f1844..b86c84531 100644 --- a/ingestion_tools/dataset_configs/gjensen/10050.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10050.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10051.yaml b/ingestion_tools/dataset_configs/gjensen/10051.yaml index 78d85d117..88deb0b3e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10051.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10051.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10052.yaml b/ingestion_tools/dataset_configs/gjensen/10052.yaml index 1079470f7..8e22b6eeb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10052.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10052.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10053.yaml b/ingestion_tools/dataset_configs/gjensen/10053.yaml index 2d0ca7410..e749e9ca0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10053.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10053.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10054.yaml b/ingestion_tools/dataset_configs/gjensen/10054.yaml index 0847fc798..898f81df8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10054.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10054.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10055.yaml b/ingestion_tools/dataset_configs/gjensen/10055.yaml index 277a9e7c5..278aaf6b4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10055.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10055.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10056.yaml b/ingestion_tools/dataset_configs/gjensen/10056.yaml index 782c44123..8ea98074d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10056.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10056.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -69,7 +74,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10057.yaml b/ingestion_tools/dataset_configs/gjensen/10057.yaml index f05278621..950532d6b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10057.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10057.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -70,7 +75,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10058.yaml b/ingestion_tools/dataset_configs/gjensen/10058.yaml index 1bd2fa799..cc8c63822 100644 --- a/ingestion_tools/dataset_configs/gjensen/10058.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10058.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10059.yaml b/ingestion_tools/dataset_configs/gjensen/10059.yaml index 80c010ad9..e9fe5d748 100644 --- a/ingestion_tools/dataset_configs/gjensen/10059.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10059.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10060.yaml b/ingestion_tools/dataset_configs/gjensen/10060.yaml index a1ba93f11..24e7bb2b2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10060.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10060.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10061.yaml b/ingestion_tools/dataset_configs/gjensen/10061.yaml index 2644e25e4..714fa601a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10061.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10061.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10062.yaml b/ingestion_tools/dataset_configs/gjensen/10062.yaml index ba2907df7..1ae60c82e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10062.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10062.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -71,7 +76,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10063.yaml b/ingestion_tools/dataset_configs/gjensen/10063.yaml index 8dd9fdc69..067f93964 100644 --- a/ingestion_tools/dataset_configs/gjensen/10063.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10063.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10064.yaml b/ingestion_tools/dataset_configs/gjensen/10064.yaml index 2626967ee..68068cf13 100644 --- a/ingestion_tools/dataset_configs/gjensen/10064.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10064.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -71,7 +76,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10065.yaml b/ingestion_tools/dataset_configs/gjensen/10065.yaml index 311024b93..ee17a9d10 100644 --- a/ingestion_tools/dataset_configs/gjensen/10065.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10065.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10066.yaml b/ingestion_tools/dataset_configs/gjensen/10066.yaml index be933e65d..e892cd1e9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10066.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10066.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10067.yaml b/ingestion_tools/dataset_configs/gjensen/10067.yaml index e009926c6..643f7d703 100644 --- a/ingestion_tools/dataset_configs/gjensen/10067.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10067.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10068.yaml b/ingestion_tools/dataset_configs/gjensen/10068.yaml index d85b2628b..8db5e2bc0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10068.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10068.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10069.yaml b/ingestion_tools/dataset_configs/gjensen/10069.yaml index b5c130807..58b444e32 100644 --- a/ingestion_tools/dataset_configs/gjensen/10069.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10069.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10070.yaml b/ingestion_tools/dataset_configs/gjensen/10070.yaml index 0701a4228..8ac4e3cf7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10070.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10070.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10071.yaml b/ingestion_tools/dataset_configs/gjensen/10071.yaml index 4584ccdd7..e57156ba9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10071.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10071.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10072.yaml b/ingestion_tools/dataset_configs/gjensen/10072.yaml index 1ddd507e5..7a69f9502 100644 --- a/ingestion_tools/dataset_configs/gjensen/10072.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10072.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10073.yaml b/ingestion_tools/dataset_configs/gjensen/10073.yaml index b896832c1..a5871a999 100644 --- a/ingestion_tools/dataset_configs/gjensen/10073.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10073.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -71,7 +76,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10074.yaml b/ingestion_tools/dataset_configs/gjensen/10074.yaml index b236aaf71..52e2ff2f9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10074.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10074.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10075.yaml b/ingestion_tools/dataset_configs/gjensen/10075.yaml index eeb972e1e..68b1f1436 100644 --- a/ingestion_tools/dataset_configs/gjensen/10075.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10075.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10076.yaml b/ingestion_tools/dataset_configs/gjensen/10076.yaml index ff742a316..4fd6ae52d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10076.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10076.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10077.yaml b/ingestion_tools/dataset_configs/gjensen/10077.yaml index 54c1aabd8..8e8638052 100644 --- a/ingestion_tools/dataset_configs/gjensen/10077.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10077.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10078.yaml b/ingestion_tools/dataset_configs/gjensen/10078.yaml index 50af3e00d..b4af9bc07 100644 --- a/ingestion_tools/dataset_configs/gjensen/10078.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10078.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10079.yaml b/ingestion_tools/dataset_configs/gjensen/10079.yaml index b7d047f5b..a07f2efb3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10079.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10079.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10080.yaml b/ingestion_tools/dataset_configs/gjensen/10080.yaml index 4ecfdb0b5..bac345815 100644 --- a/ingestion_tools/dataset_configs/gjensen/10080.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10080.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10081.yaml b/ingestion_tools/dataset_configs/gjensen/10081.yaml index 81c62bf52..28d2f7709 100644 --- a/ingestion_tools/dataset_configs/gjensen/10081.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10081.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -73,7 +78,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10082.yaml b/ingestion_tools/dataset_configs/gjensen/10082.yaml index e4811119f..c53a1dcfe 100644 --- a/ingestion_tools/dataset_configs/gjensen/10082.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10082.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -68,7 +73,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10083.yaml b/ingestion_tools/dataset_configs/gjensen/10083.yaml index 928afa9ba..795000b4c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10083.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10083.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -68,7 +73,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10084.yaml b/ingestion_tools/dataset_configs/gjensen/10084.yaml index ad3396bc6..445aecfee 100644 --- a/ingestion_tools/dataset_configs/gjensen/10084.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10084.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -73,7 +78,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10085.yaml b/ingestion_tools/dataset_configs/gjensen/10085.yaml index c5763ddd9..77384fe31 100644 --- a/ingestion_tools/dataset_configs/gjensen/10085.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10085.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -72,7 +77,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10086.yaml b/ingestion_tools/dataset_configs/gjensen/10086.yaml index 9144825d4..941903ab6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10086.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10086.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -67,7 +72,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10087.yaml b/ingestion_tools/dataset_configs/gjensen/10087.yaml index 4a84825f9..87e240ceb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10087.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10087.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10088.yaml b/ingestion_tools/dataset_configs/gjensen/10088.yaml index 77597604d..e7e1405fd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10088.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10088.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10089.yaml b/ingestion_tools/dataset_configs/gjensen/10089.yaml index dec55f3f5..2a4f2e846 100644 --- a/ingestion_tools/dataset_configs/gjensen/10089.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10089.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10090.yaml b/ingestion_tools/dataset_configs/gjensen/10090.yaml index 99593600a..ae597d2a5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10090.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10090.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10091.yaml b/ingestion_tools/dataset_configs/gjensen/10091.yaml index bf2d7d600..ba5b55e06 100644 --- a/ingestion_tools/dataset_configs/gjensen/10091.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10091.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10092.yaml b/ingestion_tools/dataset_configs/gjensen/10092.yaml index f7ca1fe62..7f771bfeb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10092.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10092.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -67,7 +72,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10093.yaml b/ingestion_tools/dataset_configs/gjensen/10093.yaml index d1b90c053..65abcc6e5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10093.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10093.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -67,7 +72,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10094.yaml b/ingestion_tools/dataset_configs/gjensen/10094.yaml index 1634b8d45..6a3835172 100644 --- a/ingestion_tools/dataset_configs/gjensen/10094.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10094.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10095.yaml b/ingestion_tools/dataset_configs/gjensen/10095.yaml index a7ac1330e..a55d2cc44 100644 --- a/ingestion_tools/dataset_configs/gjensen/10095.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10095.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10096.yaml b/ingestion_tools/dataset_configs/gjensen/10096.yaml index 8f21c228d..f00d53cb4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10096.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10096.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10097.yaml b/ingestion_tools/dataset_configs/gjensen/10097.yaml index 1b7ab9a68..f97e85ec0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10097.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10097.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -73,7 +78,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10098.yaml b/ingestion_tools/dataset_configs/gjensen/10098.yaml index b3c2b17f8..4e5984473 100644 --- a/ingestion_tools/dataset_configs/gjensen/10098.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10098.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -73,7 +78,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10099.yaml b/ingestion_tools/dataset_configs/gjensen/10099.yaml index e2dfe0f9f..d125ca72d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10099.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10099.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10100.yaml b/ingestion_tools/dataset_configs/gjensen/10100.yaml index 0b64de9a0..18a9953fb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10100.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10100.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10101.yaml b/ingestion_tools/dataset_configs/gjensen/10101.yaml index d710378b1..96d3eff5f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10101.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10101.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10102.yaml b/ingestion_tools/dataset_configs/gjensen/10102.yaml index 0123f82f1..d2c53be03 100644 --- a/ingestion_tools/dataset_configs/gjensen/10102.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10102.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10103.yaml b/ingestion_tools/dataset_configs/gjensen/10103.yaml index 0946605c6..41a81f466 100644 --- a/ingestion_tools/dataset_configs/gjensen/10103.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10103.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -54,7 +59,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10104.yaml b/ingestion_tools/dataset_configs/gjensen/10104.yaml index 7e01f06d4..66430ab78 100644 --- a/ingestion_tools/dataset_configs/gjensen/10104.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10104.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -54,7 +59,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10105.yaml b/ingestion_tools/dataset_configs/gjensen/10105.yaml index 559d9aaa0..6d93f8158 100644 --- a/ingestion_tools/dataset_configs/gjensen/10105.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10105.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10106.yaml b/ingestion_tools/dataset_configs/gjensen/10106.yaml index ff6e97bed..eef8d34b8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10106.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10106.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10107.yaml b/ingestion_tools/dataset_configs/gjensen/10107.yaml index 59ffdee24..3fca45f2b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10107.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10107.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10108.yaml b/ingestion_tools/dataset_configs/gjensen/10108.yaml index 096bf51f2..c0672338c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10108.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10108.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10109.yaml b/ingestion_tools/dataset_configs/gjensen/10109.yaml index bfe3c059b..aa922906e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10109.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10109.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10110.yaml b/ingestion_tools/dataset_configs/gjensen/10110.yaml index 617802494..58e71701d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10110.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10110.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10111.yaml b/ingestion_tools/dataset_configs/gjensen/10111.yaml index 4f5515fde..2a1fb6129 100644 --- a/ingestion_tools/dataset_configs/gjensen/10111.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10111.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10112.yaml b/ingestion_tools/dataset_configs/gjensen/10112.yaml index c1d9b1821..9b40a3cec 100644 --- a/ingestion_tools/dataset_configs/gjensen/10112.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10112.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10113.yaml b/ingestion_tools/dataset_configs/gjensen/10113.yaml index 370c2d7b9..b40d9526c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10113.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10113.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10114.yaml b/ingestion_tools/dataset_configs/gjensen/10114.yaml index 75bfd8d30..61795511d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10114.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10114.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10115.yaml b/ingestion_tools/dataset_configs/gjensen/10115.yaml index 1b4ba3f32..f88c7281c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10115.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10115.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -56,7 +61,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10116.yaml b/ingestion_tools/dataset_configs/gjensen/10116.yaml index 0b22e2d10..3131ae890 100644 --- a/ingestion_tools/dataset_configs/gjensen/10116.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10116.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10117.yaml b/ingestion_tools/dataset_configs/gjensen/10117.yaml index 72a2fc0a8..ba635e84d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10117.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10117.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10118.yaml b/ingestion_tools/dataset_configs/gjensen/10118.yaml index 5cb6c7500..424b1c922 100644 --- a/ingestion_tools/dataset_configs/gjensen/10118.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10118.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10119.yaml b/ingestion_tools/dataset_configs/gjensen/10119.yaml index 2e3f0907f..b461d6bb2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10119.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10119.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10120.yaml b/ingestion_tools/dataset_configs/gjensen/10120.yaml index 0c3b3e356..c8cb2064b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10120.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10120.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10121.yaml b/ingestion_tools/dataset_configs/gjensen/10121.yaml index 4dff5bdeb..459e95b29 100644 --- a/ingestion_tools/dataset_configs/gjensen/10121.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10121.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10122.yaml b/ingestion_tools/dataset_configs/gjensen/10122.yaml index fb7aa1754..0147d3d60 100644 --- a/ingestion_tools/dataset_configs/gjensen/10122.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10122.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10123.yaml b/ingestion_tools/dataset_configs/gjensen/10123.yaml index f7e6b4fb0..ccf0c2c03 100644 --- a/ingestion_tools/dataset_configs/gjensen/10123.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10123.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10124.yaml b/ingestion_tools/dataset_configs/gjensen/10124.yaml index 3023952a3..07d413305 100644 --- a/ingestion_tools/dataset_configs/gjensen/10124.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10124.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10125.yaml b/ingestion_tools/dataset_configs/gjensen/10125.yaml index f5b0d96f9..e1de06d6b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10125.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10125.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10126.yaml b/ingestion_tools/dataset_configs/gjensen/10126.yaml index 4e084f09a..8b57973df 100644 --- a/ingestion_tools/dataset_configs/gjensen/10126.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10126.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10127.yaml b/ingestion_tools/dataset_configs/gjensen/10127.yaml index ee9ca6c7b..529de4616 100644 --- a/ingestion_tools/dataset_configs/gjensen/10127.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10127.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10128.yaml b/ingestion_tools/dataset_configs/gjensen/10128.yaml index 42fd31815..7fc27528b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10128.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10128.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10129.yaml b/ingestion_tools/dataset_configs/gjensen/10129.yaml index dce9b7b98..d382bf539 100644 --- a/ingestion_tools/dataset_configs/gjensen/10129.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10129.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10130.yaml b/ingestion_tools/dataset_configs/gjensen/10130.yaml index eccb34782..a3d0e6c3b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10130.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10130.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10131.yaml b/ingestion_tools/dataset_configs/gjensen/10131.yaml index 1907d1b7a..1f2c9fe22 100644 --- a/ingestion_tools/dataset_configs/gjensen/10131.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10131.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10132.yaml b/ingestion_tools/dataset_configs/gjensen/10132.yaml index 90a0126e7..2523f4e19 100644 --- a/ingestion_tools/dataset_configs/gjensen/10132.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10132.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10133.yaml b/ingestion_tools/dataset_configs/gjensen/10133.yaml index 422c9ab50..2c5ad8f7c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10133.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10133.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10134.yaml b/ingestion_tools/dataset_configs/gjensen/10134.yaml index f9e54c8c1..5e0514c6a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10134.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10134.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10135.yaml b/ingestion_tools/dataset_configs/gjensen/10135.yaml index 0b7a1d561..39431e9bb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10135.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10135.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10136.yaml b/ingestion_tools/dataset_configs/gjensen/10136.yaml index 62313884d..0d2227d96 100644 --- a/ingestion_tools/dataset_configs/gjensen/10136.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10136.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10137.yaml b/ingestion_tools/dataset_configs/gjensen/10137.yaml index 37fee58e4..c32513f39 100644 --- a/ingestion_tools/dataset_configs/gjensen/10137.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10137.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10138.yaml b/ingestion_tools/dataset_configs/gjensen/10138.yaml index 11cdca74a..6a3af4424 100644 --- a/ingestion_tools/dataset_configs/gjensen/10138.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10138.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10139.yaml b/ingestion_tools/dataset_configs/gjensen/10139.yaml index ed577ab6a..7051062b5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10139.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10139.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10140.yaml b/ingestion_tools/dataset_configs/gjensen/10140.yaml index 5aba2f994..fd5bf5f40 100644 --- a/ingestion_tools/dataset_configs/gjensen/10140.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10140.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10141.yaml b/ingestion_tools/dataset_configs/gjensen/10141.yaml index b4a9272fe..830dfc865 100644 --- a/ingestion_tools/dataset_configs/gjensen/10141.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10141.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10142.yaml b/ingestion_tools/dataset_configs/gjensen/10142.yaml index bd831ba7f..1311dffb8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10142.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10142.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10143.yaml b/ingestion_tools/dataset_configs/gjensen/10143.yaml index 473e18a10..545ca3aa3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10143.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10143.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10144.yaml b/ingestion_tools/dataset_configs/gjensen/10144.yaml index 588182218..6fe7134ec 100644 --- a/ingestion_tools/dataset_configs/gjensen/10144.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10144.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10145.yaml b/ingestion_tools/dataset_configs/gjensen/10145.yaml index a9c87f899..843382b48 100644 --- a/ingestion_tools/dataset_configs/gjensen/10145.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10145.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10146.yaml b/ingestion_tools/dataset_configs/gjensen/10146.yaml index e76a7da85..52ecb8bbf 100644 --- a/ingestion_tools/dataset_configs/gjensen/10146.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10146.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10147.yaml b/ingestion_tools/dataset_configs/gjensen/10147.yaml index 958e4f803..b86fdfdc1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10147.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10147.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10148.yaml b/ingestion_tools/dataset_configs/gjensen/10148.yaml index 5e357773c..386545101 100644 --- a/ingestion_tools/dataset_configs/gjensen/10148.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10148.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10149.yaml b/ingestion_tools/dataset_configs/gjensen/10149.yaml index b5e7c9940..311927744 100644 --- a/ingestion_tools/dataset_configs/gjensen/10149.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10149.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10150.yaml b/ingestion_tools/dataset_configs/gjensen/10150.yaml index 8964ecd81..01650d635 100644 --- a/ingestion_tools/dataset_configs/gjensen/10150.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10150.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10151.yaml b/ingestion_tools/dataset_configs/gjensen/10151.yaml index 55a138bc7..1011037b8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10151.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10151.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10152.yaml b/ingestion_tools/dataset_configs/gjensen/10152.yaml index 5e3999f59..3c776c94b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10152.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10152.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10153.yaml b/ingestion_tools/dataset_configs/gjensen/10153.yaml index dd521012e..521310f5e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10153.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10153.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10154.yaml b/ingestion_tools/dataset_configs/gjensen/10154.yaml index 9d5ff0c68..3e49db251 100644 --- a/ingestion_tools/dataset_configs/gjensen/10154.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10154.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10155.yaml b/ingestion_tools/dataset_configs/gjensen/10155.yaml index 8590fc0ed..f80382675 100644 --- a/ingestion_tools/dataset_configs/gjensen/10155.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10155.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10156.yaml b/ingestion_tools/dataset_configs/gjensen/10156.yaml index 442b64093..8249dbcd0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10156.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10156.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10157.yaml b/ingestion_tools/dataset_configs/gjensen/10157.yaml index e8774976a..9cc605303 100644 --- a/ingestion_tools/dataset_configs/gjensen/10157.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10157.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10158.yaml b/ingestion_tools/dataset_configs/gjensen/10158.yaml index a499160b1..1024cddcb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10158.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10158.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10159.yaml b/ingestion_tools/dataset_configs/gjensen/10159.yaml index f8e0a334d..4a18ab1d8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10159.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10159.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10160.yaml b/ingestion_tools/dataset_configs/gjensen/10160.yaml index e107057e2..fce81cd6f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10160.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10160.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10161.yaml b/ingestion_tools/dataset_configs/gjensen/10161.yaml index 7ed04b5be..811afe3e5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10161.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10161.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10162.yaml b/ingestion_tools/dataset_configs/gjensen/10162.yaml index 19b1840cc..14bcd1330 100644 --- a/ingestion_tools/dataset_configs/gjensen/10162.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10162.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10163.yaml b/ingestion_tools/dataset_configs/gjensen/10163.yaml index 07effff2d..66646f747 100644 --- a/ingestion_tools/dataset_configs/gjensen/10163.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10163.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10164.yaml b/ingestion_tools/dataset_configs/gjensen/10164.yaml index b87fcaea1..6a6697d7c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10164.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10164.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10165.yaml b/ingestion_tools/dataset_configs/gjensen/10165.yaml index d99a6cda6..4c27e4107 100644 --- a/ingestion_tools/dataset_configs/gjensen/10165.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10165.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -68,7 +73,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10166.yaml b/ingestion_tools/dataset_configs/gjensen/10166.yaml index f2096fddf..f8b933dc1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10166.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10166.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -65,7 +70,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10167.yaml b/ingestion_tools/dataset_configs/gjensen/10167.yaml index 66f5991bb..64ef6e9e7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10167.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10167.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10168.yaml b/ingestion_tools/dataset_configs/gjensen/10168.yaml index b87643d09..457b17fb2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10168.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10168.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10169.yaml b/ingestion_tools/dataset_configs/gjensen/10169.yaml index bef1dae33..5e72d74b1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10169.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10169.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10170.yaml b/ingestion_tools/dataset_configs/gjensen/10170.yaml index 08f9dc785..0ebce3117 100644 --- a/ingestion_tools/dataset_configs/gjensen/10170.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10170.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10171.yaml b/ingestion_tools/dataset_configs/gjensen/10171.yaml index c77d75f61..2a4d68993 100644 --- a/ingestion_tools/dataset_configs/gjensen/10171.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10171.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10172.yaml b/ingestion_tools/dataset_configs/gjensen/10172.yaml index b70d20229..73a310686 100644 --- a/ingestion_tools/dataset_configs/gjensen/10172.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10172.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10173.yaml b/ingestion_tools/dataset_configs/gjensen/10173.yaml index 608a95909..0fc68fd35 100644 --- a/ingestion_tools/dataset_configs/gjensen/10173.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10173.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10174.yaml b/ingestion_tools/dataset_configs/gjensen/10174.yaml index bf0e1cb7f..7d8f7ab86 100644 --- a/ingestion_tools/dataset_configs/gjensen/10174.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10174.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10175.yaml b/ingestion_tools/dataset_configs/gjensen/10175.yaml index b429efc92..cd414fa46 100644 --- a/ingestion_tools/dataset_configs/gjensen/10175.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10175.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10176.yaml b/ingestion_tools/dataset_configs/gjensen/10176.yaml index ede3d8ba8..a76760ece 100644 --- a/ingestion_tools/dataset_configs/gjensen/10176.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10176.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10177.yaml b/ingestion_tools/dataset_configs/gjensen/10177.yaml index 169d00fd2..4d921af7d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10177.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10177.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10178.yaml b/ingestion_tools/dataset_configs/gjensen/10178.yaml index fa1689091..b161ec1b0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10178.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10178.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10179.yaml b/ingestion_tools/dataset_configs/gjensen/10179.yaml index fafc0885c..b2e5bba6f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10179.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10179.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10180.yaml b/ingestion_tools/dataset_configs/gjensen/10180.yaml index 56f678cb4..3794b5d70 100644 --- a/ingestion_tools/dataset_configs/gjensen/10180.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10180.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10181.yaml b/ingestion_tools/dataset_configs/gjensen/10181.yaml index 10ea5cb32..fce1626c9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10181.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10181.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10182.yaml b/ingestion_tools/dataset_configs/gjensen/10182.yaml index edd7482e3..752319d69 100644 --- a/ingestion_tools/dataset_configs/gjensen/10182.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10182.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10183.yaml b/ingestion_tools/dataset_configs/gjensen/10183.yaml index 0e6a89c99..a4026f372 100644 --- a/ingestion_tools/dataset_configs/gjensen/10183.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10183.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10184.yaml b/ingestion_tools/dataset_configs/gjensen/10184.yaml index e18cddea4..601229fa4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10184.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10184.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10185.yaml b/ingestion_tools/dataset_configs/gjensen/10185.yaml index 2954d5269..19143cc1f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10185.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10185.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10186.yaml b/ingestion_tools/dataset_configs/gjensen/10186.yaml index e19c3adaf..bda0c2824 100644 --- a/ingestion_tools/dataset_configs/gjensen/10186.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10186.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10187.yaml b/ingestion_tools/dataset_configs/gjensen/10187.yaml index bb8153409..6338e4125 100644 --- a/ingestion_tools/dataset_configs/gjensen/10187.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10187.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10188.yaml b/ingestion_tools/dataset_configs/gjensen/10188.yaml index f75fe30fe..2a2a09c72 100644 --- a/ingestion_tools/dataset_configs/gjensen/10188.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10188.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10189.yaml b/ingestion_tools/dataset_configs/gjensen/10189.yaml index 37ba24253..5e3646b3c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10189.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10189.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10190.yaml b/ingestion_tools/dataset_configs/gjensen/10190.yaml index a48416355..576bd2e6a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10190.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10190.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10191.yaml b/ingestion_tools/dataset_configs/gjensen/10191.yaml index 7079ace36..f0d99a97d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10191.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10191.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10192.yaml b/ingestion_tools/dataset_configs/gjensen/10192.yaml index 936819266..3a368f284 100644 --- a/ingestion_tools/dataset_configs/gjensen/10192.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10192.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10193.yaml b/ingestion_tools/dataset_configs/gjensen/10193.yaml index 3ff3c780f..1d283e14c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10193.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10193.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10194.yaml b/ingestion_tools/dataset_configs/gjensen/10194.yaml index b4884d767..d6d01a3a1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10194.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10194.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10195.yaml b/ingestion_tools/dataset_configs/gjensen/10195.yaml index 8fc7b9f5d..ec417a5a7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10195.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10195.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10196.yaml b/ingestion_tools/dataset_configs/gjensen/10196.yaml index f5d3a49c7..c9a41b89c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10196.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10196.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10197.yaml b/ingestion_tools/dataset_configs/gjensen/10197.yaml index 30e297727..6ba1443c3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10197.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10197.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10198.yaml b/ingestion_tools/dataset_configs/gjensen/10198.yaml index 792dd6663..16b20a0d6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10198.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10198.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10199.yaml b/ingestion_tools/dataset_configs/gjensen/10199.yaml index 572c29e4c..0f243a5cc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10199.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10199.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10200.yaml b/ingestion_tools/dataset_configs/gjensen/10200.yaml index fa76a0e2f..27499376e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10200.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10200.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -57,7 +62,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10201.yaml b/ingestion_tools/dataset_configs/gjensen/10201.yaml index ad3ad064c..346e6c719 100644 --- a/ingestion_tools/dataset_configs/gjensen/10201.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10201.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10202.yaml b/ingestion_tools/dataset_configs/gjensen/10202.yaml index 7d31b526d..07e5db73e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10202.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10202.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10203.yaml b/ingestion_tools/dataset_configs/gjensen/10203.yaml index 189a7ffd6..72d161551 100644 --- a/ingestion_tools/dataset_configs/gjensen/10203.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10203.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10204.yaml b/ingestion_tools/dataset_configs/gjensen/10204.yaml index e841e8757..170d29588 100644 --- a/ingestion_tools/dataset_configs/gjensen/10204.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10204.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10205.yaml b/ingestion_tools/dataset_configs/gjensen/10205.yaml index 883dfb376..df5657aa4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10205.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10205.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10206.yaml b/ingestion_tools/dataset_configs/gjensen/10206.yaml index 052dec75a..80becf401 100644 --- a/ingestion_tools/dataset_configs/gjensen/10206.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10206.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10207.yaml b/ingestion_tools/dataset_configs/gjensen/10207.yaml index 4fca0a6d8..e93f4e491 100644 --- a/ingestion_tools/dataset_configs/gjensen/10207.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10207.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10208.yaml b/ingestion_tools/dataset_configs/gjensen/10208.yaml index a610ab22b..1f33853f8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10208.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10208.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10209.yaml b/ingestion_tools/dataset_configs/gjensen/10209.yaml index 34bc5f9cc..1da4932d6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10209.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10209.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10210.yaml b/ingestion_tools/dataset_configs/gjensen/10210.yaml index b7eb80a5a..ed93a06aa 100644 --- a/ingestion_tools/dataset_configs/gjensen/10210.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10210.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10211.yaml b/ingestion_tools/dataset_configs/gjensen/10211.yaml index 51ebc10f9..b21e89490 100644 --- a/ingestion_tools/dataset_configs/gjensen/10211.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10211.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10212.yaml b/ingestion_tools/dataset_configs/gjensen/10212.yaml index d913ed1c2..75b302851 100644 --- a/ingestion_tools/dataset_configs/gjensen/10212.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10212.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10213.yaml b/ingestion_tools/dataset_configs/gjensen/10213.yaml index 7ae577aad..767ea990f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10213.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10213.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10214.yaml b/ingestion_tools/dataset_configs/gjensen/10214.yaml index 96ada173f..f1df1189b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10214.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10214.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10215.yaml b/ingestion_tools/dataset_configs/gjensen/10215.yaml index d978450f4..793bd9603 100644 --- a/ingestion_tools/dataset_configs/gjensen/10215.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10215.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10216.yaml b/ingestion_tools/dataset_configs/gjensen/10216.yaml index e7b22abb7..28f5ceedb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10216.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10216.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10217.yaml b/ingestion_tools/dataset_configs/gjensen/10217.yaml index 506055e3c..05ba1d912 100644 --- a/ingestion_tools/dataset_configs/gjensen/10217.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10217.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -66,7 +71,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10218.yaml b/ingestion_tools/dataset_configs/gjensen/10218.yaml index ecfd9214a..d23fe3b22 100644 --- a/ingestion_tools/dataset_configs/gjensen/10218.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10218.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10219.yaml b/ingestion_tools/dataset_configs/gjensen/10219.yaml index 19863b03b..9c0edd0bc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10219.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10219.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -64,7 +69,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10220.yaml b/ingestion_tools/dataset_configs/gjensen/10220.yaml index 4391c3f3a..38d1da0e7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10220.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10220.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -68,7 +73,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10221.yaml b/ingestion_tools/dataset_configs/gjensen/10221.yaml index f4a3ab8d6..a23955b18 100644 --- a/ingestion_tools/dataset_configs/gjensen/10221.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10221.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -67,7 +72,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10222.yaml b/ingestion_tools/dataset_configs/gjensen/10222.yaml index c47508a5f..15540f124 100644 --- a/ingestion_tools/dataset_configs/gjensen/10222.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10222.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10223.yaml b/ingestion_tools/dataset_configs/gjensen/10223.yaml index b6fb6f4dd..897dd765d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10223.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10223.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10224.yaml b/ingestion_tools/dataset_configs/gjensen/10224.yaml index b1fbda75b..f4793a4e6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10224.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10224.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10225.yaml b/ingestion_tools/dataset_configs/gjensen/10225.yaml index 22e7b8733..067fe639b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10225.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10225.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10226.yaml b/ingestion_tools/dataset_configs/gjensen/10226.yaml index aebe7a1a9..4477c86dd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10226.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10226.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10227.yaml b/ingestion_tools/dataset_configs/gjensen/10227.yaml index e2f3debb4..9c4dbe39a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10227.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10227.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10228.yaml b/ingestion_tools/dataset_configs/gjensen/10228.yaml index e92856e36..7666681ee 100644 --- a/ingestion_tools/dataset_configs/gjensen/10228.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10228.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10229.yaml b/ingestion_tools/dataset_configs/gjensen/10229.yaml index 69fc52ee4..0911a0154 100644 --- a/ingestion_tools/dataset_configs/gjensen/10229.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10229.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10230.yaml b/ingestion_tools/dataset_configs/gjensen/10230.yaml index 8674a207d..14f3cecbc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10230.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10230.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10231.yaml b/ingestion_tools/dataset_configs/gjensen/10231.yaml index 937583ab9..b542a370c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10231.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10231.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10232.yaml b/ingestion_tools/dataset_configs/gjensen/10232.yaml index 1efc57d8f..c1eeee6fa 100644 --- a/ingestion_tools/dataset_configs/gjensen/10232.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10232.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10233.yaml b/ingestion_tools/dataset_configs/gjensen/10233.yaml index a362b8ee7..2fd3a3d1d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10233.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10233.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10234.yaml b/ingestion_tools/dataset_configs/gjensen/10234.yaml index c03921eb1..574f11d6e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10234.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10234.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10235.yaml b/ingestion_tools/dataset_configs/gjensen/10235.yaml index f18973e52..e6367a510 100644 --- a/ingestion_tools/dataset_configs/gjensen/10235.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10235.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10236.yaml b/ingestion_tools/dataset_configs/gjensen/10236.yaml index 9b1ef82f3..4027eee26 100644 --- a/ingestion_tools/dataset_configs/gjensen/10236.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10236.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10237.yaml b/ingestion_tools/dataset_configs/gjensen/10237.yaml index a5e30d05f..19b8b1b6e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10237.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10237.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10238.yaml b/ingestion_tools/dataset_configs/gjensen/10238.yaml index fbcf801db..d21af2fb6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10238.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10238.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10239.yaml b/ingestion_tools/dataset_configs/gjensen/10239.yaml index 12b2e6a44..d7d7b4034 100644 --- a/ingestion_tools/dataset_configs/gjensen/10239.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10239.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10240.yaml b/ingestion_tools/dataset_configs/gjensen/10240.yaml index ad3d94d86..fd36065eb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10240.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10240.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10241.yaml b/ingestion_tools/dataset_configs/gjensen/10241.yaml index 639c6975c..ff5b75e22 100644 --- a/ingestion_tools/dataset_configs/gjensen/10241.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10241.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10242.yaml b/ingestion_tools/dataset_configs/gjensen/10242.yaml index ba172a7c2..cc5c7afde 100644 --- a/ingestion_tools/dataset_configs/gjensen/10242.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10242.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -55,7 +60,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10243.yaml b/ingestion_tools/dataset_configs/gjensen/10243.yaml index 0bcc89282..36a50a00c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10243.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10243.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -54,7 +59,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10244.yaml b/ingestion_tools/dataset_configs/gjensen/10244.yaml index cff580db3..b7dcbfb7f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10244.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10244.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -54,7 +59,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10245.yaml b/ingestion_tools/dataset_configs/gjensen/10245.yaml index 4785cea35..dafdddec1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10245.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10245.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -55,7 +60,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10246.yaml b/ingestion_tools/dataset_configs/gjensen/10246.yaml index 73c8ff21e..942b75397 100644 --- a/ingestion_tools/dataset_configs/gjensen/10246.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10246.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10247.yaml b/ingestion_tools/dataset_configs/gjensen/10247.yaml index 4b81c3b8d..68623a587 100644 --- a/ingestion_tools/dataset_configs/gjensen/10247.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10247.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10248.yaml b/ingestion_tools/dataset_configs/gjensen/10248.yaml index 6346dc979..a5cfa9b80 100644 --- a/ingestion_tools/dataset_configs/gjensen/10248.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10248.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -63,7 +68,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10249.yaml b/ingestion_tools/dataset_configs/gjensen/10249.yaml index b724323d9..4098bb847 100644 --- a/ingestion_tools/dataset_configs/gjensen/10249.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10249.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10250.yaml b/ingestion_tools/dataset_configs/gjensen/10250.yaml index 18946d1ed..377abc550 100644 --- a/ingestion_tools/dataset_configs/gjensen/10250.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10250.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10251.yaml b/ingestion_tools/dataset_configs/gjensen/10251.yaml index 087e48f90..55e5ef8e6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10251.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10251.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10252.yaml b/ingestion_tools/dataset_configs/gjensen/10252.yaml index 86bb79fc3..0457de94e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10252.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10252.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10253.yaml b/ingestion_tools/dataset_configs/gjensen/10253.yaml index 3ec4ae523..408aef908 100644 --- a/ingestion_tools/dataset_configs/gjensen/10253.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10253.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10254.yaml b/ingestion_tools/dataset_configs/gjensen/10254.yaml index d9644be60..f1110f5a9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10254.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10254.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10255.yaml b/ingestion_tools/dataset_configs/gjensen/10255.yaml index 8d8cde39c..5f8b06fda 100644 --- a/ingestion_tools/dataset_configs/gjensen/10255.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10255.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10256.yaml b/ingestion_tools/dataset_configs/gjensen/10256.yaml index d61b50d53..2ad0e8ce4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10256.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10256.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10257.yaml b/ingestion_tools/dataset_configs/gjensen/10257.yaml index 781016bea..98fd7dc26 100644 --- a/ingestion_tools/dataset_configs/gjensen/10257.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10257.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10258.yaml b/ingestion_tools/dataset_configs/gjensen/10258.yaml index 99bfed1c3..82495780d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10258.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10258.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10259.yaml b/ingestion_tools/dataset_configs/gjensen/10259.yaml index a4f80a448..d7e8d2522 100644 --- a/ingestion_tools/dataset_configs/gjensen/10259.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10259.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10260.yaml b/ingestion_tools/dataset_configs/gjensen/10260.yaml index 84df730af..9f1008dda 100644 --- a/ingestion_tools/dataset_configs/gjensen/10260.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10260.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -55,7 +60,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10261.yaml b/ingestion_tools/dataset_configs/gjensen/10261.yaml index 068717ca3..fb0f23143 100644 --- a/ingestion_tools/dataset_configs/gjensen/10261.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10261.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -55,7 +60,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10262.yaml b/ingestion_tools/dataset_configs/gjensen/10262.yaml index 09be83a18..94102e77c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10262.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10262.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -62,7 +67,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10263.yaml b/ingestion_tools/dataset_configs/gjensen/10263.yaml index 026eeed53..1543f8625 100644 --- a/ingestion_tools/dataset_configs/gjensen/10263.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10263.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10264.yaml b/ingestion_tools/dataset_configs/gjensen/10264.yaml index 31fef30ea..5dcfb2bc4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10264.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10264.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10265.yaml b/ingestion_tools/dataset_configs/gjensen/10265.yaml index fab194fb8..b8accfd03 100644 --- a/ingestion_tools/dataset_configs/gjensen/10265.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10265.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10266.yaml b/ingestion_tools/dataset_configs/gjensen/10266.yaml index f876a79ad..76f9f0d3f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10266.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10266.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -61,7 +66,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10267.yaml b/ingestion_tools/dataset_configs/gjensen/10267.yaml index c3edc3a59..2c4d8ce0e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10267.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10267.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10268.yaml b/ingestion_tools/dataset_configs/gjensen/10268.yaml index deb577482..5a66ef699 100644 --- a/ingestion_tools/dataset_configs/gjensen/10268.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10268.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10269.yaml b/ingestion_tools/dataset_configs/gjensen/10269.yaml index c237d0c54..8b8914c53 100644 --- a/ingestion_tools/dataset_configs/gjensen/10269.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10269.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10270.yaml b/ingestion_tools/dataset_configs/gjensen/10270.yaml index 8d7436354..1c9d99021 100644 --- a/ingestion_tools/dataset_configs/gjensen/10270.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10270.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10271.yaml b/ingestion_tools/dataset_configs/gjensen/10271.yaml index 8ab7507e7..c1e600522 100644 --- a/ingestion_tools/dataset_configs/gjensen/10271.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10271.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10272.yaml b/ingestion_tools/dataset_configs/gjensen/10272.yaml index 090fb4048..60be474c6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10272.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10272.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10273.yaml b/ingestion_tools/dataset_configs/gjensen/10273.yaml index 2eed1eeed..ec5492870 100644 --- a/ingestion_tools/dataset_configs/gjensen/10273.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10273.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10274.yaml b/ingestion_tools/dataset_configs/gjensen/10274.yaml index 5f32f83bf..a159ab8ae 100644 --- a/ingestion_tools/dataset_configs/gjensen/10274.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10274.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10275.yaml b/ingestion_tools/dataset_configs/gjensen/10275.yaml index bf9ea0a1c..ed0d1ebb9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10275.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10275.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10276.yaml b/ingestion_tools/dataset_configs/gjensen/10276.yaml index 8934fe582..0cc8ac8d7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10276.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10276.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -60,7 +65,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10277.yaml b/ingestion_tools/dataset_configs/gjensen/10277.yaml index 621a11df2..c55cc9f2d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10277.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10277.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10278.yaml b/ingestion_tools/dataset_configs/gjensen/10278.yaml index 4200af6df..413acc1df 100644 --- a/ingestion_tools/dataset_configs/gjensen/10278.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10278.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -54,7 +59,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10279.yaml b/ingestion_tools/dataset_configs/gjensen/10279.yaml index e1a1f94cd..15fc6a86a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10279.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10279.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -54,7 +59,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10280.yaml b/ingestion_tools/dataset_configs/gjensen/10280.yaml index db4d386df..00c0ba7ec 100644 --- a/ingestion_tools/dataset_configs/gjensen/10280.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10280.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -54,7 +59,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10281.yaml b/ingestion_tools/dataset_configs/gjensen/10281.yaml index 91a30457f..d7e0833e0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10281.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10281.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -55,7 +60,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10282.yaml b/ingestion_tools/dataset_configs/gjensen/10282.yaml index 9fb56a593..6bc370e66 100644 --- a/ingestion_tools/dataset_configs/gjensen/10282.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10282.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -56,7 +61,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10283.yaml b/ingestion_tools/dataset_configs/gjensen/10283.yaml index bf4ad5eaf..4a74dd6f2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10283.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10283.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -56,7 +61,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10284.yaml b/ingestion_tools/dataset_configs/gjensen/10284.yaml index 2263295a6..1e880afc9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10284.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10284.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -56,7 +61,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10285.yaml b/ingestion_tools/dataset_configs/gjensen/10285.yaml index 578ba855c..bf58c4bfd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10285.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10285.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -54,7 +59,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10286.yaml b/ingestion_tools/dataset_configs/gjensen/10286.yaml index 6a3061ecd..de4a4fa57 100644 --- a/ingestion_tools/dataset_configs/gjensen/10286.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10286.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -55,7 +60,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10287.yaml b/ingestion_tools/dataset_configs/gjensen/10287.yaml index da0b9c01a..d61afa803 100644 --- a/ingestion_tools/dataset_configs/gjensen/10287.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10287.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10288.yaml b/ingestion_tools/dataset_configs/gjensen/10288.yaml index 07d30e1c3..e2c02a8f8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10288.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10288.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10289.yaml b/ingestion_tools/dataset_configs/gjensen/10289.yaml index 8921d7e20..3e768ca6d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10289.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10289.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10290.yaml b/ingestion_tools/dataset_configs/gjensen/10290.yaml index 88a91a8ee..0a41dbb4e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10290.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10290.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10291.yaml b/ingestion_tools/dataset_configs/gjensen/10291.yaml index 309f3a726..208521cc3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10291.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10291.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10292.yaml b/ingestion_tools/dataset_configs/gjensen/10292.yaml index 41f73ee6a..2643122bb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10292.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10292.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10293.yaml b/ingestion_tools/dataset_configs/gjensen/10293.yaml index b13b60309..24cbe6d9b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10293.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10293.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -59,7 +64,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10294.yaml b/ingestion_tools/dataset_configs/gjensen/10294.yaml index 0fa0c38d5..418b5b577 100644 --- a/ingestion_tools/dataset_configs/gjensen/10294.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10294.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10295.yaml b/ingestion_tools/dataset_configs/gjensen/10295.yaml index c70e3aa17..72812b25a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10295.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10295.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10296.yaml b/ingestion_tools/dataset_configs/gjensen/10296.yaml index 2d3b8dd34..8dba71cf0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10296.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10296.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10297.yaml b/ingestion_tools/dataset_configs/gjensen/10297.yaml index d1f76f116..ff2b54f64 100644 --- a/ingestion_tools/dataset_configs/gjensen/10297.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10297.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10298.yaml b/ingestion_tools/dataset_configs/gjensen/10298.yaml index 20feea8a6..b34f2bc9d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10298.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10298.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10299.yaml b/ingestion_tools/dataset_configs/gjensen/10299.yaml index 75efb46c2..90bc98f14 100644 --- a/ingestion_tools/dataset_configs/gjensen/10299.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10299.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/{mapped_frame_name}/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/gjensen/10300.yaml b/ingestion_tools/dataset_configs/gjensen/10300.yaml index 012a47da8..ad9f48f2e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10300.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10300.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - '{run_name}/rawdata/*.mdoc' dataset_keyphotos: - sources: - literal: @@ -58,7 +63,6 @@ rawtilts: - sources: - source_multi_glob: list_globs: - - '{run_name}/rawdata/*.mdoc' - '{run_name}/file_*/*.rawtlt' - '{run_name}/3dimage_*/*.rawtlt' runs: diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index 5889c7378..23b074f48 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -261,6 +261,10 @@ tiltseries: OPTIONAL - source_glob: SEE dataset.sources.source_glob tomograms: OPTIONAL - metadata: OPTIONAL + affine_transformation_matrix: OPTIONAL 4x4 FLOAT MATRIX (DEFAULT 4x4 identity matrix) + - - REQUIRED, FLOAT + - ... (4 ELEMENTS) + - ... (4 ELEMENTS) align_software: OPTIONAL, STRING # CURRENTLY NOT USED authors: SEE annotations.authors ctf_corrected: RECOMMENDED, BOOLEAN diff --git a/schema/core/v1.1.0/common.yaml b/schema/core/v1.1.0/common.yaml index 77b608020..687609c66 100644 --- a/schema/core/v1.1.0/common.yaml +++ b/schema/core/v1.1.0/common.yaml @@ -818,7 +818,7 @@ enums: description: Used to determine what alignment alogrithm to use. permissible_values: IMOD: - description: formats (xf, tlt) + description: formats (xf, tlt, com) ARETOMO3: description: formats (aln) From f89290d23301cb14a552a703cacd3f7ca7371038 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 12 Sep 2024 21:47:27 -0700 Subject: [PATCH 21/59] Update config for tomogrames and frames --- ingestion_tools/dataset_configs/template.yaml | 11 +- .../v1.1.0/codegen/metadata_materialized.yaml | 134 +++++++++++++++++- schema/core/v1.1.0/codegen/metadata_models.py | 134 +++++++++++++++--- schema/core/v1.1.0/metadata.yaml | 49 ++++++- .../v1.0.0/codegen/ingestion_config_models.py | 121 ++++++++++++---- .../ingestion_config_models.schema.json | 114 ++++++++++++--- .../ingestion_config_models_materialized.yaml | 27 +++- .../v1.0.0/ingestion_config_models.yaml | 2 + 8 files changed, 518 insertions(+), 74 deletions(-) diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index 23b074f48..ef1ac2068 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -196,7 +196,12 @@ depositions: REQUIRED - STRING (ENUM [annotation, dataset, tomogram]) sources: REQUIRED (source_glob, source_multi_glob, destination_glob, literal) frames: OPTIONAL -- sources: SEE datasets.sources and runs.sources.parent_filters +- metadata: OPTIONAL + dose: REQUIRED, FLOAT + defocus: REQUIRED, FLOAT + astigmatism: REQUIRED, FLOAT + astigmatic_angle: REQUIRED, FLOAT + sources: SEE datasets.sources and runs.sources.parent_filters gains: OPTIONAL - sources: SEE datasets.sources and runs.sources.parent_filters key_images: OPTIONAL @@ -284,6 +289,10 @@ tomograms: OPTIONAL tomogram_type: OPTIONAL, STRING (ENUM [CANONICAL]) tomogram_version: REQUIRED, FLOAT voxel_spacing: REQUIRED, FLOAT (POSITIVE) + is_visualization_default: OPTIONAL, BOOLEAN (DEFAULT TRUE) + is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) + cross_references: SEE datasets.cross_references + dates: SEE annotations.dates sources: SEE tiltseries.sources voxel_spacings: REQUIRED - sources: REQUIRED diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index 7ecdbfc65..ce83fce04 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -391,10 +391,10 @@ enums: permissible_values: IMOD: text: IMOD - description: formats xf, tlt, xtlt, rawtlt + description: formats (xf, tlt, com) ARETOMO3: text: ARETOMO3 - description: formats aln, _TLT.txt, rawtlt + description: formats (aln) annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. @@ -851,6 +851,7 @@ classes: owner: DateStampedEntity domain_of: - DateStampedEntity + - Tomogram range: DateStamp required: true inlined: true @@ -966,6 +967,7 @@ classes: owner: CrossReferencedEntity domain_of: - CrossReferencedEntity + - Tomogram range: CrossReferences inlined: true inlined_as_list: true @@ -1396,6 +1398,7 @@ classes: owner: Dataset domain_of: - DateStampedEntity + - Tomogram range: DateStamp required: true inlined: true @@ -1438,6 +1441,7 @@ classes: owner: Dataset domain_of: - CrossReferencedEntity + - Tomogram range: CrossReferences inlined: true inlined_as_list: true @@ -1633,6 +1637,7 @@ classes: owner: Deposition domain_of: - DateStampedEntity + - Tomogram range: DateStamp required: true inlined: true @@ -1660,6 +1665,7 @@ classes: owner: Deposition domain_of: - CrossReferencedEntity + - Tomogram range: CrossReferences inlined: true inlined_as_list: true @@ -2572,6 +2578,60 @@ classes: required: true inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the tomogram is a portal standard. + from_schema: metadata + ifabsent: 'False' + alias: is_portal_standard + owner: Tomogram + domain_of: + - Tomogram + range: boolean + required: false + inlined: true + inlined_as_list: true + is_visualization_default: + name: is_visualization_default + description: Whether the tomogram is the default for visualization. + from_schema: metadata + ifabsent: 'True' + alias: is_visualization_default + owner: Tomogram + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: true + inlined: true + inlined_as_list: true + cross_references: + name: cross_references + description: A set of cross-references to other databases and publications. + from_schema: metadata + alias: cross_references + owner: Tomogram + domain_of: + - CrossReferencedEntity + - Tomogram + range: CrossReferences + required: false + inlined: true + inlined_as_list: true + dates: + name: dates + description: A set of dates at which a data item was deposited, published + and last modified. + from_schema: metadata + alias: dates + owner: Tomogram + domain_of: + - DateStampedEntity + - Tomogram + range: DateStamp + required: true + inlined: true + inlined_as_list: true authors: name: authors description: Author of a scientific data entity. @@ -2831,6 +2891,7 @@ classes: alias: is_visualization_default owner: AnnotationSourceFile domain_of: + - Tomogram - AnnotationSourceFile range: boolean inlined: true @@ -2945,6 +3006,7 @@ classes: alias: is_visualization_default owner: AnnotationOrientedPointFile domain_of: + - Tomogram - AnnotationSourceFile range: boolean inlined: true @@ -3059,6 +3121,7 @@ classes: alias: is_visualization_default owner: AnnotationInstanceSegmentationFile domain_of: + - Tomogram - AnnotationSourceFile range: boolean inlined: true @@ -3172,6 +3235,7 @@ classes: alias: is_visualization_default owner: AnnotationPointFile domain_of: + - Tomogram - AnnotationSourceFile range: boolean inlined: true @@ -3240,6 +3304,7 @@ classes: alias: is_visualization_default owner: AnnotationSegmentationMaskFile domain_of: + - Tomogram - AnnotationSourceFile range: boolean inlined: true @@ -3322,6 +3387,7 @@ classes: alias: is_visualization_default owner: AnnotationSemanticSegmentationMaskFile domain_of: + - Tomogram - AnnotationSourceFile range: boolean inlined: true @@ -3406,6 +3472,7 @@ classes: alias: is_visualization_default owner: AnnotationTriangularMeshFile domain_of: + - Tomogram - AnnotationSourceFile range: boolean inlined: true @@ -3510,6 +3577,7 @@ classes: alias: is_visualization_default owner: AnnotationTriangularMeshGroupFile domain_of: + - Tomogram - AnnotationSourceFile range: boolean inlined: true @@ -3697,6 +3765,7 @@ classes: owner: Annotation domain_of: - DateStampedEntity + - Tomogram range: DateStamp required: true inlined: true @@ -3807,6 +3876,7 @@ classes: - AlignmentSize - AlignmentOffset range: Any + required: true inlined: true inlined_as_list: true pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ @@ -3829,6 +3899,7 @@ classes: - AlignmentSize - AlignmentOffset range: Any + required: true inlined: true inlined_as_list: true pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ @@ -3851,6 +3922,7 @@ classes: - AlignmentSize - AlignmentOffset range: Any + required: true inlined: true inlined_as_list: true pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ @@ -3873,6 +3945,7 @@ classes: domain_of: - Alignment range: alignment_type_enum + required: true inlined: true inlined_as_list: true pattern: (^LOCAL$)|(^GLOBAL$) @@ -3887,7 +3960,6 @@ classes: - Tomogram - Alignment range: AlignmentOffset - required: true inlined: true inlined_as_list: true volume_dimesion: @@ -3911,7 +3983,6 @@ classes: domain_of: - Alignment range: Any - required: true inlined: true inlined_as_list: true pattern: ^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$ @@ -3928,7 +3999,6 @@ classes: domain_of: - Alignment range: float - required: true inlined: true inlined_as_list: true affine_transformation_matrix: @@ -3959,7 +4029,6 @@ classes: domain_of: - Alignment range: boolean - required: true inlined: true inlined_as_list: true format: @@ -3975,6 +4044,59 @@ classes: inlined: true inlined_as_list: true pattern: (^IMOD$)|(^ARETOMO3$) + Frame: + name: Frame + description: A frame entity. + from_schema: metadata + attributes: + dose: + name: dose + description: The dose. + from_schema: metadata + alias: dose + owner: Frame + domain_of: + - Frame + range: float + required: true + inlined: true + inlined_as_list: true + defocus: + name: defocus + description: The defocus. + from_schema: metadata + alias: defocus + owner: Frame + domain_of: + - Frame + range: float + required: true + inlined: true + inlined_as_list: true + astigmatism: + name: astigmatism + description: The astigmatism. + from_schema: metadata + alias: astigmatism + owner: Frame + domain_of: + - Frame + range: float + required: true + inlined: true + inlined_as_list: true + astigmatic_angle: + name: astigmatic_angle + description: The astigmatic angle. + from_schema: metadata + alias: astigmatic_angle + owner: Frame + domain_of: + - Frame + range: float + required: true + inlined: true + inlined_as_list: true Any: name: Any from_schema: metadata diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 5c98e6276..4904cdd35 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -503,9 +503,9 @@ class AlignmentFormatEnum(str, Enum): Used to determine what alignment alogrithm to use. """ - # formats xf, tlt, xtlt, rawtlt + # formats (xf, tlt, com) IMOD = "IMOD" - # formats aln, _TLT.txt, rawtlt + # formats (aln) ARETOMO3 = "ARETOMO3" @@ -777,7 +777,10 @@ class DateStampedEntity(ConfiguredBaseModel): ..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra={ - "linkml_meta": {"alias": "dates", "domain_of": ["DateStampedEntity", "Dataset", "Deposition", "Annotation"]} + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } }, ) @@ -837,7 +840,7 @@ class CrossReferencedEntity(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Dataset", "Deposition"], + "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], } }, ) @@ -1267,7 +1270,10 @@ class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredE ..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra={ - "linkml_meta": {"alias": "dates", "domain_of": ["DateStampedEntity", "Dataset", "Deposition", "Annotation"]} + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } }, ) authors: List[Author] = Field( @@ -1300,7 +1306,7 @@ class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredE json_schema_extra={ "linkml_meta": { "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Dataset", "Deposition"], + "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], } }, ) @@ -1450,7 +1456,10 @@ class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): ..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra={ - "linkml_meta": {"alias": "dates", "domain_of": ["DateStampedEntity", "Dataset", "Deposition", "Annotation"]} + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } }, ) authors: List[Author] = Field( @@ -1471,7 +1480,7 @@ class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): json_schema_extra={ "linkml_meta": { "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Dataset", "Deposition"], + "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], } }, ) @@ -2405,6 +2414,54 @@ class Tomogram(AuthoredEntity): description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the tomogram is a portal standard.""", + json_schema_extra={ + "linkml_meta": {"alias": "is_portal_standard", "domain_of": ["Tomogram"], "ifabsent": "False"} + }, + ) + is_visualization_default: bool = Field( + True, + description="""Whether the tomogram is the default for visualization.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "ifabsent": "True", + } + }, + ) + cross_references: Optional[CrossReferences] = Field( + None, + description="""A set of cross-references to other databases and publications.""", + json_schema_extra={ + "linkml_meta": { + "alias": "cross_references", + "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], + } + }, + ) + dates: DateStamp = Field( + ..., + description="""A set of dates at which a data item was deposited, published and last modified.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } + }, + ) authors: List[Author] = Field( ..., description="""Author of a scientific data entity.""", @@ -2722,6 +2779,7 @@ class AnnotationSourceFile(ConfiguredBaseModel): "linkml_meta": { "alias": "is_visualization_default", "domain_of": [ + "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -2852,6 +2910,7 @@ class AnnotationOrientedPointFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_visualization_default", "domain_of": [ + "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -2982,6 +3041,7 @@ class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): "linkml_meta": { "alias": "is_visualization_default", "domain_of": [ + "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3113,6 +3173,7 @@ class AnnotationPointFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_visualization_default", "domain_of": [ + "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3203,6 +3264,7 @@ class AnnotationSegmentationMaskFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_visualization_default", "domain_of": [ + "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3305,6 +3367,7 @@ class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_visualization_default", "domain_of": [ + "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3408,6 +3471,7 @@ class AnnotationTriangularMeshFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_visualization_default", "domain_of": [ + "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3532,6 +3596,7 @@ class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_visualization_default", "domain_of": [ + "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3675,7 +3740,10 @@ class Annotation(AuthoredEntity, DateStampedEntity): ..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra={ - "linkml_meta": {"alias": "dates", "domain_of": ["DateStampedEntity", "Dataset", "Deposition", "Annotation"]} + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } }, ) authors: List[Author] = Field( @@ -3806,7 +3874,7 @@ class AlignmentOffset(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - x: Optional[Union[int, str]] = Field( + x: Union[int, str] = Field( 0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra={ @@ -3819,7 +3887,7 @@ class AlignmentOffset(ConfiguredBaseModel): } }, ) - y: Optional[Union[int, str]] = Field( + y: Union[int, str] = Field( 0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra={ @@ -3832,7 +3900,7 @@ class AlignmentOffset(ConfiguredBaseModel): } }, ) - z: Optional[Union[int, str]] = Field( + z: Union[int, str] = Field( 0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra={ @@ -3886,13 +3954,13 @@ def pattern_z(cls, v): class Alignment(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - alignment_type: Optional[AlignmentTypeEnum] = Field( - None, + alignment_type: AlignmentTypeEnum = Field( + ..., description="""The type of alignment.""", json_schema_extra={"linkml_meta": {"alias": "alignment_type", "domain_of": ["Alignment"]}}, ) - offset: AlignmentOffset = Field( - ..., + offset: Optional[AlignmentOffset] = Field( + None, description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, ) @@ -3901,7 +3969,7 @@ class Alignment(ConfiguredBaseModel): description="""The size of an alignment in voxels in each dimension.""", json_schema_extra={"linkml_meta": {"alias": "volume_dimesion", "domain_of": ["Alignment"]}}, ) - x_rotation_offset: Union[int, str] = Field( + x_rotation_offset: Optional[Union[int, str]] = Field( 0, description="""The x rotation offset relative to the tomogram.""", json_schema_extra={ @@ -3913,7 +3981,7 @@ class Alignment(ConfiguredBaseModel): } }, ) - tilt_offset: float = Field( + tilt_offset: Optional[float] = Field( 0.0, description="""The tilt offset relative to the tomogram.""", json_schema_extra={ @@ -3936,7 +4004,7 @@ class Alignment(ConfiguredBaseModel): } }, ) - is_canonical: bool = Field( + is_canonical: Optional[bool] = Field( True, description="""Whether the alignment is canonical.""", json_schema_extra={"linkml_meta": {"alias": "is_canonical", "domain_of": ["Alignment"], "ifabsent": "True"}}, @@ -3984,6 +4052,33 @@ def pattern_format(cls, v): return v +class Frame(ConfiguredBaseModel): + """ + A frame entity. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + dose: float = Field( + ..., description="""The dose.""", json_schema_extra={"linkml_meta": {"alias": "dose", "domain_of": ["Frame"]}} + ) + defocus: float = Field( + ..., + description="""The defocus.""", + json_schema_extra={"linkml_meta": {"alias": "defocus", "domain_of": ["Frame"]}}, + ) + astigmatism: float = Field( + ..., + description="""The astigmatism.""", + json_schema_extra={"linkml_meta": {"alias": "astigmatism", "domain_of": ["Frame"]}}, + ) + astigmatic_angle: float = Field( + ..., + description="""The astigmatic angle.""", + json_schema_extra={"linkml_meta": {"alias": "astigmatic_angle", "domain_of": ["Frame"]}}, + ) + + class DateStampedEntityMixin(ConfiguredBaseModel): """ A set of dates at which a data item was deposited, published and last modified. @@ -4476,6 +4571,7 @@ def pattern_ORCID(cls, v): AlignmentSize.model_rebuild() AlignmentOffset.model_rebuild() Alignment.model_rebuild() +Frame.model_rebuild() DateStampedEntityMixin.model_rebuild() DateStamp.model_rebuild() CrossReferencesMixin.model_rebuild() diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index 2913915b6..ab3a0b363 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -518,6 +518,24 @@ classes: description: *desc_tomogram_offset range: TomogramOffset required: true + is_portal_standard: + description: Whether the tomogram is a portal standard. + range: boolean + required: false + ifabsent: false + is_visualization_default: + description: Whether the tomogram is the default for visualization. + range: boolean + required: true + ifabsent: true + cross_references: + description: Cross-references for the tomogram. + range: CrossReferences + required: false + dates: + description: Dates associated with the tomogram. + range: DateStamp + required: true # ============================================================================ # ============================================================================ @@ -793,7 +811,6 @@ classes: offset: description: *desc_alignment_offset range: AlignmentOffset - required: true volume_dimesion: description: *desc_alignment_size range: AlignmentSize @@ -802,12 +819,10 @@ classes: any_of: - range: integer - range: cdp-common:IntegerFormattedString - required: true ifabsent: "int(0)" tilt_offset: description: The tilt offset relative to the tomogram. range: float - required: true ifabsent: "float(0.0)" affine_transformation_matrix: # use the value in tomogram.affine_transformation_matrix if tomogram.afine_transformation_matrix is defined @@ -818,12 +833,38 @@ classes: dimensions: - exact_cardinality: 4 - exact_cardinality: 4 +# ifabsent: "np.eye(4)" # TODO: comming soon from linkml https://linkml.io/linkml/schemas/arrays#representations is_canonical: description: Whether the alignment is canonical. range: boolean - required: true ifabsent: true format: description: The format of the alignment. range: alignment_format_enum required: true + # ============================================================================ + + # ============================================================================ + # Frame metadata + # ============================================================================ + # Add to the `classes` section in `ingestion_config_models.yaml` + + Frame: + description: A frame entity. + attributes: + dose: + description: The dose. + range: float + required: true + defocus: + description: The defocus. + range: float + required: true + astigmatism: + description: The astigmatism. + range: float + required: true + astigmatic_angle: + description: The astigmatic angle. + range: float + required: true diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 9db5f21fd..809f08a10 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -417,9 +417,9 @@ class AlignmentFormatEnum(str, Enum): """ Used to determine what alignment alogrithm to use. """ - # formats xf, tlt, xtlt, rawtlt + # formats (xf, tlt, com) IMOD = "IMOD" - # formats aln, _TLT.txt, rawtlt + # formats (aln) ARETOMO3 = "ARETOMO3" @@ -643,7 +643,11 @@ class DateStampedEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', 'Dataset', 'Deposition', 'Annotation']} }) + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) class AuthoredEntity(ConfiguredBaseModel): @@ -680,7 +684,7 @@ class CrossReferencedEntity(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixin': True}) cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', - 'domain_of': ['CrossReferencedEntity', 'Dataset', 'Deposition']} }) + 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) class PicturedEntity(ConfiguredBaseModel): @@ -933,7 +937,11 @@ class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredE 'domain_of': ['Dataset'], 'exact_mappings': ['cdp-common:dataset_description']} }) dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', 'Dataset', 'Deposition', 'Annotation']} }) + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', 'domain_of': ['AuthoredEntity', 'Dataset', @@ -946,7 +954,7 @@ class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredE 'list_elements_ordered': True, 'recommended': True} }) cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', - 'domain_of': ['CrossReferencedEntity', 'Dataset', 'Deposition']} }) + 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) sample_type: SampleTypeEnum = Field(..., description="""Type of sample imaged in a CryoET study.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_type', 'domain_of': ['ExperimentMetadata', 'Dataset'], 'exact_mappings': ['cdp-common:preparation_sample_type']} }) @@ -1001,7 +1009,11 @@ class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): 'domain_of': ['Deposition'], 'exact_mappings': ['cdp-common:deposition_types']} }) dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', 'Dataset', 'Deposition', 'Annotation']} }) + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', 'domain_of': ['AuthoredEntity', 'Dataset', @@ -1010,7 +1022,7 @@ class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): 'Annotation'], 'list_elements_ordered': True} }) cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', - 'domain_of': ['CrossReferencedEntity', 'Dataset', 'Deposition']} }) + 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) @field_validator('deposition_types') def pattern_deposition_types(cls, v): @@ -1536,6 +1548,26 @@ class Tomogram(AuthoredEntity): 'exact_mappings': ['cdp-common:tomogram_version']} }) size: Optional[TomogramSize] = Field(None, description="""The size of a tomogram in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'size', 'domain_of': ['Tomogram']} }) offset: TomogramOffset = Field(..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the tomogram is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', 'domain_of': ['Tomogram'], 'ifabsent': 'False'} }) + is_visualization_default: bool = Field(True, description="""Whether the tomogram is the default for visualization.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'ifabsent': 'True'} }) + cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', + 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', 'domain_of': ['AuthoredEntity', 'Dataset', @@ -1724,7 +1756,8 @@ class AnnotationSourceFile(ConfiguredBaseModel): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['AnnotationSourceFile', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -1788,7 +1821,8 @@ class AnnotationOrientedPointFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['AnnotationSourceFile', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -1852,7 +1886,8 @@ class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['AnnotationSourceFile', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -1915,7 +1950,8 @@ class AnnotationPointFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['AnnotationSourceFile', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -1964,7 +2000,8 @@ class AnnotationSegmentationMaskFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['AnnotationSourceFile', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2017,7 +2054,8 @@ class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['AnnotationSourceFile', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2071,7 +2109,8 @@ class AnnotationTriangularMeshFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['AnnotationSourceFile', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2136,7 +2175,8 @@ class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['AnnotationSourceFile', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2187,7 +2227,11 @@ class Annotation(AuthoredEntity, DateStampedEntity): 'domain_of': ['Annotation'], 'exact_mappings': ['cdp-common:annotation_version']} }) dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', 'Dataset', 'Deposition', 'Annotation']} }) + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', 'domain_of': ['AuthoredEntity', 'Dataset', @@ -2292,7 +2336,7 @@ class AlignmentOffset(ConfiguredBaseModel): """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - x: Optional[Union[int, str]] = Field(0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', + x: Union[int, str] = Field(0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], 'domain_of': ['TomogramSize', 'TomogramOffset', @@ -2300,7 +2344,7 @@ class AlignmentOffset(ConfiguredBaseModel): 'AlignmentOffset'], 'ifabsent': 'int(0)', 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - y: Optional[Union[int, str]] = Field(0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', + y: Union[int, str] = Field(0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], 'domain_of': ['TomogramSize', 'TomogramOffset', @@ -2308,7 +2352,7 @@ class AlignmentOffset(ConfiguredBaseModel): 'AlignmentOffset'], 'ifabsent': 'int(0)', 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - z: Optional[Union[int, str]] = Field(0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', + z: Union[int, str] = Field(0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], 'domain_of': ['TomogramSize', 'TomogramOffset', @@ -2357,19 +2401,19 @@ def pattern_z(cls, v): class Alignment(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - alignment_type: Optional[AlignmentTypeEnum] = Field(None, description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', 'domain_of': ['Alignment']} }) - offset: AlignmentOffset = Field(..., description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) + alignment_type: AlignmentTypeEnum = Field(..., description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', 'domain_of': ['Alignment']} }) + offset: Optional[AlignmentOffset] = Field(None, description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) volume_dimesion: Optional[AlignmentSize] = Field(None, description="""The size of an alignment in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'volume_dimesion', 'domain_of': ['Alignment']} }) - x_rotation_offset: Union[int, str] = Field(0, description="""The x rotation offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'x_rotation_offset', + x_rotation_offset: Optional[Union[int, str]] = Field(0, description="""The x rotation offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'x_rotation_offset', 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], 'domain_of': ['Alignment'], 'ifabsent': 'int(0)'} }) - tilt_offset: float = Field(0.0, description="""The tilt offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_offset', 'domain_of': ['Alignment'], 'ifabsent': 'float(0.0)'} }) + tilt_offset: Optional[float] = Field(0.0, description="""The tilt offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_offset', 'domain_of': ['Alignment'], 'ifabsent': 'float(0.0)'} }) affine_transformation_matrix: Optional[conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float))] = Field(None, description="""The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix.""", json_schema_extra = { "linkml_meta": {'alias': 'affine_transformation_matrix', 'array': {'dimensions': [{'exact_cardinality': 4}, {'exact_cardinality': 4}], 'exact_number_dimensions': 2}, 'domain_of': ['Alignment']} }) - is_canonical: bool = Field(True, description="""Whether the alignment is canonical.""", json_schema_extra = { "linkml_meta": {'alias': 'is_canonical', 'domain_of': ['Alignment'], 'ifabsent': 'True'} }) + is_canonical: Optional[bool] = Field(True, description="""Whether the alignment is canonical.""", json_schema_extra = { "linkml_meta": {'alias': 'is_canonical', 'domain_of': ['Alignment'], 'ifabsent': 'True'} }) format: AlignmentFormatEnum = Field(..., description="""The format of the alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'format', 'domain_of': ['Alignment']} }) @field_validator('alignment_type') @@ -2409,6 +2453,18 @@ def pattern_format(cls, v): return v +class Frame(ConfiguredBaseModel): + """ + A frame entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + dose: float = Field(..., description="""The dose.""", json_schema_extra = { "linkml_meta": {'alias': 'dose', 'domain_of': ['Frame']} }) + defocus: float = Field(..., description="""The defocus.""", json_schema_extra = { "linkml_meta": {'alias': 'defocus', 'domain_of': ['Frame']} }) + astigmatism: float = Field(..., description="""The astigmatism.""", json_schema_extra = { "linkml_meta": {'alias': 'astigmatism', 'domain_of': ['Frame']} }) + astigmatic_angle: float = Field(..., description="""The astigmatic angle.""", json_schema_extra = { "linkml_meta": {'alias': 'astigmatic_angle', 'domain_of': ['Frame']} }) + + class DateStampedEntityMixin(ConfiguredBaseModel): """ A set of dates at which a data item was deposited, published and last modified. @@ -2896,6 +2952,7 @@ class AlignmentEntity(ConfiguredBaseModel): 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', + 'FrameEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[AlignmentSource] = Field(..., description="""An alignment source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', @@ -3153,6 +3210,7 @@ class AnnotationEntity(ConfiguredBaseModel): 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', + 'FrameEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[AnnotationSource] = Field(..., description="""An annotation source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', @@ -3596,6 +3654,7 @@ class DatasetEntity(ConfiguredBaseModel): 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', + 'FrameEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[DatasetSource] = Field(..., description="""A dataset source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', @@ -4043,6 +4102,7 @@ class DepositionEntity(ConfiguredBaseModel): 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', + 'FrameEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[DepositionSource] = Field(..., description="""A deposition source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', @@ -4408,6 +4468,14 @@ class FrameEntity(ConfiguredBaseModel): 'TiltSeriesEntity', 'TomogramEntity', 'VoxelSpacingEntity']} }) + metadata: Optional[Frame] = Field(None, description="""A frame entity.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'FrameEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) class FrameSource(StandardSource): @@ -5622,6 +5690,7 @@ class TiltSeriesEntity(ConfiguredBaseModel): 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', + 'FrameEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[TiltSeriesSource] = Field(..., description="""A tilt series source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', @@ -5872,6 +5941,7 @@ class TomogramEntity(ConfiguredBaseModel): 'AnnotationEntity', 'DatasetEntity', 'DepositionEntity', + 'FrameEntity', 'TiltSeriesEntity', 'TomogramEntity']} }) sources: List[TomogramSource] = Field(..., description="""A tomogram source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', @@ -6418,6 +6488,7 @@ class TomogramHeader(ConfiguredBaseModel): AlignmentSize.model_rebuild() AlignmentOffset.model_rebuild() Alignment.model_rebuild() +Frame.model_rebuild() DateStampedEntityMixin.model_rebuild() DateStamp.model_rebuild() CrossReferencesMixin.model_rebuild() diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json index 26a119680..0ecc27bdb 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -33,15 +33,28 @@ }, "is_canonical": { "description": "Whether the alignment is canonical.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "offset": { - "$ref": "#/$defs/AlignmentOffset", + "anyOf": [ + { + "$ref": "#/$defs/AlignmentOffset" + }, + { + "type": "null" + } + ], "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram." }, "tilt_offset": { "description": "The tilt offset relative to the tomogram.", - "type": "number" + "type": [ + "number", + "null" + ] }, "volume_dimesion": { "anyOf": [ @@ -55,7 +68,6 @@ "description": "The size of an alignment in voxels in each dimension." }, "x_rotation_offset": { - "$ref": "#/$defs/Any", "anyOf": [ { "type": "integer" @@ -63,6 +75,9 @@ { "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", "type": "string" + }, + { + "type": "null" } ], "description": "The x rotation offset relative to the tomogram.", @@ -70,10 +85,7 @@ } }, "required": [ - "offset", - "x_rotation_offset", - "tilt_offset", - "is_canonical", + "alignment_type", "format" ], "title": "Alignment", @@ -117,6 +129,7 @@ "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram.", "properties": { "x": { + "$ref": "#/$defs/Any", "anyOf": [ { "type": "integer" @@ -124,15 +137,13 @@ { "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", "type": "string" - }, - { - "type": "null" } ], "description": "x offset relative to the canonical tomogram in pixels", "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" }, "y": { + "$ref": "#/$defs/Any", "anyOf": [ { "type": "integer" @@ -140,15 +151,13 @@ { "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", "type": "string" - }, - { - "type": "null" } ], "description": "y offset relative to the canonical tomogram in pixels", "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" }, "z": { + "$ref": "#/$defs/Any", "anyOf": [ { "type": "integer" @@ -156,15 +165,17 @@ { "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", "type": "string" - }, - { - "type": "null" } ], "description": "z offset relative to the canonical tomogram in pixels", "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" } }, + "required": [ + "x", + "y", + "z" + ], "title": "AlignmentOffset", "type": "object" }, @@ -2761,10 +2772,51 @@ "title": "FiducialAlignmentStatusEnum", "type": "string" }, + "Frame": { + "additionalProperties": false, + "description": "A frame entity.", + "properties": { + "astigmatic_angle": { + "description": "The astigmatic angle.", + "type": "number" + }, + "astigmatism": { + "description": "The astigmatism.", + "type": "number" + }, + "defocus": { + "description": "The defocus.", + "type": "number" + }, + "dose": { + "description": "The dose.", + "type": "number" + } + }, + "required": [ + "dose", + "defocus", + "astigmatism", + "astigmatic_angle" + ], + "title": "Frame", + "type": "object" + }, "FrameEntity": { "additionalProperties": false, "description": "A frame entity.", "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/$defs/Frame" + }, + { + "type": "null" + } + ], + "description": "A frame entity." + }, "sources": { "description": "A frame source.", "items": { @@ -4457,6 +4509,17 @@ "minItems": 1, "type": "array" }, + "cross_references": { + "anyOf": [ + { + "$ref": "#/$defs/CrossReferences" + }, + { + "type": "null" + } + ], + "description": "A set of cross-references to other databases and publications." + }, "ctf_corrected": { "description": "Whether this tomogram is CTF corrected", "type": [ @@ -4464,6 +4527,10 @@ "null" ] }, + "dates": { + "$ref": "#/$defs/DateStamp", + "description": "A set of dates at which a data item was deposited, published and last modified." + }, "fiducial_alignment_status": { "$ref": "#/$defs/Any", "anyOf": [ @@ -4479,6 +4546,17 @@ "description": "Whether the tomographic alignment was computed based on fiducial markers.", "pattern": "(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)" }, + "is_portal_standard": { + "description": "Whether the tomogram is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "Whether the tomogram is the default for visualization.", + "type": "boolean" + }, "offset": { "$ref": "#/$defs/TomogramOffset", "description": "The offset of a tomogram in voxels in each dimension relative to the canonical tomogram." @@ -4556,6 +4634,8 @@ "processing", "tomogram_version", "offset", + "is_visualization_default", + "dates", "authors" ], "title": "Tomogram", diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml index 51338c05d..9cdceac2e 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml @@ -375,10 +375,10 @@ enums: permissible_values: IMOD: text: IMOD - description: formats xf, tlt, xtlt, rawtlt + description: formats (xf, tlt, com) ARETOMO3: text: ARETOMO3 - description: formats aln, _TLT.txt, rawtlt + description: formats (aln) annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. @@ -1187,6 +1187,7 @@ classes: - AnnotationEntity - DatasetEntity - DepositionEntity + - FrameEntity - TiltSeriesEntity - TomogramEntity range: Alignment @@ -1510,6 +1511,7 @@ classes: - AnnotationEntity - DatasetEntity - DepositionEntity + - FrameEntity - TiltSeriesEntity - TomogramEntity range: Annotation @@ -2129,6 +2131,7 @@ classes: - AnnotationEntity - DatasetEntity - DepositionEntity + - FrameEntity - TiltSeriesEntity - TomogramEntity range: Dataset @@ -2605,6 +2608,7 @@ classes: - AnnotationEntity - DatasetEntity - DepositionEntity + - FrameEntity - TiltSeriesEntity - TomogramEntity range: Deposition @@ -2983,6 +2987,23 @@ classes: inlined: true inlined_as_list: true minimum_cardinality: 1 + metadata: + name: metadata + description: A frame entity. + from_schema: cdp-ingestion-config + alias: metadata + owner: FrameEntity + domain_of: + - AlignmentEntity + - AnnotationEntity + - DatasetEntity + - DepositionEntity + - FrameEntity + - TiltSeriesEntity + - TomogramEntity + range: Frame + inlined: true + inlined_as_list: true FrameSource: name: FrameSource description: A frame source. @@ -4417,6 +4438,7 @@ classes: - AnnotationEntity - DatasetEntity - DepositionEntity + - FrameEntity - TiltSeriesEntity - TomogramEntity range: TiltSeries @@ -4708,6 +4730,7 @@ classes: - AnnotationEntity - DatasetEntity - DepositionEntity + - FrameEntity - TiltSeriesEntity - TomogramEntity range: Tomogram diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml index 4101f21f0..c8a40e690 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml @@ -461,6 +461,8 @@ classes: multivalued: true range: FrameSource required: true + metadata: + range: Frame FrameSource: description: A frame source. From 72208ba0d36a8c8bc0460033bf95545265958c5c Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 12 Sep 2024 22:11:56 -0700 Subject: [PATCH 22/59] update template and schema --- ingestion_tools/dataset_configs/template.yaml | 7 + .../v1.1.0/codegen/metadata_materialized.yaml | 129 ++++++++++++ schema/core/v1.1.0/codegen/metadata_models.py | 192 +++++++++++++++++- schema/core/v1.1.0/common.yaml | 5 + schema/core/v1.1.0/metadata.yaml | 3 + .../v1.0.0/codegen/ingestion_config_models.py | 108 +++++++++- .../ingestion_config_models.schema.json | 56 +++++ 7 files changed, 498 insertions(+), 2 deletions(-) diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index ef1ac2068..46f0509d4 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -65,6 +65,7 @@ annotations: OPTIONAL glob_strings: - OPTIONAL, STRING (REGEX) is_visualization_default: OPTIONAL, BOOLEAN (DEFAULT FALSE) + is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) binning: OPTIONAL, FLOAT (DEFAULT 1) (POSITIVE) filter_value: OPTIONAL, STRING order: OPTIONAL, STRING (DEFAULT xyz) @@ -75,6 +76,7 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default + is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) binning: see InstanceSegmentation.binning filter_value: see InstanceSegmentation.filter_value order: see InstanceSegmentation.order @@ -85,6 +87,7 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default + is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) binning: see InstanceSegmentation.binning columns: OPTIONAL, STRING (DEFAULT xyz) delimiter: OPTIONAL, STRING (DEFAULT ',') @@ -95,6 +98,7 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default + is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) parent_filters: see InstanceSegmentation.parent_filters exclude: SEE InstanceSegmentation.exclude - SemanticSegmentationMask: @@ -102,6 +106,7 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default + is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) mask_label: OPTIONAL, INTEGER (DEFAULT 1) parent_filters: see InstanceSegmentation.parent_filters exclude: SEE InstanceSegmentation.exclude @@ -110,6 +115,7 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default + is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) scale_factor: OPTIONAL, FLOAT (DEFAULT 1) (POSITIVE) parent_filters: see InstanceSegmentation.parent_filters exclude: SEE InstanceSegmentation.exclude @@ -118,6 +124,7 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default + is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) scale_factor: OPTIONAL, FLOAT (DEFAULT 1) (POSITIVE) name: REQUIRED, STRING parent_filters: see InstanceSegmentation.parent_filters diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index ce83fce04..f9a3fe586 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -2587,6 +2587,7 @@ classes: owner: Tomogram domain_of: - Tomogram + - AnnotationSourceFile range: boolean required: false inlined: true @@ -2896,6 +2897,22 @@ classes: range: boolean inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the annotation source is a portal standard. + from_schema: metadata + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard + ifabsent: 'False' + alias: is_portal_standard + owner: AnnotationSourceFile + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: false + inlined: true + inlined_as_list: true AnnotationOrientedPointFile: name: AnnotationOrientedPointFile description: File and sourcing data for an oriented point annotation. Annotation @@ -3011,6 +3028,22 @@ classes: range: boolean inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the annotation source is a portal standard. + from_schema: metadata + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard + ifabsent: 'False' + alias: is_portal_standard + owner: AnnotationOrientedPointFile + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: false + inlined: true + inlined_as_list: true AnnotationInstanceSegmentationFile: name: AnnotationInstanceSegmentationFile description: File and sourcing data for an instance segmentation annotation. Annotation @@ -3126,6 +3159,22 @@ classes: range: boolean inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the annotation source is a portal standard. + from_schema: metadata + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard + ifabsent: 'False' + alias: is_portal_standard + owner: AnnotationInstanceSegmentationFile + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: false + inlined: true + inlined_as_list: true AnnotationPointFile: name: AnnotationPointFile description: File and sourcing data for a point annotation. Annotation that identifies @@ -3240,6 +3289,22 @@ classes: range: boolean inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the annotation source is a portal standard. + from_schema: metadata + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard + ifabsent: 'False' + alias: is_portal_standard + owner: AnnotationPointFile + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: false + inlined: true + inlined_as_list: true AnnotationSegmentationMaskFile: name: AnnotationSegmentationMaskFile description: File and sourcing data for a segmentation mask annotation. Annotation @@ -3309,6 +3374,22 @@ classes: range: boolean inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the annotation source is a portal standard. + from_schema: metadata + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard + ifabsent: 'False' + alias: is_portal_standard + owner: AnnotationSegmentationMaskFile + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: false + inlined: true + inlined_as_list: true AnnotationSemanticSegmentationMaskFile: name: AnnotationSemanticSegmentationMaskFile description: File and sourcing data for a semantic segmentation mask annotation. @@ -3392,6 +3473,22 @@ classes: range: boolean inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the annotation source is a portal standard. + from_schema: metadata + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard + ifabsent: 'False' + alias: is_portal_standard + owner: AnnotationSemanticSegmentationMaskFile + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: false + inlined: true + inlined_as_list: true AnnotationTriangularMeshFile: name: AnnotationTriangularMeshFile description: File and sourcing data for a triangular mesh annotation. Annotation @@ -3477,6 +3574,22 @@ classes: range: boolean inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the annotation source is a portal standard. + from_schema: metadata + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard + ifabsent: 'False' + alias: is_portal_standard + owner: AnnotationTriangularMeshFile + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: false + inlined: true + inlined_as_list: true AnnotationTriangularMeshGroupFile: name: AnnotationTriangularMeshGroupFile description: File and sourcing data containing one or more triangular mesh annotations. @@ -3582,6 +3695,22 @@ classes: range: boolean inlined: true inlined_as_list: true + is_portal_standard: + name: is_portal_standard + description: Whether the annotation source is a portal standard. + from_schema: metadata + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard + ifabsent: 'False' + alias: is_portal_standard + owner: AnnotationTriangularMeshGroupFile + domain_of: + - Tomogram + - AnnotationSourceFile + range: boolean + required: false + inlined: true + inlined_as_list: true Annotation: name: Annotation description: Metadata describing an annotation. diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 4904cdd35..a3beb44d7 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -2418,7 +2418,21 @@ class Tomogram(AuthoredEntity): False, description="""Whether the tomogram is a portal standard.""", json_schema_extra={ - "linkml_meta": {"alias": "is_portal_standard", "domain_of": ["Tomogram"], "ifabsent": "False"} + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "ifabsent": "False", + } }, ) is_visualization_default: bool = Field( @@ -2794,6 +2808,28 @@ class AnnotationSourceFile(ConfiguredBaseModel): } }, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) class AnnotationOrientedPointFile(AnnotationSourceFile): @@ -2925,6 +2961,28 @@ class AnnotationOrientedPointFile(AnnotationSourceFile): } }, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): @@ -3056,6 +3114,28 @@ class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): } }, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) class AnnotationPointFile(AnnotationSourceFile): @@ -3188,6 +3268,28 @@ class AnnotationPointFile(AnnotationSourceFile): } }, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) class AnnotationSegmentationMaskFile(AnnotationSourceFile): @@ -3279,6 +3381,28 @@ class AnnotationSegmentationMaskFile(AnnotationSourceFile): } }, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): @@ -3382,6 +3506,28 @@ class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): } }, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) class AnnotationTriangularMeshFile(AnnotationSourceFile): @@ -3486,6 +3632,28 @@ class AnnotationTriangularMeshFile(AnnotationSourceFile): } }, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): @@ -3611,6 +3779,28 @@ class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): } }, ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) class Annotation(AuthoredEntity, DateStampedEntity): diff --git a/schema/core/v1.1.0/common.yaml b/schema/core/v1.1.0/common.yaml index 687609c66..e49e181ca 100644 --- a/schema/core/v1.1.0/common.yaml +++ b/schema/core/v1.1.0/common.yaml @@ -695,6 +695,11 @@ slots: range: boolean description: This annotation will be rendered in neuroglancer by default. ifabsent: false + annotation_source_file_is_portal_standard: + description: Whether the annotation source is a portal standard. + range: boolean + required: false + ifabsent: false #Annotation (Annotation): The annotation this file is a part of # ============================================================================ diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index ab3a0b363..a40a3603a 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -598,6 +598,9 @@ classes: is_visualization_default: exact_mappings: - cdp-common:annotation_source_file_is_visualization_default + is_portal_standard: + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard AnnotationOrientedPointFile: is_a: AnnotationSourceFile diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 809f08a10..b7ed71d60 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1548,7 +1548,17 @@ class Tomogram(AuthoredEntity): 'exact_mappings': ['cdp-common:tomogram_version']} }) size: Optional[TomogramSize] = Field(None, description="""The size of a tomogram in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'size', 'domain_of': ['Tomogram']} }) offset: TomogramOffset = Field(..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the tomogram is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', 'domain_of': ['Tomogram'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the tomogram is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'ifabsent': 'False'} }) is_visualization_default: bool = Field(True, description="""Whether the tomogram is the default for visualization.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', 'domain_of': ['Tomogram', 'AnnotationSourceFile', @@ -1767,6 +1777,18 @@ class AnnotationSourceFile(ConfiguredBaseModel): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) class AnnotationOrientedPointFile(AnnotationSourceFile): @@ -1832,6 +1854,18 @@ class AnnotationOrientedPointFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): @@ -1897,6 +1931,18 @@ class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) class AnnotationPointFile(AnnotationSourceFile): @@ -1961,6 +2007,18 @@ class AnnotationPointFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) class AnnotationSegmentationMaskFile(AnnotationSourceFile): @@ -2011,6 +2069,18 @@ class AnnotationSegmentationMaskFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): @@ -2065,6 +2135,18 @@ class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) class AnnotationTriangularMeshFile(AnnotationSourceFile): @@ -2120,6 +2202,18 @@ class AnnotationTriangularMeshFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): @@ -2186,6 +2280,18 @@ class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): 'AnnotationTriangularMeshGroupFile'], 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) class Annotation(AuthoredEntity, DateStampedEntity): diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json index 0ecc27bdb..a8796229b 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -629,6 +629,13 @@ "null" ] }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, "is_visualization_default": { "description": "This annotation will be rendered in neuroglancer by default.", "type": [ @@ -786,6 +793,13 @@ "null" ] }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, "is_visualization_default": { "description": "This annotation will be rendered in neuroglancer by default.", "type": [ @@ -932,6 +946,13 @@ "null" ] }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, "is_visualization_default": { "description": "This annotation will be rendered in neuroglancer by default.", "type": [ @@ -971,6 +992,13 @@ "null" ] }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, "is_visualization_default": { "description": "This annotation will be rendered in neuroglancer by default.", "type": [ @@ -1010,6 +1038,13 @@ "null" ] }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, "is_visualization_default": { "description": "This annotation will be rendered in neuroglancer by default.", "type": [ @@ -1162,6 +1197,13 @@ "null" ] }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, "is_visualization_default": { "description": "This annotation will be rendered in neuroglancer by default.", "type": [ @@ -1201,6 +1243,13 @@ "null" ] }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, "is_visualization_default": { "description": "This annotation will be rendered in neuroglancer by default.", "type": [ @@ -1248,6 +1297,13 @@ "null" ] }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, "is_visualization_default": { "description": "This annotation will be rendered in neuroglancer by default.", "type": [ From a48b4a41dd6435791aa1b38ea044132b5823a0d2 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 12 Sep 2024 22:17:52 -0700 Subject: [PATCH 23/59] update all configs --- apiv2/schema/schema.yaml | 1 + ingestion_tools/dataset_configs/10000.yaml | 2 + ingestion_tools/dataset_configs/10001.yaml | 5 + ingestion_tools/dataset_configs/10002.yaml | 5 + ingestion_tools/dataset_configs/10003.yaml | 27 +- ingestion_tools/dataset_configs/10004.yaml | 2 + ingestion_tools/dataset_configs/10005.yaml | 19 +- ingestion_tools/dataset_configs/10006.yaml | 9 +- ingestion_tools/dataset_configs/10007.yaml | 2 + ingestion_tools/dataset_configs/10008.yaml | 2 + ingestion_tools/dataset_configs/10009.yaml | 2 + ingestion_tools/dataset_configs/10010.yaml | 20 +- .../dataset_configs/10011_draft.yaml | 5 + ingestion_tools/dataset_configs/10301.yaml | 2 + ingestion_tools/dataset_configs/10302.yaml | 5 + ingestion_tools/dataset_configs/10426.yaml | 24 +- ingestion_tools/dataset_configs/10427.yaml | 24 +- ingestion_tools/dataset_configs/10428.yaml | 24 +- ingestion_tools/dataset_configs/10429.yaml | 24 +- ingestion_tools/dataset_configs/10430.yaml | 24 +- ingestion_tools/dataset_configs/10431.yaml | 24 +- ingestion_tools/dataset_configs/10432.yaml | 24 +- ingestion_tools/dataset_configs/10433.yaml | 24 +- ingestion_tools/dataset_configs/10434.yaml | 24 +- ingestion_tools/dataset_configs/10435.yaml | 24 +- ingestion_tools/dataset_configs/10436.yaml | 2 + ingestion_tools/dataset_configs/10437.yaml | 5 + ingestion_tools/dataset_configs/10438.yaml | 988 ++++++++++-------- ingestion_tools/dataset_configs/10439.yaml | 2 + .../dataset_configs/gjensen/10014.yaml | 19 +- .../dataset_configs/gjensen/10015.yaml | 19 +- .../dataset_configs/gjensen/10016.yaml | 19 +- .../dataset_configs/gjensen/10017.yaml | 19 +- .../dataset_configs/gjensen/10018.yaml | 19 +- .../dataset_configs/gjensen/10019.yaml | 19 +- .../dataset_configs/gjensen/10020.yaml | 19 +- .../dataset_configs/gjensen/10021.yaml | 19 +- .../dataset_configs/gjensen/10022.yaml | 19 +- .../dataset_configs/gjensen/10023.yaml | 19 +- .../dataset_configs/gjensen/10024.yaml | 19 +- .../dataset_configs/gjensen/10025.yaml | 19 +- .../dataset_configs/gjensen/10026.yaml | 19 +- .../dataset_configs/gjensen/10027.yaml | 19 +- .../dataset_configs/gjensen/10028.yaml | 19 +- .../dataset_configs/gjensen/10029.yaml | 19 +- .../dataset_configs/gjensen/10030.yaml | 19 +- .../dataset_configs/gjensen/10031.yaml | 19 +- .../dataset_configs/gjensen/10032.yaml | 19 +- .../dataset_configs/gjensen/10033.yaml | 19 +- .../dataset_configs/gjensen/10034.yaml | 19 +- .../dataset_configs/gjensen/10035.yaml | 19 +- .../dataset_configs/gjensen/10036.yaml | 19 +- .../dataset_configs/gjensen/10037.yaml | 19 +- .../dataset_configs/gjensen/10038.yaml | 19 +- .../dataset_configs/gjensen/10039.yaml | 19 +- .../dataset_configs/gjensen/10040.yaml | 19 +- .../dataset_configs/gjensen/10041.yaml | 19 +- .../dataset_configs/gjensen/10042.yaml | 19 +- .../dataset_configs/gjensen/10043.yaml | 19 +- .../dataset_configs/gjensen/10044.yaml | 19 +- .../dataset_configs/gjensen/10045.yaml | 19 +- .../dataset_configs/gjensen/10046.yaml | 19 +- .../dataset_configs/gjensen/10047.yaml | 19 +- .../dataset_configs/gjensen/10048.yaml | 19 +- .../dataset_configs/gjensen/10049.yaml | 19 +- .../dataset_configs/gjensen/10050.yaml | 19 +- .../dataset_configs/gjensen/10051.yaml | 19 +- .../dataset_configs/gjensen/10052.yaml | 19 +- .../dataset_configs/gjensen/10053.yaml | 19 +- .../dataset_configs/gjensen/10054.yaml | 19 +- .../dataset_configs/gjensen/10055.yaml | 19 +- .../dataset_configs/gjensen/10056.yaml | 19 +- .../dataset_configs/gjensen/10057.yaml | 19 +- .../dataset_configs/gjensen/10058.yaml | 19 +- .../dataset_configs/gjensen/10059.yaml | 19 +- .../dataset_configs/gjensen/10060.yaml | 19 +- .../dataset_configs/gjensen/10061.yaml | 19 +- .../dataset_configs/gjensen/10062.yaml | 19 +- .../dataset_configs/gjensen/10063.yaml | 19 +- .../dataset_configs/gjensen/10064.yaml | 19 +- .../dataset_configs/gjensen/10065.yaml | 19 +- .../dataset_configs/gjensen/10066.yaml | 19 +- .../dataset_configs/gjensen/10067.yaml | 19 +- .../dataset_configs/gjensen/10068.yaml | 19 +- .../dataset_configs/gjensen/10069.yaml | 19 +- .../dataset_configs/gjensen/10070.yaml | 19 +- .../dataset_configs/gjensen/10071.yaml | 19 +- .../dataset_configs/gjensen/10072.yaml | 19 +- .../dataset_configs/gjensen/10073.yaml | 19 +- .../dataset_configs/gjensen/10074.yaml | 19 +- .../dataset_configs/gjensen/10075.yaml | 19 +- .../dataset_configs/gjensen/10076.yaml | 19 +- .../dataset_configs/gjensen/10077.yaml | 19 +- .../dataset_configs/gjensen/10078.yaml | 19 +- .../dataset_configs/gjensen/10079.yaml | 19 +- .../dataset_configs/gjensen/10080.yaml | 19 +- .../dataset_configs/gjensen/10081.yaml | 19 +- .../dataset_configs/gjensen/10082.yaml | 19 +- .../dataset_configs/gjensen/10083.yaml | 19 +- .../dataset_configs/gjensen/10084.yaml | 19 +- .../dataset_configs/gjensen/10085.yaml | 19 +- .../dataset_configs/gjensen/10086.yaml | 19 +- .../dataset_configs/gjensen/10087.yaml | 19 +- .../dataset_configs/gjensen/10088.yaml | 19 +- .../dataset_configs/gjensen/10089.yaml | 19 +- .../dataset_configs/gjensen/10090.yaml | 19 +- .../dataset_configs/gjensen/10091.yaml | 19 +- .../dataset_configs/gjensen/10092.yaml | 19 +- .../dataset_configs/gjensen/10093.yaml | 19 +- .../dataset_configs/gjensen/10094.yaml | 19 +- .../dataset_configs/gjensen/10095.yaml | 19 +- .../dataset_configs/gjensen/10096.yaml | 19 +- .../dataset_configs/gjensen/10097.yaml | 19 +- .../dataset_configs/gjensen/10098.yaml | 19 +- .../dataset_configs/gjensen/10099.yaml | 19 +- .../dataset_configs/gjensen/10100.yaml | 19 +- .../dataset_configs/gjensen/10101.yaml | 19 +- .../dataset_configs/gjensen/10102.yaml | 19 +- .../dataset_configs/gjensen/10103.yaml | 19 +- .../dataset_configs/gjensen/10104.yaml | 19 +- .../dataset_configs/gjensen/10105.yaml | 19 +- .../dataset_configs/gjensen/10106.yaml | 19 +- .../dataset_configs/gjensen/10107.yaml | 19 +- .../dataset_configs/gjensen/10108.yaml | 19 +- .../dataset_configs/gjensen/10109.yaml | 19 +- .../dataset_configs/gjensen/10110.yaml | 19 +- .../dataset_configs/gjensen/10111.yaml | 19 +- .../dataset_configs/gjensen/10112.yaml | 19 +- .../dataset_configs/gjensen/10113.yaml | 19 +- .../dataset_configs/gjensen/10114.yaml | 19 +- .../dataset_configs/gjensen/10115.yaml | 19 +- .../dataset_configs/gjensen/10116.yaml | 19 +- .../dataset_configs/gjensen/10117.yaml | 19 +- .../dataset_configs/gjensen/10118.yaml | 19 +- .../dataset_configs/gjensen/10119.yaml | 19 +- .../dataset_configs/gjensen/10120.yaml | 19 +- .../dataset_configs/gjensen/10121.yaml | 19 +- .../dataset_configs/gjensen/10122.yaml | 19 +- .../dataset_configs/gjensen/10123.yaml | 19 +- .../dataset_configs/gjensen/10124.yaml | 19 +- .../dataset_configs/gjensen/10125.yaml | 19 +- .../dataset_configs/gjensen/10126.yaml | 19 +- .../dataset_configs/gjensen/10127.yaml | 19 +- .../dataset_configs/gjensen/10128.yaml | 19 +- .../dataset_configs/gjensen/10129.yaml | 19 +- .../dataset_configs/gjensen/10130.yaml | 19 +- .../dataset_configs/gjensen/10131.yaml | 19 +- .../dataset_configs/gjensen/10132.yaml | 19 +- .../dataset_configs/gjensen/10133.yaml | 19 +- .../dataset_configs/gjensen/10134.yaml | 19 +- .../dataset_configs/gjensen/10135.yaml | 19 +- .../dataset_configs/gjensen/10136.yaml | 19 +- .../dataset_configs/gjensen/10137.yaml | 19 +- .../dataset_configs/gjensen/10138.yaml | 19 +- .../dataset_configs/gjensen/10139.yaml | 19 +- .../dataset_configs/gjensen/10140.yaml | 19 +- .../dataset_configs/gjensen/10141.yaml | 19 +- .../dataset_configs/gjensen/10142.yaml | 19 +- .../dataset_configs/gjensen/10143.yaml | 19 +- .../dataset_configs/gjensen/10144.yaml | 19 +- .../dataset_configs/gjensen/10145.yaml | 19 +- .../dataset_configs/gjensen/10146.yaml | 19 +- .../dataset_configs/gjensen/10147.yaml | 19 +- .../dataset_configs/gjensen/10148.yaml | 19 +- .../dataset_configs/gjensen/10149.yaml | 19 +- .../dataset_configs/gjensen/10150.yaml | 19 +- .../dataset_configs/gjensen/10151.yaml | 19 +- .../dataset_configs/gjensen/10152.yaml | 19 +- .../dataset_configs/gjensen/10153.yaml | 19 +- .../dataset_configs/gjensen/10154.yaml | 19 +- .../dataset_configs/gjensen/10155.yaml | 19 +- .../dataset_configs/gjensen/10156.yaml | 19 +- .../dataset_configs/gjensen/10157.yaml | 19 +- .../dataset_configs/gjensen/10158.yaml | 19 +- .../dataset_configs/gjensen/10159.yaml | 19 +- .../dataset_configs/gjensen/10160.yaml | 19 +- .../dataset_configs/gjensen/10161.yaml | 19 +- .../dataset_configs/gjensen/10162.yaml | 19 +- .../dataset_configs/gjensen/10163.yaml | 19 +- .../dataset_configs/gjensen/10164.yaml | 19 +- .../dataset_configs/gjensen/10165.yaml | 19 +- .../dataset_configs/gjensen/10166.yaml | 19 +- .../dataset_configs/gjensen/10167.yaml | 19 +- .../dataset_configs/gjensen/10168.yaml | 19 +- .../dataset_configs/gjensen/10169.yaml | 19 +- .../dataset_configs/gjensen/10170.yaml | 19 +- .../dataset_configs/gjensen/10171.yaml | 19 +- .../dataset_configs/gjensen/10172.yaml | 19 +- .../dataset_configs/gjensen/10173.yaml | 19 +- .../dataset_configs/gjensen/10174.yaml | 19 +- .../dataset_configs/gjensen/10175.yaml | 19 +- .../dataset_configs/gjensen/10176.yaml | 19 +- .../dataset_configs/gjensen/10177.yaml | 19 +- .../dataset_configs/gjensen/10178.yaml | 19 +- .../dataset_configs/gjensen/10179.yaml | 19 +- .../dataset_configs/gjensen/10180.yaml | 19 +- .../dataset_configs/gjensen/10181.yaml | 19 +- .../dataset_configs/gjensen/10182.yaml | 19 +- .../dataset_configs/gjensen/10183.yaml | 19 +- .../dataset_configs/gjensen/10184.yaml | 19 +- .../dataset_configs/gjensen/10185.yaml | 19 +- .../dataset_configs/gjensen/10186.yaml | 19 +- .../dataset_configs/gjensen/10187.yaml | 19 +- .../dataset_configs/gjensen/10188.yaml | 19 +- .../dataset_configs/gjensen/10189.yaml | 19 +- .../dataset_configs/gjensen/10190.yaml | 19 +- .../dataset_configs/gjensen/10191.yaml | 19 +- .../dataset_configs/gjensen/10192.yaml | 19 +- .../dataset_configs/gjensen/10193.yaml | 19 +- .../dataset_configs/gjensen/10194.yaml | 19 +- .../dataset_configs/gjensen/10195.yaml | 19 +- .../dataset_configs/gjensen/10196.yaml | 19 +- .../dataset_configs/gjensen/10197.yaml | 19 +- .../dataset_configs/gjensen/10198.yaml | 19 +- .../dataset_configs/gjensen/10199.yaml | 19 +- .../dataset_configs/gjensen/10200.yaml | 19 +- .../dataset_configs/gjensen/10201.yaml | 19 +- .../dataset_configs/gjensen/10202.yaml | 19 +- .../dataset_configs/gjensen/10203.yaml | 19 +- .../dataset_configs/gjensen/10204.yaml | 19 +- .../dataset_configs/gjensen/10205.yaml | 19 +- .../dataset_configs/gjensen/10206.yaml | 19 +- .../dataset_configs/gjensen/10207.yaml | 19 +- .../dataset_configs/gjensen/10208.yaml | 19 +- .../dataset_configs/gjensen/10209.yaml | 19 +- .../dataset_configs/gjensen/10210.yaml | 19 +- .../dataset_configs/gjensen/10211.yaml | 19 +- .../dataset_configs/gjensen/10212.yaml | 19 +- .../dataset_configs/gjensen/10213.yaml | 19 +- .../dataset_configs/gjensen/10214.yaml | 19 +- .../dataset_configs/gjensen/10215.yaml | 19 +- .../dataset_configs/gjensen/10216.yaml | 19 +- .../dataset_configs/gjensen/10217.yaml | 19 +- .../dataset_configs/gjensen/10218.yaml | 19 +- .../dataset_configs/gjensen/10219.yaml | 19 +- .../dataset_configs/gjensen/10220.yaml | 19 +- .../dataset_configs/gjensen/10221.yaml | 19 +- .../dataset_configs/gjensen/10222.yaml | 19 +- .../dataset_configs/gjensen/10223.yaml | 19 +- .../dataset_configs/gjensen/10224.yaml | 19 +- .../dataset_configs/gjensen/10225.yaml | 19 +- .../dataset_configs/gjensen/10226.yaml | 19 +- .../dataset_configs/gjensen/10227.yaml | 19 +- .../dataset_configs/gjensen/10228.yaml | 19 +- .../dataset_configs/gjensen/10229.yaml | 19 +- .../dataset_configs/gjensen/10230.yaml | 19 +- .../dataset_configs/gjensen/10231.yaml | 19 +- .../dataset_configs/gjensen/10232.yaml | 19 +- .../dataset_configs/gjensen/10233.yaml | 19 +- .../dataset_configs/gjensen/10234.yaml | 19 +- .../dataset_configs/gjensen/10235.yaml | 19 +- .../dataset_configs/gjensen/10236.yaml | 19 +- .../dataset_configs/gjensen/10237.yaml | 19 +- .../dataset_configs/gjensen/10238.yaml | 19 +- .../dataset_configs/gjensen/10239.yaml | 19 +- .../dataset_configs/gjensen/10240.yaml | 19 +- .../dataset_configs/gjensen/10241.yaml | 19 +- .../dataset_configs/gjensen/10242.yaml | 19 +- .../dataset_configs/gjensen/10243.yaml | 19 +- .../dataset_configs/gjensen/10244.yaml | 19 +- .../dataset_configs/gjensen/10245.yaml | 19 +- .../dataset_configs/gjensen/10246.yaml | 19 +- .../dataset_configs/gjensen/10247.yaml | 19 +- .../dataset_configs/gjensen/10248.yaml | 19 +- .../dataset_configs/gjensen/10249.yaml | 19 +- .../dataset_configs/gjensen/10250.yaml | 19 +- .../dataset_configs/gjensen/10251.yaml | 19 +- .../dataset_configs/gjensen/10252.yaml | 19 +- .../dataset_configs/gjensen/10253.yaml | 19 +- .../dataset_configs/gjensen/10254.yaml | 19 +- .../dataset_configs/gjensen/10255.yaml | 19 +- .../dataset_configs/gjensen/10256.yaml | 19 +- .../dataset_configs/gjensen/10257.yaml | 19 +- .../dataset_configs/gjensen/10258.yaml | 19 +- .../dataset_configs/gjensen/10259.yaml | 19 +- .../dataset_configs/gjensen/10260.yaml | 19 +- .../dataset_configs/gjensen/10261.yaml | 19 +- .../dataset_configs/gjensen/10262.yaml | 19 +- .../dataset_configs/gjensen/10263.yaml | 19 +- .../dataset_configs/gjensen/10264.yaml | 19 +- .../dataset_configs/gjensen/10265.yaml | 19 +- .../dataset_configs/gjensen/10266.yaml | 19 +- .../dataset_configs/gjensen/10267.yaml | 19 +- .../dataset_configs/gjensen/10268.yaml | 19 +- .../dataset_configs/gjensen/10269.yaml | 19 +- .../dataset_configs/gjensen/10270.yaml | 19 +- .../dataset_configs/gjensen/10271.yaml | 19 +- .../dataset_configs/gjensen/10272.yaml | 19 +- .../dataset_configs/gjensen/10273.yaml | 19 +- .../dataset_configs/gjensen/10274.yaml | 19 +- .../dataset_configs/gjensen/10275.yaml | 19 +- .../dataset_configs/gjensen/10276.yaml | 19 +- .../dataset_configs/gjensen/10277.yaml | 19 +- .../dataset_configs/gjensen/10278.yaml | 19 +- .../dataset_configs/gjensen/10279.yaml | 19 +- .../dataset_configs/gjensen/10280.yaml | 19 +- .../dataset_configs/gjensen/10281.yaml | 19 +- .../dataset_configs/gjensen/10282.yaml | 19 +- .../dataset_configs/gjensen/10283.yaml | 19 +- .../dataset_configs/gjensen/10284.yaml | 19 +- .../dataset_configs/gjensen/10285.yaml | 19 +- .../dataset_configs/gjensen/10286.yaml | 19 +- .../dataset_configs/gjensen/10287.yaml | 19 +- .../dataset_configs/gjensen/10288.yaml | 19 +- .../dataset_configs/gjensen/10289.yaml | 19 +- .../dataset_configs/gjensen/10290.yaml | 19 +- .../dataset_configs/gjensen/10291.yaml | 19 +- .../dataset_configs/gjensen/10292.yaml | 19 +- .../dataset_configs/gjensen/10293.yaml | 19 +- .../dataset_configs/gjensen/10294.yaml | 19 +- .../dataset_configs/gjensen/10295.yaml | 19 +- .../dataset_configs/gjensen/10296.yaml | 19 +- .../dataset_configs/gjensen/10297.yaml | 19 +- .../dataset_configs/gjensen/10298.yaml | 19 +- .../dataset_configs/gjensen/10299.yaml | 19 +- .../dataset_configs/gjensen/10300.yaml | 19 +- ingestion_tools/dataset_configs/template.yaml | 2 +- ingestion_tools/migrate.py | 170 +++ .../v1.1.0/codegen/metadata_materialized.yaml | 1 - schema/core/v1.1.0/codegen/metadata_models.py | 4 +- schema/core/v1.1.0/metadata.yaml | 1 - .../v1.0.0/codegen/ingestion_config_models.py | 2 +- .../ingestion_config_models.schema.json | 1 - 323 files changed, 1427 insertions(+), 5552 deletions(-) create mode 100644 ingestion_tools/migrate.py diff --git a/apiv2/schema/schema.yaml b/apiv2/schema/schema.yaml index fd5392136..dafb66283 100644 --- a/apiv2/schema/schema.yaml +++ b/apiv2/schema/schema.yaml @@ -409,6 +409,7 @@ enums: name: alignment_type_enum description: Type of alignment from_schema: cdp-dataset-config + ifabsent: "GLOBAL" permissible_values: LOCAL: text: LOCAL diff --git a/ingestion_tools/dataset_configs/10000.yaml b/ingestion_tools/dataset_configs/10000.yaml index 0282a78e8..b6a5fb529 100644 --- a/ingestion_tools/dataset_configs/10000.yaml +++ b/ingestion_tools/dataset_configs/10000.yaml @@ -510,7 +510,9 @@ tomograms: - metadata: authors: *id003 ctf_corrected: false + dates: *id002 fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index 1e20267fb..3f068f5ef 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -494,7 +494,12 @@ tomograms: - metadata: authors: *id003 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index 884d11fff..9fb19384f 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -230,7 +230,12 @@ tomograms: - metadata: authors: *id003 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10003.yaml b/ingestion_tools/dataset_configs/10003.yaml index 6942305bf..a51ef5fd4 100644 --- a/ingestion_tools/dataset_configs/10003.yaml +++ b/ingestion_tools/dataset_configs/10003.yaml @@ -95,10 +95,12 @@ depositions: - metadata: authors: *id002 dates: *id001 - deposition_description: Cryo-electron tomograms of native M. pneumoniae cells. Cells - treated with chloramphenicol. Annotations of 70S ribosome refined using RELION and M. + deposition_description: Cryo-electron tomograms of native M. pneumoniae cells. + Cells treated with chloramphenicol. Annotations of 70S ribosome refined using + RELION and M. deposition_identifier: 10003 - deposition_title: Warp/M evaluation dataset - Mycoplasma pneumoniae treated with chloramphenicol + deposition_title: Warp/M evaluation dataset - Mycoplasma pneumoniae treated with + chloramphenicol deposition_types: - dataset sources: @@ -158,26 +160,11 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id002 ctf_corrected: true + dates: *id001 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index 4b0e3988d..4f8894f39 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -227,7 +227,9 @@ tomograms: - metadata: authors: *id002 ctf_corrected: true + dates: *id001 fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10005.yaml b/ingestion_tools/dataset_configs/10005.yaml index 7b41d67c8..428bc0c8e 100644 --- a/ingestion_tools/dataset_configs/10005.yaml +++ b/ingestion_tools/dataset_configs/10005.yaml @@ -169,26 +169,11 @@ tiltseries: match_regex: .* tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id003 ctf_corrected: true + dates: *id002 fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10006.yaml b/ingestion_tools/dataset_configs/10006.yaml index f9cfae27e..88232eb7a 100644 --- a/ingestion_tools/dataset_configs/10006.yaml +++ b/ingestion_tools/dataset_configs/10006.yaml @@ -138,10 +138,11 @@ depositions: - metadata: authors: *id002 dates: *id001 - deposition_description: Cryo-electron tomograms of SARS-CoV-2 spike proteins on intact - virions with annotations of spike proteins, refined using RELION. + deposition_description: Cryo-electron tomograms of SARS-CoV-2 spike proteins on + intact virions with annotations of spike proteins, refined using RELION. deposition_identifier: 10006 - deposition_title: Structures and distributions of severe acute respiratory syndrome coronavirus 2 spike proteins + deposition_title: Structures and distributions of severe acute respiratory syndrome + coronavirus 2 spike proteins deposition_types: - dataset sources: @@ -201,7 +202,9 @@ tomograms: - metadata: authors: *id002 ctf_corrected: true + dates: *id001 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10007.yaml b/ingestion_tools/dataset_configs/10007.yaml index 98a7e1daf..f7bea1504 100644 --- a/ingestion_tools/dataset_configs/10007.yaml +++ b/ingestion_tools/dataset_configs/10007.yaml @@ -235,7 +235,9 @@ tomograms: - metadata: authors: *id002 ctf_corrected: false + dates: *id001 fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index 756c952de..d06df4b76 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -234,7 +234,9 @@ tomograms: - metadata: authors: *id003 ctf_corrected: false + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index 2bf48ca29..c44cd625d 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -411,7 +411,9 @@ tomograms: - metadata: authors: *id003 ctf_corrected: true + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10010.yaml b/ingestion_tools/dataset_configs/10010.yaml index 76c5ff304..34d667d5a 100644 --- a/ingestion_tools/dataset_configs/10010.yaml +++ b/ingestion_tools/dataset_configs/10010.yaml @@ -114,7 +114,6 @@ datasets: dataset_identifier: 10010 dataset_title: Organellar membranes dates: *id002 - funding: [] organism: name: Mus musculus taxonomy_id: 10090 @@ -187,26 +186,11 @@ tiltseries: match_regex: .* tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id003 ctf_corrected: false + dates: *id002 fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10011_draft.yaml b/ingestion_tools/dataset_configs/10011_draft.yaml index 2991db5aa..647fc632a 100644 --- a/ingestion_tools/dataset_configs/10011_draft.yaml +++ b/ingestion_tools/dataset_configs/10011_draft.yaml @@ -168,7 +168,12 @@ tiltseries: tomograms: - metadata: ctf_corrected: REQUIRED + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: null + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index 0470c542f..43e217de3 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -350,7 +350,9 @@ tomograms: - metadata: authors: *id003 ctf_corrected: true + dates: *id002 fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10302.yaml b/ingestion_tools/dataset_configs/10302.yaml index 780aad9f7..bcb5ab431 100644 --- a/ingestion_tools/dataset_configs/10302.yaml +++ b/ingestion_tools/dataset_configs/10302.yaml @@ -185,7 +185,12 @@ tomograms: - metadata: authors: *id001 ctf_corrected: true + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10426.yaml b/ingestion_tools/dataset_configs/10426.yaml index 5fea81e18..63143a10e 100644 --- a/ingestion_tools/dataset_configs/10426.yaml +++ b/ingestion_tools/dataset_configs/10426.yaml @@ -67,8 +67,9 @@ depositions: - metadata: authors: *id001 dates: *id002 - deposition_description: Cryo-electron tomography datasets used in the development and evaluation of the unroofing - method for preparation of plasma membranes and associated proteins. + deposition_description: Cryo-electron tomography datasets used in the development + and evaluation of the unroofing method for preparation of plasma membranes and + associated proteins. deposition_identifier: 10306 deposition_title: Unroofed eukaryotic cells. deposition_types: @@ -129,26 +130,11 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10427.yaml b/ingestion_tools/dataset_configs/10427.yaml index 6a16cb59c..ab78f1c58 100644 --- a/ingestion_tools/dataset_configs/10427.yaml +++ b/ingestion_tools/dataset_configs/10427.yaml @@ -40,7 +40,7 @@ datasets: with 0.7 bar of paraformaldehyde prior to vitrification. dataset_identifier: 10427 dataset_title: Unroofing Grid02 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -272,26 +272,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10428.yaml b/ingestion_tools/dataset_configs/10428.yaml index 83b254e03..2bc2fb8be 100644 --- a/ingestion_tools/dataset_configs/10428.yaml +++ b/ingestion_tools/dataset_configs/10428.yaml @@ -41,7 +41,7 @@ datasets: prior to vitrification. dataset_identifier: 10428 dataset_title: Unroofing Grid03 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -122,26 +122,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10429.yaml b/ingestion_tools/dataset_configs/10429.yaml index 1de39e157..1617e2caa 100644 --- a/ingestion_tools/dataset_configs/10429.yaml +++ b/ingestion_tools/dataset_configs/10429.yaml @@ -41,7 +41,7 @@ datasets: prior to vitrification. dataset_identifier: 10429 dataset_title: Unroofing Grid04 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -122,26 +122,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10430.yaml b/ingestion_tools/dataset_configs/10430.yaml index 8da81fbb0..29f08741a 100644 --- a/ingestion_tools/dataset_configs/10430.yaml +++ b/ingestion_tools/dataset_configs/10430.yaml @@ -41,7 +41,7 @@ datasets: coated with poly-lysine prior to removing the basal membrane and cytoplasm. dataset_identifier: 10430 dataset_title: Unroofing Grid05 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -122,26 +122,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10431.yaml b/ingestion_tools/dataset_configs/10431.yaml index da1024ef1..19a867fae 100644 --- a/ingestion_tools/dataset_configs/10431.yaml +++ b/ingestion_tools/dataset_configs/10431.yaml @@ -42,7 +42,7 @@ datasets: with 0.7 bar of paraformaldehyde prior to vitrification. dataset_identifier: 10431 dataset_title: Unroofing Grid06 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -124,26 +124,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10432.yaml b/ingestion_tools/dataset_configs/10432.yaml index 29ce25fa6..d1bef1c0d 100644 --- a/ingestion_tools/dataset_configs/10432.yaml +++ b/ingestion_tools/dataset_configs/10432.yaml @@ -42,7 +42,7 @@ datasets: 0.7 bar of paraformaldehyde. Unroofing occurred immediately prior to vitrification. dataset_identifier: 10432 dataset_title: Unroofing Grid07 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -124,26 +124,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10433.yaml b/ingestion_tools/dataset_configs/10433.yaml index 603802a33..0ae3131e5 100644 --- a/ingestion_tools/dataset_configs/10433.yaml +++ b/ingestion_tools/dataset_configs/10433.yaml @@ -42,7 +42,7 @@ datasets: 0.7 bar of paraformaldehyde. Unroofing occurred immediately prior to vitrification. dataset_identifier: 10433 dataset_title: Unroofing Grid08 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -124,26 +124,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10434.yaml b/ingestion_tools/dataset_configs/10434.yaml index 86e7ce19d..09222d7c1 100644 --- a/ingestion_tools/dataset_configs/10434.yaml +++ b/ingestion_tools/dataset_configs/10434.yaml @@ -42,7 +42,7 @@ datasets: Unroofing occurred immediately prior to vitrification. dataset_identifier: 10434 dataset_title: Unroofing Grid09 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -124,26 +124,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10435.yaml b/ingestion_tools/dataset_configs/10435.yaml index b40ae5e4b..c813dc9ca 100644 --- a/ingestion_tools/dataset_configs/10435.yaml +++ b/ingestion_tools/dataset_configs/10435.yaml @@ -42,7 +42,7 @@ datasets: Unroofing occurred immediately prior to vitrification. dataset_identifier: 10435 dataset_title: Unroofing Grid10 - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' @@ -124,26 +124,14 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 authors: *id001 ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index ea51d5479..f8a0aba6d 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -434,7 +434,9 @@ tomograms: corresponding_author_status: true name: Gira Bhabha ctf_corrected: false + dates: *id002 fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index 412ef9ba0..5dc63ef37 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -610,7 +610,12 @@ tomograms: corresponding_author_status: true name: Gira Bhabha ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/10438.yaml b/ingestion_tools/dataset_configs/10438.yaml index 4d294a462..a929623bd 100644 --- a/ingestion_tools/dataset_configs/10438.yaml +++ b/ingestion_tools/dataset_configs/10438.yaml @@ -1,440 +1,574 @@ -datasets: - - metadata: - authors: &id001 - - name: Kotaro Kelley - primary_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - primary_author_status: true - corresponding_author_status: true - - name: Clinton S. Potter - corresponding_author_status: true - - name: Bridget Carragher - ORCID: 0000-0002-0624-5020 - corresponding_author_status: true - - name: Alex J. Noble - ORCID: 0000-0001-8634-2279 - primary_author_status: true - corresponding_author_status: true - cell_strain: - name: ATCC-50504 - cell_type: - name: fungal spore - id: CL:0002369 - cross_references: - publications: 10.1101/2024.07.13.603322 - #TODO: Add EMPIAR-12175 once available - related_database_entries: EMD-45674, EMD-45671, EMD-45672, EMD-45673 - dataset_description: This dataset contains tilt series, and tomogram reconstructions and segmentations from - Encephalitozoon hellem microsporidian spores. Samples were cryo-FIB milled. - dataset_identifier: 10438 - dataset_title: Cryo-ET dataset of dormant microporidian spores from Encephalitozoon hellem - dates: &id002 - deposition_date: '2024-07-09' - last_modified_date: '2024-07-24' - release_date: '2024-07-29' - funding: - - funding_agency_name: NIH/NIGMS - grant_id: 'F32GM128303' - - funding_agency_name: AHA - grant_id: '19POST34430065' - - funding_agency_name: Pew Biomedical Scholars - grant_id: 'PEW-00033055' - - funding_agency_name: Searle Scholars Program - grant_id: 'SSP-2018-2737' - - funding_agency_name: NIH/NIAID - grant_id: 'R01AI147131' - - funding_agency_name: Simons Foundation - grant_id: "SF349247" - - funding_agency_name: NIH/NIGMS - grant_id: "GM103310" - - funding_agency_name: NIH - grant_id: "U24GM139171" - grid_preparation: quantifoil 2/2 200mesh, ~25nm evaporated carbon, prepared using waffle method - organism: - name: Encephalitozoon hellem - taxonomy_id: 27973 - other_setup: Cryo-FIB milling - sample_preparation: "E. hellem spores were purified from infected vero cells. (see methods in - https://doi.org/10.1038/s41467-022-29501-3)" - sample_type: cell - sources: - - literal: - value: - - '10438' annotations: - - metadata: &annotation_metadata - annotation_method: Each organelle was segmented as a separate region of interest in 8X binned tomogram by tracing - + A 3-D reconstruction of each organelle was generated + Reconstructions were converted to contour meshes - which were smoothed. - annotation_object: - id: GO:0090642 - name: microsporidian-type exospore - annotation_publications: 10.1101/2024.07.13.603322 - annotation_software: Dragonfly - authors: - - name: Mahrukh Usmani - ORCID: 0000-0002-9479-3800 - primary_author_status: true - corresponding_author_status: true - - name: Harshita Ramchandani - - name: Damian C. Ekiert - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - dates: *id002 - ground_truth_status: true - is_curator_recommended: true - method_type: hybrid - version: 1.0 - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Exospore.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0090641 - name: microsporidian-type endospore - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Endospore.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0005886 - name: plasma membrane - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Plasma_Membrane.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0160201 - name: polaroplast - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polaroplast.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0160201 - name: polaroplast - description: vesicles in polaroplast - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Vesicles_in_Polaroplast.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0005635 - name: nuclear envelope - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Nuclear_Envelope.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0031981 - name: nuclear lumen - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Nuclear_Fill.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: M-Layer - description: polar tube M-Layer - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: M-Layer - description: polar tube M-Layer, multiple coils - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_multiple_coils.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: M-Layer - description: polar tube M-Layer, single coil - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_single_coil.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: M-Layer - description: polar tube M-Layer, circular coils - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_Circular_Coils.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: M-Layer - description: polar tube M-Layer, long - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_long.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: OF-Layer - description: polar tube OF-Layer - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: IF-Layer - description: polar tube IF-Layer - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_IF-Layer.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: OF-Layer - description: polar tube OF-Layer, circular coils - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer_Circular_Coils.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - #TODO: Once peer reviewed, request new GO term instead of using state - id: GO:0044099 - name: polar tube - state: OF-Layer - description: polar tube OF-Layer, long - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer_long.mrc" - is_visualization_default: true - mask_label: 1 - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0031982 - name: vesicle - description: extra-membranous vesicle - sources: - - SemanticSegmentationMask: - file_format: mrc - glob_strings: - - "Data_Set_4/{run_name}/segmentation_masks/Vesicles.mrc" - is_visualization_default: true - mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + id: GO:0090642 + name: microsporidian-type exospore + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: &id001 + - ORCID: 0000-0002-9479-3800 + corresponding_author_status: true + name: Mahrukh Usmani + primary_author_status: true + - name: Harshita Ramchandani + - ORCID: 0000-0002-2570-0404 + corresponding_author_status: true + name: Damian C. Ekiert + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + dates: &id002 + deposition_date: '2024-07-09' + last_modified_date: '2024-07-24' + release_date: '2024-07-29' + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Exospore.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + id: GO:0090641 + name: microsporidian-type endospore + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Endospore.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + id: GO:0005886 + name: plasma membrane + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Plasma_Membrane.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + id: GO:0160201 + name: polaroplast + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polaroplast.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: vesicles in polaroplast + id: GO:0160201 + name: polaroplast + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Vesicles_in_Polaroplast.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + id: GO:0005635 + name: nuclear envelope + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Nuclear_Envelope.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + id: GO:0031981 + name: nuclear lumen + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Nuclear_Fill.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube M-Layer + id: GO:0044099 + name: polar tube + state: M-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube M-Layer, multiple coils + id: GO:0044099 + name: polar tube + state: M-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_multiple_coils.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube M-Layer, single coil + id: GO:0044099 + name: polar tube + state: M-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_single_coil.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube M-Layer, circular coils + id: GO:0044099 + name: polar tube + state: M-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_Circular_Coils.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube M-Layer, long + id: GO:0044099 + name: polar tube + state: M-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_long.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube OF-Layer + id: GO:0044099 + name: polar tube + state: OF-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube IF-Layer + id: GO:0044099 + name: polar tube + state: IF-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_IF-Layer.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube OF-Layer, circular coils + id: GO:0044099 + name: polar tube + state: OF-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer_Circular_Coils.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: polar tube OF-Layer, long + id: GO:0044099 + name: polar tube + state: OF-Layer + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer_long.mrc + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: Each organelle was segmented as a separate region of interest + in 8X binned tomogram by tracing + A 3-D reconstruction of each organelle was + generated + Reconstructions were converted to contour meshes which were smoothed. + annotation_object: + description: extra-membranous vesicle + id: GO:0031982 + name: vesicle + annotation_publications: 10.1101/2024.07.13.603322 + annotation_software: Dragonfly + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: + - Data_Set_4/{run_name}/segmentation_masks/Vesicles.mrc + is_visualization_default: true + mask_label: 1 dataset_keyphotos: - - sources: - - literal: - value: - snapshot: 'cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_4/snapshot.png' - thumbnail: 'cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_4/thumbnail.png' +- sources: + - literal: + value: + snapshot: cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_4/snapshot.png + thumbnail: cryoetportal-rawdatasets-dev/mahrukh_usmani_06_2024/Data_Set_4/thumbnail.png +datasets: +- metadata: + authors: &id003 + - name: Kotaro Kelley + primary_author_status: true + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + primary_author_status: true + - corresponding_author_status: true + name: Clinton S. Potter + - ORCID: 0000-0002-0624-5020 + corresponding_author_status: true + name: Bridget Carragher + - ORCID: 0000-0001-8634-2279 + corresponding_author_status: true + name: Alex J. Noble + primary_author_status: true + cell_strain: + name: ATCC-50504 + cell_type: + id: CL:0002369 + name: fungal spore + cross_references: + publications: 10.1101/2024.07.13.603322 + related_database_entries: EMD-45674, EMD-45671, EMD-45672, EMD-45673 + dataset_description: This dataset contains tilt series, and tomogram reconstructions + and segmentations from Encephalitozoon hellem microsporidian spores. Samples + were cryo-FIB milled. + dataset_identifier: 10438 + dataset_title: Cryo-ET dataset of dormant microporidian spores from Encephalitozoon + hellem + dates: *id002 + funding: + - funding_agency_name: NIH/NIGMS + grant_id: F32GM128303 + - funding_agency_name: AHA + grant_id: 19POST34430065 + - funding_agency_name: Pew Biomedical Scholars + grant_id: PEW-00033055 + - funding_agency_name: Searle Scholars Program + grant_id: SSP-2018-2737 + - funding_agency_name: NIH/NIAID + grant_id: R01AI147131 + - funding_agency_name: Simons Foundation + grant_id: SF349247 + - funding_agency_name: NIH/NIGMS + grant_id: GM103310 + - funding_agency_name: NIH + grant_id: U24GM139171 + grid_preparation: quantifoil 2/2 200mesh, ~25nm evaporated carbon, prepared using + waffle method + organism: + name: Encephalitozoon hellem + taxonomy_id: 27973 + other_setup: Cryo-FIB milling + sample_preparation: E. hellem spores were purified from infected vero cells. (see + methods in https://doi.org/10.1038/s41467-022-29501-3) + sample_type: cell + sources: + - literal: + value: + - '10438' depositions: - - sources: - - literal: - value: - - 10307 - -frames: [] - +- sources: + - literal: + value: + - 10307 key_images: - - sources: - - source_glob: - list_glob: .*\.jpg +- sources: + - source_glob: + list_glob: .*\.jpg rawtilts: - - sources: - - source_multi_glob: - list_globs: - - Data_Set_4/{run_name}/tilt_series/*.txt +- sources: + - source_multi_glob: + list_globs: + - Data_Set_4/{run_name}/tilt_series/*.txt runs: - - sources: - - source_glob: - list_glob: Data_Set_4/tomo_* - match_regex: tomo_\d{4}$ - name_regex: (tomo_\d{4})$ +- sources: + - source_glob: + list_glob: Data_Set_4/tomo_* + match_regex: tomo_\d{4}$ + name_regex: (tomo_\d{4})$ standardization_config: deposition_id: 10307 run_data_map_file: Data_Set_4/run_to_data_map.tsv source_prefix: mahrukh_usmani_06_2024 tiltseries: - - metadata: - acceleration_voltage: 300000 - binning_from_frames: 1 - aligned_tiltseries_binning: 1 - camera: - manufacturer: GATAN - model: K2 - data_acquisition_software: Leginon - is_aligned: true - microscope: - manufacturer: FEI - model: TITAN KRIOS - microscope_optical_setup: - energy_filter: Gatan BioQuantum - pixel_spacing: 3.298 - spherical_aberration_constant: 2.7 - tilt_axis: 0.0 - tilt_range: - max: 50 - min: -50 - tilt_series_quality: int {tilt_series_quality} - tilt_step: 2.0 - tilting_scheme: bi-directional - total_flux: 68 - sources: - - source_glob: - list_glob: Data_Set_4/{run_name}/tilt_series/*.mrcs - match_regex: ^.*pxlsz3\.29787\.mrcs$ +- metadata: + acceleration_voltage: 300000 + aligned_tiltseries_binning: 1 + binning_from_frames: 1 + camera: + manufacturer: GATAN + model: K2 + data_acquisition_software: Leginon + is_aligned: true + microscope: + manufacturer: FEI + model: TITAN KRIOS + microscope_optical_setup: + energy_filter: Gatan BioQuantum + pixel_spacing: 3.298 + spherical_aberration_constant: 2.7 + tilt_axis: 0.0 + tilt_range: + max: 50 + min: -50 + tilt_series_quality: int {tilt_series_quality} + tilt_step: 2.0 + tilting_scheme: bi-directional + total_flux: 68 + sources: + - source_glob: + list_glob: Data_Set_4/{run_name}/tilt_series/*.mrcs + match_regex: ^.*pxlsz3\.29787\.mrcs$ tomograms: - - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 - authors: *id001 - ctf_corrected: false - fiducial_alignment_status: NON_FIDUCIAL - offset: - x: 0 - y: 0 - z: 0 - processing: raw - reconstruction_method: SIRT - reconstruction_software: Protomo - tomogram_version: 1 - voxel_spacing: float {tomograms_voxel_spacing} - sources: - - source_glob: - list_glob: Data_Set_4/{run_name}/tomo_rec/*.mrc - match_regex: (.*)\.mrc - parent_filters: - exclude: - run: - - '^tomo_0109$' - - '^tomo_0110$' - - '^tomo_0112$' - - source_glob: - list_glob: Data_Set_4/{run_name}/Segmentation_Volumes/*.mrc - match_regex: (.*)\.mrc - parent_filters: - include: - run: - - '^tomo_0109$' - - '^tomo_0110$' - - '^tomo_0112$' +- metadata: + authors: *id003 + ctf_corrected: false + dates: + deposition_date: '1970-01-01' + last_modified_date: '1970-01-01' + release_date: '1970-01-01' + fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true + offset: + x: 0 + y: 0 + z: 0 + processing: raw + reconstruction_method: SIRT + reconstruction_software: Protomo + tomogram_version: 1 + voxel_spacing: float {tomograms_voxel_spacing} + sources: + - parent_filters: + exclude: + run: + - ^tomo_0109$ + - ^tomo_0110$ + - ^tomo_0112$ + source_glob: + list_glob: Data_Set_4/{run_name}/tomo_rec/*.mrc + match_regex: (.*)\.mrc + - parent_filters: + include: + run: + - ^tomo_0109$ + - ^tomo_0110$ + - ^tomo_0112$ + source_glob: + list_glob: Data_Set_4/{run_name}/Segmentation_Volumes/*.mrc + match_regex: (.*)\.mrc voxel_spacings: - - sources: - - literal: - value: - - float {tomograms_voxel_spacing} -gains: [] - -#TODO: Ingest full set of gains when import of multiple files is supported -#(see https://github.com/chanzuckerberg/cryoet-data-portal/issues/947) +- sources: + - literal: + value: + - float {tomograms_voxel_spacing} diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index c42a87acd..c51f03106 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -301,7 +301,9 @@ tomograms: - metadata: authors: *id001 ctf_corrected: true + dates: *id002 fiducial_alignment_status: NON_FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10014.yaml b/ingestion_tools/dataset_configs/gjensen/10014.yaml index a57a64a73..0d2c8bc23 100644 --- a/ingestion_tools/dataset_configs/gjensen/10014.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10014.yaml @@ -125,27 +125,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10015.yaml b/ingestion_tools/dataset_configs/gjensen/10015.yaml index a346f2789..d3e53f7a7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10015.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10015.yaml @@ -123,27 +123,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: Warp authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10016.yaml b/ingestion_tools/dataset_configs/gjensen/10016.yaml index c3a870141..10350feee 100644 --- a/ingestion_tools/dataset_configs/gjensen/10016.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10016.yaml @@ -123,27 +123,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10017.yaml b/ingestion_tools/dataset_configs/gjensen/10017.yaml index ec157fe39..183f01cde 100644 --- a/ingestion_tools/dataset_configs/gjensen/10017.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10017.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10018.yaml b/ingestion_tools/dataset_configs/gjensen/10018.yaml index 7f327ee62..46db947b4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10018.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10018.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10019.yaml b/ingestion_tools/dataset_configs/gjensen/10019.yaml index 6fadc1cac..3eeee57e7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10019.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10019.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10020.yaml b/ingestion_tools/dataset_configs/gjensen/10020.yaml index 571af362c..6185b04f6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10020.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10020.yaml @@ -123,27 +123,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10021.yaml b/ingestion_tools/dataset_configs/gjensen/10021.yaml index c350ba6b5..99159608a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10021.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10021.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: true + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10022.yaml b/ingestion_tools/dataset_configs/gjensen/10022.yaml index 4c0156c43..3ec9fe48a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10022.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10022.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10023.yaml b/ingestion_tools/dataset_configs/gjensen/10023.yaml index 0d275df39..2b3ceece2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10023.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10023.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10024.yaml b/ingestion_tools/dataset_configs/gjensen/10024.yaml index cd66e3594..d3f1458c6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10024.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10024.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10025.yaml b/ingestion_tools/dataset_configs/gjensen/10025.yaml index 62466a7b9..ba1374dff 100644 --- a/ingestion_tools/dataset_configs/gjensen/10025.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10025.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10026.yaml b/ingestion_tools/dataset_configs/gjensen/10026.yaml index 970562529..15690791a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10026.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10026.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10027.yaml b/ingestion_tools/dataset_configs/gjensen/10027.yaml index 93d6df2c2..651f596e9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10027.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10027.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10028.yaml b/ingestion_tools/dataset_configs/gjensen/10028.yaml index e7712adbf..49ad18178 100644 --- a/ingestion_tools/dataset_configs/gjensen/10028.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10028.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10029.yaml b/ingestion_tools/dataset_configs/gjensen/10029.yaml index 1fc8ce5f4..b693c5347 100644 --- a/ingestion_tools/dataset_configs/gjensen/10029.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10029.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10030.yaml b/ingestion_tools/dataset_configs/gjensen/10030.yaml index 1595346da..5d7f6535b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10030.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10030.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10031.yaml b/ingestion_tools/dataset_configs/gjensen/10031.yaml index 6bf082468..3037fb355 100644 --- a/ingestion_tools/dataset_configs/gjensen/10031.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10031.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10032.yaml b/ingestion_tools/dataset_configs/gjensen/10032.yaml index 7931c9a45..8960014c5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10032.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10032.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10033.yaml b/ingestion_tools/dataset_configs/gjensen/10033.yaml index e0e911687..e9761f000 100644 --- a/ingestion_tools/dataset_configs/gjensen/10033.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10033.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10034.yaml b/ingestion_tools/dataset_configs/gjensen/10034.yaml index 0d110eaa4..1dc69a080 100644 --- a/ingestion_tools/dataset_configs/gjensen/10034.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10034.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10035.yaml b/ingestion_tools/dataset_configs/gjensen/10035.yaml index 5894bea73..b5b8b587f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10035.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10035.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10036.yaml b/ingestion_tools/dataset_configs/gjensen/10036.yaml index af420c71b..59788e99c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10036.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10036.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10037.yaml b/ingestion_tools/dataset_configs/gjensen/10037.yaml index 5a695cbb5..8eaae41b1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10037.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10037.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10038.yaml b/ingestion_tools/dataset_configs/gjensen/10038.yaml index 8c0666e82..5a6067594 100644 --- a/ingestion_tools/dataset_configs/gjensen/10038.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10038.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10039.yaml b/ingestion_tools/dataset_configs/gjensen/10039.yaml index 9858caf56..38cda5c0c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10039.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10039.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10040.yaml b/ingestion_tools/dataset_configs/gjensen/10040.yaml index d9a2e2772..2ef889c52 100644 --- a/ingestion_tools/dataset_configs/gjensen/10040.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10040.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10041.yaml b/ingestion_tools/dataset_configs/gjensen/10041.yaml index 154a9b7d3..9a3f74bb5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10041.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10041.yaml @@ -108,27 +108,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10042.yaml b/ingestion_tools/dataset_configs/gjensen/10042.yaml index 0292d95af..932f8d81a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10042.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10042.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10043.yaml b/ingestion_tools/dataset_configs/gjensen/10043.yaml index c5963c550..2715bcc03 100644 --- a/ingestion_tools/dataset_configs/gjensen/10043.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10043.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10044.yaml b/ingestion_tools/dataset_configs/gjensen/10044.yaml index 9e192da43..2f8e2a64e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10044.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10044.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10045.yaml b/ingestion_tools/dataset_configs/gjensen/10045.yaml index e14b64045..f39d5ba04 100644 --- a/ingestion_tools/dataset_configs/gjensen/10045.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10045.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10046.yaml b/ingestion_tools/dataset_configs/gjensen/10046.yaml index e99560b0a..1582bd21a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10046.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10046.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10047.yaml b/ingestion_tools/dataset_configs/gjensen/10047.yaml index 6e6e03bb8..24afc7664 100644 --- a/ingestion_tools/dataset_configs/gjensen/10047.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10047.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10048.yaml b/ingestion_tools/dataset_configs/gjensen/10048.yaml index 9b94032c8..1603664de 100644 --- a/ingestion_tools/dataset_configs/gjensen/10048.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10048.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10049.yaml b/ingestion_tools/dataset_configs/gjensen/10049.yaml index 43e51fbec..07aef4ea7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10049.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10049.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10050.yaml b/ingestion_tools/dataset_configs/gjensen/10050.yaml index b86c84531..b6e065045 100644 --- a/ingestion_tools/dataset_configs/gjensen/10050.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10050.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10051.yaml b/ingestion_tools/dataset_configs/gjensen/10051.yaml index 88deb0b3e..1d3f3436d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10051.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10051.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10052.yaml b/ingestion_tools/dataset_configs/gjensen/10052.yaml index 8e22b6eeb..73c28ffba 100644 --- a/ingestion_tools/dataset_configs/gjensen/10052.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10052.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10053.yaml b/ingestion_tools/dataset_configs/gjensen/10053.yaml index e749e9ca0..a65c8a948 100644 --- a/ingestion_tools/dataset_configs/gjensen/10053.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10053.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10054.yaml b/ingestion_tools/dataset_configs/gjensen/10054.yaml index 898f81df8..12d60b748 100644 --- a/ingestion_tools/dataset_configs/gjensen/10054.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10054.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10055.yaml b/ingestion_tools/dataset_configs/gjensen/10055.yaml index 278aaf6b4..3b3e26f24 100644 --- a/ingestion_tools/dataset_configs/gjensen/10055.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10055.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10056.yaml b/ingestion_tools/dataset_configs/gjensen/10056.yaml index 8ea98074d..63e29d380 100644 --- a/ingestion_tools/dataset_configs/gjensen/10056.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10056.yaml @@ -121,27 +121,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10057.yaml b/ingestion_tools/dataset_configs/gjensen/10057.yaml index 950532d6b..7cc7277b0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10057.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10057.yaml @@ -121,27 +121,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10058.yaml b/ingestion_tools/dataset_configs/gjensen/10058.yaml index cc8c63822..3bb13bdd0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10058.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10058.yaml @@ -123,27 +123,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10059.yaml b/ingestion_tools/dataset_configs/gjensen/10059.yaml index e9fe5d748..57ea0224d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10059.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10059.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10060.yaml b/ingestion_tools/dataset_configs/gjensen/10060.yaml index 24e7bb2b2..270bcc8a5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10060.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10060.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10061.yaml b/ingestion_tools/dataset_configs/gjensen/10061.yaml index 714fa601a..7ac4c385c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10061.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10061.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10062.yaml b/ingestion_tools/dataset_configs/gjensen/10062.yaml index 1ae60c82e..afea8877b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10062.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10062.yaml @@ -125,27 +125,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10063.yaml b/ingestion_tools/dataset_configs/gjensen/10063.yaml index 067f93964..d42938a44 100644 --- a/ingestion_tools/dataset_configs/gjensen/10063.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10063.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10064.yaml b/ingestion_tools/dataset_configs/gjensen/10064.yaml index 68068cf13..3e36f403e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10064.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10064.yaml @@ -125,27 +125,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10065.yaml b/ingestion_tools/dataset_configs/gjensen/10065.yaml index ee17a9d10..7c0f06a60 100644 --- a/ingestion_tools/dataset_configs/gjensen/10065.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10065.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10066.yaml b/ingestion_tools/dataset_configs/gjensen/10066.yaml index e892cd1e9..ecd961455 100644 --- a/ingestion_tools/dataset_configs/gjensen/10066.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10066.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10067.yaml b/ingestion_tools/dataset_configs/gjensen/10067.yaml index 643f7d703..cb4a9cca9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10067.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10067.yaml @@ -123,27 +123,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10068.yaml b/ingestion_tools/dataset_configs/gjensen/10068.yaml index 8db5e2bc0..fe61d2d11 100644 --- a/ingestion_tools/dataset_configs/gjensen/10068.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10068.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10069.yaml b/ingestion_tools/dataset_configs/gjensen/10069.yaml index 58b444e32..223d0548d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10069.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10069.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10070.yaml b/ingestion_tools/dataset_configs/gjensen/10070.yaml index 8ac4e3cf7..80be3b198 100644 --- a/ingestion_tools/dataset_configs/gjensen/10070.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10070.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10071.yaml b/ingestion_tools/dataset_configs/gjensen/10071.yaml index e57156ba9..5cd146643 100644 --- a/ingestion_tools/dataset_configs/gjensen/10071.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10071.yaml @@ -123,27 +123,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10072.yaml b/ingestion_tools/dataset_configs/gjensen/10072.yaml index 7a69f9502..f88313f73 100644 --- a/ingestion_tools/dataset_configs/gjensen/10072.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10072.yaml @@ -124,27 +124,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10073.yaml b/ingestion_tools/dataset_configs/gjensen/10073.yaml index a5871a999..dd2aab7a9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10073.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10073.yaml @@ -125,27 +125,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10074.yaml b/ingestion_tools/dataset_configs/gjensen/10074.yaml index 52e2ff2f9..4f53fe4f4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10074.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10074.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10075.yaml b/ingestion_tools/dataset_configs/gjensen/10075.yaml index 68b1f1436..66896d65c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10075.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10075.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10076.yaml b/ingestion_tools/dataset_configs/gjensen/10076.yaml index 4fd6ae52d..1a5088546 100644 --- a/ingestion_tools/dataset_configs/gjensen/10076.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10076.yaml @@ -123,27 +123,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10077.yaml b/ingestion_tools/dataset_configs/gjensen/10077.yaml index 8e8638052..515f4250a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10077.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10077.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10078.yaml b/ingestion_tools/dataset_configs/gjensen/10078.yaml index b4af9bc07..956dc2a0b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10078.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10078.yaml @@ -124,27 +124,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10079.yaml b/ingestion_tools/dataset_configs/gjensen/10079.yaml index a07f2efb3..65fc27b42 100644 --- a/ingestion_tools/dataset_configs/gjensen/10079.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10079.yaml @@ -124,27 +124,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10080.yaml b/ingestion_tools/dataset_configs/gjensen/10080.yaml index bac345815..8ae79bfde 100644 --- a/ingestion_tools/dataset_configs/gjensen/10080.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10080.yaml @@ -126,27 +126,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10081.yaml b/ingestion_tools/dataset_configs/gjensen/10081.yaml index 28d2f7709..db1534f2c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10081.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10081.yaml @@ -127,27 +127,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10082.yaml b/ingestion_tools/dataset_configs/gjensen/10082.yaml index c53a1dcfe..6c9240d07 100644 --- a/ingestion_tools/dataset_configs/gjensen/10082.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10082.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10083.yaml b/ingestion_tools/dataset_configs/gjensen/10083.yaml index 795000b4c..4319e8f2d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10083.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10083.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10084.yaml b/ingestion_tools/dataset_configs/gjensen/10084.yaml index 445aecfee..d7531331b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10084.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10084.yaml @@ -127,27 +127,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10085.yaml b/ingestion_tools/dataset_configs/gjensen/10085.yaml index 77384fe31..161045c36 100644 --- a/ingestion_tools/dataset_configs/gjensen/10085.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10085.yaml @@ -124,27 +124,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10086.yaml b/ingestion_tools/dataset_configs/gjensen/10086.yaml index 941903ab6..5172d9425 100644 --- a/ingestion_tools/dataset_configs/gjensen/10086.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10086.yaml @@ -119,27 +119,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10087.yaml b/ingestion_tools/dataset_configs/gjensen/10087.yaml index 87e240ceb..acdcd8a72 100644 --- a/ingestion_tools/dataset_configs/gjensen/10087.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10087.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10088.yaml b/ingestion_tools/dataset_configs/gjensen/10088.yaml index e7e1405fd..13a9c9d65 100644 --- a/ingestion_tools/dataset_configs/gjensen/10088.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10088.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10089.yaml b/ingestion_tools/dataset_configs/gjensen/10089.yaml index 2a4f2e846..1bd1bcca4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10089.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10089.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10090.yaml b/ingestion_tools/dataset_configs/gjensen/10090.yaml index ae597d2a5..5e35da3d9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10090.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10090.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10091.yaml b/ingestion_tools/dataset_configs/gjensen/10091.yaml index ba5b55e06..bad456688 100644 --- a/ingestion_tools/dataset_configs/gjensen/10091.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10091.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10092.yaml b/ingestion_tools/dataset_configs/gjensen/10092.yaml index 7f771bfeb..07d5931b7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10092.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10092.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10093.yaml b/ingestion_tools/dataset_configs/gjensen/10093.yaml index 65abcc6e5..8172067a1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10093.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10093.yaml @@ -119,27 +119,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10094.yaml b/ingestion_tools/dataset_configs/gjensen/10094.yaml index 6a3835172..174cfb164 100644 --- a/ingestion_tools/dataset_configs/gjensen/10094.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10094.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10095.yaml b/ingestion_tools/dataset_configs/gjensen/10095.yaml index a55d2cc44..8c70cb1d1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10095.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10095.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10096.yaml b/ingestion_tools/dataset_configs/gjensen/10096.yaml index f00d53cb4..26399f8a7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10096.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10096.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10097.yaml b/ingestion_tools/dataset_configs/gjensen/10097.yaml index f97e85ec0..f8d785313 100644 --- a/ingestion_tools/dataset_configs/gjensen/10097.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10097.yaml @@ -127,27 +127,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10098.yaml b/ingestion_tools/dataset_configs/gjensen/10098.yaml index 4e5984473..7bc659a26 100644 --- a/ingestion_tools/dataset_configs/gjensen/10098.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10098.yaml @@ -127,27 +127,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10099.yaml b/ingestion_tools/dataset_configs/gjensen/10099.yaml index d125ca72d..5f4183e24 100644 --- a/ingestion_tools/dataset_configs/gjensen/10099.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10099.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10100.yaml b/ingestion_tools/dataset_configs/gjensen/10100.yaml index 18a9953fb..e069f33b8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10100.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10100.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10101.yaml b/ingestion_tools/dataset_configs/gjensen/10101.yaml index 96d3eff5f..06e1951b2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10101.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10101.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10102.yaml b/ingestion_tools/dataset_configs/gjensen/10102.yaml index d2c53be03..8d1b82051 100644 --- a/ingestion_tools/dataset_configs/gjensen/10102.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10102.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10103.yaml b/ingestion_tools/dataset_configs/gjensen/10103.yaml index 41a81f466..fecebd58b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10103.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10103.yaml @@ -106,27 +106,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10104.yaml b/ingestion_tools/dataset_configs/gjensen/10104.yaml index 66430ab78..55314efeb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10104.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10104.yaml @@ -106,27 +106,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10105.yaml b/ingestion_tools/dataset_configs/gjensen/10105.yaml index 6d93f8158..3a2c9ae8e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10105.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10105.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10106.yaml b/ingestion_tools/dataset_configs/gjensen/10106.yaml index eef8d34b8..f92d4ab9f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10106.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10106.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10107.yaml b/ingestion_tools/dataset_configs/gjensen/10107.yaml index 3fca45f2b..1d6d8e59a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10107.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10107.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10108.yaml b/ingestion_tools/dataset_configs/gjensen/10108.yaml index c0672338c..d40c23fc7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10108.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10108.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10109.yaml b/ingestion_tools/dataset_configs/gjensen/10109.yaml index aa922906e..42976da0c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10109.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10109.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10110.yaml b/ingestion_tools/dataset_configs/gjensen/10110.yaml index 58e71701d..9bd475e3d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10110.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10110.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10111.yaml b/ingestion_tools/dataset_configs/gjensen/10111.yaml index 2a1fb6129..2bc8e9fa6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10111.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10111.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10112.yaml b/ingestion_tools/dataset_configs/gjensen/10112.yaml index 9b40a3cec..c816bdc77 100644 --- a/ingestion_tools/dataset_configs/gjensen/10112.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10112.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10113.yaml b/ingestion_tools/dataset_configs/gjensen/10113.yaml index b40d9526c..0b2dcc69f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10113.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10113.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10114.yaml b/ingestion_tools/dataset_configs/gjensen/10114.yaml index 61795511d..adae715b1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10114.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10114.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10115.yaml b/ingestion_tools/dataset_configs/gjensen/10115.yaml index f88c7281c..206300f4e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10115.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10115.yaml @@ -107,27 +107,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10116.yaml b/ingestion_tools/dataset_configs/gjensen/10116.yaml index 3131ae890..225561216 100644 --- a/ingestion_tools/dataset_configs/gjensen/10116.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10116.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10117.yaml b/ingestion_tools/dataset_configs/gjensen/10117.yaml index ba635e84d..8cc22269e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10117.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10117.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10118.yaml b/ingestion_tools/dataset_configs/gjensen/10118.yaml index 424b1c922..740f43dd2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10118.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10118.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10119.yaml b/ingestion_tools/dataset_configs/gjensen/10119.yaml index b461d6bb2..ea4895766 100644 --- a/ingestion_tools/dataset_configs/gjensen/10119.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10119.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10120.yaml b/ingestion_tools/dataset_configs/gjensen/10120.yaml index c8cb2064b..c58dfc8bd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10120.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10120.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10121.yaml b/ingestion_tools/dataset_configs/gjensen/10121.yaml index 459e95b29..0fd35f20a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10121.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10121.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10122.yaml b/ingestion_tools/dataset_configs/gjensen/10122.yaml index 0147d3d60..4a0524d7e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10122.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10122.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10123.yaml b/ingestion_tools/dataset_configs/gjensen/10123.yaml index ccf0c2c03..3a9e75e28 100644 --- a/ingestion_tools/dataset_configs/gjensen/10123.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10123.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10124.yaml b/ingestion_tools/dataset_configs/gjensen/10124.yaml index 07d413305..946599ae0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10124.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10124.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10125.yaml b/ingestion_tools/dataset_configs/gjensen/10125.yaml index e1de06d6b..50c9e5f83 100644 --- a/ingestion_tools/dataset_configs/gjensen/10125.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10125.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10126.yaml b/ingestion_tools/dataset_configs/gjensen/10126.yaml index 8b57973df..84e57c6a6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10126.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10126.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10127.yaml b/ingestion_tools/dataset_configs/gjensen/10127.yaml index 529de4616..8824a2b41 100644 --- a/ingestion_tools/dataset_configs/gjensen/10127.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10127.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10128.yaml b/ingestion_tools/dataset_configs/gjensen/10128.yaml index 7fc27528b..95a292def 100644 --- a/ingestion_tools/dataset_configs/gjensen/10128.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10128.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10129.yaml b/ingestion_tools/dataset_configs/gjensen/10129.yaml index d382bf539..6efccebfa 100644 --- a/ingestion_tools/dataset_configs/gjensen/10129.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10129.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10130.yaml b/ingestion_tools/dataset_configs/gjensen/10130.yaml index a3d0e6c3b..180a07fb6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10130.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10130.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10131.yaml b/ingestion_tools/dataset_configs/gjensen/10131.yaml index 1f2c9fe22..87e942e85 100644 --- a/ingestion_tools/dataset_configs/gjensen/10131.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10131.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10132.yaml b/ingestion_tools/dataset_configs/gjensen/10132.yaml index 2523f4e19..c45250261 100644 --- a/ingestion_tools/dataset_configs/gjensen/10132.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10132.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10133.yaml b/ingestion_tools/dataset_configs/gjensen/10133.yaml index 2c5ad8f7c..c847bb0f3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10133.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10133.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10134.yaml b/ingestion_tools/dataset_configs/gjensen/10134.yaml index 5e0514c6a..8191ad19f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10134.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10134.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10135.yaml b/ingestion_tools/dataset_configs/gjensen/10135.yaml index 39431e9bb..ee08b3306 100644 --- a/ingestion_tools/dataset_configs/gjensen/10135.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10135.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10136.yaml b/ingestion_tools/dataset_configs/gjensen/10136.yaml index 0d2227d96..af7987d3e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10136.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10136.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10137.yaml b/ingestion_tools/dataset_configs/gjensen/10137.yaml index c32513f39..ee2b7995a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10137.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10137.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10138.yaml b/ingestion_tools/dataset_configs/gjensen/10138.yaml index 6a3af4424..b1f16a7d1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10138.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10138.yaml @@ -108,27 +108,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10139.yaml b/ingestion_tools/dataset_configs/gjensen/10139.yaml index 7051062b5..f72268360 100644 --- a/ingestion_tools/dataset_configs/gjensen/10139.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10139.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10140.yaml b/ingestion_tools/dataset_configs/gjensen/10140.yaml index fd5bf5f40..47c303901 100644 --- a/ingestion_tools/dataset_configs/gjensen/10140.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10140.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10141.yaml b/ingestion_tools/dataset_configs/gjensen/10141.yaml index 830dfc865..328a72ec5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10141.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10141.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10142.yaml b/ingestion_tools/dataset_configs/gjensen/10142.yaml index 1311dffb8..d9211b35d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10142.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10142.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10143.yaml b/ingestion_tools/dataset_configs/gjensen/10143.yaml index 545ca3aa3..cbcc03d54 100644 --- a/ingestion_tools/dataset_configs/gjensen/10143.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10143.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10144.yaml b/ingestion_tools/dataset_configs/gjensen/10144.yaml index 6fe7134ec..d601e6e17 100644 --- a/ingestion_tools/dataset_configs/gjensen/10144.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10144.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10145.yaml b/ingestion_tools/dataset_configs/gjensen/10145.yaml index 843382b48..b11b64a7a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10145.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10145.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10146.yaml b/ingestion_tools/dataset_configs/gjensen/10146.yaml index 52ecb8bbf..4ecc41b82 100644 --- a/ingestion_tools/dataset_configs/gjensen/10146.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10146.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10147.yaml b/ingestion_tools/dataset_configs/gjensen/10147.yaml index b86fdfdc1..5e1d590ea 100644 --- a/ingestion_tools/dataset_configs/gjensen/10147.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10147.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10148.yaml b/ingestion_tools/dataset_configs/gjensen/10148.yaml index 386545101..60d64fdb3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10148.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10148.yaml @@ -108,27 +108,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10149.yaml b/ingestion_tools/dataset_configs/gjensen/10149.yaml index 311927744..c7fefbfeb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10149.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10149.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10150.yaml b/ingestion_tools/dataset_configs/gjensen/10150.yaml index 01650d635..b631ce468 100644 --- a/ingestion_tools/dataset_configs/gjensen/10150.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10150.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10151.yaml b/ingestion_tools/dataset_configs/gjensen/10151.yaml index 1011037b8..95a6094fe 100644 --- a/ingestion_tools/dataset_configs/gjensen/10151.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10151.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10152.yaml b/ingestion_tools/dataset_configs/gjensen/10152.yaml index 3c776c94b..a4e366894 100644 --- a/ingestion_tools/dataset_configs/gjensen/10152.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10152.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10153.yaml b/ingestion_tools/dataset_configs/gjensen/10153.yaml index 521310f5e..850fb1c3b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10153.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10153.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10154.yaml b/ingestion_tools/dataset_configs/gjensen/10154.yaml index 3e49db251..ed87b4594 100644 --- a/ingestion_tools/dataset_configs/gjensen/10154.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10154.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10155.yaml b/ingestion_tools/dataset_configs/gjensen/10155.yaml index f80382675..e21151be9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10155.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10155.yaml @@ -119,27 +119,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10156.yaml b/ingestion_tools/dataset_configs/gjensen/10156.yaml index 8249dbcd0..b078d376a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10156.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10156.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10157.yaml b/ingestion_tools/dataset_configs/gjensen/10157.yaml index 9cc605303..871713626 100644 --- a/ingestion_tools/dataset_configs/gjensen/10157.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10157.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10158.yaml b/ingestion_tools/dataset_configs/gjensen/10158.yaml index 1024cddcb..2aec7d505 100644 --- a/ingestion_tools/dataset_configs/gjensen/10158.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10158.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10159.yaml b/ingestion_tools/dataset_configs/gjensen/10159.yaml index 4a18ab1d8..04b599983 100644 --- a/ingestion_tools/dataset_configs/gjensen/10159.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10159.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10160.yaml b/ingestion_tools/dataset_configs/gjensen/10160.yaml index fce81cd6f..addd076ca 100644 --- a/ingestion_tools/dataset_configs/gjensen/10160.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10160.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10161.yaml b/ingestion_tools/dataset_configs/gjensen/10161.yaml index 811afe3e5..0f870e910 100644 --- a/ingestion_tools/dataset_configs/gjensen/10161.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10161.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10162.yaml b/ingestion_tools/dataset_configs/gjensen/10162.yaml index 14bcd1330..b87ea069f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10162.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10162.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10163.yaml b/ingestion_tools/dataset_configs/gjensen/10163.yaml index 66646f747..b3553cc6b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10163.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10163.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10164.yaml b/ingestion_tools/dataset_configs/gjensen/10164.yaml index 6a6697d7c..7a2448eff 100644 --- a/ingestion_tools/dataset_configs/gjensen/10164.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10164.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10165.yaml b/ingestion_tools/dataset_configs/gjensen/10165.yaml index 4c27e4107..37053b98f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10165.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10165.yaml @@ -119,27 +119,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10166.yaml b/ingestion_tools/dataset_configs/gjensen/10166.yaml index f8b933dc1..6d07f6e0d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10166.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10166.yaml @@ -119,27 +119,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10167.yaml b/ingestion_tools/dataset_configs/gjensen/10167.yaml index 64ef6e9e7..740c033f6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10167.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10167.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10168.yaml b/ingestion_tools/dataset_configs/gjensen/10168.yaml index 457b17fb2..8de8dded5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10168.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10168.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10169.yaml b/ingestion_tools/dataset_configs/gjensen/10169.yaml index 5e72d74b1..cdcfa1f9b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10169.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10169.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10170.yaml b/ingestion_tools/dataset_configs/gjensen/10170.yaml index 0ebce3117..f70cc3014 100644 --- a/ingestion_tools/dataset_configs/gjensen/10170.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10170.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10171.yaml b/ingestion_tools/dataset_configs/gjensen/10171.yaml index 2a4d68993..038fa4371 100644 --- a/ingestion_tools/dataset_configs/gjensen/10171.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10171.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10172.yaml b/ingestion_tools/dataset_configs/gjensen/10172.yaml index 73a310686..c20a5fd09 100644 --- a/ingestion_tools/dataset_configs/gjensen/10172.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10172.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10173.yaml b/ingestion_tools/dataset_configs/gjensen/10173.yaml index 0fc68fd35..249210ecc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10173.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10173.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10174.yaml b/ingestion_tools/dataset_configs/gjensen/10174.yaml index 7d8f7ab86..6ed263d55 100644 --- a/ingestion_tools/dataset_configs/gjensen/10174.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10174.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10175.yaml b/ingestion_tools/dataset_configs/gjensen/10175.yaml index cd414fa46..313d51cc4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10175.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10175.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10176.yaml b/ingestion_tools/dataset_configs/gjensen/10176.yaml index a76760ece..a28f2f133 100644 --- a/ingestion_tools/dataset_configs/gjensen/10176.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10176.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10177.yaml b/ingestion_tools/dataset_configs/gjensen/10177.yaml index 4d921af7d..775167062 100644 --- a/ingestion_tools/dataset_configs/gjensen/10177.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10177.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10178.yaml b/ingestion_tools/dataset_configs/gjensen/10178.yaml index b161ec1b0..f71d73bf1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10178.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10178.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10179.yaml b/ingestion_tools/dataset_configs/gjensen/10179.yaml index b2e5bba6f..4e3041962 100644 --- a/ingestion_tools/dataset_configs/gjensen/10179.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10179.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10180.yaml b/ingestion_tools/dataset_configs/gjensen/10180.yaml index 3794b5d70..044b63f61 100644 --- a/ingestion_tools/dataset_configs/gjensen/10180.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10180.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10181.yaml b/ingestion_tools/dataset_configs/gjensen/10181.yaml index fce1626c9..489fd2b22 100644 --- a/ingestion_tools/dataset_configs/gjensen/10181.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10181.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10182.yaml b/ingestion_tools/dataset_configs/gjensen/10182.yaml index 752319d69..69ad645bf 100644 --- a/ingestion_tools/dataset_configs/gjensen/10182.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10182.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10183.yaml b/ingestion_tools/dataset_configs/gjensen/10183.yaml index a4026f372..96af66835 100644 --- a/ingestion_tools/dataset_configs/gjensen/10183.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10183.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10184.yaml b/ingestion_tools/dataset_configs/gjensen/10184.yaml index 601229fa4..7ddc9228c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10184.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10184.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10185.yaml b/ingestion_tools/dataset_configs/gjensen/10185.yaml index 19143cc1f..0f33736a9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10185.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10185.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10186.yaml b/ingestion_tools/dataset_configs/gjensen/10186.yaml index bda0c2824..0843ce32d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10186.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10186.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10187.yaml b/ingestion_tools/dataset_configs/gjensen/10187.yaml index 6338e4125..d2b47ab5c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10187.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10187.yaml @@ -120,27 +120,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10188.yaml b/ingestion_tools/dataset_configs/gjensen/10188.yaml index 2a2a09c72..51ec84b46 100644 --- a/ingestion_tools/dataset_configs/gjensen/10188.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10188.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10189.yaml b/ingestion_tools/dataset_configs/gjensen/10189.yaml index 5e3646b3c..d1d09dd4b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10189.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10189.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10190.yaml b/ingestion_tools/dataset_configs/gjensen/10190.yaml index 576bd2e6a..51bf469d5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10190.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10190.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10191.yaml b/ingestion_tools/dataset_configs/gjensen/10191.yaml index f0d99a97d..5819f6ae7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10191.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10191.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10192.yaml b/ingestion_tools/dataset_configs/gjensen/10192.yaml index 3a368f284..bf762dfc3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10192.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10192.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10193.yaml b/ingestion_tools/dataset_configs/gjensen/10193.yaml index 1d283e14c..822367abf 100644 --- a/ingestion_tools/dataset_configs/gjensen/10193.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10193.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10194.yaml b/ingestion_tools/dataset_configs/gjensen/10194.yaml index d6d01a3a1..4621b430c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10194.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10194.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10195.yaml b/ingestion_tools/dataset_configs/gjensen/10195.yaml index ec417a5a7..ec1a99c49 100644 --- a/ingestion_tools/dataset_configs/gjensen/10195.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10195.yaml @@ -137,27 +137,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10196.yaml b/ingestion_tools/dataset_configs/gjensen/10196.yaml index c9a41b89c..d8acc5354 100644 --- a/ingestion_tools/dataset_configs/gjensen/10196.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10196.yaml @@ -80,27 +80,12 @@ standardization_config: source_prefix: GJensen_full tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10197.yaml b/ingestion_tools/dataset_configs/gjensen/10197.yaml index 6ba1443c3..dded40d83 100644 --- a/ingestion_tools/dataset_configs/gjensen/10197.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10197.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10198.yaml b/ingestion_tools/dataset_configs/gjensen/10198.yaml index 16b20a0d6..e3621534e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10198.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10198.yaml @@ -108,27 +108,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10199.yaml b/ingestion_tools/dataset_configs/gjensen/10199.yaml index 0f243a5cc..6beb21708 100644 --- a/ingestion_tools/dataset_configs/gjensen/10199.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10199.yaml @@ -108,27 +108,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10200.yaml b/ingestion_tools/dataset_configs/gjensen/10200.yaml index 27499376e..84108664b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10200.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10200.yaml @@ -108,27 +108,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10201.yaml b/ingestion_tools/dataset_configs/gjensen/10201.yaml index 346e6c719..db66874c0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10201.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10201.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10202.yaml b/ingestion_tools/dataset_configs/gjensen/10202.yaml index 07e5db73e..7dabbb30f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10202.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10202.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10203.yaml b/ingestion_tools/dataset_configs/gjensen/10203.yaml index 72d161551..177e32201 100644 --- a/ingestion_tools/dataset_configs/gjensen/10203.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10203.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10204.yaml b/ingestion_tools/dataset_configs/gjensen/10204.yaml index 170d29588..81889e056 100644 --- a/ingestion_tools/dataset_configs/gjensen/10204.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10204.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10205.yaml b/ingestion_tools/dataset_configs/gjensen/10205.yaml index df5657aa4..16e7183bc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10205.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10205.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10206.yaml b/ingestion_tools/dataset_configs/gjensen/10206.yaml index 80becf401..6dfec7f99 100644 --- a/ingestion_tools/dataset_configs/gjensen/10206.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10206.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10207.yaml b/ingestion_tools/dataset_configs/gjensen/10207.yaml index e93f4e491..820a38e8f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10207.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10207.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10208.yaml b/ingestion_tools/dataset_configs/gjensen/10208.yaml index 1f33853f8..8488b751b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10208.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10208.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10209.yaml b/ingestion_tools/dataset_configs/gjensen/10209.yaml index 1da4932d6..e2c678f4f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10209.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10209.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: true + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10210.yaml b/ingestion_tools/dataset_configs/gjensen/10210.yaml index ed93a06aa..a0f57af92 100644 --- a/ingestion_tools/dataset_configs/gjensen/10210.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10210.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10211.yaml b/ingestion_tools/dataset_configs/gjensen/10211.yaml index b21e89490..24987674e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10211.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10211.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10212.yaml b/ingestion_tools/dataset_configs/gjensen/10212.yaml index 75b302851..7813f1202 100644 --- a/ingestion_tools/dataset_configs/gjensen/10212.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10212.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10213.yaml b/ingestion_tools/dataset_configs/gjensen/10213.yaml index 767ea990f..1cd814fd4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10213.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10213.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10214.yaml b/ingestion_tools/dataset_configs/gjensen/10214.yaml index f1df1189b..131cc5ba7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10214.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10214.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10215.yaml b/ingestion_tools/dataset_configs/gjensen/10215.yaml index 793bd9603..9ebe7179c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10215.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10215.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10216.yaml b/ingestion_tools/dataset_configs/gjensen/10216.yaml index 28f5ceedb..87bc28b8e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10216.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10216.yaml @@ -118,27 +118,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10217.yaml b/ingestion_tools/dataset_configs/gjensen/10217.yaml index 05ba1d912..3504fbfa3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10217.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10217.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10218.yaml b/ingestion_tools/dataset_configs/gjensen/10218.yaml index d23fe3b22..d1031031f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10218.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10218.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10219.yaml b/ingestion_tools/dataset_configs/gjensen/10219.yaml index 9c0edd0bc..4b603e41b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10219.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10219.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10220.yaml b/ingestion_tools/dataset_configs/gjensen/10220.yaml index 38d1da0e7..03575686c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10220.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10220.yaml @@ -119,27 +119,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10221.yaml b/ingestion_tools/dataset_configs/gjensen/10221.yaml index a23955b18..d5c6c3aa2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10221.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10221.yaml @@ -119,27 +119,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10222.yaml b/ingestion_tools/dataset_configs/gjensen/10222.yaml index 15540f124..79d2fa8aa 100644 --- a/ingestion_tools/dataset_configs/gjensen/10222.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10222.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10223.yaml b/ingestion_tools/dataset_configs/gjensen/10223.yaml index 897dd765d..283445668 100644 --- a/ingestion_tools/dataset_configs/gjensen/10223.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10223.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: true + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10224.yaml b/ingestion_tools/dataset_configs/gjensen/10224.yaml index f4793a4e6..c639a4be2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10224.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10224.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10225.yaml b/ingestion_tools/dataset_configs/gjensen/10225.yaml index 067fe639b..5aa01530d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10225.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10225.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10226.yaml b/ingestion_tools/dataset_configs/gjensen/10226.yaml index 4477c86dd..d526851f6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10226.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10226.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10227.yaml b/ingestion_tools/dataset_configs/gjensen/10227.yaml index 9c4dbe39a..75a8d4c52 100644 --- a/ingestion_tools/dataset_configs/gjensen/10227.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10227.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10228.yaml b/ingestion_tools/dataset_configs/gjensen/10228.yaml index 7666681ee..c54f6bc9b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10228.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10228.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10229.yaml b/ingestion_tools/dataset_configs/gjensen/10229.yaml index 0911a0154..6c35c5962 100644 --- a/ingestion_tools/dataset_configs/gjensen/10229.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10229.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10230.yaml b/ingestion_tools/dataset_configs/gjensen/10230.yaml index 14f3cecbc..557e43b54 100644 --- a/ingestion_tools/dataset_configs/gjensen/10230.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10230.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10231.yaml b/ingestion_tools/dataset_configs/gjensen/10231.yaml index b542a370c..2bc9bd97d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10231.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10231.yaml @@ -119,27 +119,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10232.yaml b/ingestion_tools/dataset_configs/gjensen/10232.yaml index c1eeee6fa..c946f2d1f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10232.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10232.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10233.yaml b/ingestion_tools/dataset_configs/gjensen/10233.yaml index 2fd3a3d1d..73d4c8ec3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10233.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10233.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10234.yaml b/ingestion_tools/dataset_configs/gjensen/10234.yaml index 574f11d6e..0d53dd67d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10234.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10234.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10235.yaml b/ingestion_tools/dataset_configs/gjensen/10235.yaml index e6367a510..e4f451c53 100644 --- a/ingestion_tools/dataset_configs/gjensen/10235.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10235.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10236.yaml b/ingestion_tools/dataset_configs/gjensen/10236.yaml index 4027eee26..44d108444 100644 --- a/ingestion_tools/dataset_configs/gjensen/10236.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10236.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10237.yaml b/ingestion_tools/dataset_configs/gjensen/10237.yaml index 19b8b1b6e..ea88f196a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10237.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10237.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10238.yaml b/ingestion_tools/dataset_configs/gjensen/10238.yaml index d21af2fb6..472e7cf90 100644 --- a/ingestion_tools/dataset_configs/gjensen/10238.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10238.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10239.yaml b/ingestion_tools/dataset_configs/gjensen/10239.yaml index d7d7b4034..e61ca874c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10239.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10239.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10240.yaml b/ingestion_tools/dataset_configs/gjensen/10240.yaml index fd36065eb..4777ad264 100644 --- a/ingestion_tools/dataset_configs/gjensen/10240.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10240.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10241.yaml b/ingestion_tools/dataset_configs/gjensen/10241.yaml index ff5b75e22..0c47d7bd9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10241.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10241.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10242.yaml b/ingestion_tools/dataset_configs/gjensen/10242.yaml index cc5c7afde..0a80aa46a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10242.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10242.yaml @@ -73,27 +73,12 @@ standardization_config: source_prefix: GJensen_full tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: IMOD authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10243.yaml b/ingestion_tools/dataset_configs/gjensen/10243.yaml index 36a50a00c..9a62b5d82 100644 --- a/ingestion_tools/dataset_configs/gjensen/10243.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10243.yaml @@ -105,27 +105,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10244.yaml b/ingestion_tools/dataset_configs/gjensen/10244.yaml index b7dcbfb7f..47da9e8ec 100644 --- a/ingestion_tools/dataset_configs/gjensen/10244.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10244.yaml @@ -106,27 +106,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10245.yaml b/ingestion_tools/dataset_configs/gjensen/10245.yaml index dafdddec1..6f85935f3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10245.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10245.yaml @@ -107,27 +107,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10246.yaml b/ingestion_tools/dataset_configs/gjensen/10246.yaml index 942b75397..1b2e23663 100644 --- a/ingestion_tools/dataset_configs/gjensen/10246.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10246.yaml @@ -115,27 +115,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10247.yaml b/ingestion_tools/dataset_configs/gjensen/10247.yaml index 68623a587..e0aec3139 100644 --- a/ingestion_tools/dataset_configs/gjensen/10247.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10247.yaml @@ -116,27 +116,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10248.yaml b/ingestion_tools/dataset_configs/gjensen/10248.yaml index a5cfa9b80..1b77ad033 100644 --- a/ingestion_tools/dataset_configs/gjensen/10248.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10248.yaml @@ -117,27 +117,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10249.yaml b/ingestion_tools/dataset_configs/gjensen/10249.yaml index 4098bb847..7be46387c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10249.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10249.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10250.yaml b/ingestion_tools/dataset_configs/gjensen/10250.yaml index 377abc550..c3b62f81b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10250.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10250.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10251.yaml b/ingestion_tools/dataset_configs/gjensen/10251.yaml index 55e5ef8e6..217f09366 100644 --- a/ingestion_tools/dataset_configs/gjensen/10251.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10251.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10252.yaml b/ingestion_tools/dataset_configs/gjensen/10252.yaml index 0457de94e..796133eca 100644 --- a/ingestion_tools/dataset_configs/gjensen/10252.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10252.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10253.yaml b/ingestion_tools/dataset_configs/gjensen/10253.yaml index 408aef908..690278b76 100644 --- a/ingestion_tools/dataset_configs/gjensen/10253.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10253.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10254.yaml b/ingestion_tools/dataset_configs/gjensen/10254.yaml index f1110f5a9..9708fa3b1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10254.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10254.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10255.yaml b/ingestion_tools/dataset_configs/gjensen/10255.yaml index 5f8b06fda..67bbc4a8c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10255.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10255.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10256.yaml b/ingestion_tools/dataset_configs/gjensen/10256.yaml index 2ad0e8ce4..45274d295 100644 --- a/ingestion_tools/dataset_configs/gjensen/10256.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10256.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10257.yaml b/ingestion_tools/dataset_configs/gjensen/10257.yaml index 98fd7dc26..95d670644 100644 --- a/ingestion_tools/dataset_configs/gjensen/10257.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10257.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10258.yaml b/ingestion_tools/dataset_configs/gjensen/10258.yaml index 82495780d..ad2cf051e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10258.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10258.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10259.yaml b/ingestion_tools/dataset_configs/gjensen/10259.yaml index d7e8d2522..c5d9f76d7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10259.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10259.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10260.yaml b/ingestion_tools/dataset_configs/gjensen/10260.yaml index 9f1008dda..f5ec0c192 100644 --- a/ingestion_tools/dataset_configs/gjensen/10260.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10260.yaml @@ -107,27 +107,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10261.yaml b/ingestion_tools/dataset_configs/gjensen/10261.yaml index fb0f23143..2603b9466 100644 --- a/ingestion_tools/dataset_configs/gjensen/10261.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10261.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10262.yaml b/ingestion_tools/dataset_configs/gjensen/10262.yaml index 94102e77c..dba22f5b4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10262.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10262.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10263.yaml b/ingestion_tools/dataset_configs/gjensen/10263.yaml index 1543f8625..00414b94d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10263.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10263.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10264.yaml b/ingestion_tools/dataset_configs/gjensen/10264.yaml index 5dcfb2bc4..22ee067b6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10264.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10264.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10265.yaml b/ingestion_tools/dataset_configs/gjensen/10265.yaml index b8accfd03..44b891264 100644 --- a/ingestion_tools/dataset_configs/gjensen/10265.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10265.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10266.yaml b/ingestion_tools/dataset_configs/gjensen/10266.yaml index 76f9f0d3f..ae1a26298 100644 --- a/ingestion_tools/dataset_configs/gjensen/10266.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10266.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10267.yaml b/ingestion_tools/dataset_configs/gjensen/10267.yaml index 2c4d8ce0e..c60e5d6ce 100644 --- a/ingestion_tools/dataset_configs/gjensen/10267.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10267.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10268.yaml b/ingestion_tools/dataset_configs/gjensen/10268.yaml index 5a66ef699..b54094245 100644 --- a/ingestion_tools/dataset_configs/gjensen/10268.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10268.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10269.yaml b/ingestion_tools/dataset_configs/gjensen/10269.yaml index 8b8914c53..e15fd3673 100644 --- a/ingestion_tools/dataset_configs/gjensen/10269.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10269.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10270.yaml b/ingestion_tools/dataset_configs/gjensen/10270.yaml index 1c9d99021..328d1406f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10270.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10270.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10271.yaml b/ingestion_tools/dataset_configs/gjensen/10271.yaml index c1e600522..1615d31fa 100644 --- a/ingestion_tools/dataset_configs/gjensen/10271.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10271.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10272.yaml b/ingestion_tools/dataset_configs/gjensen/10272.yaml index 60be474c6..ab1e16650 100644 --- a/ingestion_tools/dataset_configs/gjensen/10272.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10272.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10273.yaml b/ingestion_tools/dataset_configs/gjensen/10273.yaml index ec5492870..f3f03e1cf 100644 --- a/ingestion_tools/dataset_configs/gjensen/10273.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10273.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10274.yaml b/ingestion_tools/dataset_configs/gjensen/10274.yaml index a159ab8ae..696a9c435 100644 --- a/ingestion_tools/dataset_configs/gjensen/10274.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10274.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10275.yaml b/ingestion_tools/dataset_configs/gjensen/10275.yaml index ed0d1ebb9..1f4cef141 100644 --- a/ingestion_tools/dataset_configs/gjensen/10275.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10275.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10276.yaml b/ingestion_tools/dataset_configs/gjensen/10276.yaml index 0cc8ac8d7..d496f7c42 100644 --- a/ingestion_tools/dataset_configs/gjensen/10276.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10276.yaml @@ -114,27 +114,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10277.yaml b/ingestion_tools/dataset_configs/gjensen/10277.yaml index c55cc9f2d..3c1ef60f3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10277.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10277.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10278.yaml b/ingestion_tools/dataset_configs/gjensen/10278.yaml index 413acc1df..71ca7274c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10278.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10278.yaml @@ -105,27 +105,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10279.yaml b/ingestion_tools/dataset_configs/gjensen/10279.yaml index 15fc6a86a..dd7f731e2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10279.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10279.yaml @@ -106,27 +106,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10280.yaml b/ingestion_tools/dataset_configs/gjensen/10280.yaml index 00c0ba7ec..745aa64b4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10280.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10280.yaml @@ -106,27 +106,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10281.yaml b/ingestion_tools/dataset_configs/gjensen/10281.yaml index d7e0833e0..c3566ed2d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10281.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10281.yaml @@ -107,27 +107,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10282.yaml b/ingestion_tools/dataset_configs/gjensen/10282.yaml index 6bc370e66..916b55cd9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10282.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10282.yaml @@ -108,27 +108,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10283.yaml b/ingestion_tools/dataset_configs/gjensen/10283.yaml index 4a74dd6f2..f23508676 100644 --- a/ingestion_tools/dataset_configs/gjensen/10283.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10283.yaml @@ -108,27 +108,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10284.yaml b/ingestion_tools/dataset_configs/gjensen/10284.yaml index 1e880afc9..aeb6081d1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10284.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10284.yaml @@ -107,27 +107,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10285.yaml b/ingestion_tools/dataset_configs/gjensen/10285.yaml index bf58c4bfd..348edd6a1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10285.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10285.yaml @@ -106,27 +106,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10286.yaml b/ingestion_tools/dataset_configs/gjensen/10286.yaml index de4a4fa57..8ee91b1b5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10286.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10286.yaml @@ -107,27 +107,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10287.yaml b/ingestion_tools/dataset_configs/gjensen/10287.yaml index d61afa803..7e34f7716 100644 --- a/ingestion_tools/dataset_configs/gjensen/10287.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10287.yaml @@ -110,27 +110,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10288.yaml b/ingestion_tools/dataset_configs/gjensen/10288.yaml index e2c02a8f8..276eaba40 100644 --- a/ingestion_tools/dataset_configs/gjensen/10288.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10288.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10289.yaml b/ingestion_tools/dataset_configs/gjensen/10289.yaml index 3e768ca6d..6c0e4e593 100644 --- a/ingestion_tools/dataset_configs/gjensen/10289.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10289.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10290.yaml b/ingestion_tools/dataset_configs/gjensen/10290.yaml index 0a41dbb4e..dd511b234 100644 --- a/ingestion_tools/dataset_configs/gjensen/10290.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10290.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10291.yaml b/ingestion_tools/dataset_configs/gjensen/10291.yaml index 208521cc3..bae4076a6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10291.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10291.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10292.yaml b/ingestion_tools/dataset_configs/gjensen/10292.yaml index 2643122bb..7e81df05f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10292.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10292.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10293.yaml b/ingestion_tools/dataset_configs/gjensen/10293.yaml index 24cbe6d9b..e6b118e14 100644 --- a/ingestion_tools/dataset_configs/gjensen/10293.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10293.yaml @@ -113,27 +113,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10294.yaml b/ingestion_tools/dataset_configs/gjensen/10294.yaml index 418b5b577..f995adbb7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10294.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10294.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10295.yaml b/ingestion_tools/dataset_configs/gjensen/10295.yaml index 72812b25a..4c3807aff 100644 --- a/ingestion_tools/dataset_configs/gjensen/10295.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10295.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: '{tomo-fiducial_alignment_status}' + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10296.yaml b/ingestion_tools/dataset_configs/gjensen/10296.yaml index 8dba71cf0..2ee7a23f5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10296.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10296.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10297.yaml b/ingestion_tools/dataset_configs/gjensen/10297.yaml index ff2b54f64..244d9307e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10297.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10297.yaml @@ -112,27 +112,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10298.yaml b/ingestion_tools/dataset_configs/gjensen/10298.yaml index b34f2bc9d..35cb37bc5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10298.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10298.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10299.yaml b/ingestion_tools/dataset_configs/gjensen/10299.yaml index 90bc98f14..15643bdd2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10299.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10299.yaml @@ -111,27 +111,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/gjensen/10300.yaml b/ingestion_tools/dataset_configs/gjensen/10300.yaml index ad9f48f2e..1ac5d2e05 100644 --- a/ingestion_tools/dataset_configs/gjensen/10300.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10300.yaml @@ -109,27 +109,12 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null + dates: *id002 fiducial_alignment_status: FIDUCIAL + is_visualization_default: true offset: x: 0 y: 0 diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index 46f0509d4..b6c9e9a7f 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -6,7 +6,7 @@ alignments: OPTIONAL - ... (4 FLOAT ELEMENTS) - ... (4 FLOAT ELEMENTS) - ... (4 FLOAT ELEMENTS) - alignment_type: REQUIRED, ENUM(LOCAL,GLOBAL) + alignment_type: REQUIRED, ENUM(LOCAL,GLOBAL), (DEFAULT, GLOBAL) is_canonical: REQUIRED, BOOLEAN (DEFAULT TRUE) offset: OPTIONAL x: REQUIRED, INTEGER, DEFAULT 0 diff --git a/ingestion_tools/migrate.py b/ingestion_tools/migrate.py new file mode 100644 index 000000000..eca964427 --- /dev/null +++ b/ingestion_tools/migrate.py @@ -0,0 +1,170 @@ +import glob +from typing import Union + +import itertools +import numpy as np +import yaml + + +def rawtilts_to_collection_metadata(config: dict) -> bool: + list_globs = [] + if 'rawtilts' in config: + for i in config['rawtilts']: + if "sources" not in i: + continue + old_source = i["sources"][0]["source_multi_glob"]["list_globs"] + list_globs.extend(s for s in old_source if s.endswith('.mdoc')) + for source in list_globs: + old_source.remove(source) + if list_globs: + config["collection_metadata"] = [{"sources": [{"source_multi_glob": {"list_globs": list_globs}}]}] + + return bool(list_globs) + + +def rawtilts_to_alignments(config: dict) -> bool: + list_globs = [] + format_dict = { + "IMOD": [], + "ARETOMO3": [] + } + + def valid_file(file): + return any(file.endswith(ext) for ext in ['.tlt', ".xf", ".aln", ".com"]) + + def get_format(file): + if any(file.endswith(ext) for ext in ['.tlt', ".xf", ".com"]): + format_dict["IMOD"].append(file) + elif any(file.endswith(ext) for ext in ['.aln']): + format_dict["ARETOMO3"].append(file) + + if len(config.get('tomograms', [])) > 1 or len(config.get("rawtilts", [])) > 1: + raise ValueError("More than one tomogram or rawtilt") + + if 'rawtilts' in config: + for i in config['rawtilts']: + if "sources" not in i: + continue + old_source = i["sources"][0]["source_multi_glob"]["list_globs"] + list_globs.extend(s for s in old_source if valid_file(s)) + for source in list_globs: + old_source.remove(source) + get_format(source) + if list_globs: + if 'alignments' not in config: + config['alignments'] = [] + for key, files in format_dict.items(): + if files: + alignment = { + "metadata": {"format": key}, + "sources": [{"source_multi_glob": {"list_globs": files}}]} + + if 'tomograms' in config: + for i in config['tomograms']: + if "metadata" not in i: + continue + affine_transformation_matrix = i["metadata"].pop("affine_transformation_matrix", None) + if affine_transformation_matrix: + alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix + config["alignments"].append(alignment) + return bool(list_globs) + + +def update_tomogram_metadata(config: dict) -> bool: + changed = False + if tomograms := config.get("tomograms"): + for tomogram in tomograms: + if metadata := tomogram.get("metadata"): + changed = True + metadata["is_visualization_default"] = True + try: + dates = config["depositions"][0]["metadata"]["dates"] + except (KeyError, IndexError): + dates = { + "deposition_date": '1970-01-01', + "last_modified_date": '1970-01-01', + "release_date": '1970-01-01'} + metadata["dates"] = dates + if affine_transformation_matrix := metadata.pop("affine_transformation_matrix", None): + # check if afine_transformation_matrix is an identity matrix + if not np.allclose(affine_transformation_matrix, np.eye(4)): + ValueError("affine_transformation_matrix is not an identity matrix") + return changed + +def update_annotation_sources(config: dict) -> bool: + changed = False + if annotations := config.get('annotations'): + for annotation in annotations: + if sources := annotation.get("sources"): + changed = True + for source in sources: + for value in source.values(): + value["is_portal_standard"] = False + return changed + +def remove_empty_fields(config: Union[list, dict]) -> bool: + changed = False + remove_key = [] + exclude_keys = ['annotations'] + if isinstance(config, list): + for i in config: + if isinstance(i, (list, dict)): + changed = remove_empty_fields(i) + if len(i) == 0: + remove_key.append(i) + if remove_key: + changed = True + for key in remove_key: + config.remove(key) + elif isinstance(config, dict): + for key, value in config.items(): + if isinstance(value, (list, dict)): + changed = remove_empty_fields(value) + if len(value) == 0: + remove_key.append(key) + if remove_key: + changed = True + for key in remove_key: + if key in exclude_keys: + continue + config.pop(key) + return changed + + +def migrate_config(file_path): + with open(file_path, 'r') as file: + config = yaml.safe_load(file) + + changes: list[bool] = [] + try: + changes.append(rawtilts_to_collection_metadata(config)) + changes.append(rawtilts_to_alignments(config)) + changes.append(update_tomogram_metadata(config)) + except Exception as e: + print(f"Error in {get_relative_path(file_path)}: {e}") + return + + if any(changes): + remove_empty_fields(config) + relative_path = file_path[file_path.find("cryoet-data-portal-backend"):] + print(f"modified: {relative_path}") + with open(file_path, 'w') as file: + yaml.safe_dump(config, file) + + +def get_relative_path(file_path): + return file_path[file_path.find("cryoet-data-portal-backend"):] + + +# Update all config files +config_files = glob.glob( + '/Users/trentsmith/workspace/cryoet/cryoet-data-portal-backend/ingestion_tools/dataset_configs/**/*.yaml', + recursive=True) +test_config_files = glob.glob( + '/Users/trentsmith/workspace/cryoet/cryoet-data-portal-backend/ingestion_tools/dataset_configs/tests/**/*.yaml', + recursive=True) +configs = itertools.chain(config_files, test_config_files) +for config_file in configs: + if "template" in config_file: + continue + migrate_config(config_file) diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index f9a3fe586..c2bad2515 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -4074,7 +4074,6 @@ classes: domain_of: - Alignment range: alignment_type_enum - required: true inlined: true inlined_as_list: true pattern: (^LOCAL$)|(^GLOBAL$) diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index a3beb44d7..6fb2cce0e 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4144,8 +4144,8 @@ def pattern_z(cls, v): class Alignment(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - alignment_type: AlignmentTypeEnum = Field( - ..., + alignment_type: Optional[AlignmentTypeEnum] = Field( + None, description="""The type of alignment.""", json_schema_extra={"linkml_meta": {"alias": "alignment_type", "domain_of": ["Alignment"]}}, ) diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index a40a3603a..30139097c 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -810,7 +810,6 @@ classes: alignment_type: description: The type of alignment. range: alignment_type_enum - required: true offset: description: *desc_alignment_offset range: AlignmentOffset diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index b7ed71d60..fe6ad6628 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -2507,7 +2507,7 @@ def pattern_z(cls, v): class Alignment(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - alignment_type: AlignmentTypeEnum = Field(..., description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', 'domain_of': ['Alignment']} }) + alignment_type: Optional[AlignmentTypeEnum] = Field(None, description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', 'domain_of': ['Alignment']} }) offset: Optional[AlignmentOffset] = Field(None, description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) volume_dimesion: Optional[AlignmentSize] = Field(None, description="""The size of an alignment in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'volume_dimesion', 'domain_of': ['Alignment']} }) x_rotation_offset: Optional[Union[int, str]] = Field(0, description="""The x rotation offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'x_rotation_offset', diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json index a8796229b..f62498ebd 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -85,7 +85,6 @@ } }, "required": [ - "alignment_type", "format" ], "title": "Alignment", From 97ab3c9849f1e0a0912ec071a26778953a8838c7 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 13 Sep 2024 09:53:39 -0700 Subject: [PATCH 24/59] add docstring to migrate script --- ingestion_tools/dataset_configs/template.yaml | 6 +++--- .../ingestion_config/migrations/issue_997.py | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) rename ingestion_tools/migrate.py => schema/ingestion_config/migrations/issue_997.py (97%) diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index b6c9e9a7f..a3d6487ca 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -9,9 +9,9 @@ alignments: OPTIONAL alignment_type: REQUIRED, ENUM(LOCAL,GLOBAL), (DEFAULT, GLOBAL) is_canonical: REQUIRED, BOOLEAN (DEFAULT TRUE) offset: OPTIONAL - x: REQUIRED, INTEGER, DEFAULT 0 - y: REQUIRED, INTEGER, DEFAULT 0 - z: REQUIRED, INTEGER, DEFAULT 0 + x: REQUIRED, INTEGER,(DEFAULT 0) + y: REQUIRED, INTEGER, (DEFAULT 0) + z: REQUIRED, INTEGER, (DEFAULT 0) tilt_offset: REQUIRED, FLOAT (DEFAULT 0.0) x_rotation_offset: REQUIRED, INTEGER (DEFAULT 0) format: REQUIRED, ENUM(IMOD, ARETOMO3) diff --git a/ingestion_tools/migrate.py b/schema/ingestion_config/migrations/issue_997.py similarity index 97% rename from ingestion_tools/migrate.py rename to schema/ingestion_config/migrations/issue_997.py index eca964427..5c9a98529 100644 --- a/ingestion_tools/migrate.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -1,3 +1,7 @@ +""" +This script migrates the ingest config files to a new schema based on the changes outlines in +https://github.com/chanzuckerberg/cryoet-data-portal/issues/997 +""" import glob from typing import Union From 3ec3c58c87576ee59570e1c19411431cd6f7e2c1 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 13 Sep 2024 10:17:01 -0700 Subject: [PATCH 25/59] run linter --- schema/core/v1.1.0/codegen/metadata_models.py | 1 - schema/ingestion_config/migrations/issue_997.py | 13 +++++++------ .../v1.0.0/codegen/ingestion_config_models.py | 7 +++---- .../v1.0.0/ingestion_config_models_extended.py | 3 ++- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 6fb2cce0e..62a803d49 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4768,4 +4768,3 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() - diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 5c9a98529..4974c2da8 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -3,9 +3,9 @@ https://github.com/chanzuckerberg/cryoet-data-portal/issues/997 """ import glob +import itertools from typing import Union -import itertools import numpy as np import yaml @@ -30,7 +30,7 @@ def rawtilts_to_alignments(config: dict) -> bool: list_globs = [] format_dict = { "IMOD": [], - "ARETOMO3": [] + "ARETOMO3": [], } def valid_file(file): @@ -89,12 +89,12 @@ def update_tomogram_metadata(config: dict) -> bool: "last_modified_date": '1970-01-01', "release_date": '1970-01-01'} metadata["dates"] = dates - if affine_transformation_matrix := metadata.pop("affine_transformation_matrix", None): - # check if afine_transformation_matrix is an identity matrix - if not np.allclose(affine_transformation_matrix, np.eye(4)): - ValueError("affine_transformation_matrix is not an identity matrix") + affine_transformation_matrix = metadata.pop("affine_transformation_matrix", None) + if affine_transformation_matrix and not np.allclose(affine_transformation_matrix, np.eye(4)): + ValueError("affine_transformation_matrix is not an identity matrix") return changed + def update_annotation_sources(config: dict) -> bool: changed = False if annotations := config.get('annotations'): @@ -106,6 +106,7 @@ def update_annotation_sources(config: dict) -> bool: value["is_portal_standard"] = False return changed + def remove_empty_fields(config: Union[list, dict]) -> bool: changed = False remove_key = [] diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index fe6ad6628..8ab9907da 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -6671,4 +6671,3 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() - diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py b/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py index 896cb5d65..2ecf21777 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models_extended.py @@ -12,7 +12,8 @@ import numpy from async_lru import alru_cache from codegen.ingestion_config_models import ( - Alignment, AlignmentEntity, + Alignment, + AlignmentEntity, AlignmentSource, Annotation, AnnotationConfidence, From 517df5c4377e2d8df22be211c4a5a12d2acddeb6 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 13 Sep 2024 10:32:01 -0700 Subject: [PATCH 26/59] removed extra changes and run schema gen --- apiv2/schema/schema.yaml | 1 - ingestion_tools/scripts/common/config.py | 1 - ingestion_tools/scripts/importers/aligment.py | 16 - ingestion_tools/scripts/standardize_dirs.py | 3 - .../tests/fixtures/alignment/alignment1.yaml | 83 ----- schema/api/v1.0.0/codegen/ER_DIAGRAM.md | 325 +++++++++--------- .../codegen/api_models_materialized.yaml | 22 ++ schema/core/v1.1.0/codegen/metadata_models.py | 1 + .../v1.0.0/codegen/ingestion_config_models.py | 7 +- 9 files changed, 190 insertions(+), 269 deletions(-) delete mode 100644 ingestion_tools/scripts/importers/aligment.py delete mode 100644 ingestion_tools/scripts/tests/fixtures/alignment/alignment1.yaml diff --git a/apiv2/schema/schema.yaml b/apiv2/schema/schema.yaml index dafb66283..fd5392136 100644 --- a/apiv2/schema/schema.yaml +++ b/apiv2/schema/schema.yaml @@ -409,7 +409,6 @@ enums: name: alignment_type_enum description: Type of alignment from_schema: cdp-dataset-config - ifabsent: "GLOBAL" permissible_values: LOCAL: text: LOCAL diff --git a/ingestion_tools/scripts/common/config.py b/ingestion_tools/scripts/common/config.py index 4d83d2f92..7276466f5 100644 --- a/ingestion_tools/scripts/common/config.py +++ b/ingestion_tools/scripts/common/config.py @@ -250,7 +250,6 @@ def resolve_output_path(self, key: str, obj: BaseImporter) -> str: "frame": "{dataset_name}/{run_name}/Frames", "rawtilt": "{dataset_name}/{run_name}/TiltSeries", "collection_metadata": "{dataset_name}/{run_name}/TiltSeries", - "alignment": "{dataset_name}/{run_name}/TiltSeries", "annotation": "{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/Annotations", "annotation_metadata": "{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/Annotations", "run_metadata": "{dataset_name}/{run_name}/run_metadata.json", diff --git a/ingestion_tools/scripts/importers/aligment.py b/ingestion_tools/scripts/importers/aligment.py deleted file mode 100644 index 78fa6a826..000000000 --- a/ingestion_tools/scripts/importers/aligment.py +++ /dev/null @@ -1,16 +0,0 @@ -from common.finders import DefaultImporterFactory -from importers.base_importer import BaseFileImporter - - -class AlignmentImporter(BaseFileImporter): - type_key = "alignment" - plural_key = "alignments" - finder_factory = DefaultImporterFactory - has_metadata = True - - # TODO: check if this is needed? - # def import_metadata(self): - # dest_ts_metadata = self.get_metadata_path() - # base_metadata = self.get_base_metadata() - # metadata = AlignmentMetadata(self.config.fs, self.get_deposition().name, base_metadata) - # metadata.write_metadata(dest_ts_metadata, {}) diff --git a/ingestion_tools/scripts/standardize_dirs.py b/ingestion_tools/scripts/standardize_dirs.py index 206f3a805..99e49c37c 100644 --- a/ingestion_tools/scripts/standardize_dirs.py +++ b/ingestion_tools/scripts/standardize_dirs.py @@ -2,7 +2,6 @@ from typing import Any, Optional import click -from importers.aligment import AlignmentImporter from importers.annotation import AnnotationImporter from importers.collection_metadata import CollectionMetadataImporter from importers.dataset import DatasetImporter @@ -25,7 +24,6 @@ IMPORTERS = [ AnnotationImporter, - AlignmentImporter, CollectionMetadataImporter, DatasetKeyPhotoImporter, DatasetImporter, @@ -63,7 +61,6 @@ TiltSeriesImporter: {}, RawTiltImporter: {}, CollectionMetadataImporter: {}, - AlignmentImporter: {}, }, DatasetKeyPhotoImporter: {}, }, diff --git a/ingestion_tools/scripts/tests/fixtures/alignment/alignment1.yaml b/ingestion_tools/scripts/tests/fixtures/alignment/alignment1.yaml deleted file mode 100644 index 361c14697..000000000 --- a/ingestion_tools/scripts/tests/fixtures/alignment/alignment1.yaml +++ /dev/null @@ -1,83 +0,0 @@ -alignment: -- metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 - alignment_type: -- sources: - - source_multi_glob: - list_glob: - - metadata/{run_name}.xf -datasets: -- metadata: - authors: &id002 - - ORCID: 0000-0001-0001-0001 - name: Author 1 - primary_author_status: true - - ORCID: 0000-0002-0002-0002 - name: Author 2 - - ORCID: 0000-0003-0003-0003 - corresponding_author_status: true - name: Author 3 - cell_component: - id: null - name: null - cell_strain: - id: https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=88888 - name: Strain 1 - cross_references: &id003 - publications: doi:10.1101/2022.01.01.00001 - related_database_entries: EMPIAR-00001, EMD-00001, EMD-00002 - dataset_description: Description for Dataset 1 - dataset_identifier: 10001 - dataset_title: Dataset 1 - dates: *id001 - funding: - - funding_agency_name: Super Funding Agency - grant_id: '100001' - grid_preparation: 'material: COPPER,' - organism: - name: Organism 1 - taxonomy_id: 9999 - sample_preparation: 'buffer_ph: 7.0' - sample_type: organism - sources: - - literal: - value: - - '10001' -depositions: -- metadata: - authors: *id002 - cross_references: *id003 - deposition_description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed" - deposition_identifier: 10301 - deposition_title: Deposition 1 - dates: *id001 - sources: - - literal: - value: - - '10301' -runs: -- sources: - - source_glob: - list_glob: tomograms/TS_*.rec - match_regex: .* - name_regex: (.*).rec -standardization_config: - deposition_id: 10001 - run_to_tomo_map_csv: null - source_prefix: input_bucket/10001_input diff --git a/schema/api/v1.0.0/codegen/ER_DIAGRAM.md b/schema/api/v1.0.0/codegen/ER_DIAGRAM.md index 70d56b1d8..4a7104d19 100644 --- a/schema/api/v1.0.0/codegen/ER_DIAGRAM.md +++ b/schema/api/v1.0.0/codegen/ER_DIAGRAM.md @@ -1,193 +1,193 @@ ```mermaid erDiagram Dataset { - string title - string description - string organism_name - integer organism_taxid - string tissue_name - BTO_ID tissue_id - string cell_name - CL_ID cell_type_id - string cell_strain_name - string cell_strain_id - string sample_preparation - string grid_preparation - string other_setup - string key_photo_url - string key_photo_thumbnail_url - string cell_component_name - GO_ID cell_component_id - integer id - date deposition_date - date release_date - date last_modified_date - DOI_LIST publications - EMPIAR_EMDB_PDB_LIST related_database_entries - string related_database_links - string dataset_citations - string s3_prefix - string https_prefix + string title + string description + string organism_name + integer organism_taxid + string tissue_name + BTO_ID tissue_id + string cell_name + CL_ID cell_type_id + string cell_strain_name + string cell_strain_id + string sample_preparation + string grid_preparation + string other_setup + string key_photo_url + string key_photo_thumbnail_url + string cell_component_name + GO_ID cell_component_id + integer id + date deposition_date + date release_date + date last_modified_date + DOI_LIST publications + EMPIAR_EMDB_PDB_LIST related_database_entries + string related_database_links + string dataset_citations + string s3_prefix + string https_prefix } DatasetAuthor { - integer author_list_order - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status - ORCID orcid - integer annotation_id - integer id + integer author_list_order + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status + ORCID orcid + integer annotation_id + integer id } Run { - string name - integer id - string s3_prefix - string https_prefix + string name + integer id + string s3_prefix + string https_prefix } TomogramVoxelSpacing { - TomogramList tomograms - float voxel_spacing - integer id - string s3_prefix - string https_prefix + TomogramList tomograms + float voxel_spacing + integer id + string s3_prefix + string https_prefix } Annotation { - string s3_metadata_path - string https_metadata_path - EMPIAR_EMDB_DOI_PDB_LIST annotation_publication - string annotation_method - boolean ground_truth_status - string object_id - string object_name - string object_description - string object_state - integer object_count - float confidence_precision - float confidence_recall - string ground_truth_used - string annotation_software - boolean is_curator_recommended - annotation_method_type_enum method_type - string method_links - integer id - date deposition_date - date release_date - date last_modified_date + string s3_metadata_path + string https_metadata_path + EMPIAR_EMDB_DOI_PDB_LIST annotation_publication + string annotation_method + boolean ground_truth_status + string object_id + string object_name + string object_description + string object_state + integer object_count + float confidence_precision + float confidence_recall + string ground_truth_used + string annotation_software + boolean is_curator_recommended + annotation_method_type_enum method_type + string method_links + integer id + date deposition_date + date release_date + date last_modified_date } Deposition { - integer id + integer id } Tomograms { - string name - float size_x - float size_y - float size_z - float voxel_spacing - fiducial_alignment_status_enum fiducial_alignment_status - tomogram_reconstruction_method_enum reconstruction_method - tomogram_processing_enum processing - boolean is_canonical - string s3_omezarr_dir - string https_omezarr_dir - string s3_mrc_scale0 - string https_mrc_scale0 - string scale0_dimensions - string scale1_dimensions - string scale2_dimensions - boolean ctf_corrected - integer offset_x - integer offset_y - integer offset_z - string key_photo_url - string key_photo_thumbnail_url - string neuroglancer_config - TomogramType type - integer id - string s3_prefix - string https_prefix + string name + float size_x + float size_y + float size_z + float voxel_spacing + fiducial_alignment_status_enum fiducial_alignment_status + tomogram_reconstruction_method_enum reconstruction_method + tomogram_processing_enum processing + boolean is_canonical + string s3_omezarr_dir + string https_omezarr_dir + string s3_mrc_scale0 + string https_mrc_scale0 + string scale0_dimensions + string scale1_dimensions + string scale2_dimensions + boolean ctf_corrected + integer offset_x + integer offset_y + integer offset_z + string key_photo_url + string key_photo_thumbnail_url + string neuroglancer_config + TomogramType type + integer id + string s3_prefix + string https_prefix } Any { } TomogramAuthor { - Tomogram tomogram - integer id - integer author_list_order - ORCID orcid - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status + Tomogram tomogram + integer id + integer author_list_order + ORCID orcid + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status } AnnotationAuthor { - integer id - integer author_list_order - ORCID orcid - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status + integer id + integer author_list_order + ORCID orcid + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status } AnnotationFile { - annotation_file_shape_type_enum shape_type - string format - string s3_path - string https_path - boolean is_visualization_default - integer id + annotation_file_shape_type_enum shape_type + string format + string s3_path + string https_path + boolean is_visualization_default + integer id } Tiltseries { - string s3_omezarr_dir - string s3_mrc_bin1 - string https_omezarr_dir - string https_mrc_bin1 - string s3_collection_metadata - string https_collection_metadata - string s3_angle_list - string https_angle_list - string s3_alignment_file - string https_alignment_file - float acceleration_voltage - float spherical_abberation_constant - tiltseries_microscope_manufacturer_enum microscope_manufacturer - string microscope_model - string microscope_energy_filter - string microscope_phase_plate - string microscope_image_corrector - string microscope_additional_info - string camera_manufacturer - string camera_model - float tilt_min - float tilt_max - float tilt_range - float tilt_step - string tilting_scheme - float tilt_axis - float total_flux - string data_acquisition_software - EMPIAR_ID related_empiar_entry - float binning_from_frames - integer tilt_series_quality - boolean is_aligned - float pixel_spacing - float aligned_tiltseries_binning - integer tiltseries_frames_count - integer id + string s3_omezarr_dir + string s3_mrc_bin1 + string https_omezarr_dir + string https_mrc_bin1 + string s3_collection_metadata + string https_collection_metadata + string s3_angle_list + string https_angle_list + string s3_alignment_file + string https_alignment_file + float acceleration_voltage + float spherical_abberation_constant + tiltseries_microscope_manufacturer_enum microscope_manufacturer + string microscope_model + string microscope_energy_filter + string microscope_phase_plate + string microscope_image_corrector + string microscope_additional_info + string camera_manufacturer + string camera_model + float tilt_min + float tilt_max + float tilt_range + float tilt_step + string tilting_scheme + float tilt_axis + float total_flux + string data_acquisition_software + EMPIAR_ID related_empiar_entry + float binning_from_frames + integer tilt_series_quality + boolean is_aligned + float pixel_spacing + float aligned_tiltseries_binning + integer tiltseries_frames_count + integer id } DatasetFunding { - string funding_agency_name - string grant_id - integer id + string funding_agency_name + string grant_id + integer id } Dataset ||--|o Deposition : "deposition" @@ -218,3 +218,4 @@ Tiltseries ||--|| Run : "run" DatasetFunding ||--|o Dataset : "dataset" ``` + diff --git a/schema/api/v1.0.0/codegen/api_models_materialized.yaml b/schema/api/v1.0.0/codegen/api_models_materialized.yaml index 39a83df63..31390d604 100644 --- a/schema/api/v1.0.0/codegen/api_models_materialized.yaml +++ b/schema/api/v1.0.0/codegen/api_models_materialized.yaml @@ -367,6 +367,28 @@ enums: UNKNOWN: text: UNKNOWN description: Tomogram's was not submitted by the dataset author + alignment_type_enum: + name: alignment_type_enum + description: Type of alignment + from_schema: cdp-api-models + permissible_values: + LOCAL: + text: LOCAL + description: Local alignment + GLOBAL: + text: GLOBAL + description: Global alignment + alignment_format_enum: + name: alignment_format_enum + description: Used to determine what alignment alogrithm to use. + from_schema: cdp-api-models + permissible_values: + IMOD: + text: IMOD + description: formats (xf, tlt, com) + ARETOMO3: + text: ARETOMO3 + description: formats (aln) annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 62a803d49..6fb2cce0e 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4768,3 +4768,4 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() + diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 8ab9907da..fe6ad6628 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -6671,3 +6671,4 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() + From 2a2ca56d077f7c9d6bf4433c50de0c65d3636339 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 13 Sep 2024 11:08:39 -0700 Subject: [PATCH 27/59] lint --- schema/api/v1.0.0/codegen/ER_DIAGRAM.md | 325 +++++++++--------- schema/core/v1.1.0/codegen/metadata_models.py | 1 - .../v1.0.0/codegen/ingestion_config_models.py | 7 +- 3 files changed, 165 insertions(+), 168 deletions(-) diff --git a/schema/api/v1.0.0/codegen/ER_DIAGRAM.md b/schema/api/v1.0.0/codegen/ER_DIAGRAM.md index 4a7104d19..70d56b1d8 100644 --- a/schema/api/v1.0.0/codegen/ER_DIAGRAM.md +++ b/schema/api/v1.0.0/codegen/ER_DIAGRAM.md @@ -1,193 +1,193 @@ ```mermaid erDiagram Dataset { - string title - string description - string organism_name - integer organism_taxid - string tissue_name - BTO_ID tissue_id - string cell_name - CL_ID cell_type_id - string cell_strain_name - string cell_strain_id - string sample_preparation - string grid_preparation - string other_setup - string key_photo_url - string key_photo_thumbnail_url - string cell_component_name - GO_ID cell_component_id - integer id - date deposition_date - date release_date - date last_modified_date - DOI_LIST publications - EMPIAR_EMDB_PDB_LIST related_database_entries - string related_database_links - string dataset_citations - string s3_prefix - string https_prefix + string title + string description + string organism_name + integer organism_taxid + string tissue_name + BTO_ID tissue_id + string cell_name + CL_ID cell_type_id + string cell_strain_name + string cell_strain_id + string sample_preparation + string grid_preparation + string other_setup + string key_photo_url + string key_photo_thumbnail_url + string cell_component_name + GO_ID cell_component_id + integer id + date deposition_date + date release_date + date last_modified_date + DOI_LIST publications + EMPIAR_EMDB_PDB_LIST related_database_entries + string related_database_links + string dataset_citations + string s3_prefix + string https_prefix } DatasetAuthor { - integer author_list_order - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status - ORCID orcid - integer annotation_id - integer id + integer author_list_order + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status + ORCID orcid + integer annotation_id + integer id } Run { - string name - integer id - string s3_prefix - string https_prefix + string name + integer id + string s3_prefix + string https_prefix } TomogramVoxelSpacing { - TomogramList tomograms - float voxel_spacing - integer id - string s3_prefix - string https_prefix + TomogramList tomograms + float voxel_spacing + integer id + string s3_prefix + string https_prefix } Annotation { - string s3_metadata_path - string https_metadata_path - EMPIAR_EMDB_DOI_PDB_LIST annotation_publication - string annotation_method - boolean ground_truth_status - string object_id - string object_name - string object_description - string object_state - integer object_count - float confidence_precision - float confidence_recall - string ground_truth_used - string annotation_software - boolean is_curator_recommended - annotation_method_type_enum method_type - string method_links - integer id - date deposition_date - date release_date - date last_modified_date + string s3_metadata_path + string https_metadata_path + EMPIAR_EMDB_DOI_PDB_LIST annotation_publication + string annotation_method + boolean ground_truth_status + string object_id + string object_name + string object_description + string object_state + integer object_count + float confidence_precision + float confidence_recall + string ground_truth_used + string annotation_software + boolean is_curator_recommended + annotation_method_type_enum method_type + string method_links + integer id + date deposition_date + date release_date + date last_modified_date } Deposition { - integer id + integer id } Tomograms { - string name - float size_x - float size_y - float size_z - float voxel_spacing - fiducial_alignment_status_enum fiducial_alignment_status - tomogram_reconstruction_method_enum reconstruction_method - tomogram_processing_enum processing - boolean is_canonical - string s3_omezarr_dir - string https_omezarr_dir - string s3_mrc_scale0 - string https_mrc_scale0 - string scale0_dimensions - string scale1_dimensions - string scale2_dimensions - boolean ctf_corrected - integer offset_x - integer offset_y - integer offset_z - string key_photo_url - string key_photo_thumbnail_url - string neuroglancer_config - TomogramType type - integer id - string s3_prefix - string https_prefix + string name + float size_x + float size_y + float size_z + float voxel_spacing + fiducial_alignment_status_enum fiducial_alignment_status + tomogram_reconstruction_method_enum reconstruction_method + tomogram_processing_enum processing + boolean is_canonical + string s3_omezarr_dir + string https_omezarr_dir + string s3_mrc_scale0 + string https_mrc_scale0 + string scale0_dimensions + string scale1_dimensions + string scale2_dimensions + boolean ctf_corrected + integer offset_x + integer offset_y + integer offset_z + string key_photo_url + string key_photo_thumbnail_url + string neuroglancer_config + TomogramType type + integer id + string s3_prefix + string https_prefix } Any { } TomogramAuthor { - Tomogram tomogram - integer id - integer author_list_order - ORCID orcid - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status + Tomogram tomogram + integer id + integer author_list_order + ORCID orcid + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status } AnnotationAuthor { - integer id - integer author_list_order - ORCID orcid - string name - string email - string affiliation_name - string affiliation_address - string affiliation_identifier - boolean corresponding_author_status - boolean primary_author_status + integer id + integer author_list_order + ORCID orcid + string name + string email + string affiliation_name + string affiliation_address + string affiliation_identifier + boolean corresponding_author_status + boolean primary_author_status } AnnotationFile { - annotation_file_shape_type_enum shape_type - string format - string s3_path - string https_path - boolean is_visualization_default - integer id + annotation_file_shape_type_enum shape_type + string format + string s3_path + string https_path + boolean is_visualization_default + integer id } Tiltseries { - string s3_omezarr_dir - string s3_mrc_bin1 - string https_omezarr_dir - string https_mrc_bin1 - string s3_collection_metadata - string https_collection_metadata - string s3_angle_list - string https_angle_list - string s3_alignment_file - string https_alignment_file - float acceleration_voltage - float spherical_abberation_constant - tiltseries_microscope_manufacturer_enum microscope_manufacturer - string microscope_model - string microscope_energy_filter - string microscope_phase_plate - string microscope_image_corrector - string microscope_additional_info - string camera_manufacturer - string camera_model - float tilt_min - float tilt_max - float tilt_range - float tilt_step - string tilting_scheme - float tilt_axis - float total_flux - string data_acquisition_software - EMPIAR_ID related_empiar_entry - float binning_from_frames - integer tilt_series_quality - boolean is_aligned - float pixel_spacing - float aligned_tiltseries_binning - integer tiltseries_frames_count - integer id + string s3_omezarr_dir + string s3_mrc_bin1 + string https_omezarr_dir + string https_mrc_bin1 + string s3_collection_metadata + string https_collection_metadata + string s3_angle_list + string https_angle_list + string s3_alignment_file + string https_alignment_file + float acceleration_voltage + float spherical_abberation_constant + tiltseries_microscope_manufacturer_enum microscope_manufacturer + string microscope_model + string microscope_energy_filter + string microscope_phase_plate + string microscope_image_corrector + string microscope_additional_info + string camera_manufacturer + string camera_model + float tilt_min + float tilt_max + float tilt_range + float tilt_step + string tilting_scheme + float tilt_axis + float total_flux + string data_acquisition_software + EMPIAR_ID related_empiar_entry + float binning_from_frames + integer tilt_series_quality + boolean is_aligned + float pixel_spacing + float aligned_tiltseries_binning + integer tiltseries_frames_count + integer id } DatasetFunding { - string funding_agency_name - string grant_id - integer id + string funding_agency_name + string grant_id + integer id } Dataset ||--|o Deposition : "deposition" @@ -218,4 +218,3 @@ Tiltseries ||--|| Run : "run" DatasetFunding ||--|o Dataset : "dataset" ``` - diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 6fb2cce0e..62a803d49 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4768,4 +4768,3 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() - diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index fe6ad6628..8ab9907da 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -6671,4 +6671,3 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() - From af75836cfff39efe19a547426c7f7ec9c1294106 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 13 Sep 2024 13:17:35 -0700 Subject: [PATCH 28/59] move mdoc_name to collection_metadata --- ingestion_tools/dataset_configs/10426.yaml | 10 +++++----- ingestion_tools/dataset_configs/10427.yaml | 10 +++++----- ingestion_tools/dataset_configs/10428.yaml | 10 +++++----- ingestion_tools/dataset_configs/10429.yaml | 10 +++++----- ingestion_tools/dataset_configs/10430.yaml | 10 +++++----- ingestion_tools/dataset_configs/10431.yaml | 10 +++++----- ingestion_tools/dataset_configs/10432.yaml | 10 +++++----- ingestion_tools/dataset_configs/10433.yaml | 10 +++++----- ingestion_tools/dataset_configs/10434.yaml | 10 +++++----- ingestion_tools/dataset_configs/10435.yaml | 10 +++++----- schema/ingestion_config/migrations/issue_997.py | 6 ++++-- 11 files changed, 54 insertions(+), 52 deletions(-) diff --git a/ingestion_tools/dataset_configs/10426.yaml b/ingestion_tools/dataset_configs/10426.yaml index 63143a10e..c8e51f64f 100644 --- a/ingestion_tools/dataset_configs/10426.yaml +++ b/ingestion_tools/dataset_configs/10426.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -86,11 +91,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10427.yaml b/ingestion_tools/dataset_configs/10427.yaml index ab78f1c58..36a7e3d7a 100644 --- a/ingestion_tools/dataset_configs/10427.yaml +++ b/ingestion_tools/dataset_configs/10427.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -228,11 +233,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10428.yaml b/ingestion_tools/dataset_configs/10428.yaml index 2bc2fb8be..d36c4e3ff 100644 --- a/ingestion_tools/dataset_configs/10428.yaml +++ b/ingestion_tools/dataset_configs/10428.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -78,11 +83,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10429.yaml b/ingestion_tools/dataset_configs/10429.yaml index 1617e2caa..b4ffbe2b5 100644 --- a/ingestion_tools/dataset_configs/10429.yaml +++ b/ingestion_tools/dataset_configs/10429.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -78,11 +83,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10430.yaml b/ingestion_tools/dataset_configs/10430.yaml index 29f08741a..39debb113 100644 --- a/ingestion_tools/dataset_configs/10430.yaml +++ b/ingestion_tools/dataset_configs/10430.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -78,11 +83,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10431.yaml b/ingestion_tools/dataset_configs/10431.yaml index 19a867fae..ad1820566 100644 --- a/ingestion_tools/dataset_configs/10431.yaml +++ b/ingestion_tools/dataset_configs/10431.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -80,11 +85,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10432.yaml b/ingestion_tools/dataset_configs/10432.yaml index d1bef1c0d..415d59de4 100644 --- a/ingestion_tools/dataset_configs/10432.yaml +++ b/ingestion_tools/dataset_configs/10432.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -80,11 +85,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10433.yaml b/ingestion_tools/dataset_configs/10433.yaml index 0ae3131e5..c5850c44e 100644 --- a/ingestion_tools/dataset_configs/10433.yaml +++ b/ingestion_tools/dataset_configs/10433.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -80,11 +85,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10434.yaml b/ingestion_tools/dataset_configs/10434.yaml index 09222d7c1..e0875bd49 100644 --- a/ingestion_tools/dataset_configs/10434.yaml +++ b/ingestion_tools/dataset_configs/10434.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -80,11 +85,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10435.yaml b/ingestion_tools/dataset_configs/10435.yaml index c813dc9ca..3505e2841 100644 --- a/ingestion_tools/dataset_configs/10435.yaml +++ b/ingestion_tools/dataset_configs/10435.yaml @@ -1,4 +1,9 @@ annotations: [] +collection_metadata: +- sources: + - source_multi_glob: + list_globs: + - mdocs/{mdoc_name} dataset_keyphotos: - sources: - literal: @@ -80,11 +85,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - mdocs/{mdoc_name} runs: - sources: - source_glob: diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 4974c2da8..a80b3eec4 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -17,11 +17,13 @@ def rawtilts_to_collection_metadata(config: dict) -> bool: if "sources" not in i: continue old_source = i["sources"][0]["source_multi_glob"]["list_globs"] - list_globs.extend(s for s in old_source if s.endswith('.mdoc')) + list_globs.extend(s for s in old_source if s.endswith('.mdoc') or "{mdoc_name}" in s) for source in list_globs: old_source.remove(source) if list_globs: - config["collection_metadata"] = [{"sources": [{"source_multi_glob": {"list_globs": list_globs}}]}] + if 'collection_metadata' not in config: + config['collection_metadata'] = [{"sources": [{"source_multi_glob": {"list_globs": []}}]}] + config["collection_metadata"][0]["sources"][0]["source_multi_glob"]["list_globs"].extend(list_globs) return bool(list_globs) From 125fce794e28dcd757aa2994f67b873aa2b9a5a7 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 13 Sep 2024 17:09:59 -0700 Subject: [PATCH 29/59] extract txt and csv to from rawtilts to alignment --- ingestion_tools/dataset_configs/10301.yaml | 7 +- ingestion_tools/dataset_configs/10302.yaml | 7 +- ingestion_tools/dataset_configs/10438.yaml | 12 +- schema/core/v1.1.0/codegen/metadata_models.py | 4770 ------------ .../ingestion_config/migrations/issue_997.py | 15 +- .../v1.0.0/codegen/ingestion_config_models.py | 6673 ----------------- .../ingestion_config_models.schema.json | 5365 ------------- 7 files changed, 29 insertions(+), 16820 deletions(-) delete mode 100644 schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py delete mode 100644 schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index 43e217de3..645ad3bd1 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -23,6 +23,12 @@ alignments: list_globs: - '{run_name}/AreTomo/{run_name}_dose-filt.tlt' - '{run_name}/AreTomo/{run_name}_dose-filt.xf' +- metadata: + format: ARETOMO3 + sources: + - source_multi_glob: + list_globs: + - '{run_name}/ctffind4/ctfphaseflip_ctffind4.txt' annotations: - metadata: annotation_method: Template matching + manual filtering + 3D classification filtering @@ -306,7 +312,6 @@ rawtilts: - source_multi_glob: list_globs: - '{run_name}/{run_name}.rawtlt' - - '{run_name}/ctffind4/ctfphaseflip_ctffind4.txt' runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10302.yaml b/ingestion_tools/dataset_configs/10302.yaml index bcb5ab431..c3d1a5a8d 100644 --- a/ingestion_tools/dataset_configs/10302.yaml +++ b/ingestion_tools/dataset_configs/10302.yaml @@ -23,6 +23,12 @@ alignments: list_globs: - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.tlt - chlamy_visual_proteomics/{run_name}/AreTomo/{run_name}_dose-filt.xf +- metadata: + format: ARETOMO3 + sources: + - source_multi_glob: + list_globs: + - chlamy_visual_proteomics/{run_name}/ctffind4/ctfphaseflip_ctffind4.txt annotations: [] collection_metadata: - sources: @@ -122,7 +128,6 @@ rawtilts: - source_multi_glob: list_globs: - chlamy_visual_proteomics/{run_name}/{run_name}.rawtlt - - chlamy_visual_proteomics/{run_name}/ctffind4/ctfphaseflip_ctffind4.txt runs: - sources: - exclude: diff --git a/ingestion_tools/dataset_configs/10438.yaml b/ingestion_tools/dataset_configs/10438.yaml index a929623bd..430e9ce81 100644 --- a/ingestion_tools/dataset_configs/10438.yaml +++ b/ingestion_tools/dataset_configs/10438.yaml @@ -1,3 +1,10 @@ +alignments: +- metadata: + format: ARETOMO3 + sources: + - source_multi_glob: + list_globs: + - Data_Set_4/{run_name}/tilt_series/*.txt annotations: - metadata: annotation_method: Each organelle was segmented as a separate region of interest @@ -485,11 +492,6 @@ key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - Data_Set_4/{run_name}/tilt_series/*.txt runs: - sources: - source_glob: diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 62a803d49..e69de29bb 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -1,4770 +0,0 @@ -from __future__ import annotations -from datetime import datetime, date -from decimal import Decimal -from enum import Enum -import re -import sys -from typing import Any, ClassVar, List, Literal, Dict, Optional, Union -from pydantic import BaseModel, ConfigDict, Field, RootModel, field_validator, conlist - -metamodel_version = "None" -version = "1.1.0" - - -class ConfiguredBaseModel(BaseModel): - model_config = ConfigDict( - validate_assignment=True, - validate_default=True, - extra="forbid", - arbitrary_types_allowed=True, - use_enum_values=True, - strict=False, - ) - pass - - -class LinkMLMeta(RootModel): - root: Dict[str, Any] = {} - model_config = ConfigDict(frozen=True) - - def __getattr__(self, key: str): - return getattr(self.root, key) - - def __getitem__(self, key: str): - return self.root[key] - - def __setitem__(self, key: str, value): - self.root[key] = value - - def __contains__(self, key: str) -> bool: - return key in self.root - - -linkml_meta = LinkMLMeta( - { - "default_prefix": "cdp-meta", - "default_range": "Any", - "id": "metadata", - "imports": ["linkml:types"], - "name": "cdp-meta", - "prefixes": { - "CL": {"prefix_prefix": "CL", "prefix_reference": "http://purl.obolibrary.org/obo/CL_"}, - "GO": {"prefix_prefix": "GO", "prefix_reference": "http://purl.obolibrary.org/obo/GO_"}, - "ORCID": {"prefix_prefix": "ORCID", "prefix_reference": "https://orcid.org/"}, - "ROR": {"prefix_prefix": "ROR", "prefix_reference": "https://ror.org/"}, - "UBERON": {"prefix_prefix": "UBERON", "prefix_reference": "http://purl.obolibrary.org/obo/UBERON_"}, - "cdp-meta": {"prefix_prefix": "cdp-meta", "prefix_reference": "metadata"}, - "linkml": {"prefix_prefix": "linkml", "prefix_reference": "https://w3id.org/linkml/"}, - }, - "source_file": "core/v1.1.0/codegen/metadata_materialized.yaml", - "types": { - "BTO_ID": { - "base": "str", - "description": "A BRENDA Tissue Ontology identifier", - "from_schema": "metadata", - "name": "BTO_ID", - "pattern": "^BTO:[0-9]{7}$", - }, - "CL_ID": { - "base": "str", - "description": "A Cell Ontology identifier", - "from_schema": "metadata", - "name": "CL_ID", - "pattern": "^CL:[0-9]{7}$", - }, - "DOI": { - "base": "str", - "description": "A Digital Object Identifier", - "from_schema": "metadata", - "name": "DOI", - "pattern": "^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+$", - }, - "DOI_LIST": { - "base": "str", - "description": "A list of Digital Object Identifiers", - "from_schema": "metadata", - "name": "DOI_LIST", - "pattern": "^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$", - }, - "EMDB_ID": { - "base": "str", - "description": "An Electron Microscopy Data Bank " "identifier", - "from_schema": "metadata", - "name": "EMDB_ID", - "pattern": "^EMD-[0-9]{4,5}$", - }, - "EMPIAR_EMDB_DOI_PDB_LIST": { - "base": "str", - "description": "A list of EMPIAR, " "EMDB, DOI, and PDB " "identifiers", - "from_schema": "metadata", - "name": "EMPIAR_EMDB_DOI_PDB_LIST", - "pattern": "^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$", - }, - "EMPIAR_EMDB_PDB_LIST": { - "base": "str", - "description": "A list of EMPIAR, EMDB, " "and PDB identifiers", - "from_schema": "metadata", - "name": "EMPIAR_EMDB_PDB_LIST", - "pattern": "^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$", - }, - "EMPIAR_ID": { - "base": "str", - "description": "An Electron Microscopy Public Image " "Archive identifier", - "from_schema": "metadata", - "name": "EMPIAR_ID", - "pattern": "^EMPIAR-[0-9]+$", - }, - "FloatFormattedString": { - "base": "str", - "description": "A formatted string that " "represents a floating " "point number.", - "from_schema": "metadata", - "name": "FloatFormattedString", - "pattern": "^float[ " "]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - }, - "GO_ID": { - "base": "str", - "description": "A Gene Ontology identifier", - "from_schema": "metadata", - "name": "GO_ID", - "pattern": "^GO:[0-9]{7}$", - }, - "IntegerFormattedString": { - "base": "str", - "description": "A formatted string that " "represents an integer.", - "from_schema": "metadata", - "name": "IntegerFormattedString", - "pattern": "^int[ " "]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - }, - "ONTOLOGY_ID": { - "base": "str", - "description": "An ontology identifier", - "from_schema": "metadata", - "name": "ONTOLOGY_ID", - "pattern": "^[a-zA-Z]+:[0-9]+$", - }, - "ORCID": { - "base": "str", - "description": "A unique, persistent identifier for " "researchers, provided by ORCID.", - "from_schema": "metadata", - "name": "ORCID", - "pattern": "[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$", - }, - "PDB_ID": { - "base": "str", - "description": "A Protein Data Bank identifier", - "from_schema": "metadata", - "name": "PDB_ID", - "pattern": "^PDB-[0-9a-zA-Z]{4,8}$", - }, - "StringFormattedString": { - "base": "str", - "description": "A formatted string " "(variable) that " "represents a string.", - "from_schema": "metadata", - "name": "StringFormattedString", - "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ " "]*$", - }, - "UNIPROT_ID": { - "base": "str", - "description": "A UniProt identifier", - "from_schema": "metadata", - "name": "UNIPROT_ID", - "pattern": "^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$", - }, - "URLorS3URI": { - "base": "str", - "description": "A URL or S3 URI", - "from_schema": "metadata", - "name": "URLorS3URI", - "pattern": "^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$", - }, - "VersionString": { - "base": "float", - "description": "A version number (only major, " "minor versions)", - "from_schema": "metadata", - "minimum_value": 0, - "name": "VersionString", - }, - "WORMBASE_ID": { - "base": "str", - "description": "A WormBase identifier", - "from_schema": "metadata", - "name": "WORMBASE_ID", - "pattern": "WBStrain[0-9]{8}$", - }, - "boolean": { - "base": "Bool", - "description": "A binary (true or false) value", - "exact_mappings": ["schema:Boolean"], - "from_schema": "metadata", - "name": "boolean", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"boolean".' - ], - "repr": "bool", - "uri": "xsd:boolean", - }, - "curie": { - "base": "Curie", - "comments": [ - "in RDF serializations this MUST be expanded " "to a URI", - "in non-RDF serializations MAY be serialized " "as the compact representation", - ], - "conforms_to": "https://www.w3.org/TR/curie/", - "description": "a compact URI", - "from_schema": "metadata", - "name": "curie", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"curie".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "date": { - "base": "XSDDate", - "description": "a date (year, month and day) in an " "idealized calendar", - "exact_mappings": ["schema:Date"], - "from_schema": "metadata", - "name": "date", - "notes": [ - "URI is dateTime because OWL reasoners don't " "work with straight date or time", - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"date".', - ], - "repr": "str", - "uri": "xsd:date", - }, - "date_or_datetime": { - "base": "str", - "description": "Either a date or a datetime", - "from_schema": "metadata", - "name": "date_or_datetime", - "notes": [ - "If you are authoring schemas in " - "LinkML YAML, the type is referenced " - "with the lower case " - '"date_or_datetime".' - ], - "repr": "str", - "uri": "linkml:DateOrDatetime", - }, - "datetime": { - "base": "XSDDateTime", - "description": "The combination of a date and time", - "exact_mappings": ["schema:DateTime"], - "from_schema": "metadata", - "name": "datetime", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the lower " - 'case "datetime".' - ], - "repr": "str", - "uri": "xsd:dateTime", - }, - "decimal": { - "base": "Decimal", - "broad_mappings": ["schema:Number"], - "description": "A real number with arbitrary precision " - "that conforms to the xsd:decimal " - "specification", - "from_schema": "metadata", - "name": "decimal", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"decimal".' - ], - "uri": "xsd:decimal", - }, - "double": { - "base": "float", - "close_mappings": ["schema:Float"], - "description": "A real number that conforms to the " "xsd:double specification", - "from_schema": "metadata", - "name": "double", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"double".' - ], - "uri": "xsd:double", - }, - "float": { - "base": "float", - "description": "A real number that conforms to the " "xsd:float specification", - "exact_mappings": ["schema:Float"], - "from_schema": "metadata", - "name": "float", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"float".' - ], - "uri": "xsd:float", - }, - "integer": { - "base": "int", - "description": "An integer", - "exact_mappings": ["schema:Integer"], - "from_schema": "metadata", - "name": "integer", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"integer".' - ], - "uri": "xsd:integer", - }, - "jsonpath": { - "base": "str", - "conforms_to": "https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html", - "description": "A string encoding a JSON Path. The " - "value of the string MUST conform to " - "JSON Point syntax and SHOULD " - "dereference to zero or more valid " - "objects within the current instance " - "document when encoded in tree form.", - "from_schema": "metadata", - "name": "jsonpath", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the lower " - 'case "jsonpath".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "jsonpointer": { - "base": "str", - "conforms_to": "https://datatracker.ietf.org/doc/html/rfc6901", - "description": "A string encoding a JSON Pointer. " - "The value of the string MUST " - "conform to JSON Point syntax and " - "SHOULD dereference to a valid " - "object within the current instance " - "document when encoded in tree form.", - "from_schema": "metadata", - "name": "jsonpointer", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the " - 'lower case "jsonpointer".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "ncname": { - "base": "NCName", - "description": "Prefix part of CURIE", - "from_schema": "metadata", - "name": "ncname", - "notes": [ - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"ncname".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "nodeidentifier": { - "base": "NodeIdentifier", - "description": "A URI, CURIE or BNODE that " "represents a node in a model.", - "from_schema": "metadata", - "name": "nodeidentifier", - "notes": [ - "If you are authoring schemas in " - "LinkML YAML, the type is referenced " - "with the lower case " - '"nodeidentifier".' - ], - "repr": "str", - "uri": "shex:nonLiteral", - }, - "objectidentifier": { - "base": "ElementIdentifier", - "comments": ["Used for inheritance and type " "checking"], - "description": "A URI or CURIE that represents " "an object in the model.", - "from_schema": "metadata", - "name": "objectidentifier", - "notes": [ - "If you are authoring schemas in " - "LinkML YAML, the type is referenced " - "with the lower case " - '"objectidentifier".' - ], - "repr": "str", - "uri": "shex:iri", - }, - "sparqlpath": { - "base": "str", - "conforms_to": "https://www.w3.org/TR/sparql11-query/#propertypaths", - "description": "A string encoding a SPARQL Property " - "Path. The value of the string MUST " - "conform to SPARQL syntax and SHOULD " - "dereference to zero or more valid " - "objects within the current instance " - "document when encoded as RDF.", - "from_schema": "metadata", - "name": "sparqlpath", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the " - 'lower case "sparqlpath".' - ], - "repr": "str", - "uri": "xsd:string", - }, - "string": { - "base": "str", - "description": "A character string", - "exact_mappings": ["schema:Text"], - "from_schema": "metadata", - "name": "string", - "notes": [ - "In RDF serializations, a slot with range of " - "string is treated as a literal or type " - "xsd:string. If you are authoring schemas in " - "LinkML YAML, the type is referenced with the " - 'lower case "string".' - ], - "uri": "xsd:string", - }, - "time": { - "base": "XSDTime", - "description": "A time object represents a (local) time of " "day, independent of any particular day", - "exact_mappings": ["schema:Time"], - "from_schema": "metadata", - "name": "time", - "notes": [ - "URI is dateTime because OWL reasoners do not " "work with straight date or time", - "If you are authoring schemas in LinkML YAML, " - "the type is referenced with the lower case " - '"time".', - ], - "repr": "str", - "uri": "xsd:time", - }, - "uri": { - "base": "URI", - "close_mappings": ["schema:URL"], - "comments": [ - "in RDF serializations a slot with range of " - "uri is treated as a literal or type " - "xsd:anyURI unless it is an identifier or a " - "reference to an identifier, in which case it " - "is translated directly to a node" - ], - "conforms_to": "https://www.ietf.org/rfc/rfc3987.txt", - "description": "a complete URI", - "from_schema": "metadata", - "name": "uri", - "notes": [ - "If you are authoring schemas in LinkML YAML, the " 'type is referenced with the lower case "uri".' - ], - "repr": "str", - "uri": "xsd:anyURI", - }, - "uriorcurie": { - "base": "URIorCURIE", - "description": "a URI or a CURIE", - "from_schema": "metadata", - "name": "uriorcurie", - "notes": [ - "If you are authoring schemas in LinkML " - "YAML, the type is referenced with the " - 'lower case "uriorcurie".' - ], - "repr": "str", - "uri": "xsd:anyURI", - }, - }, - } -) - - -class AlignmentTypeEnum(str, Enum): - """ - Type of alignment - """ - - # Local alignment - LOCAL = "LOCAL" - # Global alignment - GLOBAL = "GLOBAL" - - -class AlignmentFormatEnum(str, Enum): - """ - Used to determine what alignment alogrithm to use. - """ - - # formats (xf, tlt, com) - IMOD = "IMOD" - # formats (aln) - ARETOMO3 = "ARETOMO3" - - -class AnnotationMethodTypeEnum(str, Enum): - """ - Describes how the annotations were generated. - """ - - # Annotations were generated manually. - manual = "manual" - # Annotations were generated using automated tools or algorithms without supervision. - automated = "automated" - # Annotations were generated using a combination of automated and manual methods. - hybrid = "hybrid" - # Annotations were generated by simulation tools or algorithms. - simulated = "simulated" - - -class AnnotationFileShapeTypeEnum(str, Enum): - """ - Describes the shape of the annotation - """ - - # A binary mask volume - SegmentationMask = "SegmentationMask" - # A series of coordinates and an orientation - OrientedPoint = "OrientedPoint" - # A series of coordinates - Point = "Point" - # A volume with labels for multiple instances - InstanceSegmentation = "InstanceSegmentation" - # A mesh of triangles - TriangularMesh = "TriangularMesh" - # A group of triangular meshes - TriangularMeshGroup = "TriangularMeshGroup" - - -class AnnotationMethodLinkTypeEnum(str, Enum): - """ - Describes the type of link associated to the annotation method. - """ - - # Links to the documentation related to the method. - documentation = "documentation" - # Links to the weights that the models used for generating annotations were trained with. - models_weights = "models_weights" - # Link to resources that does not fit in the other categories. - other = "other" - # Links to the source code of the method. - source_code = "source_code" - # Links to a website of the method or tool used to generate the annotation. - website = "website" - - -class DepositionTypesEnum(str, Enum): - """ - Types of data a deposition has - """ - - # The deposition comprises of new annotations for existing datasets - annotation = "annotation" - # The deposition comprises of new dataset(s). - dataset = "dataset" - # The deposition comprises of new tomograms for existing datasets - tomogram = "tomogram" - - -class SampleTypeEnum(str, Enum): - """ - Type of sample imaged in a CryoET study. - """ - - # Tomographic data of whole cells or cell sections. - cell = "cell" - # Tomographic data of tissue sections. - tissue = "tissue" - # Tomographic data of sections through multicellular organisms. - organism = "organism" - # Tomographic data of purified organelles. - organelle = "organelle" - # Tomographic data of purified viruses or VLPs. - virus = "virus" - # Tomographic data of in vitro reconstituted systems or mixtures of proteins. - in_vitro = "in_vitro" - # Simulated tomographic data. - in_silico = "in_silico" - # Other type of sample. - other = "other" - - -class TiltseriesCameraAcquireModeEnum(str, Enum): - """ - Camera acquisition mode - """ - - # Counting mode - counting = "counting" - # Super-resolution mode - superresolution = "superresolution" - # Linear mode - linear = "linear" - # Correlated double sampling mode - cds = "cds" - - -class TiltseriesMicroscopeManufacturerEnum(str, Enum): - """ - Microscope manufacturer - """ - - # FEI Company - FEI = "FEI" - # Thermo Fisher Scientific - TFS = "TFS" - # JEOL Ltd. - JEOL = "JEOL" - # Simulated data - SIMULATED = "SIMULATED" - - -class FiducialAlignmentStatusEnum(str, Enum): - """ - Fiducial Alignment method - """ - - # Alignment computed based on fiducial markers - FIDUCIAL = "FIDUCIAL" - # Alignment computed without fiducial markers - NON_FIDUCIAL = "NON_FIDUCIAL" - - -class TomogramProcessingEnum(str, Enum): - """ - Tomogram processing method - """ - - # Tomogram was denoised - denoised = "denoised" - # Tomogram was filtered - filtered = "filtered" - # Tomogram was not processed - raw = "raw" - - -class TomogramReconstructionMethodEnum(str, Enum): - """ - Tomogram reconstruction method - """ - - # Simultaneous Algebraic Reconstruction Technique - SART = "SART" - # Fourier space reconstruction - Fourier_Space = "Fourier Space" - # Simultaneous Iterative Reconstruction Technique - SIRT = "SIRT" - # Weighted Back-Projection - WBP = "WBP" - # Unknown reconstruction method - Unknown = "Unknown" - - -class TomogramTypeEnum(str, Enum): - """ - Tomogram type - """ - - # Canonical tomogram (basis geometry for all annotations) - CANONICAL = "CANONICAL" - - -class PicturePath(ConfiguredBaseModel): - """ - A set of paths to representative images of a piece of data. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - snapshot: Optional[str] = Field( - None, - description="""Path to the dataset preview image relative to the dataset directory root.""", - json_schema_extra={ - "linkml_meta": { - "alias": "snapshot", - "domain_of": ["PicturePath"], - "exact_mappings": ["cdp-common:snapshot"], - "recommended": True, - } - }, - ) - thumbnail: Optional[str] = Field( - None, - description="""Path to the thumbnail of preview image relative to the dataset directory root.""", - json_schema_extra={ - "linkml_meta": { - "alias": "thumbnail", - "domain_of": ["PicturePath"], - "exact_mappings": ["cdp-common:thumbnail"], - "recommended": True, - } - }, - ) - - @field_validator("snapshot") - def pattern_snapshot(cls, v): - pattern = re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid snapshot format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid snapshot format: {v}") - return v - - @field_validator("thumbnail") - def pattern_thumbnail(cls, v): - pattern = re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid thumbnail format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid thumbnail format: {v}") - return v - - -class FundingDetails(ConfiguredBaseModel): - """ - A funding source for a scientific data entity (base for JSON and DB representation). - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - funding_agency_name: Optional[str] = Field( - None, - description="""The name of the funding source.""", - json_schema_extra={ - "linkml_meta": { - "alias": "funding_agency_name", - "domain_of": ["FundingDetails"], - "exact_mappings": ["cdp-common:funding_agency_name"], - "recommended": True, - } - }, - ) - grant_id: Optional[str] = Field( - None, - description="""Grant identifier provided by the funding agency""", - json_schema_extra={ - "linkml_meta": { - "alias": "grant_id", - "domain_of": ["FundingDetails"], - "exact_mappings": ["cdp-common:funding_grant_id"], - "recommended": True, - } - }, - ) - - -class DateStampedEntity(ConfiguredBaseModel): - """ - An entity with associated deposition, release and last modified dates. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dates", - "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], - } - }, - ) - - -class AuthoredEntity(ConfiguredBaseModel): - """ - An entity with associated authors. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - - -class FundedEntity(ConfiguredBaseModel): - """ - An entity with associated funding sources. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - funding: Optional[List[FundingDetails]] = Field( - None, - description="""A funding source for a scientific data entity (base for JSON and DB representation).""", - json_schema_extra={ - "linkml_meta": { - "alias": "funding", - "domain_of": ["FundedEntity", "Dataset"], - "list_elements_ordered": True, - "recommended": True, - } - }, - ) - - -class CrossReferencedEntity(ConfiguredBaseModel): - """ - An entity with associated cross-references to other databases and publications. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) - - cross_references: Optional[CrossReferences] = Field( - None, - description="""A set of cross-references to other databases and publications.""", - json_schema_extra={ - "linkml_meta": { - "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], - } - }, - ) - - -class PicturedEntity(ConfiguredBaseModel): - """ - An entity with associated preview images. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - key_photos: PicturePath = Field( - ..., - description="""A set of paths to representative images of a piece of data.""", - json_schema_extra={"linkml_meta": {"alias": "key_photos", "domain_of": ["PicturedEntity"]}}, - ) - - -class OrganismDetails(ConfiguredBaseModel): - """ - The species from which the sample was derived. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Name of the organism from which a biological sample used in a CryoET study is derived from, e.g. homo sapiens.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:organism_name"], - } - }, - ) - taxonomy_id: Optional[int] = Field( - None, - description="""NCBI taxonomy identifier for the organism, e.g. 9606""", - ge=1, - json_schema_extra={ - "linkml_meta": { - "alias": "taxonomy_id", - "domain_of": ["OrganismDetails"], - "exact_mappings": ["cdp-common:organism_taxid"], - "recommended": True, - } - }, - ) - - -class TissueDetails(ConfiguredBaseModel): - """ - The type of tissue from which the sample was derived. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Name of the tissue from which a biological sample used in a CryoET study is derived from.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:tissue_name"], - } - }, - ) - id: Optional[str] = Field( - None, - description="""The UBERON identifier for the tissue.""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:tissue_id"], - "recommended": True, - } - }, - ) - - @field_validator("id") - def pattern_id(cls, v): - pattern = re.compile(r"^BTO:[0-9]{7}$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class CellType(ConfiguredBaseModel): - """ - The cell type from which the sample was derived. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Name of the cell type from which a biological sample used in a CryoET study is derived from.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:cell_name"], - } - }, - ) - id: Optional[str] = Field( - None, - description="""Cell Ontology identifier for the cell type""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:cell_type_id"], - "recommended": True, - } - }, - ) - - @field_validator("id") - def pattern_id(cls, v): - pattern = re.compile(r"^CL:[0-9]{7}$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class CellStrain(ConfiguredBaseModel): - """ - The strain or cell line from which the sample was derived. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Cell line or strain for the sample.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:cell_strain_name"], - } - }, - ) - id: Optional[str] = Field( - None, - description="""Link to more information about the cell strain.""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "any_of": [{"range": "WORMBASE_ID"}, {"range": "ONTOLOGY_ID"}], - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:cell_strain_id"], - "recommended": True, - } - }, - ) - - @field_validator("id") - def pattern_id(cls, v): - pattern = re.compile(r"(WBStrain[0-9]{8}$)|(^[a-zA-Z]+:[0-9]+$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class CellComponent(ConfiguredBaseModel): - """ - The cellular component from which the sample was derived. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - name: str = Field( - ..., - description="""Name of the cellular component.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:cell_component_name"], - } - }, - ) - id: Optional[str] = Field( - None, - description="""The GO identifier for the cellular component.""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:cell_component_id"], - "recommended": True, - } - }, - ) - - @field_validator("id") - def pattern_id(cls, v): - pattern = re.compile(r"^GO:[0-9]{7}$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class ExperimentMetadata(ConfiguredBaseModel): - """ - Metadata describing sample and sample preparation methods used in a cryoET dataset. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - sample_type: SampleTypeEnum = Field( - ..., - description="""Type of sample imaged in a CryoET study.""", - json_schema_extra={ - "linkml_meta": { - "alias": "sample_type", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:preparation_sample_type"], - } - }, - ) - sample_preparation: Optional[str] = Field( - None, - description="""Describes how the sample was prepared.""", - json_schema_extra={ - "linkml_meta": { - "alias": "sample_preparation", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:sample_preparation"], - "recommended": True, - } - }, - ) - grid_preparation: Optional[str] = Field( - None, - description="""Describes Cryo-ET grid preparation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "grid_preparation", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:grid_preparation"], - "recommended": True, - } - }, - ) - other_setup: Optional[str] = Field( - None, - description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", - json_schema_extra={ - "linkml_meta": { - "alias": "other_setup", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:preparation_other_setup"], - "recommended": True, - } - }, - ) - organism: Optional[OrganismDetails] = Field( - None, - description="""The species from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "organism", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - tissue: Optional[TissueDetails] = Field( - None, - description="""The type of tissue from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "tissue", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_type: Optional[CellType] = Field( - None, - description="""The cell type from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_type", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_strain: Optional[CellStrain] = Field( - None, - description="""The strain or cell line from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_strain", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_component: Optional[CellComponent] = Field( - None, - description="""The cellular component from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_component", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - - @field_validator("sample_type") - def pattern_sample_type(cls, v): - pattern = re.compile( - r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" - ) - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid sample_type format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid sample_type format: {v}") - return v - - -class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredEntity, DateStampedEntity): - """ - High-level description of a cryoET dataset. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - { - "from_schema": "metadata", - "mixins": [ - "DateStampedEntity", - "AuthoredEntity", - "FundedEntity", - "CrossReferencedEntity", - "ExperimentMetadata", - ], - } - ) - - dataset_identifier: int = Field( - ..., - description="""An identifier for a CryoET dataset, assigned by the Data Portal. Used to identify the dataset as the directory name in data tree.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset_identifier", - "domain_of": ["Dataset"], - "exact_mappings": ["cdp-common:dataset_identifier"], - } - }, - ) - dataset_title: str = Field( - ..., - description="""Title of a CryoET dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset_title", - "domain_of": ["Dataset"], - "exact_mappings": ["cdp-common:dataset_title"], - } - }, - ) - dataset_description: str = Field( - ..., - description="""A short description of a CryoET dataset, similar to an abstract for a journal article or dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dataset_description", - "domain_of": ["Dataset"], - "exact_mappings": ["cdp-common:dataset_description"], - } - }, - ) - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dates", - "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], - } - }, - ) - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - funding: Optional[List[FundingDetails]] = Field( - None, - description="""A funding source for a scientific data entity (base for JSON and DB representation).""", - json_schema_extra={ - "linkml_meta": { - "alias": "funding", - "domain_of": ["FundedEntity", "Dataset"], - "list_elements_ordered": True, - "recommended": True, - } - }, - ) - cross_references: Optional[CrossReferences] = Field( - None, - description="""A set of cross-references to other databases and publications.""", - json_schema_extra={ - "linkml_meta": { - "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], - } - }, - ) - sample_type: SampleTypeEnum = Field( - ..., - description="""Type of sample imaged in a CryoET study.""", - json_schema_extra={ - "linkml_meta": { - "alias": "sample_type", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:preparation_sample_type"], - } - }, - ) - sample_preparation: Optional[str] = Field( - None, - description="""Describes how the sample was prepared.""", - json_schema_extra={ - "linkml_meta": { - "alias": "sample_preparation", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:sample_preparation"], - "recommended": True, - } - }, - ) - grid_preparation: Optional[str] = Field( - None, - description="""Describes Cryo-ET grid preparation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "grid_preparation", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:grid_preparation"], - "recommended": True, - } - }, - ) - other_setup: Optional[str] = Field( - None, - description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", - json_schema_extra={ - "linkml_meta": { - "alias": "other_setup", - "domain_of": ["ExperimentMetadata", "Dataset"], - "exact_mappings": ["cdp-common:preparation_other_setup"], - "recommended": True, - } - }, - ) - organism: Optional[OrganismDetails] = Field( - None, - description="""The species from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "organism", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - tissue: Optional[TissueDetails] = Field( - None, - description="""The type of tissue from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "tissue", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_type: Optional[CellType] = Field( - None, - description="""The cell type from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_type", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_strain: Optional[CellStrain] = Field( - None, - description="""The strain or cell line from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_strain", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - cell_component: Optional[CellComponent] = Field( - None, - description="""The cellular component from which the sample was derived.""", - json_schema_extra={"linkml_meta": {"alias": "cell_component", "domain_of": ["ExperimentMetadata", "Dataset"]}}, - ) - - @field_validator("sample_type") - def pattern_sample_type(cls, v): - pattern = re.compile( - r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" - ) - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid sample_type format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid sample_type format: {v}") - return v - - -class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): - """ - Metadata describing a deposition. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "metadata", "mixins": ["DateStampedEntity", "AuthoredEntity", "CrossReferencedEntity"]} - ) - - deposition_description: str = Field( - ..., - description="""A short description of the deposition, similar to an abstract for a journal article or dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_description", - "domain_of": ["Deposition"], - "exact_mappings": ["cdp-common:deposition_description"], - } - }, - ) - deposition_identifier: int = Field( - ..., - description="""An identifier for a CryoET deposition, assigned by the Data Portal. Used to identify the deposition the entity is a part of.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_identifier", - "domain_of": ["Deposition"], - "exact_mappings": ["cdp-common:deposition_identifier"], - } - }, - ) - deposition_title: str = Field( - ..., - description="""Title of a CryoET deposition.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_title", - "domain_of": ["Deposition"], - "exact_mappings": ["cdp-common:deposition_title"], - } - }, - ) - deposition_types: List[DepositionTypesEnum] = Field( - ..., - description="""Type of data in the deposition (e.g. dataset, annotation, tomogram)""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_types", - "domain_of": ["Deposition"], - "exact_mappings": ["cdp-common:deposition_types"], - } - }, - ) - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dates", - "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], - } - }, - ) - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - cross_references: Optional[CrossReferences] = Field( - None, - description="""A set of cross-references to other databases and publications.""", - json_schema_extra={ - "linkml_meta": { - "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], - } - }, - ) - - @field_validator("deposition_types") - def pattern_deposition_types(cls, v): - pattern = re.compile(r"(^annotation$)|(^dataset$)|(^tomogram$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid deposition_types format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid deposition_types format: {v}") - return v - - -class CameraDetails(ConfiguredBaseModel): - """ - The camera used to collect the tilt series. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - acquire_mode: Optional[Union[TiltseriesCameraAcquireModeEnum, str]] = Field( - None, - description="""Camera acquisition mode""", - json_schema_extra={ - "linkml_meta": { - "alias": "acquire_mode", - "any_of": [{"range": "StringFormattedString"}, {"range": "tiltseries_camera_acquire_mode_enum"}], - "domain_of": ["CameraDetails"], - "exact_mappings": ["cdp-common:tiltseries_camera_acquire_mode"], - } - }, - ) - manufacturer: str = Field( - ..., - description="""Name of the camera manufacturer""", - json_schema_extra={ - "linkml_meta": { - "alias": "manufacturer", - "domain_of": ["CameraDetails", "MicroscopeDetails"], - "exact_mappings": ["cdp-common:tiltseries_camera_manufacturer"], - } - }, - ) - model: str = Field( - ..., - description="""Camera model name""", - json_schema_extra={ - "linkml_meta": { - "alias": "model", - "domain_of": ["CameraDetails", "MicroscopeDetails"], - "exact_mappings": ["cdp-common:tiltseries_camera_model"], - } - }, - ) - - @field_validator("acquire_mode") - def pattern_acquire_mode(cls, v): - pattern = re.compile(r"(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)|((^counting$)|(^superresolution$)|(^linear$)|(^cds$))") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid acquire_mode format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid acquire_mode format: {v}") - return v - - -class MicroscopeDetails(ConfiguredBaseModel): - """ - The microscope used to collect the tilt series. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - additional_info: Optional[str] = Field( - None, - description="""Other microscope optical setup information, in addition to energy filter, phase plate and image corrector""", - json_schema_extra={ - "linkml_meta": { - "alias": "additional_info", - "domain_of": ["MicroscopeDetails"], - "exact_mappings": ["cdp-common:tiltseries_microscope_additional_info"], - } - }, - ) - manufacturer: Union[TiltseriesMicroscopeManufacturerEnum, str] = Field( - ..., - description="""Name of the microscope manufacturer""", - json_schema_extra={ - "linkml_meta": { - "alias": "manufacturer", - "any_of": [ - { - "description": "Name of the microscope manufacturer", - "exact_mappings": ["cdp-common:tiltseries_microscope_manufacturer"], - "range": "tiltseries_microscope_manufacturer_enum", - "required": True, - }, - {"range": "StringFormattedString"}, - ], - "domain_of": ["CameraDetails", "MicroscopeDetails"], - } - }, - ) - model: str = Field( - ..., - description="""Microscope model name""", - json_schema_extra={ - "linkml_meta": { - "alias": "model", - "domain_of": ["CameraDetails", "MicroscopeDetails"], - "exact_mappings": ["cdp-common:tiltseries_microscope_model"], - } - }, - ) - - @field_validator("manufacturer") - def pattern_manufacturer(cls, v): - pattern = re.compile(r"(^FEI$)|(^TFS$)|(^JEOL$)|(^SIMULATED$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid manufacturer format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid manufacturer format: {v}") - return v - - -class MicroscopeOpticalSetup(ConfiguredBaseModel): - """ - The optical setup of the microscope used to collect the tilt series. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - energy_filter: str = Field( - ..., - description="""Energy filter setup used""", - json_schema_extra={ - "linkml_meta": { - "alias": "energy_filter", - "domain_of": ["MicroscopeOpticalSetup"], - "exact_mappings": ["cdp-common:tiltseries_microscope_energy_filter"], - } - }, - ) - phase_plate: Optional[str] = Field( - None, - description="""Phase plate configuration""", - json_schema_extra={ - "linkml_meta": { - "alias": "phase_plate", - "domain_of": ["MicroscopeOpticalSetup"], - "exact_mappings": ["cdp-common:tiltseries_microscope_phase_plate"], - } - }, - ) - image_corrector: Optional[str] = Field( - None, - description="""Image corrector setup""", - json_schema_extra={ - "linkml_meta": { - "alias": "image_corrector", - "domain_of": ["MicroscopeOpticalSetup"], - "exact_mappings": ["cdp-common:tiltseries_microscope_image_corrector"], - } - }, - ) - - -class TiltRange(ConfiguredBaseModel): - """ - The range of tilt angles in the tilt series. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - min: Union[float, str] = Field( - ..., - description="""Minimal tilt angle in degrees""", - ge=-90, - le=90, - json_schema_extra={ - "linkml_meta": { - "alias": "min", - "any_of": [ - { - "description": "Minimal tilt angle in degrees", - "exact_mappings": ["cdp-common:tiltseries_tilt_min"], - "maximum_value": 90, - "minimum_value": -90, - "range": "float", - "required": True, - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltRange"], - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - } - }, - ) - max: Union[float, str] = Field( - ..., - description="""Maximal tilt angle in degrees""", - ge=-90, - le=90, - json_schema_extra={ - "linkml_meta": { - "alias": "max", - "any_of": [ - { - "description": "Maximal tilt angle in degrees", - "exact_mappings": ["cdp-common:tiltseries_tilt_max"], - "maximum_value": 90, - "minimum_value": -90, - "range": "float", - "required": True, - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltRange"], - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - } - }, - ) - - @field_validator("min") - def pattern_min(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid min format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid min format: {v}") - return v - - @field_validator("max") - def pattern_max(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid max format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid max format: {v}") - return v - - -class TiltSeries(ConfiguredBaseModel): - """ - Metadata describing a tilt series. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - acceleration_voltage: float = Field( - ..., - description="""Electron Microscope Accelerator voltage in volts""", - ge=20000, - json_schema_extra={ - "linkml_meta": { - "alias": "acceleration_voltage", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_acceleration_voltage"], - "unit": {"descriptive_name": "volts", "symbol": "V"}, - } - }, - ) - aligned_tiltseries_binning: Optional[Union[float, str]] = Field( - 1.0, - description="""Binning factor of the aligned tilt series""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "aligned_tiltseries_binning", - "any_of": [ - { - "description": "Binning factor of the aligned tilt series", - "exact_mappings": ["cdp-common:tiltseries_aligned_tiltseries_binning"], - "minimum_value": 0, - "range": "float", - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "ifabsent": "float(1)", - } - }, - ) - binning_from_frames: Optional[Union[float, str]] = Field( - 1.0, - description="""Describes the binning factor from frames to tilt series file""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "binning_from_frames", - "any_of": [ - { - "description": "Describes the binning factor from frames to tilt " "series file", - "exact_mappings": ["cdp-common:tiltseries_binning_from_frames"], - "minimum_value": 0, - "range": "float", - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "ifabsent": "float(1)", - } - }, - ) - camera: CameraDetails = Field( - ..., - description="""The camera used to collect the tilt series.""", - json_schema_extra={"linkml_meta": {"alias": "camera", "domain_of": ["TiltSeries"]}}, - ) - data_acquisition_software: str = Field( - ..., - description="""Software used to collect data""", - json_schema_extra={ - "linkml_meta": { - "alias": "data_acquisition_software", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_data_acquisition_software"], - } - }, - ) - frames_count: Optional[int] = Field( - None, - description="""Number of frames associated with this tiltseries""", - json_schema_extra={ - "linkml_meta": { - "alias": "frames_count", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_frames_count"], - } - }, - ) - is_aligned: bool = Field( - ..., - description="""Whether this tilt series is aligned""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_aligned", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_is_aligned"], - } - }, - ) - microscope: MicroscopeDetails = Field( - ..., - description="""The microscope used to collect the tilt series.""", - json_schema_extra={"linkml_meta": {"alias": "microscope", "domain_of": ["TiltSeries"]}}, - ) - microscope_optical_setup: MicroscopeOpticalSetup = Field( - ..., - description="""The optical setup of the microscope used to collect the tilt series.""", - json_schema_extra={"linkml_meta": {"alias": "microscope_optical_setup", "domain_of": ["TiltSeries"]}}, - ) - related_empiar_entry: Optional[str] = Field( - None, - description="""If a tilt series is deposited into EMPIAR, enter the EMPIAR dataset identifier""", - json_schema_extra={ - "linkml_meta": { - "alias": "related_empiar_entry", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_related_empiar_entry"], - } - }, - ) - spherical_aberration_constant: Union[float, str] = Field( - ..., - description="""Spherical Aberration Constant of the objective lens in millimeters""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "spherical_aberration_constant", - "any_of": [ - { - "description": "Spherical Aberration Constant of the objective " "lens in millimeters", - "exact_mappings": ["cdp-common:tiltseries_spherical_aberration_constant"], - "minimum_value": 0, - "range": "float", - "required": True, - "unit": {"descriptive_name": "millimeters", "symbol": "mm"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "millimeters", "symbol": "mm"}, - } - }, - ) - tilt_alignment_software: Optional[str] = Field( - None, - description="""Software used for tilt alignment""", - json_schema_extra={ - "linkml_meta": { - "alias": "tilt_alignment_software", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_tilt_alignment_software"], - } - }, - ) - tilt_axis: Union[float, str] = Field( - ..., - description="""Rotation angle in degrees""", - ge=-360, - le=360, - json_schema_extra={ - "linkml_meta": { - "alias": "tilt_axis", - "any_of": [ - { - "description": "Rotation angle in degrees", - "exact_mappings": ["cdp-common:tiltseries_tilt_axis"], - "maximum_value": 360, - "minimum_value": -360, - "range": "float", - "required": True, - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - } - }, - ) - tilt_range: TiltRange = Field( - ..., - description="""The range of tilt angles in the tilt series.""", - json_schema_extra={"linkml_meta": {"alias": "tilt_range", "domain_of": ["TiltSeries"]}}, - ) - tilt_series_quality: Union[int, str] = Field( - ..., - description="""Author assessment of tilt series quality within the dataset (1-5, 5 is best)""", - ge=1, - le=5, - json_schema_extra={ - "linkml_meta": { - "alias": "tilt_series_quality", - "any_of": [ - { - "description": "Author assessment of tilt series quality within " - "the dataset (1-5, 5 is best)", - "exact_mappings": ["cdp-common:tiltseries_tilt_series_quality"], - "maximum_value": 5, - "minimum_value": 1, - "range": "integer", - "required": True, - }, - {"range": "IntegerFormattedString"}, - ], - "domain_of": ["TiltSeries"], - } - }, - ) - tilt_step: Union[float, str] = Field( - ..., - description="""Tilt step in degrees""", - ge=0, - le=90, - json_schema_extra={ - "linkml_meta": { - "alias": "tilt_step", - "any_of": [ - { - "description": "Tilt step in degrees", - "exact_mappings": ["cdp-common:tiltseries_tilt_step"], - "maximum_value": 90, - "minimum_value": 0, - "range": "float", - "required": True, - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "degrees", "symbol": "°"}, - } - }, - ) - tilting_scheme: str = Field( - ..., - description="""The order of stage tilting during acquisition of the data""", - json_schema_extra={ - "linkml_meta": { - "alias": "tilting_scheme", - "domain_of": ["TiltSeries"], - "exact_mappings": ["cdp-common:tiltseries_tilting_scheme"], - } - }, - ) - total_flux: Union[float, str] = Field( - ..., - description="""Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "total_flux", - "any_of": [ - { - "description": "Number of Electrons reaching the specimen in a " - "square Angstrom area for the entire tilt series", - "exact_mappings": ["cdp-common:tiltseries_total_flux"], - "minimum_value": 0, - "range": "float", - "required": True, - "unit": {"descriptive_name": "electrons per square Angstrom", "symbol": "e^-/Å^2"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "electrons per square Angstrom", "symbol": "e^-/Å^2"}, - } - }, - ) - pixel_spacing: Union[float, str] = Field( - ..., - description="""Pixel spacing for the tilt series""", - ge=0.001, - json_schema_extra={ - "linkml_meta": { - "alias": "pixel_spacing", - "any_of": [ - { - "description": "Pixel spacing for the tilt series", - "exact_mappings": ["cdp-common:tiltseries_pixel_spacing"], - "minimum_value": 0.001, - "range": "float", - "required": True, - "unit": {"descriptive_name": "Angstroms per pixel", "symbol": "Å/px"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["TiltSeries"], - "unit": {"descriptive_name": "Angstroms per pixel", "symbol": "Å/px"}, - } - }, - ) - - @field_validator("aligned_tiltseries_binning") - def pattern_aligned_tiltseries_binning(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid aligned_tiltseries_binning format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid aligned_tiltseries_binning format: {v}") - return v - - @field_validator("binning_from_frames") - def pattern_binning_from_frames(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid binning_from_frames format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid binning_from_frames format: {v}") - return v - - @field_validator("related_empiar_entry") - def pattern_related_empiar_entry(cls, v): - pattern = re.compile(r"^EMPIAR-[0-9]+$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid related_empiar_entry format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid related_empiar_entry format: {v}") - return v - - @field_validator("spherical_aberration_constant") - def pattern_spherical_aberration_constant(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid spherical_aberration_constant format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid spherical_aberration_constant format: {v}") - return v - - @field_validator("tilt_axis") - def pattern_tilt_axis(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid tilt_axis format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid tilt_axis format: {v}") - return v - - @field_validator("tilt_series_quality") - def pattern_tilt_series_quality(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid tilt_series_quality format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid tilt_series_quality format: {v}") - return v - - @field_validator("tilt_step") - def pattern_tilt_step(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid tilt_step format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid tilt_step format: {v}") - return v - - @field_validator("total_flux") - def pattern_total_flux(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid total_flux format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid total_flux format: {v}") - return v - - @field_validator("pixel_spacing") - def pattern_pixel_spacing(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid pixel_spacing format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid pixel_spacing format: {v}") - return v - - -class TomogramSize(ConfiguredBaseModel): - """ - The size of a tomogram in voxels in each dimension. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - x: int = Field( - ..., - description="""Number of pixels in the 3D data fast axis""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "x", - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - y: int = Field( - ..., - description="""Number of pixels in the 3D data medium axis""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "y", - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - z: int = Field( - ..., - description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "z", - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - - -class TomogramOffset(ConfiguredBaseModel): - """ - The offset of a tomogram in voxels in each dimension relative to the canonical tomogram. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - x: Union[int, str] = Field( - ..., - description="""x offset data relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "x", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - y: Union[int, str] = Field( - ..., - description="""y offset data relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "y", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - z: Union[int, str] = Field( - ..., - description="""z offset data relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "z", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - - @field_validator("x") - def pattern_x(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid x format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid x format: {v}") - return v - - @field_validator("y") - def pattern_y(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid y format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid y format: {v}") - return v - - @field_validator("z") - def pattern_z(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid z format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid z format: {v}") - return v - - -class Tomogram(AuthoredEntity): - """ - Metadata describing a tomogram. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["AuthoredEntity"]}) - - voxel_spacing: Union[float, str] = Field( - ..., - description="""Voxel spacing equal in all three axes in angstroms""", - ge=0.001, - json_schema_extra={ - "linkml_meta": { - "alias": "voxel_spacing", - "any_of": [ - { - "description": "Voxel spacing equal in all three axes in " "angstroms", - "exact_mappings": ["cdp-common:tomogram_voxel_spacing"], - "minimum_value": 0.001, - "range": "float", - "required": True, - "unit": {"descriptive_name": "Angstroms per voxel", "symbol": "Å/voxel"}, - }, - {"range": "FloatFormattedString"}, - ], - "domain_of": ["Tomogram"], - "unit": {"descriptive_name": "Angstroms per voxel", "symbol": "Å/voxel"}, - } - }, - ) - fiducial_alignment_status: Union[FiducialAlignmentStatusEnum, str] = Field( - ..., - description="""Whether the tomographic alignment was computed based on fiducial markers.""", - json_schema_extra={ - "linkml_meta": { - "alias": "fiducial_alignment_status", - "any_of": [ - { - "description": "Whether the tomographic alignment was computed " "based on fiducial markers.", - "exact_mappings": ["cdp-common:tomogram_fiducial_alignment_status"], - "range": "fiducial_alignment_status_enum", - "required": True, - }, - {"range": "StringFormattedString"}, - ], - "domain_of": ["Tomogram"], - } - }, - ) - ctf_corrected: Optional[bool] = Field( - None, - description="""Whether this tomogram is CTF corrected""", - json_schema_extra={ - "linkml_meta": { - "alias": "ctf_corrected", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_ctf_corrected"], - "recommended": True, - } - }, - ) - align_software: Optional[str] = Field( - None, - description="""Software used for alignment""", - json_schema_extra={ - "linkml_meta": { - "alias": "align_software", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_align_software"], - } - }, - ) - reconstruction_method: Union[TomogramReconstructionMethodEnum, str] = Field( - ..., - description="""Describe reconstruction method (WBP, SART, SIRT)""", - json_schema_extra={ - "linkml_meta": { - "alias": "reconstruction_method", - "any_of": [ - { - "description": "Describe reconstruction method (WBP, SART, SIRT)", - "exact_mappings": ["cdp-common:tomogram_reconstruction_method"], - "range": "tomogram_reconstruction_method_enum", - "required": True, - }, - {"range": "StringFormattedString"}, - ], - "domain_of": ["Tomogram"], - } - }, - ) - reconstruction_software: str = Field( - ..., - description="""Name of software used for reconstruction""", - json_schema_extra={ - "linkml_meta": { - "alias": "reconstruction_software", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_reconstruction_software"], - } - }, - ) - processing: TomogramProcessingEnum = Field( - ..., - description="""Describe additional processing used to derive the tomogram""", - json_schema_extra={ - "linkml_meta": { - "alias": "processing", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_processing"], - } - }, - ) - processing_software: Optional[str] = Field( - None, - description="""Processing software used to derive the tomogram""", - json_schema_extra={ - "linkml_meta": { - "alias": "processing_software", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_processing_software"], - "recommended": True, - } - }, - ) - tomogram_version: float = Field( - ..., - description="""Version of tomogram""", - json_schema_extra={ - "linkml_meta": { - "alias": "tomogram_version", - "domain_of": ["Tomogram"], - "exact_mappings": ["cdp-common:tomogram_version"], - } - }, - ) - size: Optional[TomogramSize] = Field( - None, - description="""The size of a tomogram in voxels in each dimension.""", - json_schema_extra={"linkml_meta": {"alias": "size", "domain_of": ["Tomogram"]}}, - ) - offset: TomogramOffset = Field( - ..., - description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", - json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the tomogram is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "ifabsent": "False", - } - }, - ) - is_visualization_default: bool = Field( - True, - description="""Whether the tomogram is the default for visualization.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "ifabsent": "True", - } - }, - ) - cross_references: Optional[CrossReferences] = Field( - None, - description="""A set of cross-references to other databases and publications.""", - json_schema_extra={ - "linkml_meta": { - "alias": "cross_references", - "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], - } - }, - ) - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dates", - "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], - } - }, - ) - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - - @field_validator("voxel_spacing") - def pattern_voxel_spacing(cls, v): - pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid voxel_spacing format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid voxel_spacing format: {v}") - return v - - @field_validator("fiducial_alignment_status") - def pattern_fiducial_alignment_status(cls, v): - pattern = re.compile(r"(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid fiducial_alignment_status format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid fiducial_alignment_status format: {v}") - return v - - @field_validator("reconstruction_method") - def pattern_reconstruction_method(cls, v): - pattern = re.compile(r"(^SART$)|(^Fourier Space$)|(^SIRT$)|(^WBP$)|(^Unknown$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid reconstruction_method format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid reconstruction_method format: {v}") - return v - - @field_validator("processing") - def pattern_processing(cls, v): - pattern = re.compile(r"(^denoised$)|(^filtered$)|(^raw$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid processing format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid processing format: {v}") - return v - - -class AnnotationConfidence(ConfiguredBaseModel): - """ - Metadata describing the confidence of an annotation. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - precision: Optional[float] = Field( - None, - description="""Describe the confidence level of the annotation. Precision is defined as the % of annotation objects being true positive""", - ge=0, - le=100, - json_schema_extra={ - "linkml_meta": { - "alias": "precision", - "domain_of": ["AnnotationConfidence"], - "exact_mappings": ["cdp-common:annotation_confidence_precision"], - "unit": {"descriptive_name": "percentage", "symbol": "%"}, - } - }, - ) - recall: Optional[float] = Field( - None, - description="""Describe the confidence level of the annotation. Recall is defined as the % of true positives being annotated correctly""", - ge=0, - le=100, - json_schema_extra={ - "linkml_meta": { - "alias": "recall", - "domain_of": ["AnnotationConfidence"], - "exact_mappings": ["cdp-common:annotation_confidence_recall"], - "unit": {"descriptive_name": "percentage", "symbol": "%"}, - } - }, - ) - ground_truth_used: Optional[str] = Field( - None, - description="""Annotation filename used as ground truth for precision and recall""", - json_schema_extra={ - "linkml_meta": { - "alias": "ground_truth_used", - "domain_of": ["AnnotationConfidence"], - "exact_mappings": ["cdp-common:annotation_ground_truth_used"], - } - }, - ) - - -class AnnotationObject(ConfiguredBaseModel): - """ - Metadata describing the object being annotated. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - id: str = Field( - ..., - description="""Gene Ontology Cellular Component identifier or UniProtKB accession for the annotation object.""", - json_schema_extra={ - "linkml_meta": { - "alias": "id", - "any_of": [{"range": "GO_ID"}, {"range": "UNIPROT_ID"}], - "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], - "exact_mappings": ["cdp-common:annotation_object_id"], - } - }, - ) - name: str = Field( - ..., - description="""Name of the object being annotated (e.g. ribosome, nuclear pore complex, actin filament, membrane)""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:annotation_object_name"], - } - }, - ) - description: Optional[str] = Field( - None, - description="""A textual description of the annotation object, can be a longer description to include additional information not covered by the Annotation object name and state.""", - json_schema_extra={ - "linkml_meta": { - "alias": "description", - "domain_of": ["AnnotationObject"], - "exact_mappings": ["cdp-common:annotation_object_description"], - } - }, - ) - state: Optional[str] = Field( - None, - description="""Molecule state annotated (e.g. open, closed)""", - json_schema_extra={ - "linkml_meta": { - "alias": "state", - "domain_of": ["AnnotationObject"], - "exact_mappings": ["cdp-common:annotation_object_state"], - } - }, - ) - - @field_validator("id") - def pattern_id(cls, v): - pattern = re.compile( - r"(^GO:[0-9]{7}$)|(^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$)" - ) - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class AnnotationMethodLinks(ConfiguredBaseModel): - """ - A set of links to models, source code, documentation, etc referenced by annotation the method - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - link: str = Field( - ..., - description="""URL to the annotation method reference""", - json_schema_extra={ - "linkml_meta": { - "alias": "link", - "domain_of": ["AnnotationMethodLinks"], - "exact_mappings": ["cdp-common:annotation_method_link"], - } - }, - ) - link_type: AnnotationMethodLinkTypeEnum = Field( - ..., - description="""Type of link (e.g. model, source code, documentation)""", - json_schema_extra={ - "linkml_meta": { - "alias": "link_type", - "domain_of": ["AnnotationMethodLinks"], - "exact_mappings": ["cdp-common:annotation_method_link_type"], - } - }, - ) - custom_name: Optional[str] = Field( - None, - description="""user readable name of the resource""", - json_schema_extra={ - "linkml_meta": { - "alias": "custom_name", - "domain_of": ["AnnotationMethodLinks"], - "exact_mappings": ["cdp-common:annotation_method_link_custom_name"], - "recommended": True, - } - }, - ) - - @field_validator("link_type") - def pattern_link_type(cls, v): - pattern = re.compile(r"(^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid link_type format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid link_type format: {v}") - return v - - -class AnnotationSourceFile(ConfiguredBaseModel): - """ - File and sourcing data for an annotation. Represents an entry in annotation.sources. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the annotation source is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], - "ifabsent": "False", - } - }, - ) - - -class AnnotationOrientedPointFile(AnnotationSourceFile): - """ - File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["OrientedPoint"], "from_schema": "metadata"}) - - binning: Optional[float] = Field( - 1.0, - description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "binning", - "domain_of": [ - "AnnotationOrientedPointFile", - "AnnotationPointFile", - "AnnotationInstanceSegmentationFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_binning"], - "ifabsent": "float(1)", - } - }, - ) - filter_value: Optional[str] = Field( - None, - description="""The filter value for an oriented point / instance segmentation annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "filter_value", - "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], - "exact_mappings": ["cdp-common:annotation_source_file_filter_value"], - } - }, - ) - order: Optional[str] = Field( - "xyz", - description="""The order of axes for an oriented point / instance segmentation annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "order", - "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], - "exact_mappings": ["cdp-common:annotation_source_file_order"], - "ifabsent": "string(xyz)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the annotation source is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], - "ifabsent": "False", - } - }, - ) - - -class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): - """ - File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["InstanceSegmentation"], "from_schema": "metadata"}) - - binning: Optional[float] = Field( - 1.0, - description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "binning", - "domain_of": [ - "AnnotationOrientedPointFile", - "AnnotationPointFile", - "AnnotationInstanceSegmentationFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_binning"], - "ifabsent": "float(1)", - } - }, - ) - filter_value: Optional[str] = Field( - None, - description="""The filter value for an oriented point / instance segmentation annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "filter_value", - "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], - "exact_mappings": ["cdp-common:annotation_source_file_filter_value"], - } - }, - ) - order: Optional[str] = Field( - "xyz", - description="""The order of axes for an oriented point / instance segmentation annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "order", - "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], - "exact_mappings": ["cdp-common:annotation_source_file_order"], - "ifabsent": "string(xyz)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the annotation source is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], - "ifabsent": "False", - } - }, - ) - - -class AnnotationPointFile(AnnotationSourceFile): - """ - File and sourcing data for a point annotation. Annotation that identifies points in the volume. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["Point"], "from_schema": "metadata"}) - - binning: Optional[float] = Field( - 1.0, - description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "binning", - "domain_of": [ - "AnnotationOrientedPointFile", - "AnnotationPointFile", - "AnnotationInstanceSegmentationFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_binning"], - "ifabsent": "float(1)", - } - }, - ) - columns: Optional[str] = Field( - "xyz", - description="""The columns used in a point annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "columns", - "domain_of": ["AnnotationPointFile"], - "exact_mappings": ["cdp-common:annotation_source_file_columns"], - "ifabsent": "string(xyz)", - } - }, - ) - delimiter: Optional[str] = Field( - ",", - description="""The delimiter used in a point annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "delimiter", - "domain_of": ["AnnotationPointFile"], - "exact_mappings": ["cdp-common:annotation_source_file_delimiter"], - "ifabsent": "string(,)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the annotation source is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], - "ifabsent": "False", - } - }, - ) - - -class AnnotationSegmentationMaskFile(AnnotationSourceFile): - """ - File and sourcing data for a segmentation mask annotation. Annotation that identifies an object. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["SegmentationMask"], "from_schema": "metadata"}) - - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the annotation source is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], - "ifabsent": "False", - } - }, - ) - - -class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): - """ - File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["SemanticSegmentationMask"], "from_schema": "metadata"}) - - mask_label: Optional[int] = Field( - 1, - description="""The mask label for a semantic segmentation mask annotation file.""", - json_schema_extra={ - "linkml_meta": { - "alias": "mask_label", - "domain_of": ["AnnotationSemanticSegmentationMaskFile"], - "exact_mappings": ["cdp-common:annotation_source_file_mask_label"], - "ifabsent": "int(1)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the annotation source is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], - "ifabsent": "False", - } - }, - ) - - -class AnnotationTriangularMeshFile(AnnotationSourceFile): - """ - File and sourcing data for a triangular mesh annotation. Annotation that identifies an object. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["TriangularMesh"], "from_schema": "metadata"}) - - scale_factor: Optional[float] = Field( - 1.0, - description="""The scale factor for a mesh annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "scale_factor", - "domain_of": ["AnnotationTriangularMeshFile", "AnnotationTriangularMeshGroupFile"], - "exact_mappings": ["cdp-common:annotation_source_file_scale_factor"], - "ifabsent": "float(1)", - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the annotation source is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], - "ifabsent": "False", - } - }, - ) - - -class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): - """ - File and sourcing data containing one or more triangular mesh annotations. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["TriangularMeshGroup"], "from_schema": "metadata"}) - - scale_factor: Optional[float] = Field( - 1.0, - description="""The scale factor for a mesh annotation file.""", - ge=0, - json_schema_extra={ - "linkml_meta": { - "alias": "scale_factor", - "domain_of": ["AnnotationTriangularMeshFile", "AnnotationTriangularMeshGroupFile"], - "exact_mappings": ["cdp-common:annotation_source_file_scale_factor"], - "ifabsent": "float(1)", - } - }, - ) - name: Optional[str] = Field( - None, - description="""The name that identifies to a single annotation mesh among multiple meshes.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "AuthorMixin", - "Author", - ], - "exact_mappings": ["cdp-common:annotation_source_file_mesh_name"], - } - }, - ) - file_format: str = Field( - ..., - description="""File format for this file""", - json_schema_extra={ - "linkml_meta": { - "alias": "file_format", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_format"], - } - }, - ) - glob_string: Optional[str] = Field( - None, - description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_string", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], - } - }, - ) - glob_strings: Optional[List[str]] = Field( - None, - description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", - json_schema_extra={ - "linkml_meta": { - "alias": "glob_strings", - "domain_of": [ - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], - } - }, - ) - is_visualization_default: Optional[bool] = Field( - False, - description="""This annotation will be rendered in neuroglancer by default.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_visualization_default", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], - "ifabsent": "False", - } - }, - ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the annotation source is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], - "ifabsent": "False", - } - }, - ) - - -class Annotation(AuthoredEntity, DateStampedEntity): - """ - Metadata describing an annotation. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( - {"from_schema": "metadata", "mixins": ["DateStampedEntity", "AuthoredEntity"]} - ) - - annotation_method: str = Field( - ..., - description="""Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)""", - json_schema_extra={ - "linkml_meta": { - "alias": "annotation_method", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_method"], - } - }, - ) - annotation_object: AnnotationObject = Field( - ..., - description="""Metadata describing the object being annotated.""", - json_schema_extra={"linkml_meta": {"alias": "annotation_object", "domain_of": ["Annotation"]}}, - ) - annotation_publications: Optional[str] = Field( - None, - description="""List of publication IDs (EMPIAR, EMDB, DOI, PDB) that describe this annotation method. Comma separated.""", - json_schema_extra={ - "linkml_meta": { - "alias": "annotation_publications", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_publications"], - } - }, - ) - annotation_software: Optional[str] = Field( - None, - description="""Software used for generating this annotation""", - json_schema_extra={ - "linkml_meta": { - "alias": "annotation_software", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_software"], - "recommended": True, - } - }, - ) - confidence: Optional[AnnotationConfidence] = Field( - None, - description="""Metadata describing the confidence of an annotation.""", - json_schema_extra={"linkml_meta": {"alias": "confidence", "domain_of": ["Annotation"]}}, - ) - files: Optional[List[AnnotationSourceFile]] = Field( - None, - description="""File and sourcing data for an annotation. Represents an entry in annotation.sources.""", - json_schema_extra={ - "linkml_meta": {"alias": "files", "domain_of": ["Annotation"], "list_elements_ordered": True} - }, - ) - ground_truth_status: Optional[bool] = Field( - False, - description="""Whether an annotation is considered ground truth, as determined by the annotator.""", - json_schema_extra={ - "linkml_meta": { - "alias": "ground_truth_status", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_ground_truth_status"], - "ifabsent": "False", - "recommended": True, - } - }, - ) - is_curator_recommended: Optional[bool] = Field( - False, - description="""This annotation is recommended by the curator to be preferred for this object type.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_curator_recommended", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_is_curator_recommended"], - "ifabsent": "False", - } - }, - ) - method_type: AnnotationMethodTypeEnum = Field( - ..., - description="""Classification of the annotation method based on supervision.""", - json_schema_extra={ - "linkml_meta": { - "alias": "method_type", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_method_type"], - } - }, - ) - method_links: Optional[List[AnnotationMethodLinks]] = Field( - None, - description="""A set of links to models, source code, documentation, etc referenced by annotation the method""", - json_schema_extra={"linkml_meta": {"alias": "method_links", "domain_of": ["Annotation"]}}, - ) - object_count: Optional[int] = Field( - None, - description="""Number of objects identified""", - json_schema_extra={ - "linkml_meta": { - "alias": "object_count", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_object_count"], - } - }, - ) - version: Optional[float] = Field( - None, - description="""Version of annotation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "version", - "domain_of": ["Annotation"], - "exact_mappings": ["cdp-common:annotation_version"], - } - }, - ) - dates: DateStamp = Field( - ..., - description="""A set of dates at which a data item was deposited, published and last modified.""", - json_schema_extra={ - "linkml_meta": { - "alias": "dates", - "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], - } - }, - ) - authors: List[Author] = Field( - ..., - description="""Author of a scientific data entity.""", - min_length=1, - json_schema_extra={ - "linkml_meta": { - "alias": "authors", - "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], - "list_elements_ordered": True, - } - }, - ) - - @field_validator("annotation_publications") - def pattern_annotation_publications(cls, v): - pattern = re.compile( - r"^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$" - ) - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid annotation_publications format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid annotation_publications format: {v}") - return v - - @field_validator("method_type") - def pattern_method_type(cls, v): - pattern = re.compile(r"(^manual$)|(^automated$)|(^hybrid$)|(^simulated$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid method_type format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid method_type format: {v}") - return v - - -class AlignmentSize(ConfiguredBaseModel): - """ - The size of an alignment in voxels in each dimension. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - x: Union[int, str] = Field( - ..., - description="""Number of pixels in the 3D data fast axis""", - json_schema_extra={ - "linkml_meta": { - "alias": "x", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - y: Union[int, str] = Field( - ..., - description="""Number of pixels in the 3D data medium axis""", - json_schema_extra={ - "linkml_meta": { - "alias": "y", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - z: Union[int, str] = Field( - ..., - description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", - json_schema_extra={ - "linkml_meta": { - "alias": "z", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - - @field_validator("x") - def pattern_x(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid x format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid x format: {v}") - return v - - @field_validator("y") - def pattern_y(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid y format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid y format: {v}") - return v - - @field_validator("z") - def pattern_z(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid z format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid z format: {v}") - return v - - -class AlignmentOffset(ConfiguredBaseModel): - """ - The offset of a alignment in voxels in each dimension relative to the canonical tomogram. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - x: Union[int, str] = Field( - 0, - description="""x offset relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "x", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "ifabsent": "int(0)", - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - y: Union[int, str] = Field( - 0, - description="""y offset relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "y", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "ifabsent": "int(0)", - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - z: Union[int, str] = Field( - 0, - description="""z offset relative to the canonical tomogram in pixels""", - json_schema_extra={ - "linkml_meta": { - "alias": "z", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], - "ifabsent": "int(0)", - "unit": {"descriptive_name": "pixels", "symbol": "px"}, - } - }, - ) - - @field_validator("x") - def pattern_x(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid x format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid x format: {v}") - return v - - @field_validator("y") - def pattern_y(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid y format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid y format: {v}") - return v - - @field_validator("z") - def pattern_z(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid z format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid z format: {v}") - return v - - -class Alignment(ConfiguredBaseModel): - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - alignment_type: Optional[AlignmentTypeEnum] = Field( - None, - description="""The type of alignment.""", - json_schema_extra={"linkml_meta": {"alias": "alignment_type", "domain_of": ["Alignment"]}}, - ) - offset: Optional[AlignmentOffset] = Field( - None, - description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", - json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, - ) - volume_dimesion: Optional[AlignmentSize] = Field( - None, - description="""The size of an alignment in voxels in each dimension.""", - json_schema_extra={"linkml_meta": {"alias": "volume_dimesion", "domain_of": ["Alignment"]}}, - ) - x_rotation_offset: Optional[Union[int, str]] = Field( - 0, - description="""The x rotation offset relative to the tomogram.""", - json_schema_extra={ - "linkml_meta": { - "alias": "x_rotation_offset", - "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], - "domain_of": ["Alignment"], - "ifabsent": "int(0)", - } - }, - ) - tilt_offset: Optional[float] = Field( - 0.0, - description="""The tilt offset relative to the tomogram.""", - json_schema_extra={ - "linkml_meta": {"alias": "tilt_offset", "domain_of": ["Alignment"], "ifabsent": "float(0.0)"} - }, - ) - affine_transformation_matrix: Optional[ - conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float)) - ] = Field( - None, - description="""The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affine_transformation_matrix", - "array": { - "dimensions": [{"exact_cardinality": 4}, {"exact_cardinality": 4}], - "exact_number_dimensions": 2, - }, - "domain_of": ["Alignment"], - } - }, - ) - is_canonical: Optional[bool] = Field( - True, - description="""Whether the alignment is canonical.""", - json_schema_extra={"linkml_meta": {"alias": "is_canonical", "domain_of": ["Alignment"], "ifabsent": "True"}}, - ) - format: AlignmentFormatEnum = Field( - ..., - description="""The format of the alignment.""", - json_schema_extra={"linkml_meta": {"alias": "format", "domain_of": ["Alignment"]}}, - ) - - @field_validator("alignment_type") - def pattern_alignment_type(cls, v): - pattern = re.compile(r"(^LOCAL$)|(^GLOBAL$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid alignment_type format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid alignment_type format: {v}") - return v - - @field_validator("x_rotation_offset") - def pattern_x_rotation_offset(cls, v): - pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid x_rotation_offset format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid x_rotation_offset format: {v}") - return v - - @field_validator("format") - def pattern_format(cls, v): - pattern = re.compile(r"(^IMOD$)|(^ARETOMO3$)") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid format format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid format format: {v}") - return v - - -class Frame(ConfiguredBaseModel): - """ - A frame entity. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) - - dose: float = Field( - ..., description="""The dose.""", json_schema_extra={"linkml_meta": {"alias": "dose", "domain_of": ["Frame"]}} - ) - defocus: float = Field( - ..., - description="""The defocus.""", - json_schema_extra={"linkml_meta": {"alias": "defocus", "domain_of": ["Frame"]}}, - ) - astigmatism: float = Field( - ..., - description="""The astigmatism.""", - json_schema_extra={"linkml_meta": {"alias": "astigmatism", "domain_of": ["Frame"]}}, - ) - astigmatic_angle: float = Field( - ..., - description="""The astigmatic angle.""", - json_schema_extra={"linkml_meta": {"alias": "astigmatic_angle", "domain_of": ["Frame"]}}, - ) - - -class DateStampedEntityMixin(ConfiguredBaseModel): - """ - A set of dates at which a data item was deposited, published and last modified. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) - - deposition_date: date = Field( - ..., - description="""The date a data item was received by the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:deposition_date"], - } - }, - ) - release_date: date = Field( - ..., - description="""The date a data item was received by the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "release_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:release_date"], - } - }, - ) - last_modified_date: date = Field( - ..., - description="""The date a piece of data was last modified on the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "last_modified_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:last_modified_date"], - } - }, - ) - - -class DateStamp(DateStampedEntityMixin): - """ - A set of dates at which a data item was deposited, published and last modified. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["DateStampedEntityMixin"]}) - - deposition_date: date = Field( - ..., - description="""The date a data item was received by the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "deposition_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:deposition_date"], - } - }, - ) - release_date: date = Field( - ..., - description="""The date a data item was received by the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "release_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:release_date"], - } - }, - ) - last_modified_date: date = Field( - ..., - description="""The date a piece of data was last modified on the cryoET data portal.""", - json_schema_extra={ - "linkml_meta": { - "alias": "last_modified_date", - "domain_of": ["DateStampedEntityMixin", "DateStamp"], - "exact_mappings": ["cdp-common:last_modified_date"], - } - }, - ) - - -class CrossReferencesMixin(ConfiguredBaseModel): - """ - A set of cross-references to other databases and publications. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) - - publications: Optional[str] = Field( - None, - description="""Comma-separated list of DOIs for publications associated with the dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "publications", - "domain_of": ["CrossReferencesMixin", "CrossReferences"], - "recommended": True, - } - }, - ) - related_database_entries: Optional[str] = Field( - None, - description="""Comma-separated list of related database entries for the dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "related_database_entries", - "domain_of": ["CrossReferencesMixin", "CrossReferences"], - "recommended": True, - } - }, - ) - related_database_links: Optional[str] = Field( - None, - description="""Comma-separated list of related database links for the dataset.""", - json_schema_extra={ - "linkml_meta": {"alias": "related_database_links", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} - }, - ) - dataset_citations: Optional[str] = Field( - None, - description="""Comma-separated list of DOIs for publications citing the dataset.""", - json_schema_extra={ - "linkml_meta": {"alias": "dataset_citations", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} - }, - ) - - @field_validator("publications") - def pattern_publications(cls, v): - pattern = re.compile( - r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)" - ) - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid publications format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid publications format: {v}") - return v - - @field_validator("related_database_entries") - def pattern_related_database_entries(cls, v): - pattern = re.compile( - r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)" - ) - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid related_database_entries format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid related_database_entries format: {v}") - return v - - -class CrossReferences(CrossReferencesMixin): - """ - A set of cross-references to other databases and publications. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["CrossReferencesMixin"]}) - - publications: Optional[str] = Field( - None, - description="""Comma-separated list of DOIs for publications associated with the dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "publications", - "domain_of": ["CrossReferencesMixin", "CrossReferences"], - "recommended": True, - } - }, - ) - related_database_entries: Optional[str] = Field( - None, - description="""Comma-separated list of related database entries for the dataset.""", - json_schema_extra={ - "linkml_meta": { - "alias": "related_database_entries", - "domain_of": ["CrossReferencesMixin", "CrossReferences"], - "recommended": True, - } - }, - ) - related_database_links: Optional[str] = Field( - None, - description="""Comma-separated list of related database links for the dataset.""", - json_schema_extra={ - "linkml_meta": {"alias": "related_database_links", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} - }, - ) - dataset_citations: Optional[str] = Field( - None, - description="""Comma-separated list of DOIs for publications citing the dataset.""", - json_schema_extra={ - "linkml_meta": {"alias": "dataset_citations", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} - }, - ) - - @field_validator("publications") - def pattern_publications(cls, v): - pattern = re.compile( - r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)" - ) - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid publications format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid publications format: {v}") - return v - - @field_validator("related_database_entries") - def pattern_related_database_entries(cls, v): - pattern = re.compile( - r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)" - ) - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid related_database_entries format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid related_database_entries format: {v}") - return v - - -class AuthorMixin(ConfiguredBaseModel): - """ - An entity with author data - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) - - name: str = Field( - ..., - description="""The full name of the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "AuthorMixin", - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "Author", - ], - "exact_mappings": ["cdp-common:author_name"], - } - }, - ) - email: Optional[str] = Field( - None, - description="""The email address of the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "email", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_email"], - } - }, - ) - affiliation_name: Optional[str] = Field( - None, - description="""The name of the author's affiliation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_name", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_name"], - } - }, - ) - affiliation_address: Optional[str] = Field( - None, - description="""The address of the author's affiliation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_address", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_address"], - } - }, - ) - affiliation_identifier: Optional[str] = Field( - None, - description="""A Research Organization Registry (ROR) identifier.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_identifier", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_identifier"], - "recommended": True, - } - }, - ) - corresponding_author_status: Optional[bool] = Field( - False, - description="""Whether the author is a corresponding author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "corresponding_author_status", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_corresponding_author_status"], - "ifabsent": "False", - } - }, - ) - primary_author_status: Optional[bool] = Field( - False, - description="""Whether the author is a primary author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "primary_author_status", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_primary_author_status"], - "ifabsent": "False", - } - }, - ) - - -class Author(AuthorMixin): - """ - Author of a scientific data entity. - """ - - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["AuthorMixin"]}) - - ORCID: Optional[str] = Field( - None, - description="""The ORCID identifier for the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "ORCID", - "domain_of": ["Author"], - "exact_mappings": ["cdp-common:author_orcid"], - "recommended": True, - } - }, - ) - name: str = Field( - ..., - description="""The full name of the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "name", - "domain_of": [ - "AuthorMixin", - "OrganismDetails", - "TissueDetails", - "CellType", - "CellStrain", - "CellComponent", - "AnnotationObject", - "AnnotationTriangularMeshGroupFile", - "Author", - ], - "exact_mappings": ["cdp-common:author_name"], - } - }, - ) - email: Optional[str] = Field( - None, - description="""The email address of the author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "email", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_email"], - } - }, - ) - affiliation_name: Optional[str] = Field( - None, - description="""The name of the author's affiliation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_name", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_name"], - } - }, - ) - affiliation_address: Optional[str] = Field( - None, - description="""The address of the author's affiliation.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_address", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_address"], - } - }, - ) - affiliation_identifier: Optional[str] = Field( - None, - description="""A Research Organization Registry (ROR) identifier.""", - json_schema_extra={ - "linkml_meta": { - "alias": "affiliation_identifier", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_affiliation_identifier"], - "recommended": True, - } - }, - ) - corresponding_author_status: Optional[bool] = Field( - False, - description="""Whether the author is a corresponding author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "corresponding_author_status", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_corresponding_author_status"], - "ifabsent": "False", - } - }, - ) - primary_author_status: Optional[bool] = Field( - False, - description="""Whether the author is a primary author.""", - json_schema_extra={ - "linkml_meta": { - "alias": "primary_author_status", - "domain_of": ["AuthorMixin", "Author"], - "exact_mappings": ["cdp-common:author_primary_author_status"], - "ifabsent": "False", - } - }, - ) - - @field_validator("ORCID") - def pattern_ORCID(cls, v): - pattern = re.compile(r"[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$") - if isinstance(v, list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid ORCID format: {element}") - elif isinstance(v, str): - if not pattern.match(v): - raise ValueError(f"Invalid ORCID format: {v}") - return v - - -# Model rebuild -# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model -PicturePath.model_rebuild() -FundingDetails.model_rebuild() -DateStampedEntity.model_rebuild() -AuthoredEntity.model_rebuild() -FundedEntity.model_rebuild() -CrossReferencedEntity.model_rebuild() -PicturedEntity.model_rebuild() -OrganismDetails.model_rebuild() -TissueDetails.model_rebuild() -CellType.model_rebuild() -CellStrain.model_rebuild() -CellComponent.model_rebuild() -ExperimentMetadata.model_rebuild() -Dataset.model_rebuild() -Deposition.model_rebuild() -CameraDetails.model_rebuild() -MicroscopeDetails.model_rebuild() -MicroscopeOpticalSetup.model_rebuild() -TiltRange.model_rebuild() -TiltSeries.model_rebuild() -TomogramSize.model_rebuild() -TomogramOffset.model_rebuild() -Tomogram.model_rebuild() -AnnotationConfidence.model_rebuild() -AnnotationObject.model_rebuild() -AnnotationMethodLinks.model_rebuild() -AnnotationSourceFile.model_rebuild() -AnnotationOrientedPointFile.model_rebuild() -AnnotationInstanceSegmentationFile.model_rebuild() -AnnotationPointFile.model_rebuild() -AnnotationSegmentationMaskFile.model_rebuild() -AnnotationSemanticSegmentationMaskFile.model_rebuild() -AnnotationTriangularMeshFile.model_rebuild() -AnnotationTriangularMeshGroupFile.model_rebuild() -Annotation.model_rebuild() -AlignmentSize.model_rebuild() -AlignmentOffset.model_rebuild() -Alignment.model_rebuild() -Frame.model_rebuild() -DateStampedEntityMixin.model_rebuild() -DateStamp.model_rebuild() -CrossReferencesMixin.model_rebuild() -CrossReferences.model_rebuild() -AuthorMixin.model_rebuild() -Author.model_rebuild() diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index a80b3eec4..d04257260 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -36,12 +36,12 @@ def rawtilts_to_alignments(config: dict) -> bool: } def valid_file(file): - return any(file.endswith(ext) for ext in ['.tlt', ".xf", ".aln", ".com"]) + return any(file.endswith(ext) for ext in ['.tlt', ".xf", ".aln", ".com", ".txt", ".csv"]) def get_format(file): if any(file.endswith(ext) for ext in ['.tlt', ".xf", ".com"]): format_dict["IMOD"].append(file) - elif any(file.endswith(ext) for ext in ['.aln']): + elif any(file.endswith(ext) for ext in ['.aln', ".txt", ".csv"]): format_dict["ARETOMO3"].append(file) if len(config.get('tomograms', [])) > 1 or len(config.get("rawtilts", [])) > 1: @@ -61,9 +61,14 @@ def get_format(file): config['alignments'] = [] for key, files in format_dict.items(): if files: - alignment = { - "metadata": {"format": key}, - "sources": [{"source_multi_glob": {"list_globs": files}}]} + # check if there is an alignment with the key in the metadata.format + alignment = [a for a in config.get("alignments", []) if a["metadata"]["format"] == key] + if alignment: + alignment = alignment.pop() + else: + alignment = { + "metadata": {"format": key}, + "sources": [{"source_multi_glob": {"list_globs": files}}]} if 'tomograms' in config: for i in config['tomograms']: diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py deleted file mode 100644 index 8ab9907da..000000000 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ /dev/null @@ -1,6673 +0,0 @@ -from __future__ import annotations -from datetime import ( - datetime, - date -) -from decimal import Decimal -from enum import Enum -import re -import sys -from typing import ( - Any, - ClassVar, - List, - Literal, - Dict, - Optional, - Union -) -from pydantic import ( - BaseModel, - ConfigDict, - Field, - RootModel, - field_validator, - conlist -) -metamodel_version = "None" -version = "1.1.0" - - -class ConfiguredBaseModel(BaseModel): - model_config = ConfigDict( - validate_assignment = True, - validate_default = True, - extra = "forbid", - arbitrary_types_allowed = True, - use_enum_values = True, - strict = False, - ) - pass - - - - -class LinkMLMeta(RootModel): - root: Dict[str, Any] = {} - model_config = ConfigDict(frozen=True) - - def __getattr__(self, key:str): - return getattr(self.root, key) - - def __getitem__(self, key:str): - return self.root[key] - - def __setitem__(self, key:str, value): - self.root[key] = value - - def __contains__(self, key:str) -> bool: - return key in self.root - - -linkml_meta = LinkMLMeta({'default_prefix': 'cdp-ingestion-config/', - 'description': 'Schema for ingestion configs', - 'id': 'cdp-ingestion-config', - 'imports': ['linkml:types', - '../../../core/v1.1.0/codegen/metadata_materialized', - '../../../core/v1.1.0/common'], - 'name': 'cdp-ingestion-config', - 'prefixes': {'linkml': {'prefix_prefix': 'linkml', - 'prefix_reference': 'https://w3id.org/linkml/'}}, - 'source_file': 'ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml', - 'types': {'BTO_ID': {'base': 'str', - 'description': 'A BRENDA Tissue Ontology identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'BTO_ID', - 'pattern': '^BTO:[0-9]{7}$'}, - 'CL_ID': {'base': 'str', - 'description': 'A Cell Ontology identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'CL_ID', - 'pattern': '^CL:[0-9]{7}$'}, - 'DOI': {'base': 'str', - 'description': 'A Digital Object Identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'DOI', - 'pattern': '^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+$'}, - 'DOI_LIST': {'base': 'str', - 'description': 'A list of Digital Object Identifiers', - 'from_schema': 'cdp-ingestion-config', - 'name': 'DOI_LIST', - 'pattern': '^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$'}, - 'EMDB_ID': {'base': 'str', - 'description': 'An Electron Microscopy Data Bank ' - 'identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'EMDB_ID', - 'pattern': '^EMD-[0-9]{4,5}$'}, - 'EMPIAR_EMDB_DOI_PDB_LIST': {'base': 'str', - 'description': 'A list of EMPIAR, ' - 'EMDB, DOI, and PDB ' - 'identifiers', - 'from_schema': 'cdp-ingestion-config', - 'name': 'EMPIAR_EMDB_DOI_PDB_LIST', - 'pattern': '^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$'}, - 'EMPIAR_EMDB_PDB_LIST': {'base': 'str', - 'description': 'A list of EMPIAR, EMDB, ' - 'and PDB identifiers', - 'from_schema': 'cdp-ingestion-config', - 'name': 'EMPIAR_EMDB_PDB_LIST', - 'pattern': '^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$'}, - 'EMPIAR_ID': {'base': 'str', - 'description': 'An Electron Microscopy Public Image ' - 'Archive identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'EMPIAR_ID', - 'pattern': '^EMPIAR-[0-9]+$'}, - 'FloatFormattedString': {'base': 'str', - 'description': 'A formatted string that ' - 'represents a floating ' - 'point number.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'FloatFormattedString', - 'pattern': '^float[ ' - ']*\\{[a-zA-Z0-9_-]+\\}[ ]*$'}, - 'GO_ID': {'base': 'str', - 'description': 'A Gene Ontology identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'GO_ID', - 'pattern': '^GO:[0-9]{7}$'}, - 'IntegerFormattedString': {'base': 'str', - 'description': 'A formatted string that ' - 'represents an integer.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'IntegerFormattedString', - 'pattern': '^int[ ' - ']*\\{[a-zA-Z0-9_-]+\\}[ ]*$'}, - 'ONTOLOGY_ID': {'base': 'str', - 'description': 'An ontology identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'ONTOLOGY_ID', - 'pattern': '^[a-zA-Z]+:[0-9]+$'}, - 'ORCID': {'base': 'str', - 'description': 'A unique, persistent identifier for ' - 'researchers, provided by ORCID.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'ORCID', - 'pattern': '[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$'}, - 'PDB_ID': {'base': 'str', - 'description': 'A Protein Data Bank identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'PDB_ID', - 'pattern': '^PDB-[0-9a-zA-Z]{4,8}$'}, - 'StringFormattedString': {'base': 'str', - 'description': 'A formatted string ' - '(variable) that ' - 'represents a string.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'StringFormattedString', - 'pattern': '^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ' - ']*$'}, - 'UNIPROT_ID': {'base': 'str', - 'description': 'A UniProt identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'UNIPROT_ID', - 'pattern': '^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$'}, - 'URLorS3URI': {'base': 'str', - 'description': 'A URL or S3 URI', - 'from_schema': 'cdp-ingestion-config', - 'name': 'URLorS3URI', - 'pattern': '^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$'}, - 'VersionString': {'base': 'float', - 'description': 'A version number (only major, ' - 'minor versions)', - 'from_schema': 'cdp-ingestion-config', - 'minimum_value': 0, - 'name': 'VersionString'}, - 'WORMBASE_ID': {'base': 'str', - 'description': 'A WormBase identifier', - 'from_schema': 'cdp-ingestion-config', - 'name': 'WORMBASE_ID', - 'pattern': 'WBStrain[0-9]{8}$'}, - 'boolean': {'base': 'Bool', - 'description': 'A binary (true or false) value', - 'exact_mappings': ['schema:Boolean'], - 'from_schema': 'cdp-ingestion-config', - 'name': 'boolean', - 'notes': ['If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"boolean".'], - 'repr': 'bool', - 'uri': 'xsd:boolean'}, - 'curie': {'base': 'Curie', - 'comments': ['in RDF serializations this MUST be expanded ' - 'to a URI', - 'in non-RDF serializations MAY be serialized ' - 'as the compact representation'], - 'conforms_to': 'https://www.w3.org/TR/curie/', - 'description': 'a compact URI', - 'from_schema': 'cdp-ingestion-config', - 'name': 'curie', - 'notes': ['If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"curie".'], - 'repr': 'str', - 'uri': 'xsd:string'}, - 'date': {'base': 'XSDDate', - 'description': 'a date (year, month and day) in an ' - 'idealized calendar', - 'exact_mappings': ['schema:Date'], - 'from_schema': 'cdp-ingestion-config', - 'name': 'date', - 'notes': ["URI is dateTime because OWL reasoners don't " - 'work with straight date or time', - 'If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"date".'], - 'repr': 'str', - 'uri': 'xsd:date'}, - 'date_or_datetime': {'base': 'str', - 'description': 'Either a date or a datetime', - 'from_schema': 'cdp-ingestion-config', - 'name': 'date_or_datetime', - 'notes': ['If you are authoring schemas in ' - 'LinkML YAML, the type is referenced ' - 'with the lower case ' - '"date_or_datetime".'], - 'repr': 'str', - 'uri': 'linkml:DateOrDatetime'}, - 'datetime': {'base': 'XSDDateTime', - 'description': 'The combination of a date and time', - 'exact_mappings': ['schema:DateTime'], - 'from_schema': 'cdp-ingestion-config', - 'name': 'datetime', - 'notes': ['If you are authoring schemas in LinkML ' - 'YAML, the type is referenced with the lower ' - 'case "datetime".'], - 'repr': 'str', - 'uri': 'xsd:dateTime'}, - 'decimal': {'base': 'Decimal', - 'broad_mappings': ['schema:Number'], - 'description': 'A real number with arbitrary precision ' - 'that conforms to the xsd:decimal ' - 'specification', - 'from_schema': 'cdp-ingestion-config', - 'name': 'decimal', - 'notes': ['If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"decimal".'], - 'uri': 'xsd:decimal'}, - 'double': {'base': 'float', - 'close_mappings': ['schema:Float'], - 'description': 'A real number that conforms to the ' - 'xsd:double specification', - 'from_schema': 'cdp-ingestion-config', - 'name': 'double', - 'notes': ['If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"double".'], - 'uri': 'xsd:double'}, - 'float': {'base': 'float', - 'description': 'A real number that conforms to the ' - 'xsd:float specification', - 'exact_mappings': ['schema:Float'], - 'from_schema': 'cdp-ingestion-config', - 'name': 'float', - 'notes': ['If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"float".'], - 'uri': 'xsd:float'}, - 'integer': {'base': 'int', - 'description': 'An integer', - 'exact_mappings': ['schema:Integer'], - 'from_schema': 'cdp-ingestion-config', - 'name': 'integer', - 'notes': ['If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"integer".'], - 'uri': 'xsd:integer'}, - 'jsonpath': {'base': 'str', - 'conforms_to': 'https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html', - 'description': 'A string encoding a JSON Path. The ' - 'value of the string MUST conform to ' - 'JSON Point syntax and SHOULD ' - 'dereference to zero or more valid ' - 'objects within the current instance ' - 'document when encoded in tree form.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'jsonpath', - 'notes': ['If you are authoring schemas in LinkML ' - 'YAML, the type is referenced with the lower ' - 'case "jsonpath".'], - 'repr': 'str', - 'uri': 'xsd:string'}, - 'jsonpointer': {'base': 'str', - 'conforms_to': 'https://datatracker.ietf.org/doc/html/rfc6901', - 'description': 'A string encoding a JSON Pointer. ' - 'The value of the string MUST ' - 'conform to JSON Point syntax and ' - 'SHOULD dereference to a valid ' - 'object within the current instance ' - 'document when encoded in tree form.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'jsonpointer', - 'notes': ['If you are authoring schemas in LinkML ' - 'YAML, the type is referenced with the ' - 'lower case "jsonpointer".'], - 'repr': 'str', - 'uri': 'xsd:string'}, - 'ncname': {'base': 'NCName', - 'description': 'Prefix part of CURIE', - 'from_schema': 'cdp-ingestion-config', - 'name': 'ncname', - 'notes': ['If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"ncname".'], - 'repr': 'str', - 'uri': 'xsd:string'}, - 'nodeidentifier': {'base': 'NodeIdentifier', - 'description': 'A URI, CURIE or BNODE that ' - 'represents a node in a model.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'nodeidentifier', - 'notes': ['If you are authoring schemas in ' - 'LinkML YAML, the type is referenced ' - 'with the lower case ' - '"nodeidentifier".'], - 'repr': 'str', - 'uri': 'shex:nonLiteral'}, - 'objectidentifier': {'base': 'ElementIdentifier', - 'comments': ['Used for inheritance and type ' - 'checking'], - 'description': 'A URI or CURIE that represents ' - 'an object in the model.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'objectidentifier', - 'notes': ['If you are authoring schemas in ' - 'LinkML YAML, the type is referenced ' - 'with the lower case ' - '"objectidentifier".'], - 'repr': 'str', - 'uri': 'shex:iri'}, - 'sparqlpath': {'base': 'str', - 'conforms_to': 'https://www.w3.org/TR/sparql11-query/#propertypaths', - 'description': 'A string encoding a SPARQL Property ' - 'Path. The value of the string MUST ' - 'conform to SPARQL syntax and SHOULD ' - 'dereference to zero or more valid ' - 'objects within the current instance ' - 'document when encoded as RDF.', - 'from_schema': 'cdp-ingestion-config', - 'name': 'sparqlpath', - 'notes': ['If you are authoring schemas in LinkML ' - 'YAML, the type is referenced with the ' - 'lower case "sparqlpath".'], - 'repr': 'str', - 'uri': 'xsd:string'}, - 'string': {'base': 'str', - 'description': 'A character string', - 'exact_mappings': ['schema:Text'], - 'from_schema': 'cdp-ingestion-config', - 'name': 'string', - 'notes': ['In RDF serializations, a slot with range of ' - 'string is treated as a literal or type ' - 'xsd:string. If you are authoring schemas in ' - 'LinkML YAML, the type is referenced with the ' - 'lower case "string".'], - 'uri': 'xsd:string'}, - 'time': {'base': 'XSDTime', - 'description': 'A time object represents a (local) time of ' - 'day, independent of any particular day', - 'exact_mappings': ['schema:Time'], - 'from_schema': 'cdp-ingestion-config', - 'name': 'time', - 'notes': ['URI is dateTime because OWL reasoners do not ' - 'work with straight date or time', - 'If you are authoring schemas in LinkML YAML, ' - 'the type is referenced with the lower case ' - '"time".'], - 'repr': 'str', - 'uri': 'xsd:time'}, - 'uri': {'base': 'URI', - 'close_mappings': ['schema:URL'], - 'comments': ['in RDF serializations a slot with range of ' - 'uri is treated as a literal or type ' - 'xsd:anyURI unless it is an identifier or a ' - 'reference to an identifier, in which case it ' - 'is translated directly to a node'], - 'conforms_to': 'https://www.ietf.org/rfc/rfc3987.txt', - 'description': 'a complete URI', - 'from_schema': 'cdp-ingestion-config', - 'name': 'uri', - 'notes': ['If you are authoring schemas in LinkML YAML, the ' - 'type is referenced with the lower case "uri".'], - 'repr': 'str', - 'uri': 'xsd:anyURI'}, - 'uriorcurie': {'base': 'URIorCURIE', - 'description': 'a URI or a CURIE', - 'from_schema': 'cdp-ingestion-config', - 'name': 'uriorcurie', - 'notes': ['If you are authoring schemas in LinkML ' - 'YAML, the type is referenced with the ' - 'lower case "uriorcurie".'], - 'repr': 'str', - 'uri': 'xsd:anyURI'}}} ) - -class AlignmentTypeEnum(str, Enum): - """ - Type of alignment - """ - # Local alignment - LOCAL = "LOCAL" - # Global alignment - GLOBAL = "GLOBAL" - - -class AlignmentFormatEnum(str, Enum): - """ - Used to determine what alignment alogrithm to use. - """ - # formats (xf, tlt, com) - IMOD = "IMOD" - # formats (aln) - ARETOMO3 = "ARETOMO3" - - -class AnnotationMethodTypeEnum(str, Enum): - """ - Describes how the annotations were generated. - """ - # Annotations were generated manually. - manual = "manual" - # Annotations were generated using automated tools or algorithms without supervision. - automated = "automated" - # Annotations were generated using a combination of automated and manual methods. - hybrid = "hybrid" - # Annotations were generated by simulation tools or algorithms. - simulated = "simulated" - - -class AnnotationFileShapeTypeEnum(str, Enum): - """ - Describes the shape of the annotation - """ - # A binary mask volume - SegmentationMask = "SegmentationMask" - # A series of coordinates and an orientation - OrientedPoint = "OrientedPoint" - # A series of coordinates - Point = "Point" - # A volume with labels for multiple instances - InstanceSegmentation = "InstanceSegmentation" - # A mesh of triangles - TriangularMesh = "TriangularMesh" - # A group of triangular meshes - TriangularMeshGroup = "TriangularMeshGroup" - - -class AnnotationMethodLinkTypeEnum(str, Enum): - """ - Describes the type of link associated to the annotation method. - """ - # Links to the documentation related to the method. - documentation = "documentation" - # Links to the weights that the models used for generating annotations were trained with. - models_weights = "models_weights" - # Link to resources that does not fit in the other categories. - other = "other" - # Links to the source code of the method. - source_code = "source_code" - # Links to a website of the method or tool used to generate the annotation. - website = "website" - - -class DepositionTypesEnum(str, Enum): - """ - Types of data a deposition has - """ - # The deposition comprises of new annotations for existing datasets - annotation = "annotation" - # The deposition comprises of new dataset(s). - dataset = "dataset" - # The deposition comprises of new tomograms for existing datasets - tomogram = "tomogram" - - -class SampleTypeEnum(str, Enum): - """ - Type of sample imaged in a CryoET study. - """ - # Tomographic data of whole cells or cell sections. - cell = "cell" - # Tomographic data of tissue sections. - tissue = "tissue" - # Tomographic data of sections through multicellular organisms. - organism = "organism" - # Tomographic data of purified organelles. - organelle = "organelle" - # Tomographic data of purified viruses or VLPs. - virus = "virus" - # Tomographic data of in vitro reconstituted systems or mixtures of proteins. - in_vitro = "in_vitro" - # Simulated tomographic data. - in_silico = "in_silico" - # Other type of sample. - other = "other" - - -class TiltseriesCameraAcquireModeEnum(str, Enum): - """ - Camera acquisition mode - """ - # Counting mode - counting = "counting" - # Super-resolution mode - superresolution = "superresolution" - # Linear mode - linear = "linear" - # Correlated double sampling mode - cds = "cds" - - -class TiltseriesMicroscopeManufacturerEnum(str, Enum): - """ - Microscope manufacturer - """ - # FEI Company - FEI = "FEI" - # Thermo Fisher Scientific - TFS = "TFS" - # JEOL Ltd. - JEOL = "JEOL" - # Simulated data - SIMULATED = "SIMULATED" - - -class FiducialAlignmentStatusEnum(str, Enum): - """ - Fiducial Alignment method - """ - # Alignment computed based on fiducial markers - FIDUCIAL = "FIDUCIAL" - # Alignment computed without fiducial markers - NON_FIDUCIAL = "NON_FIDUCIAL" - - -class TomogramProcessingEnum(str, Enum): - """ - Tomogram processing method - """ - # Tomogram was denoised - denoised = "denoised" - # Tomogram was filtered - filtered = "filtered" - # Tomogram was not processed - raw = "raw" - - -class TomogramReconstructionMethodEnum(str, Enum): - """ - Tomogram reconstruction method - """ - # Simultaneous Algebraic Reconstruction Technique - SART = "SART" - # Fourier space reconstruction - Fourier_Space = "Fourier Space" - # Simultaneous Iterative Reconstruction Technique - SIRT = "SIRT" - # Weighted Back-Projection - WBP = "WBP" - # Unknown reconstruction method - Unknown = "Unknown" - - -class TomogramTypeEnum(str, Enum): - """ - Tomogram type - """ - # Canonical tomogram (basis geometry for all annotations) - CANONICAL = "CANONICAL" - - - -class PicturePath(ConfiguredBaseModel): - """ - A set of paths to representative images of a piece of data. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - snapshot: Optional[str] = Field(None, description="""Path to the dataset preview image relative to the dataset directory root.""", json_schema_extra = { "linkml_meta": {'alias': 'snapshot', - 'domain_of': ['PicturePath'], - 'exact_mappings': ['cdp-common:snapshot'], - 'recommended': True} }) - thumbnail: Optional[str] = Field(None, description="""Path to the thumbnail of preview image relative to the dataset directory root.""", json_schema_extra = { "linkml_meta": {'alias': 'thumbnail', - 'domain_of': ['PicturePath'], - 'exact_mappings': ['cdp-common:thumbnail'], - 'recommended': True} }) - - @field_validator('snapshot') - def pattern_snapshot(cls, v): - pattern=re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid snapshot format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid snapshot format: {v}") - return v - - @field_validator('thumbnail') - def pattern_thumbnail(cls, v): - pattern=re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid thumbnail format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid thumbnail format: {v}") - return v - - -class FundingDetails(ConfiguredBaseModel): - """ - A funding source for a scientific data entity (base for JSON and DB representation). - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - funding_agency_name: Optional[str] = Field(None, description="""The name of the funding source.""", json_schema_extra = { "linkml_meta": {'alias': 'funding_agency_name', - 'domain_of': ['FundingDetails'], - 'exact_mappings': ['cdp-common:funding_agency_name'], - 'recommended': True} }) - grant_id: Optional[str] = Field(None, description="""Grant identifier provided by the funding agency""", json_schema_extra = { "linkml_meta": {'alias': 'grant_id', - 'domain_of': ['FundingDetails'], - 'exact_mappings': ['cdp-common:funding_grant_id'], - 'recommended': True} }) - - -class DateStampedEntity(ConfiguredBaseModel): - """ - An entity with associated deposition, release and last modified dates. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', - 'Tomogram', - 'Dataset', - 'Deposition', - 'Annotation']} }) - - -class AuthoredEntity(ConfiguredBaseModel): - """ - An entity with associated authors. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', - 'domain_of': ['AuthoredEntity', - 'Dataset', - 'Deposition', - 'Tomogram', - 'Annotation'], - 'list_elements_ordered': True} }) - - -class FundedEntity(ConfiguredBaseModel): - """ - An entity with associated funding sources. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - funding: Optional[List[FundingDetails]] = Field(None, description="""A funding source for a scientific data entity (base for JSON and DB representation).""", json_schema_extra = { "linkml_meta": {'alias': 'funding', - 'domain_of': ['FundedEntity', 'Dataset'], - 'list_elements_ordered': True, - 'recommended': True} }) - - -class CrossReferencedEntity(ConfiguredBaseModel): - """ - An entity with associated cross-references to other databases and publications. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixin': True}) - - cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', - 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) - - -class PicturedEntity(ConfiguredBaseModel): - """ - An entity with associated preview images. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - key_photos: PicturePath = Field(..., description="""A set of paths to representative images of a piece of data.""", json_schema_extra = { "linkml_meta": {'alias': 'key_photos', 'domain_of': ['PicturedEntity']} }) - - -class OrganismDetails(ConfiguredBaseModel): - """ - The species from which the sample was derived. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - name: str = Field(..., description="""Name of the organism from which a biological sample used in a CryoET study is derived from, e.g. homo sapiens.""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile', - 'AuthorMixin', - 'Author'], - 'exact_mappings': ['cdp-common:organism_name']} }) - taxonomy_id: Optional[int] = Field(None, description="""NCBI taxonomy identifier for the organism, e.g. 9606""", ge=1, json_schema_extra = { "linkml_meta": {'alias': 'taxonomy_id', - 'domain_of': ['OrganismDetails'], - 'exact_mappings': ['cdp-common:organism_taxid'], - 'recommended': True} }) - - -class TissueDetails(ConfiguredBaseModel): - """ - The type of tissue from which the sample was derived. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - name: str = Field(..., description="""Name of the tissue from which a biological sample used in a CryoET study is derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile', - 'AuthorMixin', - 'Author'], - 'exact_mappings': ['cdp-common:tissue_name']} }) - id: Optional[str] = Field(None, description="""The UBERON identifier for the tissue.""", json_schema_extra = { "linkml_meta": {'alias': 'id', - 'domain_of': ['TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject'], - 'exact_mappings': ['cdp-common:tissue_id'], - 'recommended': True} }) - - @field_validator('id') - def pattern_id(cls, v): - pattern=re.compile(r"^BTO:[0-9]{7}$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class CellType(ConfiguredBaseModel): - """ - The cell type from which the sample was derived. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - name: str = Field(..., description="""Name of the cell type from which a biological sample used in a CryoET study is derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile', - 'AuthorMixin', - 'Author'], - 'exact_mappings': ['cdp-common:cell_name']} }) - id: Optional[str] = Field(None, description="""Cell Ontology identifier for the cell type""", json_schema_extra = { "linkml_meta": {'alias': 'id', - 'domain_of': ['TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject'], - 'exact_mappings': ['cdp-common:cell_type_id'], - 'recommended': True} }) - - @field_validator('id') - def pattern_id(cls, v): - pattern=re.compile(r"^CL:[0-9]{7}$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class CellStrain(ConfiguredBaseModel): - """ - The strain or cell line from which the sample was derived. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - name: str = Field(..., description="""Cell line or strain for the sample.""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile', - 'AuthorMixin', - 'Author'], - 'exact_mappings': ['cdp-common:cell_strain_name']} }) - id: Optional[str] = Field(None, description="""Link to more information about the cell strain.""", json_schema_extra = { "linkml_meta": {'alias': 'id', - 'any_of': [{'range': 'WORMBASE_ID'}, {'range': 'ONTOLOGY_ID'}], - 'domain_of': ['TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject'], - 'exact_mappings': ['cdp-common:cell_strain_id'], - 'recommended': True} }) - - @field_validator('id') - def pattern_id(cls, v): - pattern=re.compile(r"(WBStrain[0-9]{8}$)|(^[a-zA-Z]+:[0-9]+$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class CellComponent(ConfiguredBaseModel): - """ - The cellular component from which the sample was derived. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - name: str = Field(..., description="""Name of the cellular component.""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile', - 'AuthorMixin', - 'Author'], - 'exact_mappings': ['cdp-common:cell_component_name']} }) - id: Optional[str] = Field(None, description="""The GO identifier for the cellular component.""", json_schema_extra = { "linkml_meta": {'alias': 'id', - 'domain_of': ['TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject'], - 'exact_mappings': ['cdp-common:cell_component_id'], - 'recommended': True} }) - - @field_validator('id') - def pattern_id(cls, v): - pattern=re.compile(r"^GO:[0-9]{7}$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class ExperimentMetadata(ConfiguredBaseModel): - """ - Metadata describing sample and sample preparation methods used in a cryoET dataset. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - sample_type: SampleTypeEnum = Field(..., description="""Type of sample imaged in a CryoET study.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_type', - 'domain_of': ['ExperimentMetadata', 'Dataset'], - 'exact_mappings': ['cdp-common:preparation_sample_type']} }) - sample_preparation: Optional[str] = Field(None, description="""Describes how the sample was prepared.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_preparation', - 'domain_of': ['ExperimentMetadata', 'Dataset'], - 'exact_mappings': ['cdp-common:sample_preparation'], - 'recommended': True} }) - grid_preparation: Optional[str] = Field(None, description="""Describes Cryo-ET grid preparation.""", json_schema_extra = { "linkml_meta": {'alias': 'grid_preparation', - 'domain_of': ['ExperimentMetadata', 'Dataset'], - 'exact_mappings': ['cdp-common:grid_preparation'], - 'recommended': True} }) - other_setup: Optional[str] = Field(None, description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", json_schema_extra = { "linkml_meta": {'alias': 'other_setup', - 'domain_of': ['ExperimentMetadata', 'Dataset'], - 'exact_mappings': ['cdp-common:preparation_other_setup'], - 'recommended': True} }) - organism: Optional[OrganismDetails] = Field(None, description="""The species from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'organism', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - tissue: Optional[TissueDetails] = Field(None, description="""The type of tissue from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'tissue', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - cell_type: Optional[CellType] = Field(None, description="""The cell type from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - cell_strain: Optional[CellStrain] = Field(None, description="""The strain or cell line from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_strain', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - cell_component: Optional[CellComponent] = Field(None, description="""The cellular component from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_component', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - - @field_validator('sample_type') - def pattern_sample_type(cls, v): - pattern=re.compile(r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid sample_type format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid sample_type format: {v}") - return v - - -class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredEntity, DateStampedEntity): - """ - High-level description of a cryoET dataset. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', - 'mixins': ['DateStampedEntity', - 'AuthoredEntity', - 'FundedEntity', - 'CrossReferencedEntity', - 'ExperimentMetadata']}) - - dataset_identifier: int = Field(..., description="""An identifier for a CryoET dataset, assigned by the Data Portal. Used to identify the dataset as the directory name in data tree.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_identifier', - 'domain_of': ['Dataset'], - 'exact_mappings': ['cdp-common:dataset_identifier']} }) - dataset_title: str = Field(..., description="""Title of a CryoET dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_title', - 'domain_of': ['Dataset'], - 'exact_mappings': ['cdp-common:dataset_title']} }) - dataset_description: str = Field(..., description="""A short description of a CryoET dataset, similar to an abstract for a journal article or dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_description', - 'domain_of': ['Dataset'], - 'exact_mappings': ['cdp-common:dataset_description']} }) - dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', - 'Tomogram', - 'Dataset', - 'Deposition', - 'Annotation']} }) - authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', - 'domain_of': ['AuthoredEntity', - 'Dataset', - 'Deposition', - 'Tomogram', - 'Annotation'], - 'list_elements_ordered': True} }) - funding: Optional[List[FundingDetails]] = Field(None, description="""A funding source for a scientific data entity (base for JSON and DB representation).""", json_schema_extra = { "linkml_meta": {'alias': 'funding', - 'domain_of': ['FundedEntity', 'Dataset'], - 'list_elements_ordered': True, - 'recommended': True} }) - cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', - 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) - sample_type: SampleTypeEnum = Field(..., description="""Type of sample imaged in a CryoET study.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_type', - 'domain_of': ['ExperimentMetadata', 'Dataset'], - 'exact_mappings': ['cdp-common:preparation_sample_type']} }) - sample_preparation: Optional[str] = Field(None, description="""Describes how the sample was prepared.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_preparation', - 'domain_of': ['ExperimentMetadata', 'Dataset'], - 'exact_mappings': ['cdp-common:sample_preparation'], - 'recommended': True} }) - grid_preparation: Optional[str] = Field(None, description="""Describes Cryo-ET grid preparation.""", json_schema_extra = { "linkml_meta": {'alias': 'grid_preparation', - 'domain_of': ['ExperimentMetadata', 'Dataset'], - 'exact_mappings': ['cdp-common:grid_preparation'], - 'recommended': True} }) - other_setup: Optional[str] = Field(None, description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", json_schema_extra = { "linkml_meta": {'alias': 'other_setup', - 'domain_of': ['ExperimentMetadata', 'Dataset'], - 'exact_mappings': ['cdp-common:preparation_other_setup'], - 'recommended': True} }) - organism: Optional[OrganismDetails] = Field(None, description="""The species from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'organism', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - tissue: Optional[TissueDetails] = Field(None, description="""The type of tissue from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'tissue', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - cell_type: Optional[CellType] = Field(None, description="""The cell type from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - cell_strain: Optional[CellStrain] = Field(None, description="""The strain or cell line from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_strain', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - cell_component: Optional[CellComponent] = Field(None, description="""The cellular component from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_component', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) - - @field_validator('sample_type') - def pattern_sample_type(cls, v): - pattern=re.compile(r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid sample_type format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid sample_type format: {v}") - return v - - -class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): - """ - Metadata describing a deposition. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', - 'mixins': ['DateStampedEntity', 'AuthoredEntity', 'CrossReferencedEntity']}) - - deposition_description: str = Field(..., description="""A short description of the deposition, similar to an abstract for a journal article or dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_description', - 'domain_of': ['Deposition'], - 'exact_mappings': ['cdp-common:deposition_description']} }) - deposition_identifier: int = Field(..., description="""An identifier for a CryoET deposition, assigned by the Data Portal. Used to identify the deposition the entity is a part of.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_identifier', - 'domain_of': ['Deposition'], - 'exact_mappings': ['cdp-common:deposition_identifier']} }) - deposition_title: str = Field(..., description="""Title of a CryoET deposition.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_title', - 'domain_of': ['Deposition'], - 'exact_mappings': ['cdp-common:deposition_title']} }) - deposition_types: List[DepositionTypesEnum] = Field(..., description="""Type of data in the deposition (e.g. dataset, annotation, tomogram)""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'deposition_types', - 'domain_of': ['Deposition'], - 'exact_mappings': ['cdp-common:deposition_types']} }) - dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', - 'Tomogram', - 'Dataset', - 'Deposition', - 'Annotation']} }) - authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', - 'domain_of': ['AuthoredEntity', - 'Dataset', - 'Deposition', - 'Tomogram', - 'Annotation'], - 'list_elements_ordered': True} }) - cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', - 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) - - @field_validator('deposition_types') - def pattern_deposition_types(cls, v): - pattern=re.compile(r"(^annotation$)|(^dataset$)|(^tomogram$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid deposition_types format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid deposition_types format: {v}") - return v - - -class CameraDetails(ConfiguredBaseModel): - """ - The camera used to collect the tilt series. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - acquire_mode: Optional[Union[TiltseriesCameraAcquireModeEnum, str]] = Field(None, description="""Camera acquisition mode""", json_schema_extra = { "linkml_meta": {'alias': 'acquire_mode', - 'any_of': [{'range': 'StringFormattedString'}, - {'range': 'tiltseries_camera_acquire_mode_enum'}], - 'domain_of': ['CameraDetails'], - 'exact_mappings': ['cdp-common:tiltseries_camera_acquire_mode']} }) - manufacturer: str = Field(..., description="""Name of the camera manufacturer""", json_schema_extra = { "linkml_meta": {'alias': 'manufacturer', - 'domain_of': ['CameraDetails', 'MicroscopeDetails'], - 'exact_mappings': ['cdp-common:tiltseries_camera_manufacturer']} }) - model: str = Field(..., description="""Camera model name""", json_schema_extra = { "linkml_meta": {'alias': 'model', - 'domain_of': ['CameraDetails', 'MicroscopeDetails'], - 'exact_mappings': ['cdp-common:tiltseries_camera_model']} }) - - @field_validator('acquire_mode') - def pattern_acquire_mode(cls, v): - pattern=re.compile(r"(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)|((^counting$)|(^superresolution$)|(^linear$)|(^cds$))") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid acquire_mode format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid acquire_mode format: {v}") - return v - - -class MicroscopeDetails(ConfiguredBaseModel): - """ - The microscope used to collect the tilt series. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - additional_info: Optional[str] = Field(None, description="""Other microscope optical setup information, in addition to energy filter, phase plate and image corrector""", json_schema_extra = { "linkml_meta": {'alias': 'additional_info', - 'domain_of': ['MicroscopeDetails'], - 'exact_mappings': ['cdp-common:tiltseries_microscope_additional_info']} }) - manufacturer: Union[TiltseriesMicroscopeManufacturerEnum, str] = Field(..., description="""Name of the microscope manufacturer""", json_schema_extra = { "linkml_meta": {'alias': 'manufacturer', - 'any_of': [{'description': 'Name of the microscope manufacturer', - 'exact_mappings': ['cdp-common:tiltseries_microscope_manufacturer'], - 'range': 'tiltseries_microscope_manufacturer_enum', - 'required': True}, - {'range': 'StringFormattedString'}], - 'domain_of': ['CameraDetails', 'MicroscopeDetails']} }) - model: str = Field(..., description="""Microscope model name""", json_schema_extra = { "linkml_meta": {'alias': 'model', - 'domain_of': ['CameraDetails', 'MicroscopeDetails'], - 'exact_mappings': ['cdp-common:tiltseries_microscope_model']} }) - - @field_validator('manufacturer') - def pattern_manufacturer(cls, v): - pattern=re.compile(r"(^FEI$)|(^TFS$)|(^JEOL$)|(^SIMULATED$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid manufacturer format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid manufacturer format: {v}") - return v - - -class MicroscopeOpticalSetup(ConfiguredBaseModel): - """ - The optical setup of the microscope used to collect the tilt series. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - energy_filter: str = Field(..., description="""Energy filter setup used""", json_schema_extra = { "linkml_meta": {'alias': 'energy_filter', - 'domain_of': ['MicroscopeOpticalSetup'], - 'exact_mappings': ['cdp-common:tiltseries_microscope_energy_filter']} }) - phase_plate: Optional[str] = Field(None, description="""Phase plate configuration""", json_schema_extra = { "linkml_meta": {'alias': 'phase_plate', - 'domain_of': ['MicroscopeOpticalSetup'], - 'exact_mappings': ['cdp-common:tiltseries_microscope_phase_plate']} }) - image_corrector: Optional[str] = Field(None, description="""Image corrector setup""", json_schema_extra = { "linkml_meta": {'alias': 'image_corrector', - 'domain_of': ['MicroscopeOpticalSetup'], - 'exact_mappings': ['cdp-common:tiltseries_microscope_image_corrector']} }) - - -class TiltRange(ConfiguredBaseModel): - """ - The range of tilt angles in the tilt series. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - min: Union[float, str] = Field(..., description="""Minimal tilt angle in degrees""", ge=-90, le=90, json_schema_extra = { "linkml_meta": {'alias': 'min', - 'any_of': [{'description': 'Minimal tilt angle in degrees', - 'exact_mappings': ['cdp-common:tiltseries_tilt_min'], - 'maximum_value': 90, - 'minimum_value': -90, - 'range': 'float', - 'required': True, - 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltRange'], - 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) - max: Union[float, str] = Field(..., description="""Maximal tilt angle in degrees""", ge=-90, le=90, json_schema_extra = { "linkml_meta": {'alias': 'max', - 'any_of': [{'description': 'Maximal tilt angle in degrees', - 'exact_mappings': ['cdp-common:tiltseries_tilt_max'], - 'maximum_value': 90, - 'minimum_value': -90, - 'range': 'float', - 'required': True, - 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltRange'], - 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) - - @field_validator('min') - def pattern_min(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid min format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid min format: {v}") - return v - - @field_validator('max') - def pattern_max(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid max format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid max format: {v}") - return v - - -class TiltSeries(ConfiguredBaseModel): - """ - Metadata describing a tilt series. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - acceleration_voltage: float = Field(..., description="""Electron Microscope Accelerator voltage in volts""", ge=20000, json_schema_extra = { "linkml_meta": {'alias': 'acceleration_voltage', - 'domain_of': ['TiltSeries'], - 'exact_mappings': ['cdp-common:tiltseries_acceleration_voltage'], - 'unit': {'descriptive_name': 'volts', 'symbol': 'V'}} }) - aligned_tiltseries_binning: Optional[Union[float, str]] = Field(1.0, description="""Binning factor of the aligned tilt series""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'aligned_tiltseries_binning', - 'any_of': [{'description': 'Binning factor of the aligned tilt series', - 'exact_mappings': ['cdp-common:tiltseries_aligned_tiltseries_binning'], - 'minimum_value': 0, - 'range': 'float'}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltSeries'], - 'ifabsent': 'float(1)'} }) - binning_from_frames: Optional[Union[float, str]] = Field(1.0, description="""Describes the binning factor from frames to tilt series file""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning_from_frames', - 'any_of': [{'description': 'Describes the binning factor from frames to tilt ' - 'series file', - 'exact_mappings': ['cdp-common:tiltseries_binning_from_frames'], - 'minimum_value': 0, - 'range': 'float'}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltSeries'], - 'ifabsent': 'float(1)'} }) - camera: CameraDetails = Field(..., description="""The camera used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'camera', 'domain_of': ['TiltSeries']} }) - data_acquisition_software: str = Field(..., description="""Software used to collect data""", json_schema_extra = { "linkml_meta": {'alias': 'data_acquisition_software', - 'domain_of': ['TiltSeries'], - 'exact_mappings': ['cdp-common:tiltseries_data_acquisition_software']} }) - frames_count: Optional[int] = Field(None, description="""Number of frames associated with this tiltseries""", json_schema_extra = { "linkml_meta": {'alias': 'frames_count', - 'domain_of': ['TiltSeries'], - 'exact_mappings': ['cdp-common:tiltseries_frames_count']} }) - is_aligned: bool = Field(..., description="""Whether this tilt series is aligned""", json_schema_extra = { "linkml_meta": {'alias': 'is_aligned', - 'domain_of': ['TiltSeries'], - 'exact_mappings': ['cdp-common:tiltseries_is_aligned']} }) - microscope: MicroscopeDetails = Field(..., description="""The microscope used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'microscope', 'domain_of': ['TiltSeries']} }) - microscope_optical_setup: MicroscopeOpticalSetup = Field(..., description="""The optical setup of the microscope used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'microscope_optical_setup', 'domain_of': ['TiltSeries']} }) - related_empiar_entry: Optional[str] = Field(None, description="""If a tilt series is deposited into EMPIAR, enter the EMPIAR dataset identifier""", json_schema_extra = { "linkml_meta": {'alias': 'related_empiar_entry', - 'domain_of': ['TiltSeries'], - 'exact_mappings': ['cdp-common:tiltseries_related_empiar_entry']} }) - spherical_aberration_constant: Union[float, str] = Field(..., description="""Spherical Aberration Constant of the objective lens in millimeters""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'spherical_aberration_constant', - 'any_of': [{'description': 'Spherical Aberration Constant of the objective ' - 'lens in millimeters', - 'exact_mappings': ['cdp-common:tiltseries_spherical_aberration_constant'], - 'minimum_value': 0, - 'range': 'float', - 'required': True, - 'unit': {'descriptive_name': 'millimeters', 'symbol': 'mm'}}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltSeries'], - 'unit': {'descriptive_name': 'millimeters', 'symbol': 'mm'}} }) - tilt_alignment_software: Optional[str] = Field(None, description="""Software used for tilt alignment""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_alignment_software', - 'domain_of': ['TiltSeries'], - 'exact_mappings': ['cdp-common:tiltseries_tilt_alignment_software']} }) - tilt_axis: Union[float, str] = Field(..., description="""Rotation angle in degrees""", ge=-360, le=360, json_schema_extra = { "linkml_meta": {'alias': 'tilt_axis', - 'any_of': [{'description': 'Rotation angle in degrees', - 'exact_mappings': ['cdp-common:tiltseries_tilt_axis'], - 'maximum_value': 360, - 'minimum_value': -360, - 'range': 'float', - 'required': True, - 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltSeries'], - 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) - tilt_range: TiltRange = Field(..., description="""The range of tilt angles in the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_range', 'domain_of': ['TiltSeries']} }) - tilt_series_quality: Union[int, str] = Field(..., description="""Author assessment of tilt series quality within the dataset (1-5, 5 is best)""", ge=1, le=5, json_schema_extra = { "linkml_meta": {'alias': 'tilt_series_quality', - 'any_of': [{'description': 'Author assessment of tilt series quality within ' - 'the dataset (1-5, 5 is best)', - 'exact_mappings': ['cdp-common:tiltseries_tilt_series_quality'], - 'maximum_value': 5, - 'minimum_value': 1, - 'range': 'integer', - 'required': True}, - {'range': 'IntegerFormattedString'}], - 'domain_of': ['TiltSeries']} }) - tilt_step: Union[float, str] = Field(..., description="""Tilt step in degrees""", ge=0, le=90, json_schema_extra = { "linkml_meta": {'alias': 'tilt_step', - 'any_of': [{'description': 'Tilt step in degrees', - 'exact_mappings': ['cdp-common:tiltseries_tilt_step'], - 'maximum_value': 90, - 'minimum_value': 0, - 'range': 'float', - 'required': True, - 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltSeries'], - 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) - tilting_scheme: str = Field(..., description="""The order of stage tilting during acquisition of the data""", json_schema_extra = { "linkml_meta": {'alias': 'tilting_scheme', - 'domain_of': ['TiltSeries'], - 'exact_mappings': ['cdp-common:tiltseries_tilting_scheme']} }) - total_flux: Union[float, str] = Field(..., description="""Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'total_flux', - 'any_of': [{'description': 'Number of Electrons reaching the specimen in a ' - 'square Angstrom area for the entire tilt series', - 'exact_mappings': ['cdp-common:tiltseries_total_flux'], - 'minimum_value': 0, - 'range': 'float', - 'required': True, - 'unit': {'descriptive_name': 'electrons per square Angstrom', - 'symbol': 'e^-/Å^2'}}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltSeries'], - 'unit': {'descriptive_name': 'electrons per square Angstrom', - 'symbol': 'e^-/Å^2'}} }) - pixel_spacing: Union[float, str] = Field(..., description="""Pixel spacing for the tilt series""", ge=0.001, json_schema_extra = { "linkml_meta": {'alias': 'pixel_spacing', - 'any_of': [{'description': 'Pixel spacing for the tilt series', - 'exact_mappings': ['cdp-common:tiltseries_pixel_spacing'], - 'minimum_value': 0.001, - 'range': 'float', - 'required': True, - 'unit': {'descriptive_name': 'Angstroms per pixel', - 'symbol': 'Å/px'}}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['TiltSeries'], - 'unit': {'descriptive_name': 'Angstroms per pixel', 'symbol': 'Å/px'}} }) - - @field_validator('aligned_tiltseries_binning') - def pattern_aligned_tiltseries_binning(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid aligned_tiltseries_binning format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid aligned_tiltseries_binning format: {v}") - return v - - @field_validator('binning_from_frames') - def pattern_binning_from_frames(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid binning_from_frames format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid binning_from_frames format: {v}") - return v - - @field_validator('related_empiar_entry') - def pattern_related_empiar_entry(cls, v): - pattern=re.compile(r"^EMPIAR-[0-9]+$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid related_empiar_entry format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid related_empiar_entry format: {v}") - return v - - @field_validator('spherical_aberration_constant') - def pattern_spherical_aberration_constant(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid spherical_aberration_constant format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid spherical_aberration_constant format: {v}") - return v - - @field_validator('tilt_axis') - def pattern_tilt_axis(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid tilt_axis format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid tilt_axis format: {v}") - return v - - @field_validator('tilt_series_quality') - def pattern_tilt_series_quality(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid tilt_series_quality format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid tilt_series_quality format: {v}") - return v - - @field_validator('tilt_step') - def pattern_tilt_step(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid tilt_step format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid tilt_step format: {v}") - return v - - @field_validator('total_flux') - def pattern_total_flux(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid total_flux format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid total_flux format: {v}") - return v - - @field_validator('pixel_spacing') - def pattern_pixel_spacing(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid pixel_spacing format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid pixel_spacing format: {v}") - return v - - -class TomogramSize(ConfiguredBaseModel): - """ - The size of a tomogram in voxels in each dimension. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - x: int = Field(..., description="""Number of pixels in the 3D data fast axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'x', - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - y: int = Field(..., description="""Number of pixels in the 3D data medium axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'y', - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - z: int = Field(..., description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'z', - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - - -class TomogramOffset(ConfiguredBaseModel): - """ - The offset of a tomogram in voxels in each dimension relative to the canonical tomogram. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - x: Union[int, str] = Field(..., description="""x offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - y: Union[int, str] = Field(..., description="""y offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - z: Union[int, str] = Field(..., description="""z offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - - @field_validator('x') - def pattern_x(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid x format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid x format: {v}") - return v - - @field_validator('y') - def pattern_y(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid y format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid y format: {v}") - return v - - @field_validator('z') - def pattern_z(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid z format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid z format: {v}") - return v - - -class Tomogram(AuthoredEntity): - """ - Metadata describing a tomogram. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['AuthoredEntity']}) - - voxel_spacing: Union[float, str] = Field(..., description="""Voxel spacing equal in all three axes in angstroms""", ge=0.001, json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', - 'any_of': [{'description': 'Voxel spacing equal in all three axes in ' - 'angstroms', - 'exact_mappings': ['cdp-common:tomogram_voxel_spacing'], - 'minimum_value': 0.001, - 'range': 'float', - 'required': True, - 'unit': {'descriptive_name': 'Angstroms per voxel', - 'symbol': 'Å/voxel'}}, - {'range': 'FloatFormattedString'}], - 'domain_of': ['Tomogram', - 'AlignmentParent', - 'AnnotationParent', - 'KeyImageParent', - 'TomogramParent'], - 'unit': {'descriptive_name': 'Angstroms per voxel', 'symbol': 'Å/voxel'}} }) - fiducial_alignment_status: Union[FiducialAlignmentStatusEnum, str] = Field(..., description="""Whether the tomographic alignment was computed based on fiducial markers.""", json_schema_extra = { "linkml_meta": {'alias': 'fiducial_alignment_status', - 'any_of': [{'description': 'Whether the tomographic alignment was computed ' - 'based on fiducial markers.', - 'exact_mappings': ['cdp-common:tomogram_fiducial_alignment_status'], - 'range': 'fiducial_alignment_status_enum', - 'required': True}, - {'range': 'StringFormattedString'}], - 'domain_of': ['Tomogram']} }) - ctf_corrected: Optional[bool] = Field(None, description="""Whether this tomogram is CTF corrected""", json_schema_extra = { "linkml_meta": {'alias': 'ctf_corrected', - 'domain_of': ['Tomogram'], - 'exact_mappings': ['cdp-common:tomogram_ctf_corrected'], - 'recommended': True} }) - align_software: Optional[str] = Field(None, description="""Software used for alignment""", json_schema_extra = { "linkml_meta": {'alias': 'align_software', - 'domain_of': ['Tomogram'], - 'exact_mappings': ['cdp-common:tomogram_align_software']} }) - reconstruction_method: Union[TomogramReconstructionMethodEnum, str] = Field(..., description="""Describe reconstruction method (WBP, SART, SIRT)""", json_schema_extra = { "linkml_meta": {'alias': 'reconstruction_method', - 'any_of': [{'description': 'Describe reconstruction method (WBP, SART, SIRT)', - 'exact_mappings': ['cdp-common:tomogram_reconstruction_method'], - 'range': 'tomogram_reconstruction_method_enum', - 'required': True}, - {'range': 'StringFormattedString'}], - 'domain_of': ['Tomogram']} }) - reconstruction_software: str = Field(..., description="""Name of software used for reconstruction""", json_schema_extra = { "linkml_meta": {'alias': 'reconstruction_software', - 'domain_of': ['Tomogram'], - 'exact_mappings': ['cdp-common:tomogram_reconstruction_software']} }) - processing: TomogramProcessingEnum = Field(..., description="""Describe additional processing used to derive the tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'processing', - 'domain_of': ['Tomogram'], - 'exact_mappings': ['cdp-common:tomogram_processing']} }) - processing_software: Optional[str] = Field(None, description="""Processing software used to derive the tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'processing_software', - 'domain_of': ['Tomogram'], - 'exact_mappings': ['cdp-common:tomogram_processing_software'], - 'recommended': True} }) - tomogram_version: float = Field(..., description="""Version of tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_version', - 'domain_of': ['Tomogram'], - 'exact_mappings': ['cdp-common:tomogram_version']} }) - size: Optional[TomogramSize] = Field(None, description="""The size of a tomogram in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'size', 'domain_of': ['Tomogram']} }) - offset: TomogramOffset = Field(..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the tomogram is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'ifabsent': 'False'} }) - is_visualization_default: bool = Field(True, description="""Whether the tomogram is the default for visualization.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'ifabsent': 'True'} }) - cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', - 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) - dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', - 'Tomogram', - 'Dataset', - 'Deposition', - 'Annotation']} }) - authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', - 'domain_of': ['AuthoredEntity', - 'Dataset', - 'Deposition', - 'Tomogram', - 'Annotation'], - 'list_elements_ordered': True} }) - - @field_validator('voxel_spacing') - def pattern_voxel_spacing(cls, v): - pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid voxel_spacing format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid voxel_spacing format: {v}") - return v - - @field_validator('fiducial_alignment_status') - def pattern_fiducial_alignment_status(cls, v): - pattern=re.compile(r"(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid fiducial_alignment_status format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid fiducial_alignment_status format: {v}") - return v - - @field_validator('reconstruction_method') - def pattern_reconstruction_method(cls, v): - pattern=re.compile(r"(^SART$)|(^Fourier Space$)|(^SIRT$)|(^WBP$)|(^Unknown$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid reconstruction_method format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid reconstruction_method format: {v}") - return v - - @field_validator('processing') - def pattern_processing(cls, v): - pattern=re.compile(r"(^denoised$)|(^filtered$)|(^raw$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid processing format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid processing format: {v}") - return v - - -class AnnotationConfidence(ConfiguredBaseModel): - """ - Metadata describing the confidence of an annotation. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - precision: Optional[float] = Field(None, description="""Describe the confidence level of the annotation. Precision is defined as the % of annotation objects being true positive""", ge=0, le=100, json_schema_extra = { "linkml_meta": {'alias': 'precision', - 'domain_of': ['AnnotationConfidence'], - 'exact_mappings': ['cdp-common:annotation_confidence_precision'], - 'unit': {'descriptive_name': 'percentage', 'symbol': '%'}} }) - recall: Optional[float] = Field(None, description="""Describe the confidence level of the annotation. Recall is defined as the % of true positives being annotated correctly""", ge=0, le=100, json_schema_extra = { "linkml_meta": {'alias': 'recall', - 'domain_of': ['AnnotationConfidence'], - 'exact_mappings': ['cdp-common:annotation_confidence_recall'], - 'unit': {'descriptive_name': 'percentage', 'symbol': '%'}} }) - ground_truth_used: Optional[str] = Field(None, description="""Annotation filename used as ground truth for precision and recall""", json_schema_extra = { "linkml_meta": {'alias': 'ground_truth_used', - 'domain_of': ['AnnotationConfidence'], - 'exact_mappings': ['cdp-common:annotation_ground_truth_used']} }) - - -class AnnotationObject(ConfiguredBaseModel): - """ - Metadata describing the object being annotated. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - id: str = Field(..., description="""Gene Ontology Cellular Component identifier or UniProtKB accession for the annotation object.""", json_schema_extra = { "linkml_meta": {'alias': 'id', - 'any_of': [{'range': 'GO_ID'}, {'range': 'UNIPROT_ID'}], - 'domain_of': ['TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject'], - 'exact_mappings': ['cdp-common:annotation_object_id']} }) - name: str = Field(..., description="""Name of the object being annotated (e.g. ribosome, nuclear pore complex, actin filament, membrane)""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile', - 'AuthorMixin', - 'Author'], - 'exact_mappings': ['cdp-common:annotation_object_name']} }) - description: Optional[str] = Field(None, description="""A textual description of the annotation object, can be a longer description to include additional information not covered by the Annotation object name and state.""", json_schema_extra = { "linkml_meta": {'alias': 'description', - 'domain_of': ['AnnotationObject'], - 'exact_mappings': ['cdp-common:annotation_object_description']} }) - state: Optional[str] = Field(None, description="""Molecule state annotated (e.g. open, closed)""", json_schema_extra = { "linkml_meta": {'alias': 'state', - 'domain_of': ['AnnotationObject'], - 'exact_mappings': ['cdp-common:annotation_object_state']} }) - - @field_validator('id') - def pattern_id(cls, v): - pattern=re.compile(r"(^GO:[0-9]{7}$)|(^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid id format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid id format: {v}") - return v - - -class AnnotationMethodLinks(ConfiguredBaseModel): - """ - A set of links to models, source code, documentation, etc referenced by annotation the method - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - link: str = Field(..., description="""URL to the annotation method reference""", json_schema_extra = { "linkml_meta": {'alias': 'link', - 'domain_of': ['AnnotationMethodLinks'], - 'exact_mappings': ['cdp-common:annotation_method_link']} }) - link_type: AnnotationMethodLinkTypeEnum = Field(..., description="""Type of link (e.g. model, source code, documentation)""", json_schema_extra = { "linkml_meta": {'alias': 'link_type', - 'domain_of': ['AnnotationMethodLinks'], - 'exact_mappings': ['cdp-common:annotation_method_link_type']} }) - custom_name: Optional[str] = Field(None, description="""user readable name of the resource""", json_schema_extra = { "linkml_meta": {'alias': 'custom_name', - 'domain_of': ['AnnotationMethodLinks'], - 'exact_mappings': ['cdp-common:annotation_method_link_custom_name'], - 'recommended': True} }) - - @field_validator('link_type') - def pattern_link_type(cls, v): - pattern=re.compile(r"(^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid link_type format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid link_type format: {v}") - return v - - -class AnnotationSourceFile(ConfiguredBaseModel): - """ - File and sourcing data for an annotation. Represents an entry in annotation.sources. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) - glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) - glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) - is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], - 'ifabsent': 'False'} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], - 'ifabsent': 'False'} }) - - -class AnnotationOrientedPointFile(AnnotationSourceFile): - """ - File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['OrientedPoint'], 'from_schema': 'metadata'}) - - binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', - 'domain_of': ['AnnotationOrientedPointFile', - 'AnnotationPointFile', - 'AnnotationInstanceSegmentationFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_binning'], - 'ifabsent': 'float(1)'} }) - filter_value: Optional[str] = Field(None, description="""The filter value for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'filter_value', - 'domain_of': ['AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_filter_value']} }) - order: Optional[str] = Field("xyz", description="""The order of axes for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'order', - 'domain_of': ['AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_order'], - 'ifabsent': 'string(xyz)'} }) - file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) - glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) - glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) - is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], - 'ifabsent': 'False'} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], - 'ifabsent': 'False'} }) - - -class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): - """ - File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['InstanceSegmentation'], 'from_schema': 'metadata'}) - - binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', - 'domain_of': ['AnnotationOrientedPointFile', - 'AnnotationPointFile', - 'AnnotationInstanceSegmentationFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_binning'], - 'ifabsent': 'float(1)'} }) - filter_value: Optional[str] = Field(None, description="""The filter value for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'filter_value', - 'domain_of': ['AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_filter_value']} }) - order: Optional[str] = Field("xyz", description="""The order of axes for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'order', - 'domain_of': ['AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_order'], - 'ifabsent': 'string(xyz)'} }) - file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) - glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) - glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) - is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], - 'ifabsent': 'False'} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], - 'ifabsent': 'False'} }) - - -class AnnotationPointFile(AnnotationSourceFile): - """ - File and sourcing data for a point annotation. Annotation that identifies points in the volume. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['Point'], 'from_schema': 'metadata'}) - - binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', - 'domain_of': ['AnnotationOrientedPointFile', - 'AnnotationPointFile', - 'AnnotationInstanceSegmentationFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_binning'], - 'ifabsent': 'float(1)'} }) - columns: Optional[str] = Field("xyz", description="""The columns used in a point annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'columns', - 'domain_of': ['AnnotationPointFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_columns'], - 'ifabsent': 'string(xyz)'} }) - delimiter: Optional[str] = Field(",", description="""The delimiter used in a point annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'delimiter', - 'domain_of': ['AnnotationPointFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_delimiter'], - 'ifabsent': 'string(,)'} }) - file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) - glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) - glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) - is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], - 'ifabsent': 'False'} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], - 'ifabsent': 'False'} }) - - -class AnnotationSegmentationMaskFile(AnnotationSourceFile): - """ - File and sourcing data for a segmentation mask annotation. Annotation that identifies an object. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['SegmentationMask'], 'from_schema': 'metadata'}) - - file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) - glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) - glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) - is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], - 'ifabsent': 'False'} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], - 'ifabsent': 'False'} }) - - -class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): - """ - File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['SemanticSegmentationMask'], 'from_schema': 'metadata'}) - - mask_label: Optional[int] = Field(1, description="""The mask label for a semantic segmentation mask annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'mask_label', - 'domain_of': ['AnnotationSemanticSegmentationMaskFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_mask_label'], - 'ifabsent': 'int(1)'} }) - file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) - glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) - glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) - is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], - 'ifabsent': 'False'} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], - 'ifabsent': 'False'} }) - - -class AnnotationTriangularMeshFile(AnnotationSourceFile): - """ - File and sourcing data for a triangular mesh annotation. Annotation that identifies an object. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['TriangularMesh'], 'from_schema': 'metadata'}) - - scale_factor: Optional[float] = Field(1.0, description="""The scale factor for a mesh annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'scale_factor', - 'domain_of': ['AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_scale_factor'], - 'ifabsent': 'float(1)'} }) - file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) - glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) - glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) - is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], - 'ifabsent': 'False'} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], - 'ifabsent': 'False'} }) - - -class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): - """ - File and sourcing data containing one or more triangular mesh annotations. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['TriangularMeshGroup'], 'from_schema': 'metadata'}) - - scale_factor: Optional[float] = Field(1.0, description="""The scale factor for a mesh annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'scale_factor', - 'domain_of': ['AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_scale_factor'], - 'ifabsent': 'float(1)'} }) - name: Optional[str] = Field(None, description="""The name that identifies to a single annotation mesh among multiple meshes.""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile', - 'AuthorMixin', - 'Author'], - 'exact_mappings': ['cdp-common:annotation_source_file_mesh_name']} }) - file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) - glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) - glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', - 'domain_of': ['AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) - is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], - 'ifabsent': 'False'} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], - 'ifabsent': 'False'} }) - - -class Annotation(AuthoredEntity, DateStampedEntity): - """ - Metadata describing an annotation. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['DateStampedEntity', 'AuthoredEntity']}) - - annotation_method: str = Field(..., description="""Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_method', - 'domain_of': ['Annotation'], - 'exact_mappings': ['cdp-common:annotation_method']} }) - annotation_object: AnnotationObject = Field(..., description="""Metadata describing the object being annotated.""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_object', 'domain_of': ['Annotation']} }) - annotation_publications: Optional[str] = Field(None, description="""List of publication IDs (EMPIAR, EMDB, DOI, PDB) that describe this annotation method. Comma separated.""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_publications', - 'domain_of': ['Annotation'], - 'exact_mappings': ['cdp-common:annotation_publications']} }) - annotation_software: Optional[str] = Field(None, description="""Software used for generating this annotation""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_software', - 'domain_of': ['Annotation'], - 'exact_mappings': ['cdp-common:annotation_software'], - 'recommended': True} }) - confidence: Optional[AnnotationConfidence] = Field(None, description="""Metadata describing the confidence of an annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'confidence', 'domain_of': ['Annotation']} }) - files: Optional[List[AnnotationSourceFile]] = Field(None, description="""File and sourcing data for an annotation. Represents an entry in annotation.sources.""", json_schema_extra = { "linkml_meta": {'alias': 'files', 'domain_of': ['Annotation'], 'list_elements_ordered': True} }) - ground_truth_status: Optional[bool] = Field(False, description="""Whether an annotation is considered ground truth, as determined by the annotator.""", json_schema_extra = { "linkml_meta": {'alias': 'ground_truth_status', - 'domain_of': ['Annotation'], - 'exact_mappings': ['cdp-common:annotation_ground_truth_status'], - 'ifabsent': 'False', - 'recommended': True} }) - is_curator_recommended: Optional[bool] = Field(False, description="""This annotation is recommended by the curator to be preferred for this object type.""", json_schema_extra = { "linkml_meta": {'alias': 'is_curator_recommended', - 'domain_of': ['Annotation'], - 'exact_mappings': ['cdp-common:annotation_is_curator_recommended'], - 'ifabsent': 'False'} }) - method_type: AnnotationMethodTypeEnum = Field(..., description="""Classification of the annotation method based on supervision.""", json_schema_extra = { "linkml_meta": {'alias': 'method_type', - 'domain_of': ['Annotation'], - 'exact_mappings': ['cdp-common:annotation_method_type']} }) - method_links: Optional[List[AnnotationMethodLinks]] = Field(None, description="""A set of links to models, source code, documentation, etc referenced by annotation the method""", json_schema_extra = { "linkml_meta": {'alias': 'method_links', 'domain_of': ['Annotation']} }) - object_count: Optional[int] = Field(None, description="""Number of objects identified""", json_schema_extra = { "linkml_meta": {'alias': 'object_count', - 'domain_of': ['Annotation'], - 'exact_mappings': ['cdp-common:annotation_object_count']} }) - version: Optional[float] = Field(None, description="""Version of annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'version', - 'domain_of': ['Annotation'], - 'exact_mappings': ['cdp-common:annotation_version']} }) - dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', - 'domain_of': ['DateStampedEntity', - 'Tomogram', - 'Dataset', - 'Deposition', - 'Annotation']} }) - authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', - 'domain_of': ['AuthoredEntity', - 'Dataset', - 'Deposition', - 'Tomogram', - 'Annotation'], - 'list_elements_ordered': True} }) - - @field_validator('annotation_publications') - def pattern_annotation_publications(cls, v): - pattern=re.compile(r"^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid annotation_publications format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid annotation_publications format: {v}") - return v - - @field_validator('method_type') - def pattern_method_type(cls, v): - pattern=re.compile(r"(^manual$)|(^automated$)|(^hybrid$)|(^simulated$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid method_type format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid method_type format: {v}") - return v - - -class AlignmentSize(ConfiguredBaseModel): - """ - The size of an alignment in voxels in each dimension. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - x: Union[int, str] = Field(..., description="""Number of pixels in the 3D data fast axis""", json_schema_extra = { "linkml_meta": {'alias': 'x', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - y: Union[int, str] = Field(..., description="""Number of pixels in the 3D data medium axis""", json_schema_extra = { "linkml_meta": {'alias': 'y', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - z: Union[int, str] = Field(..., description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", json_schema_extra = { "linkml_meta": {'alias': 'z', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - - @field_validator('x') - def pattern_x(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid x format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid x format: {v}") - return v - - @field_validator('y') - def pattern_y(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid y format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid y format: {v}") - return v - - @field_validator('z') - def pattern_z(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid z format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid z format: {v}") - return v - - -class AlignmentOffset(ConfiguredBaseModel): - """ - The offset of a alignment in voxels in each dimension relative to the canonical tomogram. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - x: Union[int, str] = Field(0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'ifabsent': 'int(0)', - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - y: Union[int, str] = Field(0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'ifabsent': 'int(0)', - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - z: Union[int, str] = Field(0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['TomogramSize', - 'TomogramOffset', - 'AlignmentSize', - 'AlignmentOffset'], - 'ifabsent': 'int(0)', - 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) - - @field_validator('x') - def pattern_x(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid x format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid x format: {v}") - return v - - @field_validator('y') - def pattern_y(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid y format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid y format: {v}") - return v - - @field_validator('z') - def pattern_z(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid z format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid z format: {v}") - return v - - -class Alignment(ConfiguredBaseModel): - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - alignment_type: Optional[AlignmentTypeEnum] = Field(None, description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', 'domain_of': ['Alignment']} }) - offset: Optional[AlignmentOffset] = Field(None, description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) - volume_dimesion: Optional[AlignmentSize] = Field(None, description="""The size of an alignment in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'volume_dimesion', 'domain_of': ['Alignment']} }) - x_rotation_offset: Optional[Union[int, str]] = Field(0, description="""The x rotation offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'x_rotation_offset', - 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], - 'domain_of': ['Alignment'], - 'ifabsent': 'int(0)'} }) - tilt_offset: Optional[float] = Field(0.0, description="""The tilt offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_offset', 'domain_of': ['Alignment'], 'ifabsent': 'float(0.0)'} }) - affine_transformation_matrix: Optional[conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float))] = Field(None, description="""The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix.""", json_schema_extra = { "linkml_meta": {'alias': 'affine_transformation_matrix', - 'array': {'dimensions': [{'exact_cardinality': 4}, {'exact_cardinality': 4}], - 'exact_number_dimensions': 2}, - 'domain_of': ['Alignment']} }) - is_canonical: Optional[bool] = Field(True, description="""Whether the alignment is canonical.""", json_schema_extra = { "linkml_meta": {'alias': 'is_canonical', 'domain_of': ['Alignment'], 'ifabsent': 'True'} }) - format: AlignmentFormatEnum = Field(..., description="""The format of the alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'format', 'domain_of': ['Alignment']} }) - - @field_validator('alignment_type') - def pattern_alignment_type(cls, v): - pattern=re.compile(r"(^LOCAL$)|(^GLOBAL$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid alignment_type format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid alignment_type format: {v}") - return v - - @field_validator('x_rotation_offset') - def pattern_x_rotation_offset(cls, v): - pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid x_rotation_offset format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid x_rotation_offset format: {v}") - return v - - @field_validator('format') - def pattern_format(cls, v): - pattern=re.compile(r"(^IMOD$)|(^ARETOMO3$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid format format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid format format: {v}") - return v - - -class Frame(ConfiguredBaseModel): - """ - A frame entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) - - dose: float = Field(..., description="""The dose.""", json_schema_extra = { "linkml_meta": {'alias': 'dose', 'domain_of': ['Frame']} }) - defocus: float = Field(..., description="""The defocus.""", json_schema_extra = { "linkml_meta": {'alias': 'defocus', 'domain_of': ['Frame']} }) - astigmatism: float = Field(..., description="""The astigmatism.""", json_schema_extra = { "linkml_meta": {'alias': 'astigmatism', 'domain_of': ['Frame']} }) - astigmatic_angle: float = Field(..., description="""The astigmatic angle.""", json_schema_extra = { "linkml_meta": {'alias': 'astigmatic_angle', 'domain_of': ['Frame']} }) - - -class DateStampedEntityMixin(ConfiguredBaseModel): - """ - A set of dates at which a data item was deposited, published and last modified. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) - - deposition_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_date', - 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], - 'exact_mappings': ['cdp-common:deposition_date']} }) - release_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'release_date', - 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], - 'exact_mappings': ['cdp-common:release_date']} }) - last_modified_date: date = Field(..., description="""The date a piece of data was last modified on the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'last_modified_date', - 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], - 'exact_mappings': ['cdp-common:last_modified_date']} }) - - -class DateStamp(DateStampedEntityMixin): - """ - A set of dates at which a data item was deposited, published and last modified. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['DateStampedEntityMixin']}) - - deposition_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_date', - 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], - 'exact_mappings': ['cdp-common:deposition_date']} }) - release_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'release_date', - 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], - 'exact_mappings': ['cdp-common:release_date']} }) - last_modified_date: date = Field(..., description="""The date a piece of data was last modified on the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'last_modified_date', - 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], - 'exact_mappings': ['cdp-common:last_modified_date']} }) - - -class CrossReferencesMixin(ConfiguredBaseModel): - """ - A set of cross-references to other databases and publications. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) - - publications: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications associated with the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'publications', - 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], - 'recommended': True} }) - related_database_entries: Optional[str] = Field(None, description="""Comma-separated list of related database entries for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_entries', - 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], - 'recommended': True} }) - related_database_links: Optional[str] = Field(None, description="""Comma-separated list of related database links for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_links', - 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) - dataset_citations: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications citing the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_citations', - 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) - - @field_validator('publications') - def pattern_publications(cls, v): - pattern=re.compile(r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid publications format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid publications format: {v}") - return v - - @field_validator('related_database_entries') - def pattern_related_database_entries(cls, v): - pattern=re.compile(r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid related_database_entries format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid related_database_entries format: {v}") - return v - - -class CrossReferences(CrossReferencesMixin): - """ - A set of cross-references to other databases and publications. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['CrossReferencesMixin']}) - - publications: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications associated with the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'publications', - 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], - 'recommended': True} }) - related_database_entries: Optional[str] = Field(None, description="""Comma-separated list of related database entries for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_entries', - 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], - 'recommended': True} }) - related_database_links: Optional[str] = Field(None, description="""Comma-separated list of related database links for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_links', - 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) - dataset_citations: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications citing the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_citations', - 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) - - @field_validator('publications') - def pattern_publications(cls, v): - pattern=re.compile(r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid publications format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid publications format: {v}") - return v - - @field_validator('related_database_entries') - def pattern_related_database_entries(cls, v): - pattern=re.compile(r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid related_database_entries format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid related_database_entries format: {v}") - return v - - -class AuthorMixin(ConfiguredBaseModel): - """ - An entity with author data - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) - - name: str = Field(..., description="""The full name of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['AuthorMixin', - 'Author', - 'OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile'], - 'exact_mappings': ['cdp-common:author_name']} }) - email: Optional[str] = Field(None, description="""The email address of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'email', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_email']} }) - affiliation_name: Optional[str] = Field(None, description="""The name of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_name', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_affiliation_name']} }) - affiliation_address: Optional[str] = Field(None, description="""The address of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_address', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_affiliation_address']} }) - affiliation_identifier: Optional[str] = Field(None, description="""A Research Organization Registry (ROR) identifier.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_identifier', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_affiliation_identifier'], - 'recommended': True} }) - corresponding_author_status: Optional[bool] = Field(False, description="""Whether the author is a corresponding author.""", json_schema_extra = { "linkml_meta": {'alias': 'corresponding_author_status', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_corresponding_author_status'], - 'ifabsent': 'False'} }) - primary_author_status: Optional[bool] = Field(False, description="""Whether the author is a primary author.""", json_schema_extra = { "linkml_meta": {'alias': 'primary_author_status', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_primary_author_status'], - 'ifabsent': 'False'} }) - - -class Author(AuthorMixin): - """ - Author of a scientific data entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['AuthorMixin']}) - - ORCID: Optional[str] = Field(None, description="""The ORCID identifier for the author.""", json_schema_extra = { "linkml_meta": {'alias': 'ORCID', - 'domain_of': ['Author'], - 'exact_mappings': ['cdp-common:author_orcid'], - 'recommended': True} }) - name: str = Field(..., description="""The full name of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'name', - 'domain_of': ['AuthorMixin', - 'OrganismDetails', - 'TissueDetails', - 'CellType', - 'CellStrain', - 'CellComponent', - 'AnnotationObject', - 'AnnotationTriangularMeshGroupFile', - 'Author'], - 'exact_mappings': ['cdp-common:author_name']} }) - email: Optional[str] = Field(None, description="""The email address of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'email', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_email']} }) - affiliation_name: Optional[str] = Field(None, description="""The name of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_name', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_affiliation_name']} }) - affiliation_address: Optional[str] = Field(None, description="""The address of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_address', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_affiliation_address']} }) - affiliation_identifier: Optional[str] = Field(None, description="""A Research Organization Registry (ROR) identifier.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_identifier', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_affiliation_identifier'], - 'recommended': True} }) - corresponding_author_status: Optional[bool] = Field(False, description="""Whether the author is a corresponding author.""", json_schema_extra = { "linkml_meta": {'alias': 'corresponding_author_status', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_corresponding_author_status'], - 'ifabsent': 'False'} }) - primary_author_status: Optional[bool] = Field(False, description="""Whether the author is a primary author.""", json_schema_extra = { "linkml_meta": {'alias': 'primary_author_status', - 'domain_of': ['AuthorMixin', 'Author'], - 'exact_mappings': ['cdp-common:author_primary_author_status'], - 'ifabsent': 'False'} }) - - @field_validator('ORCID') - def pattern_ORCID(cls, v): - pattern=re.compile(r"[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$") - if isinstance(v,list): - for element in v: - if not pattern.match(element): - raise ValueError(f"Invalid ORCID format: {element}") - elif isinstance(v,str): - if not pattern.match(v): - raise ValueError(f"Invalid ORCID format: {v}") - return v - - -class Container(ConfiguredBaseModel): - """ - Class that models the ingestion config file. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'tree_root': True}) - - alignments: Optional[List[AlignmentEntity]] = Field(None, description="""An alignment entity.""", json_schema_extra = { "linkml_meta": {'alias': 'alignments', 'domain_of': ['Container']} }) - annotations: Optional[List[AnnotationEntity]] = Field(None, description="""An annotation entity.""", json_schema_extra = { "linkml_meta": {'alias': 'annotations', 'domain_of': ['Container']} }) - collection_metadata: Optional[List[CollectionMetadataEntity]] = Field(None, description="""A collection_metadata entity.""", json_schema_extra = { "linkml_meta": {'alias': 'collection_metadata', 'domain_of': ['Container']} }) - dataset_keyphotos: Optional[List[DatasetKeyPhotoEntity]] = Field(None, description="""A dataset key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_keyphotos', 'domain_of': ['Container']} }) - datasets: List[DatasetEntity] = Field(..., description="""A dataset entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'datasets', 'domain_of': ['Container']} }) - deposition_keyphotos: Optional[List[DepositionKeyPhotoEntity]] = Field(None, description="""A deposition key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_keyphotos', 'domain_of': ['Container']} }) - depositions: List[DepositionEntity] = Field(..., description="""A deposition entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'depositions', 'domain_of': ['Container']} }) - frames: Optional[List[FrameEntity]] = Field(None, description="""A frame entity.""", json_schema_extra = { "linkml_meta": {'alias': 'frames', 'domain_of': ['Container']} }) - gains: Optional[List[GainEntity]] = Field(None, description="""A gain entity.""", json_schema_extra = { "linkml_meta": {'alias': 'gains', 'domain_of': ['Container']} }) - key_images: Optional[List[KeyImageEntity]] = Field(None, description="""A key image entity.""", json_schema_extra = { "linkml_meta": {'alias': 'key_images', 'domain_of': ['Container']} }) - rawtilts: Optional[List[RawTiltEntity]] = Field(None, description="""A raw tilt entity.""", json_schema_extra = { "linkml_meta": {'alias': 'rawtilts', 'domain_of': ['Container']} }) - runs: List[RunEntity] = Field(..., description="""A run entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'runs', 'domain_of': ['Container']} }) - standardization_config: StandardizationConfig = Field(..., description="""A standardization configuration.""", json_schema_extra = { "linkml_meta": {'alias': 'standardization_config', 'domain_of': ['Container']} }) - tiltseries: Optional[List[TiltSeriesEntity]] = Field(None, description="""A tilt series entity.""", json_schema_extra = { "linkml_meta": {'alias': 'tiltseries', 'domain_of': ['Container']} }) - tomograms: Optional[List[TomogramEntity]] = Field(None, description="""A tomogram entity.""", json_schema_extra = { "linkml_meta": {'alias': 'tomograms', 'domain_of': ['Container']} }) - voxel_spacings: List[VoxelSpacingEntity] = Field(..., description="""A voxel spacing entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacings', 'domain_of': ['Container']} }) - - -class GeneralGlob(ConfiguredBaseModel): - """ - An abstracted glob class for destination and source globs. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, 'from_schema': 'cdp-ingestion-config'}) - - list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', - 'domain_of': ['GeneralGlob', - 'TomogramHeader', - 'DestinationGlob', - 'SourceGlob']} }) - match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', - 'domain_of': ['GeneralGlob', - 'TomogramHeader', - 'DestinationGlob', - 'SourceGlob'], - 'ifabsent': 'string(.*)'} }) - name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', - 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], - 'ifabsent': 'string((.*))'} }) - - -class DestinationGlob(GeneralGlob): - """ - A glob class for finding files in the output / destination directory. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', - 'domain_of': ['GeneralGlob', - 'TomogramHeader', - 'DestinationGlob', - 'SourceGlob']} }) - match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', - 'domain_of': ['GeneralGlob', - 'TomogramHeader', - 'DestinationGlob', - 'SourceGlob'], - 'ifabsent': 'string(.*)'} }) - name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', - 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], - 'ifabsent': 'string((.*))'} }) - - -class SourceGlob(GeneralGlob): - """ - A glob class for finding files in the source directory. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', - 'domain_of': ['GeneralGlob', - 'TomogramHeader', - 'DestinationGlob', - 'SourceGlob']} }) - match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', - 'domain_of': ['GeneralGlob', - 'TomogramHeader', - 'DestinationGlob', - 'SourceGlob'], - 'ifabsent': 'string(.*)'} }) - name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', - 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], - 'ifabsent': 'string((.*))'} }) - - -class SourceMultiGlob(ConfiguredBaseModel): - """ - A glob class for finding files in the source directory (with multiple globs). - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - list_globs: List[str] = Field(..., description="""The globs for the file.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'list_globs', 'domain_of': ['SourceMultiGlob']} }) - - -class DefaultSource(ConfiguredBaseModel): - """ - A default source class that all source classes inherit from. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class StandardSource(DefaultSource): - """ - A generalized source class with glob finders. Inherited by a majority of source classes. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class StandardLiteral(ConfiguredBaseModel): - """ - A literal class with a value attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - value: List[Any] = Field(..., description="""The value for the literal.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'value', - 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) - - -class KeyPhotoLiteral(ConfiguredBaseModel): - """ - A literal for a key photo. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - value: PicturePath = Field(..., description="""A set of paths to representative images of a piece of data.""", json_schema_extra = { "linkml_meta": {'alias': 'value', - 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) - - -class AlignmentEntity(ConfiguredBaseModel): - """ - An alignment entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - metadata: Alignment = Field(..., description="""The metadata for the alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'DatasetEntity', - 'DepositionEntity', - 'FrameEntity', - 'TiltSeriesEntity', - 'TomogramEntity']} }) - sources: List[AlignmentSource] = Field(..., description="""An alignment source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class AlignmentSource(StandardSource): - """ - An alignment source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[AlignmentParentFilters] = Field(None, description="""Types of parent filters for an alignment source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class AlignmentParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for an alignment source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[AlignmentParent] = Field(None, description="""A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[AlignmentParent] = Field(None, description="""A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class AlignmentParent(ConfiguredBaseModel): - """ - A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['AlignmentParent', 'KeyImageParent']} }) - voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', - 'domain_of': ['Tomogram', - 'AlignmentParent', - 'AnnotationParent', - 'KeyImageParent', - 'TomogramParent']} }) - - -class AnnotationEntity(ConfiguredBaseModel): - """ - An annotation entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - metadata: Annotation = Field(..., description="""Metadata describing an annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'DatasetEntity', - 'DepositionEntity', - 'FrameEntity', - 'TiltSeriesEntity', - 'TomogramEntity']} }) - sources: List[AnnotationSource] = Field(..., description="""An annotation source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class AnnotationSource(DefaultSource): - """ - An annotation source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - InstanceSegmentation: Optional[AnnotationInstanceSegmentationFile] = Field(None, description="""File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes.""", json_schema_extra = { "linkml_meta": {'alias': 'InstanceSegmentation', 'domain_of': ['AnnotationSource']} }) - OrientedPoint: Optional[AnnotationOrientedPointFile] = Field(None, description="""File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume.""", json_schema_extra = { "linkml_meta": {'alias': 'OrientedPoint', 'domain_of': ['AnnotationSource']} }) - Point: Optional[AnnotationPointFile] = Field(None, description="""File and sourcing data for a point annotation. Annotation that identifies points in the volume.""", json_schema_extra = { "linkml_meta": {'alias': 'Point', 'domain_of': ['AnnotationSource']} }) - SegmentationMask: Optional[AnnotationSegmentationMaskFile] = Field(None, description="""File and sourcing data for a segmentation mask annotation. Annotation that identifies an object.""", json_schema_extra = { "linkml_meta": {'alias': 'SegmentationMask', 'domain_of': ['AnnotationSource']} }) - SemanticSegmentationMask: Optional[AnnotationSemanticSegmentationMaskFile] = Field(None, description="""File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects.""", json_schema_extra = { "linkml_meta": {'alias': 'SemanticSegmentationMask', 'domain_of': ['AnnotationSource']} }) - TriangularMesh: Optional[AnnotationTriangularMeshFile] = Field(None, description="""File and sourcing data for a triangular mesh annotation. Annotation that identifies an object.""", json_schema_extra = { "linkml_meta": {'alias': 'TriangularMesh', 'domain_of': ['AnnotationSource']} }) - TriangularMeshGroup: Optional[AnnotationTriangularMeshGroupFile] = Field(None, description="""File and sourcing data containing one or more triangular mesh annotations.""", json_schema_extra = { "linkml_meta": {'alias': 'TriangularMeshGroup', 'domain_of': ['AnnotationSource']} }) - parent_filters: Optional[AnnotationParentFilters] = Field(None, description="""Filters for the parent of an annotation source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class AnnotationParentFilters(ConfiguredBaseModel): - """ - Filters for the parent of an annotation source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class AnnotationParent(ConfiguredBaseModel): - """ - A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', - 'domain_of': ['Tomogram', - 'AlignmentParent', - 'AnnotationParent', - 'KeyImageParent', - 'TomogramParent']} }) - - -class CollectionMetadataEntity(ConfiguredBaseModel): - """ - A collection_metadata entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[CollectionMetadataSource] = Field(..., description="""A collection_metadata source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class CollectionMetadataSource(StandardSource): - """ - A collection_metadata source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[CollectionMetadataParentFilters] = Field(None, description="""Types of parent filters for a collection_metadata source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class CollectionMetadataParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a collection_metadata source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class CollectionMetadataParent(ConfiguredBaseModel): - """ - A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class DatasetEntity(ConfiguredBaseModel): - """ - A dataset entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - metadata: Optional[Dataset] = Field(None, description="""High-level description of a cryoET dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'DatasetEntity', - 'DepositionEntity', - 'FrameEntity', - 'TiltSeriesEntity', - 'TomogramEntity']} }) - sources: List[DatasetSource] = Field(..., description="""A dataset source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class DatasetSource(StandardSource): - """ - A dataset source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[DatasetParentFilters] = Field(None, description="""Types of parent filters for a dataset source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class DatasetParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a dataset source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class DatasetParent(ConfiguredBaseModel): - """ - A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class DatasetKeyPhotoEntity(ConfiguredBaseModel): - """ - A dataset key photo entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[DatasetKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class DatasetKeyPhotoSource(StandardSource): - """ - A key photo source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - literal: Optional[KeyPhotoLiteral] = Field(None, description="""A literal for a key photo.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - parent_filters: Optional[DatasetKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a key photo source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class DatasetKeyPhotoParent(ConfiguredBaseModel): - """ - A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class DepositionEntity(ConfiguredBaseModel): - """ - A deposition entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - metadata: Optional[Deposition] = Field(None, description="""Metadata describing a deposition.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'DatasetEntity', - 'DepositionEntity', - 'FrameEntity', - 'TiltSeriesEntity', - 'TomogramEntity']} }) - sources: List[DepositionSource] = Field(..., description="""A deposition source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class DepositionSource(StandardSource): - """ - A deposition source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class DepositionKeyPhotoEntity(ConfiguredBaseModel): - """ - A deposition key photo entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[DepositionKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class DepositionKeyPhotoSource(StandardSource): - """ - A key photo source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - literal: Optional[KeyPhotoLiteral] = Field(None, description="""A literal for a key photo.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - parent_filters: Optional[DepositionKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a key photo source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class DepositionKeyPhotoParent(ConfiguredBaseModel): - """ - A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class FrameEntity(ConfiguredBaseModel): - """ - A frame entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[FrameSource] = Field(..., description="""A frame source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - metadata: Optional[Frame] = Field(None, description="""A frame entity.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'DatasetEntity', - 'DepositionEntity', - 'FrameEntity', - 'TiltSeriesEntity', - 'TomogramEntity']} }) - - -class FrameSource(StandardSource): - """ - A frame source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[FrameParentFilters] = Field(None, description="""Types of parent filters for a frame source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class FrameParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a frame source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class FrameParent(ConfiguredBaseModel): - """ - A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class GainEntity(ConfiguredBaseModel): - """ - A gain entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[GainSource] = Field(..., description="""A gain source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class GainSource(StandardSource): - """ - A gain source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[GainParentFilters] = Field(None, description="""Types of parent filters for a gain source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class GainParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a gain source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class GainParent(ConfiguredBaseModel): - """ - A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class KeyImageEntity(ConfiguredBaseModel): - """ - A key image entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[KeyImageSource] = Field(..., description="""A key image source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class KeyImageSource(StandardSource): - """ - A key image source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[KeyImageParentFilters] = Field(None, description="""Types of parent filters for a key image source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class KeyImageParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a key image source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class KeyImageParent(ConfiguredBaseModel): - """ - A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['AlignmentParent', 'KeyImageParent']} }) - voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', - 'domain_of': ['Tomogram', - 'AlignmentParent', - 'AnnotationParent', - 'KeyImageParent', - 'TomogramParent']} }) - - -class RawTiltEntity(ConfiguredBaseModel): - """ - A raw tilt entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[RawTiltSource] = Field(..., description="""A raw tilt source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class RawTiltSource(StandardSource): - """ - A raw tilt source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[RawTiltParentFilters] = Field(None, description="""Types of parent filters for a raw tilt source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class RawTiltParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a raw tilt source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class RawTiltParent(ConfiguredBaseModel): - """ - A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class RunEntity(ConfiguredBaseModel): - """ - A run entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[RunSource] = Field(..., description="""A run source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class RunSource(StandardSource): - """ - A run source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[RunParentFilters] = Field(None, description="""Types of parent filters for a run source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class RunParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a run source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class RunParent(ConfiguredBaseModel): - """ - A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class StandardizationConfig(ConfiguredBaseModel): - """ - A standardization configuration. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - deposition_id: int = Field(..., description="""The deposition ID.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_id', 'domain_of': ['StandardizationConfig']} }) - run_data_map_file: Optional[str] = Field(None, description="""The run data map file.""", json_schema_extra = { "linkml_meta": {'alias': 'run_data_map_file', 'domain_of': ['StandardizationConfig']} }) - run_to_frame_map_csv: Optional[str] = Field(None, description="""The run to frame map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_frame_map_csv', 'domain_of': ['StandardizationConfig']} }) - run_to_tomo_map_csv: Optional[str] = Field(None, description="""The run to tomogram map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_tomo_map_csv', 'domain_of': ['StandardizationConfig']} }) - run_to_ts_map_csv: Optional[str] = Field(None, description="""The run to tilt series map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_ts_map_csv', 'domain_of': ['StandardizationConfig']} }) - source_prefix: str = Field(..., description="""The source prefix of the input files.""", json_schema_extra = { "linkml_meta": {'alias': 'source_prefix', 'domain_of': ['StandardizationConfig']} }) - - -class TiltSeriesEntity(ConfiguredBaseModel): - """ - A tilt series entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - metadata: Optional[TiltSeries] = Field(None, description="""Metadata describing a tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'DatasetEntity', - 'DepositionEntity', - 'FrameEntity', - 'TiltSeriesEntity', - 'TomogramEntity']} }) - sources: List[TiltSeriesSource] = Field(..., description="""A tilt series source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class TiltSeriesSource(StandardSource): - """ - A tilt series source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[TiltSeriesParentFilters] = Field(None, description="""Types of parent filters for a tilt series source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class TiltSeriesParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a tilt series source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class TiltSeriesParent(ConfiguredBaseModel): - """ - A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class TomogramEntity(ConfiguredBaseModel): - """ - A tomogram entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - metadata: Optional[Tomogram] = Field(None, description="""Metadata describing a tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'DatasetEntity', - 'DepositionEntity', - 'FrameEntity', - 'TiltSeriesEntity', - 'TomogramEntity']} }) - sources: List[TomogramSource] = Field(..., description="""A tomogram source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class TomogramSource(StandardSource): - """ - A tomogram source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - parent_filters: Optional[TomogramParentFilters] = Field(None, description="""Types of parent filters for a tomogram source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', - 'domain_of': ['StandardSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class TomogramParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a tomogram source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class TomogramParent(ConfiguredBaseModel): - """ - A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', - 'domain_of': ['Tomogram', - 'AlignmentParent', - 'AnnotationParent', - 'KeyImageParent', - 'TomogramParent']} }) - - -class VoxelSpacingEntity(ConfiguredBaseModel): - """ - A voxel spacing entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - sources: List[VoxelSpacingSource] = Field(..., description="""A voxel spacing source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', - 'domain_of': ['AlignmentEntity', - 'AnnotationEntity', - 'CollectionMetadataEntity', - 'DatasetEntity', - 'DatasetKeyPhotoEntity', - 'DepositionEntity', - 'DepositionKeyPhotoEntity', - 'FrameEntity', - 'GainEntity', - 'KeyImageEntity', - 'RawTiltEntity', - 'RunEntity', - 'TiltSeriesEntity', - 'TomogramEntity', - 'VoxelSpacingEntity']} }) - - -class VoxelSpacingSource(DefaultSource): - """ - A voxel spacing source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', - 'domain_of': ['StandardSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - literal: Optional[VoxelSpacingLiteral] = Field(None, description="""A literal for a voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', - 'domain_of': ['StandardSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'VoxelSpacingSource', - 'AlignmentSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DepositionSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource']} }) - tomogram_header: Optional[TomogramHeader] = Field(None, description="""A tomogram header, a unique source attribute for voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_header', 'domain_of': ['VoxelSpacingSource']} }) - parent_filters: Optional[VoxelSpacingParentFilters] = Field(None, description="""Types of parent filters for a voxel spacing source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', - 'domain_of': ['AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class VoxelSpacingParentFilters(ConfiguredBaseModel): - """ - Types of parent filters for a voxel spacing source. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - include: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', - 'domain_of': ['AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters']} }) - exclude: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', - 'domain_of': ['DefaultSource', - 'AlignmentParentFilters', - 'AnnotationParentFilters', - 'CollectionMetadataParentFilters', - 'DatasetParentFilters', - 'DatasetKeyPhotoParentFilters', - 'DepositionKeyPhotoParentFilters', - 'FrameParentFilters', - 'GainParentFilters', - 'KeyImageParentFilters', - 'RawTiltParentFilters', - 'RunParentFilters', - 'TiltSeriesParentFilters', - 'TomogramParentFilters', - 'VoxelSpacingParentFilters', - 'StandardSource', - 'AlignmentSource', - 'AnnotationSource', - 'CollectionMetadataSource', - 'DatasetSource', - 'DatasetKeyPhotoSource', - 'DepositionSource', - 'DepositionKeyPhotoSource', - 'FrameSource', - 'GainSource', - 'KeyImageSource', - 'RawTiltSource', - 'RunSource', - 'TiltSeriesSource', - 'TomogramSource', - 'VoxelSpacingSource']} }) - - -class VoxelSpacingParent(ConfiguredBaseModel): - """ - A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'DatasetParent', - 'DatasetKeyPhotoParent', - 'DepositionKeyPhotoParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'RunParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', - 'domain_of': ['AlignmentParent', - 'AnnotationParent', - 'CollectionMetadataParent', - 'FrameParent', - 'GainParent', - 'KeyImageParent', - 'RawTiltParent', - 'TiltSeriesParent', - 'TomogramParent', - 'VoxelSpacingParent']} }) - - -class VoxelSpacingLiteral(ConfiguredBaseModel): - """ - A literal for a voxel spacing. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - value: List[float] = Field(..., description="""The value for the voxel spacing literal.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'value', - 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) - - -class TomogramHeader(ConfiguredBaseModel): - """ - A tomogram header, a unique source attribute for voxel spacing. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) - - list_glob: str = Field(..., description="""The glob for the tomogram header file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', - 'domain_of': ['GeneralGlob', - 'TomogramHeader', - 'DestinationGlob', - 'SourceGlob']} }) - match_regex: Optional[str] = Field(".*", description="""The regex for the tomogram header file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', - 'domain_of': ['GeneralGlob', - 'TomogramHeader', - 'DestinationGlob', - 'SourceGlob'], - 'ifabsent': 'string(.*)'} }) - header_key: Optional[str] = Field("voxel_size", description="""The key in the header file for the voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'header_key', - 'domain_of': ['TomogramHeader'], - 'ifabsent': 'string(voxel_size)'} }) - - -# Model rebuild -# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model -PicturePath.model_rebuild() -FundingDetails.model_rebuild() -DateStampedEntity.model_rebuild() -AuthoredEntity.model_rebuild() -FundedEntity.model_rebuild() -CrossReferencedEntity.model_rebuild() -PicturedEntity.model_rebuild() -OrganismDetails.model_rebuild() -TissueDetails.model_rebuild() -CellType.model_rebuild() -CellStrain.model_rebuild() -CellComponent.model_rebuild() -ExperimentMetadata.model_rebuild() -Dataset.model_rebuild() -Deposition.model_rebuild() -CameraDetails.model_rebuild() -MicroscopeDetails.model_rebuild() -MicroscopeOpticalSetup.model_rebuild() -TiltRange.model_rebuild() -TiltSeries.model_rebuild() -TomogramSize.model_rebuild() -TomogramOffset.model_rebuild() -Tomogram.model_rebuild() -AnnotationConfidence.model_rebuild() -AnnotationObject.model_rebuild() -AnnotationMethodLinks.model_rebuild() -AnnotationSourceFile.model_rebuild() -AnnotationOrientedPointFile.model_rebuild() -AnnotationInstanceSegmentationFile.model_rebuild() -AnnotationPointFile.model_rebuild() -AnnotationSegmentationMaskFile.model_rebuild() -AnnotationSemanticSegmentationMaskFile.model_rebuild() -AnnotationTriangularMeshFile.model_rebuild() -AnnotationTriangularMeshGroupFile.model_rebuild() -Annotation.model_rebuild() -AlignmentSize.model_rebuild() -AlignmentOffset.model_rebuild() -Alignment.model_rebuild() -Frame.model_rebuild() -DateStampedEntityMixin.model_rebuild() -DateStamp.model_rebuild() -CrossReferencesMixin.model_rebuild() -CrossReferences.model_rebuild() -AuthorMixin.model_rebuild() -Author.model_rebuild() -Container.model_rebuild() -GeneralGlob.model_rebuild() -DestinationGlob.model_rebuild() -SourceGlob.model_rebuild() -SourceMultiGlob.model_rebuild() -DefaultSource.model_rebuild() -StandardSource.model_rebuild() -StandardLiteral.model_rebuild() -KeyPhotoLiteral.model_rebuild() -AlignmentEntity.model_rebuild() -AlignmentSource.model_rebuild() -AlignmentParentFilters.model_rebuild() -AlignmentParent.model_rebuild() -AnnotationEntity.model_rebuild() -AnnotationSource.model_rebuild() -AnnotationParentFilters.model_rebuild() -AnnotationParent.model_rebuild() -CollectionMetadataEntity.model_rebuild() -CollectionMetadataSource.model_rebuild() -CollectionMetadataParentFilters.model_rebuild() -CollectionMetadataParent.model_rebuild() -DatasetEntity.model_rebuild() -DatasetSource.model_rebuild() -DatasetParentFilters.model_rebuild() -DatasetParent.model_rebuild() -DatasetKeyPhotoEntity.model_rebuild() -DatasetKeyPhotoSource.model_rebuild() -DatasetKeyPhotoParentFilters.model_rebuild() -DatasetKeyPhotoParent.model_rebuild() -DepositionEntity.model_rebuild() -DepositionSource.model_rebuild() -DepositionKeyPhotoEntity.model_rebuild() -DepositionKeyPhotoSource.model_rebuild() -DepositionKeyPhotoParentFilters.model_rebuild() -DepositionKeyPhotoParent.model_rebuild() -FrameEntity.model_rebuild() -FrameSource.model_rebuild() -FrameParentFilters.model_rebuild() -FrameParent.model_rebuild() -GainEntity.model_rebuild() -GainSource.model_rebuild() -GainParentFilters.model_rebuild() -GainParent.model_rebuild() -KeyImageEntity.model_rebuild() -KeyImageSource.model_rebuild() -KeyImageParentFilters.model_rebuild() -KeyImageParent.model_rebuild() -RawTiltEntity.model_rebuild() -RawTiltSource.model_rebuild() -RawTiltParentFilters.model_rebuild() -RawTiltParent.model_rebuild() -RunEntity.model_rebuild() -RunSource.model_rebuild() -RunParentFilters.model_rebuild() -RunParent.model_rebuild() -StandardizationConfig.model_rebuild() -TiltSeriesEntity.model_rebuild() -TiltSeriesSource.model_rebuild() -TiltSeriesParentFilters.model_rebuild() -TiltSeriesParent.model_rebuild() -TomogramEntity.model_rebuild() -TomogramSource.model_rebuild() -TomogramParentFilters.model_rebuild() -TomogramParent.model_rebuild() -VoxelSpacingEntity.model_rebuild() -VoxelSpacingSource.model_rebuild() -VoxelSpacingParentFilters.model_rebuild() -VoxelSpacingParent.model_rebuild() -VoxelSpacingLiteral.model_rebuild() -TomogramHeader.model_rebuild() diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json deleted file mode 100644 index f62498ebd..000000000 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ /dev/null @@ -1,5365 +0,0 @@ -{ - "$defs": { - "Alignment": { - "additionalProperties": false, - "description": "", - "properties": { - "affine_transformation_matrix": { - "items": { - "additionalProperties": true, - "type": [ - "null", - "boolean", - "object", - "number", - "string", - "array" - ] - }, - "type": [ - "array", - "null" - ] - }, - "alignment_type": { - "$ref": "#/$defs/AlignmentTypeEnum", - "description": "The type of alignment.", - "pattern": "(^LOCAL$)|(^GLOBAL$)" - }, - "format": { - "$ref": "#/$defs/AlignmentFormatEnum", - "description": "The format of the alignment.", - "pattern": "(^IMOD$)|(^ARETOMO3$)" - }, - "is_canonical": { - "description": "Whether the alignment is canonical.", - "type": [ - "boolean", - "null" - ] - }, - "offset": { - "anyOf": [ - { - "$ref": "#/$defs/AlignmentOffset" - }, - { - "type": "null" - } - ], - "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram." - }, - "tilt_offset": { - "description": "The tilt offset relative to the tomogram.", - "type": [ - "number", - "null" - ] - }, - "volume_dimesion": { - "anyOf": [ - { - "$ref": "#/$defs/AlignmentSize" - }, - { - "type": "null" - } - ], - "description": "The size of an alignment in voxels in each dimension." - }, - "x_rotation_offset": { - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The x rotation offset relative to the tomogram.", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - } - }, - "required": [ - "format" - ], - "title": "Alignment", - "type": "object" - }, - "AlignmentEntity": { - "additionalProperties": false, - "description": "An alignment entity.", - "properties": { - "metadata": { - "$ref": "#/$defs/Alignment", - "description": "The metadata for the alignment." - }, - "sources": { - "description": "An alignment source.", - "items": { - "$ref": "#/$defs/AlignmentSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "metadata", - "sources" - ], - "title": "AlignmentEntity", - "type": "object" - }, - "AlignmentFormatEnum": { - "description": "Used to determine what alignment alogrithm to use.", - "enum": [ - "IMOD", - "ARETOMO3" - ], - "title": "AlignmentFormatEnum", - "type": "string" - }, - "AlignmentOffset": { - "additionalProperties": false, - "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram.", - "properties": { - "x": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "x offset relative to the canonical tomogram in pixels", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "y": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "y offset relative to the canonical tomogram in pixels", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "z": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "z offset relative to the canonical tomogram in pixels", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - } - }, - "required": [ - "x", - "y", - "z" - ], - "title": "AlignmentOffset", - "type": "object" - }, - "AlignmentParent": { - "additionalProperties": false, - "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "tomogram": { - "description": "Include or exclude tomograms for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "voxel_spacing": { - "description": "Include or exclude voxel spacings for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AlignmentParent", - "type": "object" - }, - "AlignmentParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for an alignment source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/AlignmentParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/AlignmentParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "AlignmentParentFilters", - "type": "object" - }, - "AlignmentSize": { - "additionalProperties": false, - "description": "The size of an alignment in voxels in each dimension.", - "properties": { - "x": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Number of pixels in the 3D data fast axis", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "y": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Number of pixels in the 3D data medium axis", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "z": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - } - }, - "required": [ - "x", - "y", - "z" - ], - "title": "AlignmentSize", - "type": "object" - }, - "AlignmentSource": { - "additionalProperties": false, - "description": "An alignment source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/AlignmentParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for an alignment source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "AlignmentSource", - "type": "object" - }, - "AlignmentTypeEnum": { - "description": "Type of alignment", - "enum": [ - "LOCAL", - "GLOBAL" - ], - "title": "AlignmentTypeEnum", - "type": "string" - }, - "Annotation": { - "additionalProperties": false, - "description": "Metadata describing an annotation.", - "properties": { - "annotation_method": { - "description": "Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)", - "type": "string" - }, - "annotation_object": { - "$ref": "#/$defs/AnnotationObject", - "description": "Metadata describing the object being annotated." - }, - "annotation_publications": { - "description": "List of publication IDs (EMPIAR, EMDB, DOI, PDB) that describe this annotation method. Comma separated.", - "pattern": "^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$", - "type": [ - "string", - "null" - ] - }, - "annotation_software": { - "description": "Software used for generating this annotation", - "type": [ - "string", - "null" - ] - }, - "authors": { - "description": "Author of a scientific data entity.", - "items": { - "$ref": "#/$defs/Author" - }, - "minItems": 1, - "type": "array" - }, - "confidence": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationConfidence" - }, - { - "type": "null" - } - ], - "description": "Metadata describing the confidence of an annotation." - }, - "dates": { - "$ref": "#/$defs/DateStamp", - "description": "A set of dates at which a data item was deposited, published and last modified." - }, - "files": { - "description": "File and sourcing data for an annotation. Represents an entry in annotation.sources.", - "items": { - "$ref": "#/$defs/AnnotationSourceFile" - }, - "type": [ - "array", - "null" - ] - }, - "ground_truth_status": { - "description": "Whether an annotation is considered ground truth, as determined by the annotator.", - "type": [ - "boolean", - "null" - ] - }, - "is_curator_recommended": { - "description": "This annotation is recommended by the curator to be preferred for this object type.", - "type": [ - "boolean", - "null" - ] - }, - "method_links": { - "description": "A set of links to models, source code, documentation, etc referenced by annotation the method", - "items": { - "$ref": "#/$defs/AnnotationMethodLinks" - }, - "type": [ - "array", - "null" - ] - }, - "method_type": { - "$ref": "#/$defs/AnnotationMethodTypeEnum", - "description": "Classification of the annotation method based on supervision.", - "pattern": "(^manual$)|(^automated$)|(^hybrid$)|(^simulated$)" - }, - "object_count": { - "description": "Number of objects identified", - "type": [ - "integer", - "null" - ] - }, - "version": { - "description": "Version of annotation.", - "minimum": 0, - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "annotation_method", - "annotation_object", - "method_type", - "dates", - "authors" - ], - "title": "Annotation", - "type": "object" - }, - "AnnotationConfidence": { - "additionalProperties": false, - "description": "Metadata describing the confidence of an annotation.", - "properties": { - "ground_truth_used": { - "description": "Annotation filename used as ground truth for precision and recall", - "type": [ - "string", - "null" - ] - }, - "precision": { - "description": "Describe the confidence level of the annotation. Precision is defined as the % of annotation objects being true positive", - "maximum": 100, - "minimum": 0, - "type": [ - "number", - "null" - ] - }, - "recall": { - "description": "Describe the confidence level of the annotation. Recall is defined as the % of true positives being annotated correctly", - "maximum": 100, - "minimum": 0, - "type": [ - "number", - "null" - ] - } - }, - "title": "AnnotationConfidence", - "type": "object" - }, - "AnnotationEntity": { - "additionalProperties": false, - "description": "An annotation entity.", - "properties": { - "metadata": { - "$ref": "#/$defs/Annotation", - "description": "Metadata describing an annotation." - }, - "sources": { - "description": "An annotation source.", - "items": { - "$ref": "#/$defs/AnnotationSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "metadata", - "sources" - ], - "title": "AnnotationEntity", - "type": "object" - }, - "AnnotationFileShapeTypeEnum": { - "description": "Describes the shape of the annotation", - "enum": [ - "SegmentationMask", - "OrientedPoint", - "Point", - "InstanceSegmentation", - "TriangularMesh", - "TriangularMeshGroup" - ], - "title": "AnnotationFileShapeTypeEnum", - "type": "string" - }, - "AnnotationInstanceSegmentationFile": { - "additionalProperties": false, - "description": "File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes.", - "properties": { - "binning": { - "description": "The binning factor for a point / oriented point / instance segmentation annotation file.", - "minimum": 0, - "type": [ - "number", - "null" - ] - }, - "file_format": { - "description": "File format for this file", - "type": "string" - }, - "filter_value": { - "description": "The filter value for an oriented point / instance segmentation annotation file.", - "type": [ - "string", - "null" - ] - }, - "glob_string": { - "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", - "type": [ - "string", - "null" - ] - }, - "glob_strings": { - "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_portal_standard": { - "description": "Whether the annotation source is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "This annotation will be rendered in neuroglancer by default.", - "type": [ - "boolean", - "null" - ] - }, - "order": { - "description": "The order of axes for an oriented point / instance segmentation annotation file.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "file_format" - ], - "title": "AnnotationInstanceSegmentationFile", - "type": "object" - }, - "AnnotationMethodLinkTypeEnum": { - "description": "Describes the type of link associated to the annotation method.", - "enum": [ - "documentation", - "models_weights", - "other", - "source_code", - "website" - ], - "title": "AnnotationMethodLinkTypeEnum", - "type": "string" - }, - "AnnotationMethodLinks": { - "additionalProperties": false, - "description": "A set of links to models, source code, documentation, etc referenced by annotation the method", - "properties": { - "custom_name": { - "description": "user readable name of the resource", - "type": [ - "string", - "null" - ] - }, - "link": { - "description": "URL to the annotation method reference", - "type": "string" - }, - "link_type": { - "$ref": "#/$defs/AnnotationMethodLinkTypeEnum", - "description": "Type of link (e.g. model, source code, documentation)", - "pattern": "(^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$)" - } - }, - "required": [ - "link", - "link_type" - ], - "title": "AnnotationMethodLinks", - "type": "object" - }, - "AnnotationMethodTypeEnum": { - "description": "Describes how the annotations were generated.", - "enum": [ - "manual", - "automated", - "hybrid", - "simulated" - ], - "title": "AnnotationMethodTypeEnum", - "type": "string" - }, - "AnnotationObject": { - "additionalProperties": false, - "description": "Metadata describing the object being annotated.", - "properties": { - "description": { - "description": "A textual description of the annotation object, can be a longer description to include additional information not covered by the Annotation object name and state.", - "type": [ - "string", - "null" - ] - }, - "id": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "pattern": "^GO:[0-9]{7}$", - "type": "string" - }, - { - "pattern": "^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$", - "type": "string" - } - ], - "description": "Gene Ontology Cellular Component identifier or UniProtKB accession for the annotation object.", - "pattern": "(^GO:[0-9]{7}$)|(^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$)" - }, - "name": { - "description": "Name of the object being annotated (e.g. ribosome, nuclear pore complex, actin filament, membrane)", - "type": "string" - }, - "state": { - "description": "Molecule state annotated (e.g. open, closed)", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name" - ], - "title": "AnnotationObject", - "type": "object" - }, - "AnnotationOrientedPointFile": { - "additionalProperties": false, - "description": "File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume.", - "properties": { - "binning": { - "description": "The binning factor for a point / oriented point / instance segmentation annotation file.", - "minimum": 0, - "type": [ - "number", - "null" - ] - }, - "file_format": { - "description": "File format for this file", - "type": "string" - }, - "filter_value": { - "description": "The filter value for an oriented point / instance segmentation annotation file.", - "type": [ - "string", - "null" - ] - }, - "glob_string": { - "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", - "type": [ - "string", - "null" - ] - }, - "glob_strings": { - "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_portal_standard": { - "description": "Whether the annotation source is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "This annotation will be rendered in neuroglancer by default.", - "type": [ - "boolean", - "null" - ] - }, - "order": { - "description": "The order of axes for an oriented point / instance segmentation annotation file.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "file_format" - ], - "title": "AnnotationOrientedPointFile", - "type": "object" - }, - "AnnotationParent": { - "additionalProperties": false, - "description": "A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "voxel_spacing": { - "description": "Include or exclude voxel spacings for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AnnotationParent", - "type": "object" - }, - "AnnotationParentFilters": { - "additionalProperties": false, - "description": "Filters for the parent of an annotation source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "AnnotationParentFilters", - "type": "object" - }, - "AnnotationPointFile": { - "additionalProperties": false, - "description": "File and sourcing data for a point annotation. Annotation that identifies points in the volume.", - "properties": { - "binning": { - "description": "The binning factor for a point / oriented point / instance segmentation annotation file.", - "minimum": 0, - "type": [ - "number", - "null" - ] - }, - "columns": { - "description": "The columns used in a point annotation file.", - "type": [ - "string", - "null" - ] - }, - "delimiter": { - "description": "The delimiter used in a point annotation file.", - "type": [ - "string", - "null" - ] - }, - "file_format": { - "description": "File format for this file", - "type": "string" - }, - "glob_string": { - "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", - "type": [ - "string", - "null" - ] - }, - "glob_strings": { - "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_portal_standard": { - "description": "Whether the annotation source is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "This annotation will be rendered in neuroglancer by default.", - "type": [ - "boolean", - "null" - ] - } - }, - "required": [ - "file_format" - ], - "title": "AnnotationPointFile", - "type": "object" - }, - "AnnotationSegmentationMaskFile": { - "additionalProperties": false, - "description": "File and sourcing data for a segmentation mask annotation. Annotation that identifies an object.", - "properties": { - "file_format": { - "description": "File format for this file", - "type": "string" - }, - "glob_string": { - "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", - "type": [ - "string", - "null" - ] - }, - "glob_strings": { - "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_portal_standard": { - "description": "Whether the annotation source is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "This annotation will be rendered in neuroglancer by default.", - "type": [ - "boolean", - "null" - ] - } - }, - "required": [ - "file_format" - ], - "title": "AnnotationSegmentationMaskFile", - "type": "object" - }, - "AnnotationSemanticSegmentationMaskFile": { - "additionalProperties": false, - "description": "File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects.", - "properties": { - "file_format": { - "description": "File format for this file", - "type": "string" - }, - "glob_string": { - "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", - "type": [ - "string", - "null" - ] - }, - "glob_strings": { - "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_portal_standard": { - "description": "Whether the annotation source is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "This annotation will be rendered in neuroglancer by default.", - "type": [ - "boolean", - "null" - ] - }, - "mask_label": { - "description": "The mask label for a semantic segmentation mask annotation file.", - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "file_format" - ], - "title": "AnnotationSemanticSegmentationMaskFile", - "type": "object" - }, - "AnnotationSource": { - "additionalProperties": false, - "description": "An annotation source.", - "properties": { - "InstanceSegmentation": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationInstanceSegmentationFile" - }, - { - "type": "null" - } - ], - "description": "File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes." - }, - "OrientedPoint": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationOrientedPointFile" - }, - { - "type": "null" - } - ], - "description": "File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume." - }, - "Point": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationPointFile" - }, - { - "type": "null" - } - ], - "description": "File and sourcing data for a point annotation. Annotation that identifies points in the volume." - }, - "SegmentationMask": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationSegmentationMaskFile" - }, - { - "type": "null" - } - ], - "description": "File and sourcing data for a segmentation mask annotation. Annotation that identifies an object." - }, - "SemanticSegmentationMask": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationSemanticSegmentationMaskFile" - }, - { - "type": "null" - } - ], - "description": "File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects." - }, - "TriangularMesh": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationTriangularMeshFile" - }, - { - "type": "null" - } - ], - "description": "File and sourcing data for a triangular mesh annotation. Annotation that identifies an object." - }, - "TriangularMeshGroup": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationTriangularMeshGroupFile" - }, - { - "type": "null" - } - ], - "description": "File and sourcing data containing one or more triangular mesh annotations." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/AnnotationParentFilters" - }, - { - "type": "null" - } - ], - "description": "Filters for the parent of an annotation source." - } - }, - "title": "AnnotationSource", - "type": "object" - }, - "AnnotationSourceFile": { - "additionalProperties": false, - "description": "File and sourcing data for an annotation. Represents an entry in annotation.sources.", - "properties": { - "file_format": { - "description": "File format for this file", - "type": "string" - }, - "glob_string": { - "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", - "type": [ - "string", - "null" - ] - }, - "glob_strings": { - "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_portal_standard": { - "description": "Whether the annotation source is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "This annotation will be rendered in neuroglancer by default.", - "type": [ - "boolean", - "null" - ] - } - }, - "required": [ - "file_format" - ], - "title": "AnnotationSourceFile", - "type": "object" - }, - "AnnotationTriangularMeshFile": { - "additionalProperties": false, - "description": "File and sourcing data for a triangular mesh annotation. Annotation that identifies an object.", - "properties": { - "file_format": { - "description": "File format for this file", - "type": "string" - }, - "glob_string": { - "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", - "type": [ - "string", - "null" - ] - }, - "glob_strings": { - "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_portal_standard": { - "description": "Whether the annotation source is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "This annotation will be rendered in neuroglancer by default.", - "type": [ - "boolean", - "null" - ] - }, - "scale_factor": { - "description": "The scale factor for a mesh annotation file.", - "minimum": 0, - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "file_format" - ], - "title": "AnnotationTriangularMeshFile", - "type": "object" - }, - "AnnotationTriangularMeshGroupFile": { - "additionalProperties": false, - "description": "File and sourcing data containing one or more triangular mesh annotations.", - "properties": { - "file_format": { - "description": "File format for this file", - "type": "string" - }, - "glob_string": { - "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", - "type": [ - "string", - "null" - ] - }, - "glob_strings": { - "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_portal_standard": { - "description": "Whether the annotation source is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "This annotation will be rendered in neuroglancer by default.", - "type": [ - "boolean", - "null" - ] - }, - "name": { - "description": "The name that identifies to a single annotation mesh among multiple meshes.", - "type": [ - "string", - "null" - ] - }, - "scale_factor": { - "description": "The scale factor for a mesh annotation file.", - "minimum": 0, - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "file_format" - ], - "title": "AnnotationTriangularMeshGroupFile", - "type": "object" - }, - "Any": { - "additionalProperties": true, - "description": "", - "title": "Any", - "type": [ - "null", - "boolean", - "object", - "number", - "string" - ] - }, - "Author": { - "additionalProperties": false, - "description": "Author of a scientific data entity.", - "properties": { - "ORCID": { - "description": "The ORCID identifier for the author.", - "pattern": "[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$", - "type": [ - "string", - "null" - ] - }, - "affiliation_address": { - "description": "The address of the author's affiliation.", - "type": [ - "string", - "null" - ] - }, - "affiliation_identifier": { - "description": "A Research Organization Registry (ROR) identifier.", - "type": [ - "string", - "null" - ] - }, - "affiliation_name": { - "description": "The name of the author's affiliation.", - "type": [ - "string", - "null" - ] - }, - "corresponding_author_status": { - "description": "Whether the author is a corresponding author.", - "type": [ - "boolean", - "null" - ] - }, - "email": { - "description": "The email address of the author.", - "type": [ - "string", - "null" - ] - }, - "name": { - "description": "The full name of the author.", - "type": "string" - }, - "primary_author_status": { - "description": "Whether the author is a primary author.", - "type": [ - "boolean", - "null" - ] - } - }, - "required": [ - "name" - ], - "title": "Author", - "type": "object" - }, - "AuthoredEntity": { - "additionalProperties": false, - "description": "An entity with associated authors.", - "properties": { - "authors": { - "description": "Author of a scientific data entity.", - "items": { - "$ref": "#/$defs/Author" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "authors" - ], - "title": "AuthoredEntity", - "type": "object" - }, - "CameraDetails": { - "additionalProperties": false, - "description": "The camera used to collect the tilt series.", - "properties": { - "acquire_mode": { - "anyOf": [ - { - "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - }, - { - "$ref": "#/$defs/TiltseriesCameraAcquireModeEnum" - }, - { - "type": "null" - } - ], - "description": "Camera acquisition mode", - "pattern": "(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)|((^counting$)|(^superresolution$)|(^linear$)|(^cds$))" - }, - "manufacturer": { - "description": "Name of the camera manufacturer", - "type": "string" - }, - "model": { - "description": "Camera model name", - "type": "string" - } - }, - "required": [ - "manufacturer", - "model" - ], - "title": "CameraDetails", - "type": "object" - }, - "CellComponent": { - "additionalProperties": false, - "description": "The cellular component from which the sample was derived.", - "properties": { - "id": { - "description": "The GO identifier for the cellular component.", - "pattern": "^GO:[0-9]{7}$", - "type": [ - "string", - "null" - ] - }, - "name": { - "description": "Name of the cellular component.", - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "CellComponent", - "type": "object" - }, - "CellStrain": { - "additionalProperties": false, - "description": "The strain or cell line from which the sample was derived.", - "properties": { - "id": { - "anyOf": [ - { - "pattern": "WBStrain[0-9]{8}$", - "type": "string" - }, - { - "pattern": "^[a-zA-Z]+:[0-9]+$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Link to more information about the cell strain.", - "pattern": "(WBStrain[0-9]{8}$)|(^[a-zA-Z]+:[0-9]+$)" - }, - "name": { - "description": "Cell line or strain for the sample.", - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "CellStrain", - "type": "object" - }, - "CellType": { - "additionalProperties": false, - "description": "The cell type from which the sample was derived.", - "properties": { - "id": { - "description": "Cell Ontology identifier for the cell type", - "pattern": "^CL:[0-9]{7}$", - "type": [ - "string", - "null" - ] - }, - "name": { - "description": "Name of the cell type from which a biological sample used in a CryoET study is derived from.", - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "CellType", - "type": "object" - }, - "CollectionMetadataEntity": { - "additionalProperties": false, - "description": "A collection_metadata entity.", - "properties": { - "sources": { - "description": "A collection_metadata source.", - "items": { - "$ref": "#/$defs/CollectionMetadataSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "CollectionMetadataEntity", - "type": "object" - }, - "CollectionMetadataParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CollectionMetadataParent", - "type": "object" - }, - "CollectionMetadataParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a collection_metadata source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/CollectionMetadataParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/CollectionMetadataParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "CollectionMetadataParentFilters", - "type": "object" - }, - "CollectionMetadataSource": { - "additionalProperties": false, - "description": "A collection_metadata source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/CollectionMetadataParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a collection_metadata source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "CollectionMetadataSource", - "type": "object" - }, - "Container": { - "additionalProperties": false, - "description": "Class that models the ingestion config file.", - "properties": { - "alignments": { - "description": "An alignment entity.", - "items": { - "$ref": "#/$defs/AlignmentEntity" - }, - "type": [ - "array", - "null" - ] - }, - "annotations": { - "description": "An annotation entity.", - "items": { - "$ref": "#/$defs/AnnotationEntity" - }, - "type": [ - "array", - "null" - ] - }, - "collection_metadata": { - "description": "A collection_metadata entity.", - "items": { - "$ref": "#/$defs/CollectionMetadataEntity" - }, - "type": [ - "array", - "null" - ] - }, - "dataset_keyphotos": { - "description": "A dataset key photo entity.", - "items": { - "$ref": "#/$defs/DatasetKeyPhotoEntity" - }, - "type": [ - "array", - "null" - ] - }, - "datasets": { - "description": "A dataset entity.", - "items": { - "$ref": "#/$defs/DatasetEntity" - }, - "minItems": 1, - "type": "array" - }, - "deposition_keyphotos": { - "description": "A deposition key photo entity.", - "items": { - "$ref": "#/$defs/DepositionKeyPhotoEntity" - }, - "type": [ - "array", - "null" - ] - }, - "depositions": { - "description": "A deposition entity.", - "items": { - "$ref": "#/$defs/DepositionEntity" - }, - "minItems": 1, - "type": "array" - }, - "frames": { - "description": "A frame entity.", - "items": { - "$ref": "#/$defs/FrameEntity" - }, - "type": [ - "array", - "null" - ] - }, - "gains": { - "description": "A gain entity.", - "items": { - "$ref": "#/$defs/GainEntity" - }, - "type": [ - "array", - "null" - ] - }, - "key_images": { - "description": "A key image entity.", - "items": { - "$ref": "#/$defs/KeyImageEntity" - }, - "type": [ - "array", - "null" - ] - }, - "rawtilts": { - "description": "A raw tilt entity.", - "items": { - "$ref": "#/$defs/RawTiltEntity" - }, - "type": [ - "array", - "null" - ] - }, - "runs": { - "description": "A run entity.", - "items": { - "$ref": "#/$defs/RunEntity" - }, - "minItems": 1, - "type": "array" - }, - "standardization_config": { - "$ref": "#/$defs/StandardizationConfig", - "description": "A standardization configuration." - }, - "tiltseries": { - "description": "A tilt series entity.", - "items": { - "$ref": "#/$defs/TiltSeriesEntity" - }, - "type": [ - "array", - "null" - ] - }, - "tomograms": { - "description": "A tomogram entity.", - "items": { - "$ref": "#/$defs/TomogramEntity" - }, - "type": [ - "array", - "null" - ] - }, - "voxel_spacings": { - "description": "A voxel spacing entity.", - "items": { - "$ref": "#/$defs/VoxelSpacingEntity" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "datasets", - "depositions", - "runs", - "standardization_config", - "voxel_spacings" - ], - "title": "Container", - "type": "object" - }, - "CrossReferences": { - "additionalProperties": false, - "description": "A set of cross-references to other databases and publications.", - "properties": { - "dataset_citations": { - "description": "Comma-separated list of DOIs for publications citing the dataset.", - "type": [ - "string", - "null" - ] - }, - "publications": { - "description": "Comma-separated list of DOIs for publications associated with the dataset.", - "pattern": "(^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)", - "type": [ - "string", - "null" - ] - }, - "related_database_entries": { - "description": "Comma-separated list of related database entries for the dataset.", - "pattern": "(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)", - "type": [ - "string", - "null" - ] - }, - "related_database_links": { - "description": "Comma-separated list of related database links for the dataset.", - "type": [ - "string", - "null" - ] - } - }, - "title": "CrossReferences", - "type": "object" - }, - "Dataset": { - "additionalProperties": false, - "description": "High-level description of a cryoET dataset.", - "properties": { - "authors": { - "description": "Author of a scientific data entity.", - "items": { - "$ref": "#/$defs/Author" - }, - "minItems": 1, - "type": "array" - }, - "cell_component": { - "anyOf": [ - { - "$ref": "#/$defs/CellComponent" - }, - { - "type": "null" - } - ], - "description": "The cellular component from which the sample was derived." - }, - "cell_strain": { - "anyOf": [ - { - "$ref": "#/$defs/CellStrain" - }, - { - "type": "null" - } - ], - "description": "The strain or cell line from which the sample was derived." - }, - "cell_type": { - "anyOf": [ - { - "$ref": "#/$defs/CellType" - }, - { - "type": "null" - } - ], - "description": "The cell type from which the sample was derived." - }, - "cross_references": { - "anyOf": [ - { - "$ref": "#/$defs/CrossReferences" - }, - { - "type": "null" - } - ], - "description": "A set of cross-references to other databases and publications." - }, - "dataset_description": { - "description": "A short description of a CryoET dataset, similar to an abstract for a journal article or dataset.", - "type": "string" - }, - "dataset_identifier": { - "description": "An identifier for a CryoET dataset, assigned by the Data Portal. Used to identify the dataset as the directory name in data tree.", - "type": "integer" - }, - "dataset_title": { - "description": "Title of a CryoET dataset.", - "type": "string" - }, - "dates": { - "$ref": "#/$defs/DateStamp", - "description": "A set of dates at which a data item was deposited, published and last modified." - }, - "funding": { - "description": "A funding source for a scientific data entity (base for JSON and DB representation).", - "items": { - "$ref": "#/$defs/FundingDetails" - }, - "type": [ - "array", - "null" - ] - }, - "grid_preparation": { - "description": "Describes Cryo-ET grid preparation.", - "type": [ - "string", - "null" - ] - }, - "organism": { - "anyOf": [ - { - "$ref": "#/$defs/OrganismDetails" - }, - { - "type": "null" - } - ], - "description": "The species from which the sample was derived." - }, - "other_setup": { - "description": "Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.", - "type": [ - "string", - "null" - ] - }, - "sample_preparation": { - "description": "Describes how the sample was prepared.", - "type": [ - "string", - "null" - ] - }, - "sample_type": { - "$ref": "#/$defs/SampleTypeEnum", - "description": "Type of sample imaged in a CryoET study.", - "pattern": "(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" - }, - "tissue": { - "anyOf": [ - { - "$ref": "#/$defs/TissueDetails" - }, - { - "type": "null" - } - ], - "description": "The type of tissue from which the sample was derived." - } - }, - "required": [ - "dataset_identifier", - "dataset_title", - "dataset_description", - "dates", - "authors", - "sample_type" - ], - "title": "Dataset", - "type": "object" - }, - "DatasetEntity": { - "additionalProperties": false, - "description": "A dataset entity.", - "properties": { - "metadata": { - "anyOf": [ - { - "$ref": "#/$defs/Dataset" - }, - { - "type": "null" - } - ], - "description": "High-level description of a cryoET dataset." - }, - "sources": { - "description": "A dataset source.", - "items": { - "$ref": "#/$defs/DatasetSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "DatasetEntity", - "type": "object" - }, - "DatasetKeyPhotoEntity": { - "additionalProperties": false, - "description": "A dataset key photo entity.", - "properties": { - "sources": { - "description": "A key photo source.", - "items": { - "$ref": "#/$defs/DatasetKeyPhotoSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "DatasetKeyPhotoEntity", - "type": "object" - }, - "DatasetKeyPhotoParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DatasetKeyPhotoParent", - "type": "object" - }, - "DatasetKeyPhotoParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a key photo source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/DatasetKeyPhotoParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/DatasetKeyPhotoParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "DatasetKeyPhotoParentFilters", - "type": "object" - }, - "DatasetKeyPhotoSource": { - "additionalProperties": false, - "description": "A key photo source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/KeyPhotoLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal for a key photo." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/DatasetKeyPhotoParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a key photo source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "DatasetKeyPhotoSource", - "type": "object" - }, - "DatasetParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DatasetParent", - "type": "object" - }, - "DatasetParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a dataset source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/DatasetParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/DatasetParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "DatasetParentFilters", - "type": "object" - }, - "DatasetSource": { - "additionalProperties": false, - "description": "A dataset source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/DatasetParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a dataset source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "DatasetSource", - "type": "object" - }, - "DateStamp": { - "additionalProperties": false, - "description": "A set of dates at which a data item was deposited, published and last modified.", - "properties": { - "deposition_date": { - "description": "The date a data item was received by the cryoET data portal.", - "format": "date", - "type": "string" - }, - "last_modified_date": { - "description": "The date a piece of data was last modified on the cryoET data portal.", - "format": "date", - "type": "string" - }, - "release_date": { - "description": "The date a data item was received by the cryoET data portal.", - "format": "date", - "type": "string" - } - }, - "required": [ - "deposition_date", - "release_date", - "last_modified_date" - ], - "title": "DateStamp", - "type": "object" - }, - "DateStampedEntity": { - "additionalProperties": false, - "description": "An entity with associated deposition, release and last modified dates.", - "properties": { - "dates": { - "$ref": "#/$defs/DateStamp", - "description": "A set of dates at which a data item was deposited, published and last modified." - } - }, - "required": [ - "dates" - ], - "title": "DateStampedEntity", - "type": "object" - }, - "DefaultSource": { - "additionalProperties": false, - "description": "A default source class that all source classes inherit from.", - "properties": { - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DefaultSource", - "type": "object" - }, - "Deposition": { - "additionalProperties": false, - "description": "Metadata describing a deposition.", - "properties": { - "authors": { - "description": "Author of a scientific data entity.", - "items": { - "$ref": "#/$defs/Author" - }, - "minItems": 1, - "type": "array" - }, - "cross_references": { - "anyOf": [ - { - "$ref": "#/$defs/CrossReferences" - }, - { - "type": "null" - } - ], - "description": "A set of cross-references to other databases and publications." - }, - "dates": { - "$ref": "#/$defs/DateStamp", - "description": "A set of dates at which a data item was deposited, published and last modified." - }, - "deposition_description": { - "description": "A short description of the deposition, similar to an abstract for a journal article or dataset.", - "type": "string" - }, - "deposition_identifier": { - "description": "An identifier for a CryoET deposition, assigned by the Data Portal. Used to identify the deposition the entity is a part of.", - "type": "integer" - }, - "deposition_title": { - "description": "Title of a CryoET deposition.", - "type": "string" - }, - "deposition_types": { - "description": "Type of data in the deposition (e.g. dataset, annotation, tomogram)", - "items": { - "$ref": "#/$defs/DepositionTypesEnum", - "pattern": "(^annotation$)|(^dataset$)|(^tomogram$)" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "deposition_description", - "deposition_identifier", - "deposition_title", - "deposition_types", - "dates", - "authors" - ], - "title": "Deposition", - "type": "object" - }, - "DepositionEntity": { - "additionalProperties": false, - "description": "A deposition entity.", - "properties": { - "metadata": { - "anyOf": [ - { - "$ref": "#/$defs/Deposition" - }, - { - "type": "null" - } - ], - "description": "Metadata describing a deposition." - }, - "sources": { - "description": "A deposition source.", - "items": { - "$ref": "#/$defs/DepositionSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "DepositionEntity", - "type": "object" - }, - "DepositionKeyPhotoEntity": { - "additionalProperties": false, - "description": "A deposition key photo entity.", - "properties": { - "sources": { - "description": "A key photo source.", - "items": { - "$ref": "#/$defs/DepositionKeyPhotoSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "DepositionKeyPhotoEntity", - "type": "object" - }, - "DepositionKeyPhotoParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DepositionKeyPhotoParent", - "type": "object" - }, - "DepositionKeyPhotoParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a key photo source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/DepositionKeyPhotoParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/DepositionKeyPhotoParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "DepositionKeyPhotoParentFilters", - "type": "object" - }, - "DepositionKeyPhotoSource": { - "additionalProperties": false, - "description": "A key photo source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/KeyPhotoLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal for a key photo." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/DepositionKeyPhotoParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a key photo source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "DepositionKeyPhotoSource", - "type": "object" - }, - "DepositionSource": { - "additionalProperties": false, - "description": "A deposition source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "DepositionSource", - "type": "object" - }, - "DepositionTypesEnum": { - "description": "Types of data a deposition has", - "enum": [ - "annotation", - "dataset", - "tomogram" - ], - "title": "DepositionTypesEnum", - "type": "string" - }, - "DestinationGlob": { - "additionalProperties": false, - "description": "A glob class for finding files in the output / destination directory.", - "properties": { - "list_glob": { - "description": "The glob for the file.", - "type": "string" - }, - "match_regex": { - "description": "The regex for the file.", - "type": [ - "string", - "null" - ] - }, - "name_regex": { - "description": "The regex for the name of the file.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "list_glob" - ], - "title": "DestinationGlob", - "type": "object" - }, - "ExperimentMetadata": { - "additionalProperties": false, - "description": "Metadata describing sample and sample preparation methods used in a cryoET dataset.", - "properties": { - "cell_component": { - "anyOf": [ - { - "$ref": "#/$defs/CellComponent" - }, - { - "type": "null" - } - ], - "description": "The cellular component from which the sample was derived." - }, - "cell_strain": { - "anyOf": [ - { - "$ref": "#/$defs/CellStrain" - }, - { - "type": "null" - } - ], - "description": "The strain or cell line from which the sample was derived." - }, - "cell_type": { - "anyOf": [ - { - "$ref": "#/$defs/CellType" - }, - { - "type": "null" - } - ], - "description": "The cell type from which the sample was derived." - }, - "grid_preparation": { - "description": "Describes Cryo-ET grid preparation.", - "type": [ - "string", - "null" - ] - }, - "organism": { - "anyOf": [ - { - "$ref": "#/$defs/OrganismDetails" - }, - { - "type": "null" - } - ], - "description": "The species from which the sample was derived." - }, - "other_setup": { - "description": "Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.", - "type": [ - "string", - "null" - ] - }, - "sample_preparation": { - "description": "Describes how the sample was prepared.", - "type": [ - "string", - "null" - ] - }, - "sample_type": { - "$ref": "#/$defs/SampleTypeEnum", - "description": "Type of sample imaged in a CryoET study.", - "pattern": "(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" - }, - "tissue": { - "anyOf": [ - { - "$ref": "#/$defs/TissueDetails" - }, - { - "type": "null" - } - ], - "description": "The type of tissue from which the sample was derived." - } - }, - "required": [ - "sample_type" - ], - "title": "ExperimentMetadata", - "type": "object" - }, - "FiducialAlignmentStatusEnum": { - "description": "Fiducial Alignment method", - "enum": [ - "FIDUCIAL", - "NON_FIDUCIAL" - ], - "title": "FiducialAlignmentStatusEnum", - "type": "string" - }, - "Frame": { - "additionalProperties": false, - "description": "A frame entity.", - "properties": { - "astigmatic_angle": { - "description": "The astigmatic angle.", - "type": "number" - }, - "astigmatism": { - "description": "The astigmatism.", - "type": "number" - }, - "defocus": { - "description": "The defocus.", - "type": "number" - }, - "dose": { - "description": "The dose.", - "type": "number" - } - }, - "required": [ - "dose", - "defocus", - "astigmatism", - "astigmatic_angle" - ], - "title": "Frame", - "type": "object" - }, - "FrameEntity": { - "additionalProperties": false, - "description": "A frame entity.", - "properties": { - "metadata": { - "anyOf": [ - { - "$ref": "#/$defs/Frame" - }, - { - "type": "null" - } - ], - "description": "A frame entity." - }, - "sources": { - "description": "A frame source.", - "items": { - "$ref": "#/$defs/FrameSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "FrameEntity", - "type": "object" - }, - "FrameParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FrameParent", - "type": "object" - }, - "FrameParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a frame source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/FrameParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/FrameParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "FrameParentFilters", - "type": "object" - }, - "FrameSource": { - "additionalProperties": false, - "description": "A frame source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/FrameParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a frame source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "FrameSource", - "type": "object" - }, - "FundedEntity": { - "additionalProperties": false, - "description": "An entity with associated funding sources.", - "properties": { - "funding": { - "description": "A funding source for a scientific data entity (base for JSON and DB representation).", - "items": { - "$ref": "#/$defs/FundingDetails" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FundedEntity", - "type": "object" - }, - "FundingDetails": { - "additionalProperties": false, - "description": "A funding source for a scientific data entity (base for JSON and DB representation).", - "properties": { - "funding_agency_name": { - "description": "The name of the funding source.", - "type": [ - "string", - "null" - ] - }, - "grant_id": { - "description": "Grant identifier provided by the funding agency", - "type": [ - "string", - "null" - ] - } - }, - "title": "FundingDetails", - "type": "object" - }, - "GainEntity": { - "additionalProperties": false, - "description": "A gain entity.", - "properties": { - "sources": { - "description": "A gain source.", - "items": { - "$ref": "#/$defs/GainSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "GainEntity", - "type": "object" - }, - "GainParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GainParent", - "type": "object" - }, - "GainParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a gain source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/GainParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/GainParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "GainParentFilters", - "type": "object" - }, - "GainSource": { - "additionalProperties": false, - "description": "A gain source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/GainParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a gain source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "GainSource", - "type": "object" - }, - "KeyImageEntity": { - "additionalProperties": false, - "description": "A key image entity.", - "properties": { - "sources": { - "description": "A key image source.", - "items": { - "$ref": "#/$defs/KeyImageSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "KeyImageEntity", - "type": "object" - }, - "KeyImageParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "tomogram": { - "description": "Include or exclude tomograms for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "voxel_spacing": { - "description": "Include or exclude voxel spacings for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "KeyImageParent", - "type": "object" - }, - "KeyImageParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a key image source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/KeyImageParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/KeyImageParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "KeyImageParentFilters", - "type": "object" - }, - "KeyImageSource": { - "additionalProperties": false, - "description": "A key image source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/KeyImageParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a key image source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "KeyImageSource", - "type": "object" - }, - "KeyPhotoLiteral": { - "additionalProperties": false, - "description": "A literal for a key photo.", - "properties": { - "value": { - "$ref": "#/$defs/PicturePath", - "description": "A set of paths to representative images of a piece of data." - } - }, - "required": [ - "value" - ], - "title": "KeyPhotoLiteral", - "type": "object" - }, - "MicroscopeDetails": { - "additionalProperties": false, - "description": "The microscope used to collect the tilt series.", - "properties": { - "additional_info": { - "description": "Other microscope optical setup information, in addition to energy filter, phase plate and image corrector", - "type": [ - "string", - "null" - ] - }, - "manufacturer": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "$ref": "#/$defs/TiltseriesMicroscopeManufacturerEnum", - "description": "Name of the microscope manufacturer" - }, - { - "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Name of the microscope manufacturer", - "pattern": "(^FEI$)|(^TFS$)|(^JEOL$)|(^SIMULATED$)|(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)" - }, - "model": { - "description": "Microscope model name", - "type": "string" - } - }, - "required": [ - "manufacturer", - "model" - ], - "title": "MicroscopeDetails", - "type": "object" - }, - "MicroscopeOpticalSetup": { - "additionalProperties": false, - "description": "The optical setup of the microscope used to collect the tilt series.", - "properties": { - "energy_filter": { - "description": "Energy filter setup used", - "type": "string" - }, - "image_corrector": { - "description": "Image corrector setup", - "type": [ - "string", - "null" - ] - }, - "phase_plate": { - "description": "Phase plate configuration", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "energy_filter" - ], - "title": "MicroscopeOpticalSetup", - "type": "object" - }, - "OrganismDetails": { - "additionalProperties": false, - "description": "The species from which the sample was derived.", - "properties": { - "name": { - "description": "Name of the organism from which a biological sample used in a CryoET study is derived from, e.g. homo sapiens.", - "type": "string" - }, - "taxonomy_id": { - "description": "NCBI taxonomy identifier for the organism, e.g. 9606", - "minimum": 1, - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "name" - ], - "title": "OrganismDetails", - "type": "object" - }, - "PicturePath": { - "additionalProperties": false, - "description": "A set of paths to representative images of a piece of data.", - "properties": { - "snapshot": { - "description": "Path to the dataset preview image relative to the dataset directory root.", - "pattern": "^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$", - "type": [ - "string", - "null" - ] - }, - "thumbnail": { - "description": "Path to the thumbnail of preview image relative to the dataset directory root.", - "pattern": "^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$", - "type": [ - "string", - "null" - ] - } - }, - "title": "PicturePath", - "type": "object" - }, - "PicturedEntity": { - "additionalProperties": false, - "description": "An entity with associated preview images.", - "properties": { - "key_photos": { - "$ref": "#/$defs/PicturePath", - "description": "A set of paths to representative images of a piece of data." - } - }, - "required": [ - "key_photos" - ], - "title": "PicturedEntity", - "type": "object" - }, - "RawTiltEntity": { - "additionalProperties": false, - "description": "A raw tilt entity.", - "properties": { - "sources": { - "description": "A raw tilt source.", - "items": { - "$ref": "#/$defs/RawTiltSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "RawTiltEntity", - "type": "object" - }, - "RawTiltParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RawTiltParent", - "type": "object" - }, - "RawTiltParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a raw tilt source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/RawTiltParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/RawTiltParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "RawTiltParentFilters", - "type": "object" - }, - "RawTiltSource": { - "additionalProperties": false, - "description": "A raw tilt source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/RawTiltParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a raw tilt source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "RawTiltSource", - "type": "object" - }, - "RunEntity": { - "additionalProperties": false, - "description": "A run entity.", - "properties": { - "sources": { - "description": "A run source.", - "items": { - "$ref": "#/$defs/RunSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "RunEntity", - "type": "object" - }, - "RunParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RunParent", - "type": "object" - }, - "RunParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a run source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/RunParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/RunParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "RunParentFilters", - "type": "object" - }, - "RunSource": { - "additionalProperties": false, - "description": "A run source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/RunParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a run source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "RunSource", - "type": "object" - }, - "SampleTypeEnum": { - "description": "Type of sample imaged in a CryoET study.", - "enum": [ - "cell", - "tissue", - "organism", - "organelle", - "virus", - "in_vitro", - "in_silico", - "other" - ], - "title": "SampleTypeEnum", - "type": "string" - }, - "SourceGlob": { - "additionalProperties": false, - "description": "A glob class for finding files in the source directory.", - "properties": { - "list_glob": { - "description": "The glob for the file.", - "type": "string" - }, - "match_regex": { - "description": "The regex for the file.", - "type": [ - "string", - "null" - ] - }, - "name_regex": { - "description": "The regex for the name of the file.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "list_glob" - ], - "title": "SourceGlob", - "type": "object" - }, - "SourceMultiGlob": { - "additionalProperties": false, - "description": "A glob class for finding files in the source directory (with multiple globs).", - "properties": { - "list_globs": { - "description": "The globs for the file.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "list_globs" - ], - "title": "SourceMultiGlob", - "type": "object" - }, - "StandardLiteral": { - "additionalProperties": false, - "description": "A literal class with a value attribute.", - "properties": { - "value": { - "description": "The value for the literal.", - "items": { - "$ref": "#/$defs/Any" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "value" - ], - "title": "StandardLiteral", - "type": "object" - }, - "StandardSource": { - "additionalProperties": false, - "description": "A generalized source class with glob finders. Inherited by a majority of source classes.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "StandardSource", - "type": "object" - }, - "StandardizationConfig": { - "additionalProperties": false, - "description": "A standardization configuration.", - "properties": { - "deposition_id": { - "description": "The deposition ID.", - "type": "integer" - }, - "run_data_map_file": { - "description": "The run data map file.", - "type": [ - "string", - "null" - ] - }, - "run_to_frame_map_csv": { - "description": "The run to frame map CSV.", - "type": [ - "string", - "null" - ] - }, - "run_to_tomo_map_csv": { - "description": "The run to tomogram map CSV.", - "type": [ - "string", - "null" - ] - }, - "run_to_ts_map_csv": { - "description": "The run to tilt series map CSV.", - "type": [ - "string", - "null" - ] - }, - "source_prefix": { - "description": "The source prefix of the input files.", - "type": "string" - } - }, - "required": [ - "deposition_id", - "source_prefix" - ], - "title": "StandardizationConfig", - "type": "object" - }, - "TiltRange": { - "additionalProperties": false, - "description": "The range of tilt angles in the tilt series.", - "properties": { - "max": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Maximal tilt angle in degrees", - "maximum": 90, - "minimum": -90, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Maximal tilt angle in degrees", - "maximum": 90, - "minimum": -90, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "min": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Minimal tilt angle in degrees", - "maximum": 90, - "minimum": -90, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Minimal tilt angle in degrees", - "maximum": 90, - "minimum": -90, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - } - }, - "required": [ - "min", - "max" - ], - "title": "TiltRange", - "type": "object" - }, - "TiltSeries": { - "additionalProperties": false, - "description": "Metadata describing a tilt series.", - "properties": { - "acceleration_voltage": { - "description": "Electron Microscope Accelerator voltage in volts", - "minimum": 20000, - "type": "number" - }, - "aligned_tiltseries_binning": { - "anyOf": [ - { - "description": "Binning factor of the aligned tilt series", - "minimum": 0, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Binning factor of the aligned tilt series", - "minimum": 0, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "binning_from_frames": { - "anyOf": [ - { - "description": "Describes the binning factor from frames to tilt series file", - "minimum": 0, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Describes the binning factor from frames to tilt series file", - "minimum": 0, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "camera": { - "$ref": "#/$defs/CameraDetails", - "description": "The camera used to collect the tilt series." - }, - "data_acquisition_software": { - "description": "Software used to collect data", - "type": "string" - }, - "frames_count": { - "description": "Number of frames associated with this tiltseries", - "type": [ - "integer", - "null" - ] - }, - "is_aligned": { - "description": "Whether this tilt series is aligned", - "type": "boolean" - }, - "microscope": { - "$ref": "#/$defs/MicroscopeDetails", - "description": "The microscope used to collect the tilt series." - }, - "microscope_optical_setup": { - "$ref": "#/$defs/MicroscopeOpticalSetup", - "description": "The optical setup of the microscope used to collect the tilt series." - }, - "pixel_spacing": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Pixel spacing for the tilt series", - "minimum": 0.001, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Pixel spacing for the tilt series", - "minimum": 0.001, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "related_empiar_entry": { - "description": "If a tilt series is deposited into EMPIAR, enter the EMPIAR dataset identifier", - "pattern": "^EMPIAR-[0-9]+$", - "type": [ - "string", - "null" - ] - }, - "spherical_aberration_constant": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Spherical Aberration Constant of the objective lens in millimeters", - "minimum": 0, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Spherical Aberration Constant of the objective lens in millimeters", - "minimum": 0, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "tilt_alignment_software": { - "description": "Software used for tilt alignment", - "type": [ - "string", - "null" - ] - }, - "tilt_axis": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Rotation angle in degrees", - "maximum": 360, - "minimum": -360, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Rotation angle in degrees", - "maximum": 360, - "minimum": -360, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "tilt_range": { - "$ref": "#/$defs/TiltRange", - "description": "The range of tilt angles in the tilt series." - }, - "tilt_series_quality": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Author assessment of tilt series quality within the dataset (1-5, 5 is best)", - "maximum": 5, - "minimum": 1, - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Author assessment of tilt series quality within the dataset (1-5, 5 is best)", - "maximum": 5, - "minimum": 1, - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "tilt_step": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Tilt step in degrees", - "maximum": 90, - "minimum": 0, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Tilt step in degrees", - "maximum": 90, - "minimum": 0, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "tilting_scheme": { - "description": "The order of stage tilting during acquisition of the data", - "type": "string" - }, - "total_flux": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series", - "minimum": 0, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series", - "minimum": 0, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - } - }, - "required": [ - "acceleration_voltage", - "camera", - "data_acquisition_software", - "is_aligned", - "microscope", - "microscope_optical_setup", - "spherical_aberration_constant", - "tilt_axis", - "tilt_range", - "tilt_series_quality", - "tilt_step", - "tilting_scheme", - "total_flux", - "pixel_spacing" - ], - "title": "TiltSeries", - "type": "object" - }, - "TiltSeriesEntity": { - "additionalProperties": false, - "description": "A tilt series entity.", - "properties": { - "metadata": { - "anyOf": [ - { - "$ref": "#/$defs/TiltSeries" - }, - { - "type": "null" - } - ], - "description": "Metadata describing a tilt series." - }, - "sources": { - "description": "A tilt series source.", - "items": { - "$ref": "#/$defs/TiltSeriesSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "TiltSeriesEntity", - "type": "object" - }, - "TiltSeriesParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TiltSeriesParent", - "type": "object" - }, - "TiltSeriesParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a tilt series source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/TiltSeriesParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/TiltSeriesParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "TiltSeriesParentFilters", - "type": "object" - }, - "TiltSeriesSource": { - "additionalProperties": false, - "description": "A tilt series source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/TiltSeriesParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a tilt series source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "TiltSeriesSource", - "type": "object" - }, - "TiltseriesCameraAcquireModeEnum": { - "description": "Camera acquisition mode", - "enum": [ - "counting", - "superresolution", - "linear", - "cds" - ], - "title": "TiltseriesCameraAcquireModeEnum", - "type": "string" - }, - "TiltseriesMicroscopeManufacturerEnum": { - "description": "Microscope manufacturer", - "enum": [ - "FEI", - "TFS", - "JEOL", - "SIMULATED" - ], - "title": "TiltseriesMicroscopeManufacturerEnum", - "type": "string" - }, - "TissueDetails": { - "additionalProperties": false, - "description": "The type of tissue from which the sample was derived.", - "properties": { - "id": { - "description": "The UBERON identifier for the tissue.", - "pattern": "^BTO:[0-9]{7}$", - "type": [ - "string", - "null" - ] - }, - "name": { - "description": "Name of the tissue from which a biological sample used in a CryoET study is derived from.", - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "TissueDetails", - "type": "object" - }, - "Tomogram": { - "additionalProperties": false, - "description": "Metadata describing a tomogram.", - "properties": { - "align_software": { - "description": "Software used for alignment", - "type": [ - "string", - "null" - ] - }, - "authors": { - "description": "Author of a scientific data entity.", - "items": { - "$ref": "#/$defs/Author" - }, - "minItems": 1, - "type": "array" - }, - "cross_references": { - "anyOf": [ - { - "$ref": "#/$defs/CrossReferences" - }, - { - "type": "null" - } - ], - "description": "A set of cross-references to other databases and publications." - }, - "ctf_corrected": { - "description": "Whether this tomogram is CTF corrected", - "type": [ - "boolean", - "null" - ] - }, - "dates": { - "$ref": "#/$defs/DateStamp", - "description": "A set of dates at which a data item was deposited, published and last modified." - }, - "fiducial_alignment_status": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "$ref": "#/$defs/FiducialAlignmentStatusEnum", - "description": "Whether the tomographic alignment was computed based on fiducial markers." - }, - { - "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Whether the tomographic alignment was computed based on fiducial markers.", - "pattern": "(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)" - }, - "is_portal_standard": { - "description": "Whether the tomogram is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, - "is_visualization_default": { - "description": "Whether the tomogram is the default for visualization.", - "type": "boolean" - }, - "offset": { - "$ref": "#/$defs/TomogramOffset", - "description": "The offset of a tomogram in voxels in each dimension relative to the canonical tomogram." - }, - "processing": { - "$ref": "#/$defs/TomogramProcessingEnum", - "description": "Describe additional processing used to derive the tomogram", - "pattern": "(^denoised$)|(^filtered$)|(^raw$)" - }, - "processing_software": { - "description": "Processing software used to derive the tomogram", - "type": [ - "string", - "null" - ] - }, - "reconstruction_method": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "$ref": "#/$defs/TomogramReconstructionMethodEnum", - "description": "Describe reconstruction method (WBP, SART, SIRT)" - }, - { - "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Describe reconstruction method (WBP, SART, SIRT)", - "pattern": "(^SART$)|(^Fourier Space$)|(^SIRT$)|(^WBP$)|(^Unknown$)|(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)" - }, - "reconstruction_software": { - "description": "Name of software used for reconstruction", - "type": "string" - }, - "size": { - "anyOf": [ - { - "$ref": "#/$defs/TomogramSize" - }, - { - "type": "null" - } - ], - "description": "The size of a tomogram in voxels in each dimension." - }, - "tomogram_version": { - "description": "Version of tomogram", - "minimum": 0, - "type": "number" - }, - "voxel_spacing": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "description": "Voxel spacing equal in all three axes in angstroms", - "minimum": 0.001, - "type": "number" - }, - { - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "Voxel spacing equal in all three axes in angstroms", - "minimum": 0.001, - "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - } - }, - "required": [ - "voxel_spacing", - "fiducial_alignment_status", - "reconstruction_method", - "reconstruction_software", - "processing", - "tomogram_version", - "offset", - "is_visualization_default", - "dates", - "authors" - ], - "title": "Tomogram", - "type": "object" - }, - "TomogramEntity": { - "additionalProperties": false, - "description": "A tomogram entity.", - "properties": { - "metadata": { - "anyOf": [ - { - "$ref": "#/$defs/Tomogram" - }, - { - "type": "null" - } - ], - "description": "Metadata describing a tomogram." - }, - "sources": { - "description": "A tomogram source.", - "items": { - "$ref": "#/$defs/TomogramSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "TomogramEntity", - "type": "object" - }, - "TomogramHeader": { - "additionalProperties": false, - "description": "A tomogram header, a unique source attribute for voxel spacing.", - "properties": { - "header_key": { - "description": "The key in the header file for the voxel spacing.", - "type": [ - "string", - "null" - ] - }, - "list_glob": { - "description": "The glob for the tomogram header file.", - "type": "string" - }, - "match_regex": { - "description": "The regex for the tomogram header file.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "list_glob" - ], - "title": "TomogramHeader", - "type": "object" - }, - "TomogramOffset": { - "additionalProperties": false, - "description": "The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.", - "properties": { - "x": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "x offset data relative to the canonical tomogram in pixels", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "y": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "y offset data relative to the canonical tomogram in pixels", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - }, - "z": { - "$ref": "#/$defs/Any", - "anyOf": [ - { - "type": "integer" - }, - { - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", - "type": "string" - } - ], - "description": "z offset data relative to the canonical tomogram in pixels", - "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" - } - }, - "required": [ - "x", - "y", - "z" - ], - "title": "TomogramOffset", - "type": "object" - }, - "TomogramParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "voxel_spacing": { - "description": "Include or exclude voxel spacings for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TomogramParent", - "type": "object" - }, - "TomogramParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a tomogram source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/TomogramParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/TomogramParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "TomogramParentFilters", - "type": "object" - }, - "TomogramProcessingEnum": { - "description": "Tomogram processing method", - "enum": [ - "denoised", - "filtered", - "raw" - ], - "title": "TomogramProcessingEnum", - "type": "string" - }, - "TomogramReconstructionMethodEnum": { - "description": "Tomogram reconstruction method", - "enum": [ - "SART", - "Fourier Space", - "SIRT", - "WBP", - "Unknown" - ], - "title": "TomogramReconstructionMethodEnum", - "type": "string" - }, - "TomogramSize": { - "additionalProperties": false, - "description": "The size of a tomogram in voxels in each dimension.", - "properties": { - "x": { - "description": "Number of pixels in the 3D data fast axis", - "minimum": 0, - "type": "integer" - }, - "y": { - "description": "Number of pixels in the 3D data medium axis", - "minimum": 0, - "type": "integer" - }, - "z": { - "description": "Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "x", - "y", - "z" - ], - "title": "TomogramSize", - "type": "object" - }, - "TomogramSource": { - "additionalProperties": false, - "description": "A tomogram source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/StandardLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal class with a value attribute." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/TomogramParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a tomogram source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "source_multi_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceMultiGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory (with multiple globs)." - } - }, - "title": "TomogramSource", - "type": "object" - }, - "TomogramTypeEnum": { - "description": "Tomogram type", - "enum": [ - "CANONICAL" - ], - "title": "TomogramTypeEnum", - "type": "string" - }, - "VoxelSpacingEntity": { - "additionalProperties": false, - "description": "A voxel spacing entity.", - "properties": { - "sources": { - "description": "A voxel spacing source.", - "items": { - "$ref": "#/$defs/VoxelSpacingSource" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "sources" - ], - "title": "VoxelSpacingEntity", - "type": "object" - }, - "VoxelSpacingLiteral": { - "additionalProperties": false, - "description": "A literal for a voxel spacing.", - "properties": { - "value": { - "description": "The value for the voxel spacing literal.", - "items": { - "type": "number" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "value" - ], - "title": "VoxelSpacingLiteral", - "type": "object" - }, - "VoxelSpacingParent": { - "additionalProperties": false, - "description": "A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", - "properties": { - "dataset": { - "description": "Include or exclude datasets for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "deposition": { - "description": "Include or exclude depositions for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "run": { - "description": "Include or exclude runs for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "VoxelSpacingParent", - "type": "object" - }, - "VoxelSpacingParentFilters": { - "additionalProperties": false, - "description": "Types of parent filters for a voxel spacing source.", - "properties": { - "exclude": { - "anyOf": [ - { - "$ref": "#/$defs/VoxelSpacingParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - }, - "include": { - "anyOf": [ - { - "$ref": "#/$defs/VoxelSpacingParent" - }, - { - "type": "null" - } - ], - "description": "A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute." - } - }, - "title": "VoxelSpacingParentFilters", - "type": "object" - }, - "VoxelSpacingSource": { - "additionalProperties": false, - "description": "A voxel spacing source.", - "properties": { - "destination_glob": { - "anyOf": [ - { - "$ref": "#/$defs/DestinationGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the output / destination directory." - }, - "exclude": { - "description": "Exclude files from the source that match (regexes).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "literal": { - "anyOf": [ - { - "$ref": "#/$defs/VoxelSpacingLiteral" - }, - { - "type": "null" - } - ], - "description": "A literal for a voxel spacing." - }, - "parent_filters": { - "anyOf": [ - { - "$ref": "#/$defs/VoxelSpacingParentFilters" - }, - { - "type": "null" - } - ], - "description": "Types of parent filters for a voxel spacing source." - }, - "source_glob": { - "anyOf": [ - { - "$ref": "#/$defs/SourceGlob" - }, - { - "type": "null" - } - ], - "description": "A glob class for finding files in the source directory." - }, - "tomogram_header": { - "anyOf": [ - { - "$ref": "#/$defs/TomogramHeader" - }, - { - "type": "null" - } - ], - "description": "A tomogram header, a unique source attribute for voxel spacing." - } - }, - "title": "VoxelSpacingSource", - "type": "object" - } - }, - "$id": "cdp-ingestion-config", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "additionalProperties": true, - "description": "Class that models the ingestion config file.", - "metamodel_version": "1.7.0", - "properties": { - "alignments": { - "description": "An alignment entity.", - "items": { - "$ref": "#/$defs/AlignmentEntity" - }, - "type": [ - "array", - "null" - ] - }, - "annotations": { - "description": "An annotation entity.", - "items": { - "$ref": "#/$defs/AnnotationEntity" - }, - "type": [ - "array", - "null" - ] - }, - "collection_metadata": { - "description": "A collection_metadata entity.", - "items": { - "$ref": "#/$defs/CollectionMetadataEntity" - }, - "type": [ - "array", - "null" - ] - }, - "dataset_keyphotos": { - "description": "A dataset key photo entity.", - "items": { - "$ref": "#/$defs/DatasetKeyPhotoEntity" - }, - "type": [ - "array", - "null" - ] - }, - "datasets": { - "description": "A dataset entity.", - "items": { - "$ref": "#/$defs/DatasetEntity" - }, - "minItems": 1, - "type": "array" - }, - "deposition_keyphotos": { - "description": "A deposition key photo entity.", - "items": { - "$ref": "#/$defs/DepositionKeyPhotoEntity" - }, - "type": [ - "array", - "null" - ] - }, - "depositions": { - "description": "A deposition entity.", - "items": { - "$ref": "#/$defs/DepositionEntity" - }, - "minItems": 1, - "type": "array" - }, - "frames": { - "description": "A frame entity.", - "items": { - "$ref": "#/$defs/FrameEntity" - }, - "type": [ - "array", - "null" - ] - }, - "gains": { - "description": "A gain entity.", - "items": { - "$ref": "#/$defs/GainEntity" - }, - "type": [ - "array", - "null" - ] - }, - "key_images": { - "description": "A key image entity.", - "items": { - "$ref": "#/$defs/KeyImageEntity" - }, - "type": [ - "array", - "null" - ] - }, - "rawtilts": { - "description": "A raw tilt entity.", - "items": { - "$ref": "#/$defs/RawTiltEntity" - }, - "type": [ - "array", - "null" - ] - }, - "runs": { - "description": "A run entity.", - "items": { - "$ref": "#/$defs/RunEntity" - }, - "minItems": 1, - "type": "array" - }, - "standardization_config": { - "$ref": "#/$defs/StandardizationConfig", - "description": "A standardization configuration." - }, - "tiltseries": { - "description": "A tilt series entity.", - "items": { - "$ref": "#/$defs/TiltSeriesEntity" - }, - "type": [ - "array", - "null" - ] - }, - "tomograms": { - "description": "A tomogram entity.", - "items": { - "$ref": "#/$defs/TomogramEntity" - }, - "type": [ - "array", - "null" - ] - }, - "voxel_spacings": { - "description": "A voxel spacing entity.", - "items": { - "$ref": "#/$defs/VoxelSpacingEntity" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "datasets", - "depositions", - "runs", - "standardization_config", - "voxel_spacings" - ], - "title": "cdp-ingestion-config", - "type": "object", - "version": "1.1.0" -} From f91a1e761c0669d585687e3a4fd48c20693dd3b9 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 16 Sep 2024 10:25:31 -0700 Subject: [PATCH 30/59] add correct dates --- ingestion_tools/dataset_configs/10001.yaml | 6 ++-- ingestion_tools/dataset_configs/10002.yaml | 6 ++-- ingestion_tools/dataset_configs/10302.yaml | 6 ++-- ingestion_tools/dataset_configs/10427.yaml | 8 ++--- ingestion_tools/dataset_configs/10428.yaml | 8 ++--- ingestion_tools/dataset_configs/10429.yaml | 6 ++-- ingestion_tools/dataset_configs/10430.yaml | 6 ++-- ingestion_tools/dataset_configs/10431.yaml | 6 ++-- ingestion_tools/dataset_configs/10432.yaml | 6 ++-- ingestion_tools/dataset_configs/10433.yaml | 6 ++-- ingestion_tools/dataset_configs/10434.yaml | 6 ++-- ingestion_tools/dataset_configs/10435.yaml | 6 ++-- ingestion_tools/dataset_configs/10437.yaml | 6 ++-- ingestion_tools/dataset_configs/10438.yaml | 6 ++-- .../dataset_configs/10440_draft.yaml | 29 +++++++++---------- .../dataset_configs/10441_draft.yaml | 29 +++++++++---------- .../dataset_configs/deposition_10301.yaml | 3 +- .../dataset_configs/deposition_10302.yaml | 3 +- .../dataset_configs/deposition_10303.yaml | 24 +++++++-------- .../dataset_configs/deposition_10304.yaml | 3 +- .../dataset_configs/deposition_10305.yaml | 3 +- .../dataset_configs/deposition_10308.yaml | 4 +-- .../ingestion_config/migrations/issue_997.py | 26 ++++++++++------- 23 files changed, 110 insertions(+), 102 deletions(-) diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index 3f068f5ef..792e1d2a8 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -495,9 +495,9 @@ tomograms: authors: *id003 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2023-04-01' + last_modified_date: '2023-06-01' + release_date: '2023-06-01' fiducial_alignment_status: NON_FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index 9fb19384f..08bf966ae 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -231,9 +231,9 @@ tomograms: authors: *id003 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2023-04-01' + last_modified_date: '2023-06-01' + release_date: '2023-06-01' fiducial_alignment_status: NON_FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10302.yaml b/ingestion_tools/dataset_configs/10302.yaml index c3d1a5a8d..41f44cf0c 100644 --- a/ingestion_tools/dataset_configs/10302.yaml +++ b/ingestion_tools/dataset_configs/10302.yaml @@ -191,9 +191,9 @@ tomograms: authors: *id001 ctf_corrected: true dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-04-09' + last_modified_date: '2024-04-09' + release_date: '2024-04-09' fiducial_alignment_status: NON_FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10427.yaml b/ingestion_tools/dataset_configs/10427.yaml index 36a7e3d7a..2c637e555 100644 --- a/ingestion_tools/dataset_configs/10427.yaml +++ b/ingestion_tools/dataset_configs/10427.yaml @@ -274,10 +274,10 @@ tomograms: - metadata: authors: *id001 ctf_corrected: false - dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + dates: &id002 + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10428.yaml b/ingestion_tools/dataset_configs/10428.yaml index d36c4e3ff..75520bc43 100644 --- a/ingestion_tools/dataset_configs/10428.yaml +++ b/ingestion_tools/dataset_configs/10428.yaml @@ -124,10 +124,10 @@ tomograms: - metadata: authors: *id001 ctf_corrected: false - dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + dates: &id002 + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10429.yaml b/ingestion_tools/dataset_configs/10429.yaml index b4ffbe2b5..e7812e4a5 100644 --- a/ingestion_tools/dataset_configs/10429.yaml +++ b/ingestion_tools/dataset_configs/10429.yaml @@ -125,9 +125,9 @@ tomograms: authors: *id001 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10430.yaml b/ingestion_tools/dataset_configs/10430.yaml index 39debb113..c5a95fe97 100644 --- a/ingestion_tools/dataset_configs/10430.yaml +++ b/ingestion_tools/dataset_configs/10430.yaml @@ -125,9 +125,9 @@ tomograms: authors: *id001 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10431.yaml b/ingestion_tools/dataset_configs/10431.yaml index ad1820566..958d87c92 100644 --- a/ingestion_tools/dataset_configs/10431.yaml +++ b/ingestion_tools/dataset_configs/10431.yaml @@ -127,9 +127,9 @@ tomograms: authors: *id001 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10432.yaml b/ingestion_tools/dataset_configs/10432.yaml index 415d59de4..814b35f69 100644 --- a/ingestion_tools/dataset_configs/10432.yaml +++ b/ingestion_tools/dataset_configs/10432.yaml @@ -127,9 +127,9 @@ tomograms: authors: *id001 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10433.yaml b/ingestion_tools/dataset_configs/10433.yaml index c5850c44e..c6fef3dc8 100644 --- a/ingestion_tools/dataset_configs/10433.yaml +++ b/ingestion_tools/dataset_configs/10433.yaml @@ -127,9 +127,9 @@ tomograms: authors: *id001 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10434.yaml b/ingestion_tools/dataset_configs/10434.yaml index e0875bd49..698aa4ca2 100644 --- a/ingestion_tools/dataset_configs/10434.yaml +++ b/ingestion_tools/dataset_configs/10434.yaml @@ -127,9 +127,9 @@ tomograms: authors: *id001 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10435.yaml b/ingestion_tools/dataset_configs/10435.yaml index 3505e2841..570b1e5e6 100644 --- a/ingestion_tools/dataset_configs/10435.yaml +++ b/ingestion_tools/dataset_configs/10435.yaml @@ -127,9 +127,9 @@ tomograms: authors: *id001 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-01' + last_modified_date: '2024-07-01' + release_date: '2024-07-05' fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index 5dc63ef37..c66bb6ace 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -611,9 +611,9 @@ tomograms: name: Gira Bhabha ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-09' + last_modified_date: '2024-07-24' + release_date: '2024-07-29' fiducial_alignment_status: NON_FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10438.yaml b/ingestion_tools/dataset_configs/10438.yaml index 430e9ce81..9fcfa9069 100644 --- a/ingestion_tools/dataset_configs/10438.yaml +++ b/ingestion_tools/dataset_configs/10438.yaml @@ -536,9 +536,9 @@ tomograms: authors: *id003 ctf_corrected: false dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' + deposition_date: '2024-07-09' + last_modified_date: '2024-07-24' + release_date: '2024-07-29' fiducial_alignment_status: NON_FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10440_draft.yaml b/ingestion_tools/dataset_configs/10440_draft.yaml index f657b321f..8523c6499 100644 --- a/ingestion_tools/dataset_configs/10440_draft.yaml +++ b/ingestion_tools/dataset_configs/10440_draft.yaml @@ -1,17 +1,16 @@ datasets: - - metadata: - dataset_identifier: 10440 - sources: - - literal: - value: - - '10440' - +- metadata: + dataset_identifier: 10440 + sources: + - literal: + value: + - '10440' depositions: - - metadata: - deposition_identifier: 10310 - deposition_types: - - dataset - sources: - - literal: - value: - - 10310 +- metadata: + deposition_identifier: 10310 + deposition_types: + - dataset + sources: + - literal: + value: + - 10310 diff --git a/ingestion_tools/dataset_configs/10441_draft.yaml b/ingestion_tools/dataset_configs/10441_draft.yaml index 4ed700ef2..4b69df84c 100644 --- a/ingestion_tools/dataset_configs/10441_draft.yaml +++ b/ingestion_tools/dataset_configs/10441_draft.yaml @@ -1,17 +1,16 @@ datasets: - - metadata: - dataset_identifier: 10441 - sources: - - literal: - value: - - '10441' - +- metadata: + dataset_identifier: 10441 + sources: + - literal: + value: + - '10441' depositions: - - metadata: - deposition_identifier: 10310 - deposition_types: - - dataset - sources: - - literal: - value: - - 10310 +- metadata: + deposition_identifier: 10310 + deposition_types: + - dataset + sources: + - literal: + value: + - 10310 diff --git a/ingestion_tools/dataset_configs/deposition_10301.yaml b/ingestion_tools/dataset_configs/deposition_10301.yaml index 6e18dd19b..ae5cc2562 100644 --- a/ingestion_tools/dataset_configs/deposition_10301.yaml +++ b/ingestion_tools/dataset_configs/deposition_10301.yaml @@ -40,7 +40,8 @@ depositions: - metadata: authors: *id001 dates: *id002 - deposition_description: "Voxel-based and instance segmentations of membranes predicted using TARDIS." + deposition_description: Voxel-based and instance segmentations of membranes predicted + using TARDIS. deposition_identifier: 10301 deposition_title: TARDIS membrane predictions deposition_types: diff --git a/ingestion_tools/dataset_configs/deposition_10302.yaml b/ingestion_tools/dataset_configs/deposition_10302.yaml index 11cfb67d2..5fe605725 100644 --- a/ingestion_tools/dataset_configs/deposition_10302.yaml +++ b/ingestion_tools/dataset_configs/deposition_10302.yaml @@ -34,7 +34,8 @@ depositions: - metadata: authors: *id001 dates: *id002 - deposition_description: Manual annotations of flagellar basal body, created and pre-oriented using IMOD. + deposition_description: Manual annotations of flagellar basal body, created and + pre-oriented using IMOD. deposition_identifier: 10302 deposition_title: Manual annotations of flagellar basal body deposition_types: diff --git a/ingestion_tools/dataset_configs/deposition_10303.yaml b/ingestion_tools/dataset_configs/deposition_10303.yaml index 5116f2f7a..6320dce27 100644 --- a/ingestion_tools/dataset_configs/deposition_10303.yaml +++ b/ingestion_tools/dataset_configs/deposition_10303.yaml @@ -29,16 +29,16 @@ annotations: - SegmentationMask: file_format: zarr glob_strings: - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*LM52Ga.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*55ar5k.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*wO13zA.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*z59Mxz.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*F5XUXp.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*kpDyZk.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*AM1K9r.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*PgU0Bz.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*4h1eIH.zarr' - - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*gBcgAd.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*LM52Ga.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*55ar5k.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*wO13zA.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*z59Mxz.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*F5XUXp.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*kpDyZk.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*AM1K9r.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*PgU0Bz.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*4h1eIH.zarr' + - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*gBcgAd.zarr' is_visualization_default: true datasets: - sources: @@ -50,8 +50,8 @@ depositions: - metadata: authors: *id001 dates: *id002 - deposition_description: Membrane segmentations predicted using membrain-seg without rescaling and weights - MemBrain_seg_v10_alpha.ckpt + deposition_description: Membrane segmentations predicted using membrain-seg without + rescaling and weights MemBrain_seg_v10_alpha.ckpt deposition_identifier: 10303 deposition_title: membrain-seg membrane predictions deposition_types: diff --git a/ingestion_tools/dataset_configs/deposition_10304.yaml b/ingestion_tools/dataset_configs/deposition_10304.yaml index d910e4344..39718ac75 100644 --- a/ingestion_tools/dataset_configs/deposition_10304.yaml +++ b/ingestion_tools/dataset_configs/deposition_10304.yaml @@ -42,7 +42,8 @@ depositions: - metadata: authors: *id001 dates: *id002 - deposition_description: Membrane segmentations using membrain-seg of tomograms denoised using a custom algorithm. + deposition_description: Membrane segmentations using membrain-seg of tomograms + denoised using a custom algorithm. deposition_identifier: 10304 deposition_title: Membrane segmentations of denoised tomograms deposition_types: diff --git a/ingestion_tools/dataset_configs/deposition_10305.yaml b/ingestion_tools/dataset_configs/deposition_10305.yaml index 4f7823058..f2a7a3309 100644 --- a/ingestion_tools/dataset_configs/deposition_10305.yaml +++ b/ingestion_tools/dataset_configs/deposition_10305.yaml @@ -34,7 +34,8 @@ depositions: - metadata: authors: *id001 dates: *id002 - deposition_description: Manual annotations of type IV pili, created and pre-oriented using IMOD. + deposition_description: Manual annotations of type IV pili, created and pre-oriented + using IMOD. deposition_identifier: 10305 deposition_title: Manual annotations of Type IV pilus deposition_types: diff --git a/ingestion_tools/dataset_configs/deposition_10308.yaml b/ingestion_tools/dataset_configs/deposition_10308.yaml index 8da48e687..a73a3377a 100644 --- a/ingestion_tools/dataset_configs/deposition_10308.yaml +++ b/ingestion_tools/dataset_configs/deposition_10308.yaml @@ -39,8 +39,8 @@ depositions: - metadata: authors: *id001 dates: *id002 - deposition_description: Gas vesicle shell segmentations predicted using membrain-seg without rescaling and weights - MemBrain_seg_v10_alpha.ckpt + deposition_description: Gas vesicle shell segmentations predicted using membrain-seg + without rescaling and weights MemBrain_seg_v10_alpha.ckpt deposition_identifier: 10308 deposition_title: membrain-seg gas vesicle shell predictions deposition_types: diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index d04257260..0daf58692 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -88,14 +88,15 @@ def update_tomogram_metadata(config: dict) -> bool: if metadata := tomogram.get("metadata"): changed = True metadata["is_visualization_default"] = True - try: - dates = config["depositions"][0]["metadata"]["dates"] - except (KeyError, IndexError): - dates = { - "deposition_date": '1970-01-01', - "last_modified_date": '1970-01-01', - "release_date": '1970-01-01'} - metadata["dates"] = dates + if not metadata["dates"]: + try: + dates = config["depositions"][0]["metadata"]["dates"] + except (KeyError, IndexError) as ex: + dates = { + "deposition_date": '1970-01-01', + "last_modified_date": '1970-01-01', + "release_date": '1970-01-01'} + metadata["dates"] = dates affine_transformation_matrix = metadata.pop("affine_transformation_matrix", None) if affine_transformation_matrix and not np.allclose(affine_transformation_matrix, np.eye(4)): ValueError("affine_transformation_matrix is not an identity matrix") @@ -142,6 +143,10 @@ def remove_empty_fields(config: Union[list, dict]) -> bool: config.pop(key) return changed +def check_deposition(config: dict) -> bool: + if "depositions" in config: + return True + raise ValueError("depositions is not in the config") def migrate_config(file_path): with open(file_path, 'r') as file: @@ -152,14 +157,15 @@ def migrate_config(file_path): changes.append(rawtilts_to_collection_metadata(config)) changes.append(rawtilts_to_alignments(config)) changes.append(update_tomogram_metadata(config)) + changes.append(check_deposition(config)) except Exception as e: - print(f"Error in {get_relative_path(file_path)}: {e}") + print(f"Error in {get_relative_path(file_path)}: missing {e}") return if any(changes): remove_empty_fields(config) relative_path = file_path[file_path.find("cryoet-data-portal-backend"):] - print(f"modified: {relative_path}") + # print(f"modified: {relative_path}") with open(file_path, 'w') as file: yaml.safe_dump(config, file) From a5bfe461aa59c5d27ebd1d5447314fb1aefe8245 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 16 Sep 2024 10:35:06 -0700 Subject: [PATCH 31/59] added is_portal_standard --- ingestion_tools/dataset_configs/10000.yaml | 15 ++++++ ingestion_tools/dataset_configs/10001.yaml | 15 ++++++ ingestion_tools/dataset_configs/10002.yaml | 2 + ingestion_tools/dataset_configs/10003.yaml | 1 + ingestion_tools/dataset_configs/10004.yaml | 1 + ingestion_tools/dataset_configs/10005.yaml | 2 + ingestion_tools/dataset_configs/10006.yaml | 1 + ingestion_tools/dataset_configs/10007.yaml | 1 + ingestion_tools/dataset_configs/10008.yaml | 2 + ingestion_tools/dataset_configs/10009.yaml | 7 +++ ingestion_tools/dataset_configs/10010.yaml | 3 ++ ingestion_tools/dataset_configs/10301.yaml | 6 +++ ingestion_tools/dataset_configs/10427.yaml | 2 +- ingestion_tools/dataset_configs/10428.yaml | 2 +- ingestion_tools/dataset_configs/10436.yaml | 9 ++++ ingestion_tools/dataset_configs/10437.yaml | 16 ++++++ ingestion_tools/dataset_configs/10438.yaml | 17 +++++++ ingestion_tools/dataset_configs/10439.yaml | 13 +++++ .../dataset_configs/deposition_10301.yaml | 2 + .../dataset_configs/deposition_10302.yaml | 1 + .../dataset_configs/deposition_10303.yaml | 1 + .../dataset_configs/deposition_10304.yaml | 1 + .../dataset_configs/deposition_10305.yaml | 1 + .../dataset_configs/deposition_10308.yaml | 1 + .../ingestion_config/migrations/issue_997.py | 49 +++++++++---------- 25 files changed, 143 insertions(+), 28 deletions(-) diff --git a/ingestion_tools/dataset_configs/10000.yaml b/ingestion_tools/dataset_configs/10000.yaml index b6a5fb529..21a669141 100644 --- a/ingestion_tools/dataset_configs/10000.yaml +++ b/ingestion_tools/dataset_configs/10000.yaml @@ -75,6 +75,7 @@ annotations: columns: xyz file_format: csv glob_string: particle_lists/{run_name}_fas.csv + is_portal_standard: false is_visualization_default: false - metadata: annotation_method: Cumulative template-matching trained 2D CNN predictions + visual @@ -96,6 +97,7 @@ annotations: columns: xyz file_format: csv glob_string: particle_lists/{run_name}_cyto_ribosomes.csv + is_portal_standard: false is_visualization_default: true - metadata: annotation_method: spectrum equalization filter + 2D CNN prediction + manual correction @@ -115,6 +117,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: false mask_label: 1 - metadata: @@ -135,6 +138,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: true mask_label: 2 - metadata: @@ -155,6 +159,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: false mask_label: 3 - metadata: @@ -175,6 +180,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: true mask_label: 4 - metadata: @@ -195,6 +201,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: true mask_label: 5 - metadata: @@ -215,6 +222,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: true mask_label: 6 - metadata: @@ -235,6 +243,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: false mask_label: 7 - metadata: @@ -255,6 +264,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: false mask_label: 8 - metadata: @@ -275,6 +285,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: false mask_label: 9 - metadata: @@ -295,6 +306,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: true mask_label: 10 - metadata: @@ -315,6 +327,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: false mask_label: 11 - metadata: @@ -335,6 +348,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc + is_portal_standard: false is_visualization_default: false mask_label: 13 - metadata: @@ -355,6 +369,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_membranes.mrc + is_portal_standard: false is_visualization_default: false mask_label: 1 collection_metadata: diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index 792e1d2a8..98eea0150 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -75,6 +75,7 @@ annotations: columns: xyz file_format: csv glob_string: particle_lists/{run_name}_fas.csv + is_portal_standard: false is_visualization_default: false - metadata: annotation_method: Cumulative template-matching trained 2D CNN predictions + visual @@ -96,6 +97,7 @@ annotations: columns: xyz file_format: csv glob_string: particle_lists/{run_name}_cyto_ribosomes.csv + is_portal_standard: false is_visualization_default: true - metadata: annotation_method: manual segmentation @@ -115,6 +117,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: false mask_label: 1 - metadata: @@ -135,6 +138,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: true mask_label: 2 - metadata: @@ -155,6 +159,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: false mask_label: 3 - metadata: @@ -175,6 +180,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: true mask_label: 4 - metadata: @@ -195,6 +201,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: true mask_label: 5 - metadata: @@ -215,6 +222,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: true mask_label: 6 - metadata: @@ -235,6 +243,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: false mask_label: 7 - metadata: @@ -255,6 +264,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: false mask_label: 8 - metadata: @@ -275,6 +285,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: false mask_label: 9 - metadata: @@ -295,6 +306,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: true mask_label: 10 - metadata: @@ -315,6 +327,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: false mask_label: 11 - metadata: @@ -335,6 +348,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc + is_portal_standard: false is_visualization_default: false mask_label: 13 - metadata: @@ -355,6 +369,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_membranes.mrc + is_portal_standard: false is_visualization_default: false mask_label: 1 collection_metadata: diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index 08bf966ae..8af8db2fc 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -75,6 +75,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_actin_ground_truth.mrc + is_portal_standard: false is_visualization_default: true - metadata: annotation_method: 2D CNN + 3D CNN hyperparameter tuning @@ -94,6 +95,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: prediction/{run_name}_*.mrc + is_portal_standard: false is_visualization_default: false collection_metadata: - sources: diff --git a/ingestion_tools/dataset_configs/10003.yaml b/ingestion_tools/dataset_configs/10003.yaml index a51ef5fd4..30eb9a4ff 100644 --- a/ingestion_tools/dataset_configs/10003.yaml +++ b/ingestion_tools/dataset_configs/10003.yaml @@ -35,6 +35,7 @@ annotations: file_format: relion3_star filter_value: '{mapped_tomo_name}.tomostar' glob_string: run_ct17_it034_data.star + is_portal_standard: false is_visualization_default: true order: xyz dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index 4f8894f39..1fb804c60 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -86,6 +86,7 @@ annotations: columns: xyz file_format: csv_with_header glob_string: '{run_name}/annoRibosome_bin4.txt' + is_portal_standard: false is_visualization_default: true collection_metadata: - sources: diff --git a/ingestion_tools/dataset_configs/10005.yaml b/ingestion_tools/dataset_configs/10005.yaml index 428bc0c8e..c23da2904 100644 --- a/ingestion_tools/dataset_configs/10005.yaml +++ b/ingestion_tools/dataset_configs/10005.yaml @@ -30,6 +30,7 @@ annotations: delimiter: ' ' file_format: csv glob_string: coorinates_dmt48/s{run_name}_dmt48_coordinates_bin2.txt + is_portal_standard: false is_visualization_default: true - metadata: annotation_method: Template matching + manual filtering + 3D classification filtering @@ -50,6 +51,7 @@ annotations: delimiter: ' ' file_format: csv glob_string: coordinates_dmt96/s{run_name}_dmt96_coordinates_bin2.txt + is_portal_standard: false is_visualization_default: true dataset_keyphotos: - sources: diff --git a/ingestion_tools/dataset_configs/10006.yaml b/ingestion_tools/dataset_configs/10006.yaml index 88232eb7a..404e9c6e8 100644 --- a/ingestion_tools/dataset_configs/10006.yaml +++ b/ingestion_tools/dataset_configs/10006.yaml @@ -56,6 +56,7 @@ annotations: file_format: relion4_star filter_value: '{run_name}' glob_string: motl_star/czii-remapped-points.star + is_portal_standard: false is_visualization_default: true order: xyz dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10007.yaml b/ingestion_tools/dataset_configs/10007.yaml index f7bea1504..8a2962f34 100644 --- a/ingestion_tools/dataset_configs/10007.yaml +++ b/ingestion_tools/dataset_configs/10007.yaml @@ -61,6 +61,7 @@ annotations: binning: 4 file_format: tomoman_relion_star glob_string: '{run_name}/metadata/particles/*.star' + is_portal_standard: false is_visualization_default: true order: xyz collection_metadata: diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index d06df4b76..5798b5d32 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -71,6 +71,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: subtomo/hdcr/hdcr_tm_bin2_motl_12.star + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -92,6 +93,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: subtomo/ribo/ribo_tm_bin1_motl_12.star + is_portal_standard: false is_visualization_default: true order: xyz collection_metadata: diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index c44cd625d..2e98d8654 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -81,6 +81,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_S_newbin2_3.star + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -102,6 +103,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_Y_newbin2_3.star + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -123,6 +125,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_H_cleanbin2.star + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -145,6 +148,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/MTD_MIP_bin2_recentered_shiftedorg_9.star + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -166,6 +170,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_B2_newbin2_3.star + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -187,6 +192,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_A2_newbin2_3.star + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -208,6 +214,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_D_newbin2_3.star + is_portal_standard: false is_visualization_default: true order: xyz collection_metadata: diff --git a/ingestion_tools/dataset_configs/10010.yaml b/ingestion_tools/dataset_configs/10010.yaml index 34d667d5a..f060a55a8 100644 --- a/ingestion_tools/dataset_configs/10010.yaml +++ b/ingestion_tools/dataset_configs/10010.yaml @@ -25,6 +25,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: Voxel_Segmentations/{run_name}_labels.rec.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -44,6 +45,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: Voxel_Segmentations/{run_name}_labels.rec.mrc + is_portal_standard: false is_visualization_default: true mask_label: 2 - metadata: @@ -63,6 +65,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: Voxel_Segmentations/{run_name}_labels.rec.mrc + is_portal_standard: false is_visualization_default: true mask_label: 3 collection_metadata: diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index 645ad3bd1..44c0d0f4e 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -86,6 +86,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/f1atpase_bin*.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -108,6 +109,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/f1atpase_mito_*.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -130,6 +132,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/ribosome_*.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -151,6 +154,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/nucleosome_*.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -173,6 +177,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/rubisco_*.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -194,6 +199,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/microtubule_*.star' + is_portal_standard: false is_visualization_default: true order: xyz collection_metadata: diff --git a/ingestion_tools/dataset_configs/10427.yaml b/ingestion_tools/dataset_configs/10427.yaml index 2c637e555..a33238fa2 100644 --- a/ingestion_tools/dataset_configs/10427.yaml +++ b/ingestion_tools/dataset_configs/10427.yaml @@ -274,7 +274,7 @@ tomograms: - metadata: authors: *id001 ctf_corrected: false - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' diff --git a/ingestion_tools/dataset_configs/10428.yaml b/ingestion_tools/dataset_configs/10428.yaml index 75520bc43..1a3cbe6a4 100644 --- a/ingestion_tools/dataset_configs/10428.yaml +++ b/ingestion_tools/dataset_configs/10428.yaml @@ -124,7 +124,7 @@ tomograms: - metadata: authors: *id001 ctf_corrected: false - dates: &id002 + dates: deposition_date: '2024-07-01' last_modified_date: '2024-07-01' release_date: '2024-07-05' diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index f8a0aba6d..488e8ec0f 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -66,6 +66,7 @@ annotations: glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Exospore.mrc - Data_Set_2/{run_name}/segmentation_masks/Exospore.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -89,6 +90,7 @@ annotations: glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Endospore.mrc - Data_Set_2/{run_name}/segmentation_masks/Endospore.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -112,6 +114,7 @@ annotations: glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Plasma_Membrane.mrc - Data_Set_2/{run_name}/segmentation_masks/Plasma_Membrane.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -134,6 +137,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_2/{run_name}/segmentation_masks/Polaroplast.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -156,6 +160,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Nuclear_Envelope.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -178,6 +183,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Nuclear_Fill.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -202,6 +208,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -226,6 +233,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -248,6 +256,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Sporewall.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index c66bb6ace..066d22236 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -66,6 +66,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Exospore.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -91,6 +92,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Endospore.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -116,6 +118,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Plasma_Membrane.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -142,6 +145,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Anchoring_Disk_Fill.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -168,6 +172,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Anchoring_Disk_Outline.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -193,6 +198,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polaroplast.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -219,6 +225,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Vesicles_in_Polaroplast.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -244,6 +251,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Nuclear_Envelope.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -269,6 +277,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Nuclear_Fill.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -296,6 +305,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -323,6 +333,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_M-Layer_TopCoilsOnly.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -350,6 +361,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -377,6 +389,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_Straight_Portion.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -403,6 +416,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_Unknown_Cluster.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -429,6 +443,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Unknown_Structure.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -455,6 +470,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Extra_Membranous_Vesicles.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10438.yaml b/ingestion_tools/dataset_configs/10438.yaml index 9fcfa9069..5383ab510 100644 --- a/ingestion_tools/dataset_configs/10438.yaml +++ b/ingestion_tools/dataset_configs/10438.yaml @@ -40,6 +40,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Exospore.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -62,6 +63,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Endospore.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -84,6 +86,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Plasma_Membrane.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -106,6 +109,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polaroplast.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -129,6 +133,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Vesicles_in_Polaroplast.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -151,6 +156,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Nuclear_Envelope.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -173,6 +179,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Nuclear_Fill.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -197,6 +204,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -221,6 +229,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_multiple_coils.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -245,6 +254,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_single_coil.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -269,6 +279,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_Circular_Coils.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -293,6 +304,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_long.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -317,6 +329,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -341,6 +354,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_IF-Layer.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -365,6 +379,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer_Circular_Coils.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -389,6 +404,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer_long.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -412,6 +428,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Vesicles.mrc + is_portal_standard: false is_visualization_default: true mask_label: 1 dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index c51f03106..28ac66c88 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -51,6 +51,7 @@ annotations: file_format: mrc glob_strings: &id003 - '{run_name}/Segmentations/ground_truth.mrc' + is_portal_standard: false is_visualization_default: true mask_label: 1 - metadata: @@ -70,6 +71,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id003 + is_portal_standard: false is_visualization_default: true mask_label: 2 - OrientedPoint: @@ -77,6 +79,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/adp-mitochondrial.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -96,6 +99,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id003 + is_portal_standard: false is_visualization_default: true mask_label: 3 - OrientedPoint: @@ -103,6 +107,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/alkaline-phosphatase.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -122,6 +127,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id003 + is_portal_standard: false is_visualization_default: true mask_label: 4 - OrientedPoint: @@ -129,6 +135,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/nucleosome.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -148,6 +155,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id003 + is_portal_standard: false is_visualization_default: true mask_label: 5 - OrientedPoint: @@ -155,6 +163,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/ribosome.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -174,6 +183,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id003 + is_portal_standard: false is_visualization_default: true mask_label: 6 - OrientedPoint: @@ -181,6 +191,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/vault.star' + is_portal_standard: false is_visualization_default: true order: xyz - metadata: @@ -201,6 +212,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id003 + is_portal_standard: false is_visualization_default: true mask_label: 7 - OrientedPoint: @@ -208,6 +220,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/virus-like-particle.star' + is_portal_standard: false is_visualization_default: true order: xyz dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/deposition_10301.yaml b/ingestion_tools/dataset_configs/deposition_10301.yaml index ae5cc2562..b523f7e2e 100644 --- a/ingestion_tools/dataset_configs/deposition_10301.yaml +++ b/ingestion_tools/dataset_configs/deposition_10301.yaml @@ -24,11 +24,13 @@ annotations: binning: 1 file_format: tardis glob_string: '{dataset_name}/{run_name}/{run_name}_instance.csv' + is_portal_standard: false is_visualization_default: false order: xyz - SemanticSegmentationMask: file_format: mrc glob_string: '{dataset_name}/{run_name}/{run_name}_semantic.mrc' + is_portal_standard: false is_visualization_default: false datasets: - sources: diff --git a/ingestion_tools/dataset_configs/deposition_10302.yaml b/ingestion_tools/dataset_configs/deposition_10302.yaml index 5fe605725..c3c8abece 100644 --- a/ingestion_tools/dataset_configs/deposition_10302.yaml +++ b/ingestion_tools/dataset_configs/deposition_10302.yaml @@ -22,6 +22,7 @@ annotations: binning: 1 file_format: mod glob_string: '{dataset_name}/{run_name}_MS.mod' + is_portal_standard: false is_visualization_default: true order: xyz datasets: diff --git a/ingestion_tools/dataset_configs/deposition_10303.yaml b/ingestion_tools/dataset_configs/deposition_10303.yaml index 6320dce27..c0158a9f0 100644 --- a/ingestion_tools/dataset_configs/deposition_10303.yaml +++ b/ingestion_tools/dataset_configs/deposition_10303.yaml @@ -39,6 +39,7 @@ annotations: - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*PgU0Bz.zarr' - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*4h1eIH.zarr' - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*gBcgAd.zarr' + is_portal_standard: false is_visualization_default: true datasets: - sources: diff --git a/ingestion_tools/dataset_configs/deposition_10304.yaml b/ingestion_tools/dataset_configs/deposition_10304.yaml index 39718ac75..6314e3f1c 100644 --- a/ingestion_tools/dataset_configs/deposition_10304.yaml +++ b/ingestion_tools/dataset_configs/deposition_10304.yaml @@ -31,6 +31,7 @@ annotations: - SegmentationMask: file_format: mrc glob_string: '{dataset_name}/{run_name}_membrane_segmentation_mask.mrc' + is_portal_standard: false is_visualization_default: false datasets: - sources: diff --git a/ingestion_tools/dataset_configs/deposition_10305.yaml b/ingestion_tools/dataset_configs/deposition_10305.yaml index f2a7a3309..94011e1c1 100644 --- a/ingestion_tools/dataset_configs/deposition_10305.yaml +++ b/ingestion_tools/dataset_configs/deposition_10305.yaml @@ -22,6 +22,7 @@ annotations: binning: 1 file_format: mod glob_string: '{dataset_name}/{run_name}_T4P.mod' + is_portal_standard: false is_visualization_default: true order: xyz datasets: diff --git a/ingestion_tools/dataset_configs/deposition_10308.yaml b/ingestion_tools/dataset_configs/deposition_10308.yaml index a73a3377a..1e5f5ccb5 100644 --- a/ingestion_tools/dataset_configs/deposition_10308.yaml +++ b/ingestion_tools/dataset_configs/deposition_10308.yaml @@ -28,6 +28,7 @@ annotations: - SegmentationMask: file_format: zarr glob_string: '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*55ar5k.zarr' + is_portal_standard: false is_visualization_default: true datasets: - sources: diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 0daf58692..848039466 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -4,13 +4,14 @@ """ import glob import itertools +import json from typing import Union import numpy as np import yaml -def rawtilts_to_collection_metadata(config: dict) -> bool: +def rawtilts_to_collection_metadata(config: dict) -> None: list_globs = [] if 'rawtilts' in config: for i in config['rawtilts']: @@ -25,10 +26,9 @@ def rawtilts_to_collection_metadata(config: dict) -> bool: config['collection_metadata'] = [{"sources": [{"source_multi_glob": {"list_globs": []}}]}] config["collection_metadata"][0]["sources"][0]["source_multi_glob"]["list_globs"].extend(list_globs) - return bool(list_globs) -def rawtilts_to_alignments(config: dict) -> bool: +def rawtilts_to_alignments(config: dict) -> None: list_globs = [] format_dict = { "IMOD": [], @@ -78,11 +78,9 @@ def get_format(file): if affine_transformation_matrix: alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix config["alignments"].append(alignment) - return bool(list_globs) -def update_tomogram_metadata(config: dict) -> bool: - changed = False +def update_tomogram_metadata(config: dict) -> None: if tomograms := config.get("tomograms"): for tomogram in tomograms: if metadata := tomogram.get("metadata"): @@ -100,72 +98,71 @@ def update_tomogram_metadata(config: dict) -> bool: affine_transformation_matrix = metadata.pop("affine_transformation_matrix", None) if affine_transformation_matrix and not np.allclose(affine_transformation_matrix, np.eye(4)): ValueError("affine_transformation_matrix is not an identity matrix") - return changed -def update_annotation_sources(config: dict) -> bool: - changed = False +def update_annotation_sources(config: dict) -> None: if annotations := config.get('annotations'): for annotation in annotations: if sources := annotation.get("sources"): - changed = True for source in sources: for value in source.values(): value["is_portal_standard"] = False - return changed -def remove_empty_fields(config: Union[list, dict]) -> bool: - changed = False +def remove_empty_fields(config: Union[list, dict]) -> None: remove_key = [] exclude_keys = ['annotations'] if isinstance(config, list): for i in config: if isinstance(i, (list, dict)): - changed = remove_empty_fields(i) + remove_empty_fields(i) if len(i) == 0: remove_key.append(i) if remove_key: - changed = True for key in remove_key: config.remove(key) elif isinstance(config, dict): for key, value in config.items(): if isinstance(value, (list, dict)): - changed = remove_empty_fields(value) + remove_empty_fields(value) if len(value) == 0: remove_key.append(key) if remove_key: - changed = True for key in remove_key: if key in exclude_keys: continue config.pop(key) - return changed def check_deposition(config: dict) -> bool: if "depositions" in config: return True raise ValueError("depositions is not in the config") + +def has_changes(file, config): + with open(file, 'r') as file: + old_config = yaml.safe_load(file) + return json.dumps(old_config) != json.dumps(config) + + def migrate_config(file_path): with open(file_path, 'r') as file: config = yaml.safe_load(file) - changes: list[bool] = [] try: - changes.append(rawtilts_to_collection_metadata(config)) - changes.append(rawtilts_to_alignments(config)) - changes.append(update_tomogram_metadata(config)) - changes.append(check_deposition(config)) + rawtilts_to_collection_metadata(config) + rawtilts_to_alignments(config) + update_tomogram_metadata(config) + check_deposition(config) + update_annotation_sources(config) + remove_empty_fields(config) except Exception as e: print(f"Error in {get_relative_path(file_path)}: missing {e}") return - if any(changes): - remove_empty_fields(config) + if has_changes(file_path, config): relative_path = file_path[file_path.find("cryoet-data-portal-backend"):] - # print(f"modified: {relative_path}") + print(f"modified: {relative_path}") with open(file_path, 'w') as file: yaml.safe_dump(config, file) From 32a1523ffaaa62231ccd29295ac19e2debf5a090 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 16 Sep 2024 11:09:45 -0700 Subject: [PATCH 32/59] undo v2.0 changes --- schema/core/v2.0.0/metadata.yaml | 77 -------------------------------- 1 file changed, 77 deletions(-) diff --git a/schema/core/v2.0.0/metadata.yaml b/schema/core/v2.0.0/metadata.yaml index bd3156a86..a5e8cd08e 100644 --- a/schema/core/v2.0.0/metadata.yaml +++ b/schema/core/v2.0.0/metadata.yaml @@ -705,80 +705,3 @@ classes: - cdp-common:annotation_version # ============================================================================ - - # ============================================================================ - # Alignment metadata - # ============================================================================ - - AlignmentOffset: - description: &desc_alignment_offset The offset of a alignment in voxels in each dimension relative to the canonical tomogram. - attributes: - x: - any_of: - - range: integer - - range: cdp-common:IntegerFormattedString - required: true - description: x offset relative to the canonical tomogram in pixels - unit: - descriptive_name: pixels - symbol: px - y: - any_of: - - range: integer - - range: cdp-common:IntegerFormattedString - required: true - description: y offset relative to the canonical tomogram in pixels - unit: - descriptive_name: pixels - symbol: px - z: - any_of: - - range: integer - - range: cdp-common:IntegerFormattedString - required: true - description: z offset relative to the canonical tomogram in pixels - unit: - descriptive_name: pixels - symbol: px - - - Alignment: - attributes: - alignment_type: - description: The type of alignment. - any_of: - - range: string - - range: cdp-common:StringFormattedString - required: true - offset: - description: *desc_alignment_offset - range: AlignmentOffset - required: true - x_rotation_offset: - description: The x rotation offset relative to the tomogram. - any_of: - - range: integer - - range: cdp-common:IntegerFormattedString - required: true - ifabsent: "int(0)" - tilt_offset: - description: The tilt offset relative to the tomogram. - range: float - required: true - ifabsent: "float(0.0)" - affine_transformation_matrix: - # use the value in tomogram.affine_transformation_matrix if tomogram.afine_transformation_matrix is defined - description: The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix. - any_of: - - range: float - - range: cdp-common:FloatFormattedString - array: - exact_number_dimensions: 2 - dimensions: - - exact_cardinality: 4 - - exact_cardinality: 4 - is_canonical: - description: Whether the alignment is canonical. - range: boolean - required: true - ifabsent: true From f978bca3e23d2d8eb3daed520f104ceba8217ae2 Mon Sep 17 00:00:00 2001 From: Trent Smith <1429913+Bento007@users.noreply.github.com> Date: Mon, 16 Sep 2024 11:10:44 -0700 Subject: [PATCH 33/59] Apply suggestions from code review --- schema/core/v1.1.0/metadata.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index 30139097c..774530da4 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -827,7 +827,6 @@ classes: range: float ifabsent: "float(0.0)" affine_transformation_matrix: - # use the value in tomogram.affine_transformation_matrix if tomogram.afine_transformation_matrix is defined description: The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix. range: float array: From 6244d119f14fdfe3c073b771fa7579abb06c8e98 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 16 Sep 2024 15:28:08 -0700 Subject: [PATCH 34/59] add affinity matrix back to tomograms --- ingestion_tools/dataset_configs/10000.yaml | 17 ------- ingestion_tools/dataset_configs/10001.yaml | 17 ------- ingestion_tools/dataset_configs/10002.yaml | 7 +-- ingestion_tools/dataset_configs/10004.yaml | 17 ------- ingestion_tools/dataset_configs/10007.yaml | 17 ------- ingestion_tools/dataset_configs/10008.yaml | 17 ------- ingestion_tools/dataset_configs/10009.yaml | 17 ------- .../dataset_configs/10011_draft.yaml | 38 +++++++-------- ingestion_tools/dataset_configs/10301.yaml | 17 ------- ingestion_tools/dataset_configs/10302.yaml | 17 ------- ingestion_tools/dataset_configs/10436.yaml | 17 ------- ingestion_tools/dataset_configs/10437.yaml | 17 ------- ingestion_tools/dataset_configs/10439.yaml | 17 ------- .../dataset_configs/10440_draft.yaml | 29 +++++------ .../dataset_configs/10441_draft.yaml | 29 +++++------ ingestion_tools/dataset_configs/template.yaml | 21 -------- schema/core/v1.1.0/metadata.yaml | 9 ++++ .../ingestion_config/migrations/issue_997.py | 48 +++++++++---------- 18 files changed, 84 insertions(+), 284 deletions(-) diff --git a/ingestion_tools/dataset_configs/10000.yaml b/ingestion_tools/dataset_configs/10000.yaml index 21a669141..542fc87d8 100644 --- a/ingestion_tools/dataset_configs/10000.yaml +++ b/ingestion_tools/dataset_configs/10000.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index 98eea0150..544b97e57 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index 8af8db2fc..3cf4ba4e0 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -1,6 +1,6 @@ alignments: - metadata: - affine_transformation_matrix: + affine_transformation_matrix: &id003 - - 1 - 0 - 0 @@ -110,7 +110,7 @@ dataset_keyphotos: thumbnail: https://www.ebi.ac.uk/pdbe/emdb-empiar/entryIcons/10989.gif datasets: - metadata: - authors: &id003 + authors: &id004 - ORCID: 0000-0002-4691-9501 name: Irene de Teresa Trueba primary_author_status: true @@ -230,7 +230,8 @@ tiltseries: match_regex: .* tomograms: - metadata: - authors: *id003 + affine_transformation_matrix: *id003 + authors: *id004 ctf_corrected: false dates: deposition_date: '2023-04-01' diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index 1fb804c60..a9c82f8d9 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10007.yaml b/ingestion_tools/dataset_configs/10007.yaml index 8a2962f34..0cef933d4 100644 --- a/ingestion_tools/dataset_configs/10007.yaml +++ b/ingestion_tools/dataset_configs/10007.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index 5798b5d32..c887e098e 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index 2e98d8654..558dca51b 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10011_draft.yaml b/ingestion_tools/dataset_configs/10011_draft.yaml index 647fc632a..d07efbf8e 100644 --- a/ingestion_tools/dataset_configs/10011_draft.yaml +++ b/ingestion_tools/dataset_configs/10011_draft.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: @@ -167,11 +150,24 @@ tiltseries: match_regex: .* tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 ctf_corrected: REQUIRED - dates: - deposition_date: '1970-01-01' - last_modified_date: '1970-01-01' - release_date: '1970-01-01' fiducial_alignment_status: null is_visualization_default: true offset: diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index 44c0d0f4e..280e7fa08 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10302.yaml b/ingestion_tools/dataset_configs/10302.yaml index 41f44cf0c..894127095 100644 --- a/ingestion_tools/dataset_configs/10302.yaml +++ b/ingestion_tools/dataset_configs/10302.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index 488e8ec0f..ad55d5f73 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index 066d22236..0b1c0d71e 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index 28ac66c88..d3d010bec 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -1,22 +1,5 @@ alignments: - metadata: - affine_transformation_matrix: - - - 1 - - 0 - - 0 - - 0 - - - 0 - - 1 - - 0 - - 0 - - - 0 - - 0 - - 1 - - 0 - - - 0 - - 0 - - 0 - - 1 format: IMOD sources: - source_multi_glob: diff --git a/ingestion_tools/dataset_configs/10440_draft.yaml b/ingestion_tools/dataset_configs/10440_draft.yaml index 8523c6499..f657b321f 100644 --- a/ingestion_tools/dataset_configs/10440_draft.yaml +++ b/ingestion_tools/dataset_configs/10440_draft.yaml @@ -1,16 +1,17 @@ datasets: -- metadata: - dataset_identifier: 10440 - sources: - - literal: - value: - - '10440' + - metadata: + dataset_identifier: 10440 + sources: + - literal: + value: + - '10440' + depositions: -- metadata: - deposition_identifier: 10310 - deposition_types: - - dataset - sources: - - literal: - value: - - 10310 + - metadata: + deposition_identifier: 10310 + deposition_types: + - dataset + sources: + - literal: + value: + - 10310 diff --git a/ingestion_tools/dataset_configs/10441_draft.yaml b/ingestion_tools/dataset_configs/10441_draft.yaml index 4b69df84c..4ed700ef2 100644 --- a/ingestion_tools/dataset_configs/10441_draft.yaml +++ b/ingestion_tools/dataset_configs/10441_draft.yaml @@ -1,16 +1,17 @@ datasets: -- metadata: - dataset_identifier: 10441 - sources: - - literal: - value: - - '10441' + - metadata: + dataset_identifier: 10441 + sources: + - literal: + value: + - '10441' + depositions: -- metadata: - deposition_identifier: 10310 - deposition_types: - - dataset - sources: - - literal: - value: - - 10310 + - metadata: + deposition_identifier: 10310 + deposition_types: + - dataset + sources: + - literal: + value: + - 10310 diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index a3d6487ca..9ad61b34d 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -1,25 +1,4 @@ # Future TODO: Create example_config.yaml file to show how to use this template. -alignments: OPTIONAL -- metadata: - affine_transformation_matrix: OPTIONAL 4x4 FLOAT MATRIX (DEFAULT 4x4 identity matrix) - - ... (4 FLOAT ELEMENTS) - - ... (4 FLOAT ELEMENTS) - - ... (4 FLOAT ELEMENTS) - - ... (4 FLOAT ELEMENTS) - alignment_type: REQUIRED, ENUM(LOCAL,GLOBAL), (DEFAULT, GLOBAL) - is_canonical: REQUIRED, BOOLEAN (DEFAULT TRUE) - offset: OPTIONAL - x: REQUIRED, INTEGER,(DEFAULT 0) - y: REQUIRED, INTEGER, (DEFAULT 0) - z: REQUIRED, INTEGER, (DEFAULT 0) - tilt_offset: REQUIRED, FLOAT (DEFAULT 0.0) - x_rotation_offset: REQUIRED, INTEGER (DEFAULT 0) - format: REQUIRED, ENUM(IMOD, ARETOMO3) - volume_dimension: OPTIONAL - x: REQUIRED, INTEGER - y: REQUIRED, INTEGER - z: REQUIRED, INTEGER - sources: SEE datasets.sources and runs.sources.parent_filters annotations: OPTIONAL - metadata: REQUIRED confidence: OPTIONAL diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index 774530da4..a8bb9cd9a 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -511,6 +511,15 @@ classes: tomogram_version: exact_mappings: - cdp-common:tomogram_version + affine_transformation_matrix: + # TODO: remove after mgiration from v1.x + description: The flip or rotation transformation of this author submitted tomogram is indicated here + range: float + array: + exact_number_dimensions: 2 + dimensions: + - exact_cardinality: 4 + - exact_cardinality: 4 size: description: *desc_tomogram_size range: TomogramSize diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 848039466..7758391dd 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -5,6 +5,7 @@ import glob import itertools import json +import traceback from typing import Union import numpy as np @@ -27,7 +28,6 @@ def rawtilts_to_collection_metadata(config: dict) -> None: config["collection_metadata"][0]["sources"][0]["source_multi_glob"]["list_globs"].extend(list_globs) - def rawtilts_to_alignments(config: dict) -> None: list_globs = [] format_dict = { @@ -64,7 +64,7 @@ def get_format(file): # check if there is an alignment with the key in the metadata.format alignment = [a for a in config.get("alignments", []) if a["metadata"]["format"] == key] if alignment: - alignment = alignment.pop() + alignment = alignment.pop() else: alignment = { "metadata": {"format": key}, @@ -74,7 +74,10 @@ def get_format(file): for i in config['tomograms']: if "metadata" not in i: continue - affine_transformation_matrix = i["metadata"].pop("affine_transformation_matrix", None) + affine_transformation_matrix = i["metadata"].get("affine_transformation_matrix", None) + if affine_transformation_matrix and np.allclose(affine_transformation_matrix,np.eye(4)): + # skip if is an idenity matrix + continue if affine_transformation_matrix: alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix config["alignments"].append(alignment) @@ -84,9 +87,8 @@ def update_tomogram_metadata(config: dict) -> None: if tomograms := config.get("tomograms"): for tomogram in tomograms: if metadata := tomogram.get("metadata"): - changed = True metadata["is_visualization_default"] = True - if not metadata["dates"]: + if not metadata.get("dates"): try: dates = config["depositions"][0]["metadata"]["dates"] except (KeyError, IndexError) as ex: @@ -95,9 +97,9 @@ def update_tomogram_metadata(config: dict) -> None: "last_modified_date": '1970-01-01', "release_date": '1970-01-01'} metadata["dates"] = dates - affine_transformation_matrix = metadata.pop("affine_transformation_matrix", None) - if affine_transformation_matrix and not np.allclose(affine_transformation_matrix, np.eye(4)): - ValueError("affine_transformation_matrix is not an identity matrix") + affine_transformation_matrix = metadata.get("affine_transformation_matrix", None) + if affine_transformation_matrix and np.allclose(affine_transformation_matrix, np.eye(4)): + metadata.pop("affine_transformation_matrix") def update_annotation_sources(config: dict) -> None: @@ -108,7 +110,6 @@ def update_annotation_sources(config: dict) -> None: for value in source.values(): value["is_portal_standard"] = False - def remove_empty_fields(config: Union[list, dict]) -> None: remove_key = [] exclude_keys = ['annotations'] @@ -138,13 +139,11 @@ def check_deposition(config: dict) -> bool: return True raise ValueError("depositions is not in the config") - def has_changes(file, config): with open(file, 'r') as file: old_config = yaml.safe_load(file) return json.dumps(old_config) != json.dumps(config) - def migrate_config(file_path): with open(file_path, 'r') as file: config = yaml.safe_load(file) @@ -158,6 +157,7 @@ def migrate_config(file_path): remove_empty_fields(config) except Exception as e: print(f"Error in {get_relative_path(file_path)}: missing {e}") + print(traceback.format_exc()) return if has_changes(file_path, config): @@ -166,20 +166,20 @@ def migrate_config(file_path): with open(file_path, 'w') as file: yaml.safe_dump(config, file) - def get_relative_path(file_path): return file_path[file_path.find("cryoet-data-portal-backend"):] -# Update all config files -config_files = glob.glob( - '/Users/trentsmith/workspace/cryoet/cryoet-data-portal-backend/ingestion_tools/dataset_configs/**/*.yaml', - recursive=True) -test_config_files = glob.glob( - '/Users/trentsmith/workspace/cryoet/cryoet-data-portal-backend/ingestion_tools/dataset_configs/tests/**/*.yaml', - recursive=True) -configs = itertools.chain(config_files, test_config_files) -for config_file in configs: - if "template" in config_file: - continue - migrate_config(config_file) +if __name__ == "__main__": + # Update all config files + config_files = glob.glob( + '/Users/trentsmith/workspace/cryoet/cryoet-data-portal-backend/ingestion_tools/dataset_configs/**/*.yaml', + recursive=True) + test_config_files = glob.glob( + '/Users/trentsmith/workspace/cryoet/cryoet-data-portal-backend/ingestion_tools/dataset_configs/tests/**/*.yaml', + recursive=True) + configs = itertools.chain(config_files, test_config_files) + for config_file in configs: + if "template" in config_file: + continue + migrate_config(config_file) From b8a851458ceee2fd49e7bfa69ce41230ce00c3a9 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 16 Sep 2024 15:28:45 -0700 Subject: [PATCH 35/59] add affinity matrix back to tomograms --- schema/ingestion_config/migrations/issue_997.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 7758391dd..c4ce717cc 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -91,7 +91,7 @@ def update_tomogram_metadata(config: dict) -> None: if not metadata.get("dates"): try: dates = config["depositions"][0]["metadata"]["dates"] - except (KeyError, IndexError) as ex: + except (KeyError, IndexError): dates = { "deposition_date": '1970-01-01', "last_modified_date": '1970-01-01', From 8fe2d77fcd996b7bbcdcedbf8f3d3f9c7462e658 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 16 Sep 2024 17:17:02 -0700 Subject: [PATCH 36/59] update core schema v2.0.0 for alignments and mesh --- schema/core/v2.0.0/common.yaml | 32 ++++-- schema/core/v2.0.0/metadata.yaml | 177 +++++++++++++++++++++++++++++++ 2 files changed, 201 insertions(+), 8 deletions(-) diff --git a/schema/core/v2.0.0/common.yaml b/schema/core/v2.0.0/common.yaml index fe5227612..1d99316b4 100644 --- a/schema/core/v2.0.0/common.yaml +++ b/schema/core/v2.0.0/common.yaml @@ -727,6 +727,14 @@ slots: range: integer description: The mask label for a semantic segmentation mask annotation file. ifabsent: 'int(1)' + annotation_source_file_scale_factor: + range: float + description: The scale factor for a mesh annotation file. + ifabsent: 'float(1)' + minimum_value: 0 + annotation_source_file_mesh_name: + range: string + description: The name that identifies to a single annotation mesh among multiple meshes. # ============================================================================ # Per Section Parameters fields @@ -972,6 +980,22 @@ enums: # ============================================================================ # Controlled vocabularies # ============================================================================ + alignment_type_enum: + description: Type of alignment + permissible_values: + LOCAL: + description: per-section non-rigid alignment available + GLOBAL: + description: only per-section rigid alignment available + + alignment_format_enum: + description: Used to determine what alignment alogrithm to use. + permissible_values: + IMOD: + description: formats (xf, tlt, com) + ARETOMO3: + description: formats (aln) + annotation_file_source_enum: description: How the annotation file was acquired permissible_values: @@ -1113,14 +1137,6 @@ enums: UNKNOWN: description: Tomogram's was not submitted by the dataset author - alignment_type_enum: - description: Type of alignment - permissible_values: - LOCAL: - description: per-section non-rigid alignment available - GLOBAL: - description: only per-section rigid alignment available - types: StringFormattedString: description: A formatted string (variable) that represents a string. diff --git a/schema/core/v2.0.0/metadata.yaml b/schema/core/v2.0.0/metadata.yaml index a5e8cd08e..0b9744029 100644 --- a/schema/core/v2.0.0/metadata.yaml +++ b/schema/core/v2.0.0/metadata.yaml @@ -532,6 +532,24 @@ classes: description: *desc_tomogram_offset range: TomogramOffset required: true + is_portal_standard: + description: Whether the tomogram is a portal standard. + range: boolean + required: false + ifabsent: false + is_visualization_default: + description: Whether the tomogram is the default for visualization. + range: boolean + required: true + ifabsent: true + cross_references: + description: Cross-references for the tomogram. + range: CrossReferences + required: false + dates: + description: Dates associated with the tomogram. + range: DateStamp + required: true # ============================================================================ # ============================================================================ @@ -594,6 +612,9 @@ classes: is_visualization_default: exact_mappings: - cdp-common:annotation_source_file_is_visualization_default + is_portal_standard: + exact_mappings: + - cdp-common:annotation_source_file_is_portal_standard AnnotationOrientedPointFile: is_a: AnnotationSourceFile @@ -651,6 +672,27 @@ classes: exact_mappings: - cdp-common:annotation_source_file_mask_label + AnnotationTriangularMeshFile: + is_a: AnnotationSourceFile + aliases: + - TriangularMesh + description: File and sourcing data for a triangular mesh annotation. Annotation that identifies an object. + attributes: + scale_factor: + exact_mappings: + - cdp-common:annotation_source_file_scale_factor + AnnotationTriangularMeshGroupFile: + is_a: AnnotationSourceFile + aliases: + - TriangularMeshGroup + description: File and sourcing data containing one or more triangular mesh annotations. + attributes: + scale_factor: + exact_mappings: + - cdp-common:annotation_source_file_scale_factor + name: + exact_mappings: + - cdp-common:annotation_source_file_mesh_name # ============================================================================ # ============================================================================ @@ -705,3 +747,138 @@ classes: - cdp-common:annotation_version # ============================================================================ + + # ============================================================================ + # Alignment metadata + # ============================================================================ + + AlignmentSize: + description: &desc_alignment_size The size of an alignment in voxels in each dimension. + attributes: + x: + any_of: + - range: integer + - range: IntegerFormattedString + required: true + description: Number of pixels in the 3D data fast axis + unit: + descriptive_name: pixels + symbol: px + y: + any_of: + - range: integer + - range: IntegerFormattedString + required: true + description: Number of pixels in the 3D data medium axis + unit: + descriptive_name: pixels + symbol: px + z: + any_of: + - range: integer + - range: IntegerFormattedString + required: true + description: Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt + unit: + descriptive_name: pixels + symbol: px + + AlignmentOffset: + description: &desc_alignment_offset The offset of a alignment in voxels in each dimension relative to the canonical tomogram. + attributes: + x: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: x offset relative to the canonical tomogram in pixels + ifabsent: "int(0)" + unit: + descriptive_name: pixels + symbol: px + y: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + description: y offset relative to the canonical tomogram in pixels + ifabsent: "int(0)" + unit: + descriptive_name: pixels + symbol: px + z: + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + required: true + ifabsent: "int(0)" + description: z offset relative to the canonical tomogram in pixels + unit: + descriptive_name: pixels + symbol: px + + + Alignment: + attributes: + alignment_type: + description: The type of alignment. + range: alignment_type_enum + offset: + description: *desc_alignment_offset + range: AlignmentOffset + volume_dimesion: + description: *desc_alignment_size + range: AlignmentSize + x_rotation_offset: + description: The x rotation offset relative to the tomogram. + any_of: + - range: integer + - range: cdp-common:IntegerFormattedString + ifabsent: "int(0)" + tilt_offset: + description: The tilt offset relative to the tomogram. + range: float + ifabsent: "float(0.0)" + affine_transformation_matrix: + description: The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix. + range: float + array: + exact_number_dimensions: 2 + dimensions: + - exact_cardinality: 4 + - exact_cardinality: 4 +# ifabsent: "np.eye(4)" # TODO: comming soon from linkml https://linkml.io/linkml/schemas/arrays#representations + is_canonical: + description: Whether the alignment is canonical. + range: boolean + ifabsent: true + format: + description: The format of the alignment. + range: alignment_format_enum + required: true + # ============================================================================ + + # ============================================================================ + # Frame metadata + # ============================================================================ + # Add to the `classes` section in `ingestion_config_models.yaml` + + Frame: + description: A frame entity. + attributes: + dose: + description: The dose. + range: float + required: true + defocus: + description: The defocus. + range: float + required: true + astigmatism: + description: The astigmatism. + range: float + required: true + astigmatic_angle: + description: The astigmatic angle. + range: float + required: true From 2e584821c50cbbe87969492ecb253ae4e77528d4 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 20 Sep 2024 17:38:26 -0700 Subject: [PATCH 37/59] add identity matrix back in --- ingestion_tools/dataset_configs/10000.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10001.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10003.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10004.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10005.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10006.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10007.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10008.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10009.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10010.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10301.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10302.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10426.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10427.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10428.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10429.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10430.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10431.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10432.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10433.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10434.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10435.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10436.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10437.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10438.yaml | 17 +++++++++++++++++ ingestion_tools/dataset_configs/10439.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10014.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10015.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10016.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10017.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10018.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10019.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10020.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10021.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10022.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10023.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10024.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10025.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10026.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10027.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10028.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10029.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10030.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10031.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10032.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10033.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10034.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10035.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10036.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10037.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10038.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10039.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10040.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10041.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10042.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10043.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10044.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10045.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10046.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10047.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10048.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10049.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10050.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10051.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10052.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10053.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10054.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10055.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10056.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10057.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10058.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10059.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10060.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10061.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10062.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10063.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10064.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10065.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10066.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10067.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10068.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10069.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10070.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10071.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10072.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10073.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10074.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10075.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10076.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10077.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10078.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10079.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10080.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10081.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10082.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10083.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10084.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10085.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10086.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10087.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10088.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10089.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10090.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10091.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10092.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10093.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10094.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10095.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10096.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10097.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10098.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10099.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10100.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10101.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10102.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10103.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10104.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10105.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10106.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10107.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10108.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10109.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10110.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10111.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10112.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10113.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10114.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10115.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10116.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10117.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10118.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10119.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10120.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10121.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10122.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10123.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10124.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10125.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10126.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10127.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10128.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10129.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10130.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10131.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10132.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10133.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10134.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10135.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10136.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10137.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10138.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10139.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10140.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10141.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10142.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10143.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10144.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10145.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10146.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10147.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10148.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10149.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10150.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10151.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10152.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10153.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10154.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10155.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10156.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10157.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10158.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10159.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10160.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10161.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10162.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10163.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10164.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10165.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10166.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10167.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10168.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10169.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10170.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10171.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10172.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10173.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10174.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10175.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10176.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10177.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10178.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10179.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10180.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10181.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10182.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10183.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10184.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10185.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10186.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10187.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10188.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10189.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10190.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10191.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10192.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10193.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10194.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10195.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10196.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10197.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10198.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10199.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10200.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10201.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10202.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10203.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10204.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10205.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10206.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10207.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10208.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10209.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10210.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10211.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10212.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10213.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10214.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10215.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10216.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10217.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10218.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10219.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10220.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10221.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10222.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10223.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10224.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10225.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10226.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10227.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10228.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10229.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10230.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10231.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10232.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10233.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10234.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10235.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10236.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10237.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10238.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10239.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10240.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10241.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10242.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10243.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10244.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10245.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10246.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10247.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10248.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10249.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10250.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10251.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10252.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10253.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10254.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10255.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10256.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10257.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10258.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10259.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10260.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10261.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10262.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10263.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10264.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10265.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10266.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10267.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10268.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10269.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10270.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10271.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10272.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10273.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10274.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10275.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10276.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10277.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10278.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10279.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10280.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10281.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10282.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10283.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10284.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10285.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10286.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10287.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10288.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10289.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10290.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10291.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10292.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10293.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10294.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10295.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10296.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10297.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10298.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10299.yaml | 17 +++++++++++++++++ .../dataset_configs/gjensen/10300.yaml | 17 +++++++++++++++++ schema/ingestion_config/migrations/issue_997.py | 4 ++-- 314 files changed, 5323 insertions(+), 2 deletions(-) diff --git a/ingestion_tools/dataset_configs/10000.yaml b/ingestion_tools/dataset_configs/10000.yaml index 542fc87d8..0560c8d0b 100644 --- a/ingestion_tools/dataset_configs/10000.yaml +++ b/ingestion_tools/dataset_configs/10000.yaml @@ -506,6 +506,23 @@ tiltseries: match_regex: (.*)\.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id003 ctf_corrected: false dates: *id002 diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index 544b97e57..71d9c201a 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -490,6 +490,23 @@ tiltseries: match_regex: (.*)\.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id003 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10003.yaml b/ingestion_tools/dataset_configs/10003.yaml index 30eb9a4ff..e925f02c2 100644 --- a/ingestion_tools/dataset_configs/10003.yaml +++ b/ingestion_tools/dataset_configs/10003.yaml @@ -161,6 +161,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id002 ctf_corrected: true dates: *id001 diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index a9c82f8d9..a0f01e46d 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -209,6 +209,23 @@ tiltseries: match_regex: .* tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id002 ctf_corrected: true dates: *id001 diff --git a/ingestion_tools/dataset_configs/10005.yaml b/ingestion_tools/dataset_configs/10005.yaml index c23da2904..64fabeb75 100644 --- a/ingestion_tools/dataset_configs/10005.yaml +++ b/ingestion_tools/dataset_configs/10005.yaml @@ -171,6 +171,23 @@ tiltseries: match_regex: .* tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id003 ctf_corrected: true dates: *id002 diff --git a/ingestion_tools/dataset_configs/10006.yaml b/ingestion_tools/dataset_configs/10006.yaml index 404e9c6e8..7d09bc1f2 100644 --- a/ingestion_tools/dataset_configs/10006.yaml +++ b/ingestion_tools/dataset_configs/10006.yaml @@ -201,6 +201,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id002 ctf_corrected: true dates: *id001 diff --git a/ingestion_tools/dataset_configs/10007.yaml b/ingestion_tools/dataset_configs/10007.yaml index 0cef933d4..feece62f7 100644 --- a/ingestion_tools/dataset_configs/10007.yaml +++ b/ingestion_tools/dataset_configs/10007.yaml @@ -217,6 +217,23 @@ tiltseries: source_glob: *id007 tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id002 ctf_corrected: false dates: *id001 diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index c887e098e..d70ba1370 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -217,6 +217,23 @@ tiltseries: match_regex: .* tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id003 ctf_corrected: false dates: *id002 diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index 558dca51b..23a203039 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -399,6 +399,23 @@ tiltseries: source_glob: *id008 tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id003 ctf_corrected: true dates: *id002 diff --git a/ingestion_tools/dataset_configs/10010.yaml b/ingestion_tools/dataset_configs/10010.yaml index f060a55a8..a77833e62 100644 --- a/ingestion_tools/dataset_configs/10010.yaml +++ b/ingestion_tools/dataset_configs/10010.yaml @@ -189,6 +189,23 @@ tiltseries: match_regex: .* tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id003 ctf_corrected: false dates: *id002 diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index 280e7fa08..bb0486f45 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -342,6 +342,23 @@ tiltseries: match_regex: (.*) tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id003 ctf_corrected: true dates: *id002 diff --git a/ingestion_tools/dataset_configs/10302.yaml b/ingestion_tools/dataset_configs/10302.yaml index 894127095..9eb570223 100644 --- a/ingestion_tools/dataset_configs/10302.yaml +++ b/ingestion_tools/dataset_configs/10302.yaml @@ -171,6 +171,23 @@ tiltseries: match_regex: (.*) tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: true dates: diff --git a/ingestion_tools/dataset_configs/10426.yaml b/ingestion_tools/dataset_configs/10426.yaml index c8e51f64f..c2f50df3d 100644 --- a/ingestion_tools/dataset_configs/10426.yaml +++ b/ingestion_tools/dataset_configs/10426.yaml @@ -130,6 +130,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: *id002 diff --git a/ingestion_tools/dataset_configs/10427.yaml b/ingestion_tools/dataset_configs/10427.yaml index a33238fa2..65e087bb1 100644 --- a/ingestion_tools/dataset_configs/10427.yaml +++ b/ingestion_tools/dataset_configs/10427.yaml @@ -272,6 +272,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10428.yaml b/ingestion_tools/dataset_configs/10428.yaml index 1a3cbe6a4..1d6cfe88a 100644 --- a/ingestion_tools/dataset_configs/10428.yaml +++ b/ingestion_tools/dataset_configs/10428.yaml @@ -122,6 +122,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10429.yaml b/ingestion_tools/dataset_configs/10429.yaml index e7812e4a5..d77ed2059 100644 --- a/ingestion_tools/dataset_configs/10429.yaml +++ b/ingestion_tools/dataset_configs/10429.yaml @@ -122,6 +122,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10430.yaml b/ingestion_tools/dataset_configs/10430.yaml index c5a95fe97..8fdacf495 100644 --- a/ingestion_tools/dataset_configs/10430.yaml +++ b/ingestion_tools/dataset_configs/10430.yaml @@ -122,6 +122,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10431.yaml b/ingestion_tools/dataset_configs/10431.yaml index 958d87c92..0d52ad2d0 100644 --- a/ingestion_tools/dataset_configs/10431.yaml +++ b/ingestion_tools/dataset_configs/10431.yaml @@ -124,6 +124,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10432.yaml b/ingestion_tools/dataset_configs/10432.yaml index 814b35f69..3381266cc 100644 --- a/ingestion_tools/dataset_configs/10432.yaml +++ b/ingestion_tools/dataset_configs/10432.yaml @@ -124,6 +124,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10433.yaml b/ingestion_tools/dataset_configs/10433.yaml index c6fef3dc8..2e639572b 100644 --- a/ingestion_tools/dataset_configs/10433.yaml +++ b/ingestion_tools/dataset_configs/10433.yaml @@ -124,6 +124,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10434.yaml b/ingestion_tools/dataset_configs/10434.yaml index 698aa4ca2..0978b553a 100644 --- a/ingestion_tools/dataset_configs/10434.yaml +++ b/ingestion_tools/dataset_configs/10434.yaml @@ -124,6 +124,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10435.yaml b/ingestion_tools/dataset_configs/10435.yaml index 570b1e5e6..01a9829c5 100644 --- a/ingestion_tools/dataset_configs/10435.yaml +++ b/ingestion_tools/dataset_configs/10435.yaml @@ -124,6 +124,23 @@ tiltseries: list_glob: validation_placeholder/for_unavailable_ts.st tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index ad55d5f73..630c459d5 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -410,6 +410,23 @@ tiltseries: match_regex: ^.*\.st$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: - ORCID: 0000-0002-9479-3800 corresponding_author_status: true diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index 0b1c0d71e..eedf93a66 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -593,6 +593,23 @@ tiltseries: match_regex: ^.*\.st$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: - ORCID: 0000-0002-9479-3800 corresponding_author_status: true diff --git a/ingestion_tools/dataset_configs/10438.yaml b/ingestion_tools/dataset_configs/10438.yaml index 5383ab510..eb8d75c0a 100644 --- a/ingestion_tools/dataset_configs/10438.yaml +++ b/ingestion_tools/dataset_configs/10438.yaml @@ -550,6 +550,23 @@ tiltseries: match_regex: ^.*pxlsz3\.29787\.mrcs$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id003 ctf_corrected: false dates: diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index d3d010bec..8c576f376 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -295,6 +295,23 @@ tiltseries: list_glob: '{run_name}/TiltSeries/tilt_series.mrc' tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 authors: *id001 ctf_corrected: true dates: *id002 diff --git a/ingestion_tools/dataset_configs/gjensen/10014.yaml b/ingestion_tools/dataset_configs/gjensen/10014.yaml index 0d2c8bc23..dc197b79f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10014.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10014.yaml @@ -125,6 +125,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10015.yaml b/ingestion_tools/dataset_configs/gjensen/10015.yaml index d3e53f7a7..66775c6f7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10015.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10015.yaml @@ -123,6 +123,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: Warp authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10016.yaml b/ingestion_tools/dataset_configs/gjensen/10016.yaml index 10350feee..1ba57633f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10016.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10016.yaml @@ -123,6 +123,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10017.yaml b/ingestion_tools/dataset_configs/gjensen/10017.yaml index 183f01cde..b80a4accb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10017.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10017.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10018.yaml b/ingestion_tools/dataset_configs/gjensen/10018.yaml index 46db947b4..14f2a5609 100644 --- a/ingestion_tools/dataset_configs/gjensen/10018.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10018.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10019.yaml b/ingestion_tools/dataset_configs/gjensen/10019.yaml index 3eeee57e7..67e013185 100644 --- a/ingestion_tools/dataset_configs/gjensen/10019.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10019.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10020.yaml b/ingestion_tools/dataset_configs/gjensen/10020.yaml index 6185b04f6..f6e106805 100644 --- a/ingestion_tools/dataset_configs/gjensen/10020.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10020.yaml @@ -123,6 +123,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10021.yaml b/ingestion_tools/dataset_configs/gjensen/10021.yaml index 99159608a..228ba0a25 100644 --- a/ingestion_tools/dataset_configs/gjensen/10021.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10021.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: true diff --git a/ingestion_tools/dataset_configs/gjensen/10022.yaml b/ingestion_tools/dataset_configs/gjensen/10022.yaml index 3ec9fe48a..e5f334fbe 100644 --- a/ingestion_tools/dataset_configs/gjensen/10022.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10022.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10023.yaml b/ingestion_tools/dataset_configs/gjensen/10023.yaml index 2b3ceece2..64a57e3cd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10023.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10023.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10024.yaml b/ingestion_tools/dataset_configs/gjensen/10024.yaml index d3f1458c6..55d63ccd9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10024.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10024.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10025.yaml b/ingestion_tools/dataset_configs/gjensen/10025.yaml index ba1374dff..b36f840fc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10025.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10025.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10026.yaml b/ingestion_tools/dataset_configs/gjensen/10026.yaml index 15690791a..1473461d1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10026.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10026.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10027.yaml b/ingestion_tools/dataset_configs/gjensen/10027.yaml index 651f596e9..a0d215b93 100644 --- a/ingestion_tools/dataset_configs/gjensen/10027.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10027.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10028.yaml b/ingestion_tools/dataset_configs/gjensen/10028.yaml index 49ad18178..ab22277f7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10028.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10028.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10029.yaml b/ingestion_tools/dataset_configs/gjensen/10029.yaml index b693c5347..d6daaf33c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10029.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10029.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10030.yaml b/ingestion_tools/dataset_configs/gjensen/10030.yaml index 5d7f6535b..2efc4d484 100644 --- a/ingestion_tools/dataset_configs/gjensen/10030.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10030.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10031.yaml b/ingestion_tools/dataset_configs/gjensen/10031.yaml index 3037fb355..57be8ea79 100644 --- a/ingestion_tools/dataset_configs/gjensen/10031.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10031.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10032.yaml b/ingestion_tools/dataset_configs/gjensen/10032.yaml index 8960014c5..20b1f674f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10032.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10032.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10033.yaml b/ingestion_tools/dataset_configs/gjensen/10033.yaml index e9761f000..285c8129f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10033.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10033.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10034.yaml b/ingestion_tools/dataset_configs/gjensen/10034.yaml index 1dc69a080..e85579e82 100644 --- a/ingestion_tools/dataset_configs/gjensen/10034.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10034.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10035.yaml b/ingestion_tools/dataset_configs/gjensen/10035.yaml index b5b8b587f..3f2c5b976 100644 --- a/ingestion_tools/dataset_configs/gjensen/10035.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10035.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10036.yaml b/ingestion_tools/dataset_configs/gjensen/10036.yaml index 59788e99c..4ec859d3d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10036.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10036.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10037.yaml b/ingestion_tools/dataset_configs/gjensen/10037.yaml index 8eaae41b1..ba9c0e7cd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10037.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10037.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10038.yaml b/ingestion_tools/dataset_configs/gjensen/10038.yaml index 5a6067594..e5ee08c5a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10038.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10038.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10039.yaml b/ingestion_tools/dataset_configs/gjensen/10039.yaml index 38cda5c0c..f277dbf0d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10039.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10039.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10040.yaml b/ingestion_tools/dataset_configs/gjensen/10040.yaml index 2ef889c52..ec718a258 100644 --- a/ingestion_tools/dataset_configs/gjensen/10040.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10040.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10041.yaml b/ingestion_tools/dataset_configs/gjensen/10041.yaml index 9a3f74bb5..9d5d0cb16 100644 --- a/ingestion_tools/dataset_configs/gjensen/10041.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10041.yaml @@ -108,6 +108,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10042.yaml b/ingestion_tools/dataset_configs/gjensen/10042.yaml index 932f8d81a..f00e36212 100644 --- a/ingestion_tools/dataset_configs/gjensen/10042.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10042.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10043.yaml b/ingestion_tools/dataset_configs/gjensen/10043.yaml index 2715bcc03..aa3a39244 100644 --- a/ingestion_tools/dataset_configs/gjensen/10043.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10043.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10044.yaml b/ingestion_tools/dataset_configs/gjensen/10044.yaml index 2f8e2a64e..c6663ab63 100644 --- a/ingestion_tools/dataset_configs/gjensen/10044.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10044.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10045.yaml b/ingestion_tools/dataset_configs/gjensen/10045.yaml index f39d5ba04..a6758cbad 100644 --- a/ingestion_tools/dataset_configs/gjensen/10045.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10045.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10046.yaml b/ingestion_tools/dataset_configs/gjensen/10046.yaml index 1582bd21a..1132e6a92 100644 --- a/ingestion_tools/dataset_configs/gjensen/10046.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10046.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10047.yaml b/ingestion_tools/dataset_configs/gjensen/10047.yaml index 24afc7664..121fbbad9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10047.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10047.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10048.yaml b/ingestion_tools/dataset_configs/gjensen/10048.yaml index 1603664de..aafee268a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10048.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10048.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10049.yaml b/ingestion_tools/dataset_configs/gjensen/10049.yaml index 07aef4ea7..8ebb1e0e6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10049.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10049.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10050.yaml b/ingestion_tools/dataset_configs/gjensen/10050.yaml index b6e065045..261a40357 100644 --- a/ingestion_tools/dataset_configs/gjensen/10050.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10050.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10051.yaml b/ingestion_tools/dataset_configs/gjensen/10051.yaml index 1d3f3436d..9a6a418b2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10051.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10051.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10052.yaml b/ingestion_tools/dataset_configs/gjensen/10052.yaml index 73c28ffba..a1b51a929 100644 --- a/ingestion_tools/dataset_configs/gjensen/10052.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10052.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10053.yaml b/ingestion_tools/dataset_configs/gjensen/10053.yaml index a65c8a948..c2bd53a3f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10053.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10053.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10054.yaml b/ingestion_tools/dataset_configs/gjensen/10054.yaml index 12d60b748..95b3b9076 100644 --- a/ingestion_tools/dataset_configs/gjensen/10054.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10054.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10055.yaml b/ingestion_tools/dataset_configs/gjensen/10055.yaml index 3b3e26f24..d7246b084 100644 --- a/ingestion_tools/dataset_configs/gjensen/10055.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10055.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10056.yaml b/ingestion_tools/dataset_configs/gjensen/10056.yaml index 63e29d380..c748c0065 100644 --- a/ingestion_tools/dataset_configs/gjensen/10056.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10056.yaml @@ -121,6 +121,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10057.yaml b/ingestion_tools/dataset_configs/gjensen/10057.yaml index 7cc7277b0..90a606195 100644 --- a/ingestion_tools/dataset_configs/gjensen/10057.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10057.yaml @@ -121,6 +121,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10058.yaml b/ingestion_tools/dataset_configs/gjensen/10058.yaml index 3bb13bdd0..129be181f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10058.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10058.yaml @@ -123,6 +123,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10059.yaml b/ingestion_tools/dataset_configs/gjensen/10059.yaml index 57ea0224d..8457fbf8d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10059.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10059.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10060.yaml b/ingestion_tools/dataset_configs/gjensen/10060.yaml index 270bcc8a5..e6e3c64e4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10060.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10060.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10061.yaml b/ingestion_tools/dataset_configs/gjensen/10061.yaml index 7ac4c385c..d125cbd0a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10061.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10061.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10062.yaml b/ingestion_tools/dataset_configs/gjensen/10062.yaml index afea8877b..1846df662 100644 --- a/ingestion_tools/dataset_configs/gjensen/10062.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10062.yaml @@ -125,6 +125,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10063.yaml b/ingestion_tools/dataset_configs/gjensen/10063.yaml index d42938a44..8aba0c1f1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10063.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10063.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10064.yaml b/ingestion_tools/dataset_configs/gjensen/10064.yaml index 3e36f403e..1b0a4a251 100644 --- a/ingestion_tools/dataset_configs/gjensen/10064.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10064.yaml @@ -125,6 +125,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10065.yaml b/ingestion_tools/dataset_configs/gjensen/10065.yaml index 7c0f06a60..229a8628a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10065.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10065.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10066.yaml b/ingestion_tools/dataset_configs/gjensen/10066.yaml index ecd961455..fa5a57574 100644 --- a/ingestion_tools/dataset_configs/gjensen/10066.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10066.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10067.yaml b/ingestion_tools/dataset_configs/gjensen/10067.yaml index cb4a9cca9..8b4ee74b1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10067.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10067.yaml @@ -123,6 +123,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10068.yaml b/ingestion_tools/dataset_configs/gjensen/10068.yaml index fe61d2d11..6da38a26e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10068.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10068.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10069.yaml b/ingestion_tools/dataset_configs/gjensen/10069.yaml index 223d0548d..82791b31d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10069.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10069.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10070.yaml b/ingestion_tools/dataset_configs/gjensen/10070.yaml index 80be3b198..465b209c3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10070.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10070.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10071.yaml b/ingestion_tools/dataset_configs/gjensen/10071.yaml index 5cd146643..f1ec17d8f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10071.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10071.yaml @@ -123,6 +123,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10072.yaml b/ingestion_tools/dataset_configs/gjensen/10072.yaml index f88313f73..886dcfd78 100644 --- a/ingestion_tools/dataset_configs/gjensen/10072.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10072.yaml @@ -124,6 +124,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10073.yaml b/ingestion_tools/dataset_configs/gjensen/10073.yaml index dd2aab7a9..1fbde6829 100644 --- a/ingestion_tools/dataset_configs/gjensen/10073.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10073.yaml @@ -125,6 +125,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10074.yaml b/ingestion_tools/dataset_configs/gjensen/10074.yaml index 4f53fe4f4..eef3ceadc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10074.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10074.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10075.yaml b/ingestion_tools/dataset_configs/gjensen/10075.yaml index 66896d65c..8dc265599 100644 --- a/ingestion_tools/dataset_configs/gjensen/10075.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10075.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10076.yaml b/ingestion_tools/dataset_configs/gjensen/10076.yaml index 1a5088546..6e7aee14f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10076.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10076.yaml @@ -123,6 +123,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10077.yaml b/ingestion_tools/dataset_configs/gjensen/10077.yaml index 515f4250a..352eef62b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10077.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10077.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10078.yaml b/ingestion_tools/dataset_configs/gjensen/10078.yaml index 956dc2a0b..7bf6d18dd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10078.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10078.yaml @@ -124,6 +124,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10079.yaml b/ingestion_tools/dataset_configs/gjensen/10079.yaml index 65fc27b42..93ab2215b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10079.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10079.yaml @@ -124,6 +124,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10080.yaml b/ingestion_tools/dataset_configs/gjensen/10080.yaml index 8ae79bfde..e27553e27 100644 --- a/ingestion_tools/dataset_configs/gjensen/10080.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10080.yaml @@ -126,6 +126,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10081.yaml b/ingestion_tools/dataset_configs/gjensen/10081.yaml index db1534f2c..c5c37f429 100644 --- a/ingestion_tools/dataset_configs/gjensen/10081.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10081.yaml @@ -127,6 +127,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10082.yaml b/ingestion_tools/dataset_configs/gjensen/10082.yaml index 6c9240d07..b0f0d2c3c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10082.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10082.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10083.yaml b/ingestion_tools/dataset_configs/gjensen/10083.yaml index 4319e8f2d..4721b17e9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10083.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10083.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10084.yaml b/ingestion_tools/dataset_configs/gjensen/10084.yaml index d7531331b..75d85fe7b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10084.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10084.yaml @@ -127,6 +127,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10085.yaml b/ingestion_tools/dataset_configs/gjensen/10085.yaml index 161045c36..afd50bd6d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10085.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10085.yaml @@ -124,6 +124,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10086.yaml b/ingestion_tools/dataset_configs/gjensen/10086.yaml index 5172d9425..1277ae4f9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10086.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10086.yaml @@ -119,6 +119,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10087.yaml b/ingestion_tools/dataset_configs/gjensen/10087.yaml index acdcd8a72..2398ee58c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10087.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10087.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10088.yaml b/ingestion_tools/dataset_configs/gjensen/10088.yaml index 13a9c9d65..aafc00d40 100644 --- a/ingestion_tools/dataset_configs/gjensen/10088.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10088.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10089.yaml b/ingestion_tools/dataset_configs/gjensen/10089.yaml index 1bd1bcca4..0f606c73c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10089.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10089.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10090.yaml b/ingestion_tools/dataset_configs/gjensen/10090.yaml index 5e35da3d9..bd3eb44da 100644 --- a/ingestion_tools/dataset_configs/gjensen/10090.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10090.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10091.yaml b/ingestion_tools/dataset_configs/gjensen/10091.yaml index bad456688..0067f66c7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10091.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10091.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10092.yaml b/ingestion_tools/dataset_configs/gjensen/10092.yaml index 07d5931b7..eeea6e3df 100644 --- a/ingestion_tools/dataset_configs/gjensen/10092.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10092.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10093.yaml b/ingestion_tools/dataset_configs/gjensen/10093.yaml index 8172067a1..78002db17 100644 --- a/ingestion_tools/dataset_configs/gjensen/10093.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10093.yaml @@ -119,6 +119,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10094.yaml b/ingestion_tools/dataset_configs/gjensen/10094.yaml index 174cfb164..8d43adaea 100644 --- a/ingestion_tools/dataset_configs/gjensen/10094.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10094.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10095.yaml b/ingestion_tools/dataset_configs/gjensen/10095.yaml index 8c70cb1d1..a86fe7a59 100644 --- a/ingestion_tools/dataset_configs/gjensen/10095.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10095.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10096.yaml b/ingestion_tools/dataset_configs/gjensen/10096.yaml index 26399f8a7..f09725594 100644 --- a/ingestion_tools/dataset_configs/gjensen/10096.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10096.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10097.yaml b/ingestion_tools/dataset_configs/gjensen/10097.yaml index f8d785313..60231d4d9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10097.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10097.yaml @@ -127,6 +127,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10098.yaml b/ingestion_tools/dataset_configs/gjensen/10098.yaml index 7bc659a26..b44b46082 100644 --- a/ingestion_tools/dataset_configs/gjensen/10098.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10098.yaml @@ -127,6 +127,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10099.yaml b/ingestion_tools/dataset_configs/gjensen/10099.yaml index 5f4183e24..adf5a607e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10099.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10099.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10100.yaml b/ingestion_tools/dataset_configs/gjensen/10100.yaml index e069f33b8..eade6fcd0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10100.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10100.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10101.yaml b/ingestion_tools/dataset_configs/gjensen/10101.yaml index 06e1951b2..cacd4dc07 100644 --- a/ingestion_tools/dataset_configs/gjensen/10101.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10101.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10102.yaml b/ingestion_tools/dataset_configs/gjensen/10102.yaml index 8d1b82051..cc8af6d35 100644 --- a/ingestion_tools/dataset_configs/gjensen/10102.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10102.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10103.yaml b/ingestion_tools/dataset_configs/gjensen/10103.yaml index fecebd58b..cc8b9749e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10103.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10103.yaml @@ -106,6 +106,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10104.yaml b/ingestion_tools/dataset_configs/gjensen/10104.yaml index 55314efeb..8c4126914 100644 --- a/ingestion_tools/dataset_configs/gjensen/10104.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10104.yaml @@ -106,6 +106,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10105.yaml b/ingestion_tools/dataset_configs/gjensen/10105.yaml index 3a2c9ae8e..99a67934b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10105.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10105.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10106.yaml b/ingestion_tools/dataset_configs/gjensen/10106.yaml index f92d4ab9f..9fa8aef1a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10106.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10106.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10107.yaml b/ingestion_tools/dataset_configs/gjensen/10107.yaml index 1d6d8e59a..1ffd46a8d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10107.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10107.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10108.yaml b/ingestion_tools/dataset_configs/gjensen/10108.yaml index d40c23fc7..da266b4f0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10108.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10108.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10109.yaml b/ingestion_tools/dataset_configs/gjensen/10109.yaml index 42976da0c..7a7866d9f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10109.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10109.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10110.yaml b/ingestion_tools/dataset_configs/gjensen/10110.yaml index 9bd475e3d..999c71efe 100644 --- a/ingestion_tools/dataset_configs/gjensen/10110.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10110.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10111.yaml b/ingestion_tools/dataset_configs/gjensen/10111.yaml index 2bc8e9fa6..6c00cf179 100644 --- a/ingestion_tools/dataset_configs/gjensen/10111.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10111.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10112.yaml b/ingestion_tools/dataset_configs/gjensen/10112.yaml index c816bdc77..43492f74f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10112.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10112.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10113.yaml b/ingestion_tools/dataset_configs/gjensen/10113.yaml index 0b2dcc69f..31bdd2916 100644 --- a/ingestion_tools/dataset_configs/gjensen/10113.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10113.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10114.yaml b/ingestion_tools/dataset_configs/gjensen/10114.yaml index adae715b1..2ab171f9e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10114.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10114.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10115.yaml b/ingestion_tools/dataset_configs/gjensen/10115.yaml index 206300f4e..698ba7573 100644 --- a/ingestion_tools/dataset_configs/gjensen/10115.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10115.yaml @@ -107,6 +107,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10116.yaml b/ingestion_tools/dataset_configs/gjensen/10116.yaml index 225561216..94359f673 100644 --- a/ingestion_tools/dataset_configs/gjensen/10116.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10116.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10117.yaml b/ingestion_tools/dataset_configs/gjensen/10117.yaml index 8cc22269e..9102c365d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10117.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10117.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10118.yaml b/ingestion_tools/dataset_configs/gjensen/10118.yaml index 740f43dd2..00376c05f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10118.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10118.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10119.yaml b/ingestion_tools/dataset_configs/gjensen/10119.yaml index ea4895766..6f421eaaa 100644 --- a/ingestion_tools/dataset_configs/gjensen/10119.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10119.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10120.yaml b/ingestion_tools/dataset_configs/gjensen/10120.yaml index c58dfc8bd..a39ed4f9d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10120.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10120.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10121.yaml b/ingestion_tools/dataset_configs/gjensen/10121.yaml index 0fd35f20a..1e3ff64ae 100644 --- a/ingestion_tools/dataset_configs/gjensen/10121.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10121.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10122.yaml b/ingestion_tools/dataset_configs/gjensen/10122.yaml index 4a0524d7e..bfac08a77 100644 --- a/ingestion_tools/dataset_configs/gjensen/10122.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10122.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10123.yaml b/ingestion_tools/dataset_configs/gjensen/10123.yaml index 3a9e75e28..efe0c73e0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10123.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10123.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10124.yaml b/ingestion_tools/dataset_configs/gjensen/10124.yaml index 946599ae0..c1f8a2722 100644 --- a/ingestion_tools/dataset_configs/gjensen/10124.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10124.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10125.yaml b/ingestion_tools/dataset_configs/gjensen/10125.yaml index 50c9e5f83..fc54f32f9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10125.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10125.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10126.yaml b/ingestion_tools/dataset_configs/gjensen/10126.yaml index 84e57c6a6..ec398eb63 100644 --- a/ingestion_tools/dataset_configs/gjensen/10126.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10126.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10127.yaml b/ingestion_tools/dataset_configs/gjensen/10127.yaml index 8824a2b41..29f1d2dcc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10127.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10127.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10128.yaml b/ingestion_tools/dataset_configs/gjensen/10128.yaml index 95a292def..0539cd659 100644 --- a/ingestion_tools/dataset_configs/gjensen/10128.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10128.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10129.yaml b/ingestion_tools/dataset_configs/gjensen/10129.yaml index 6efccebfa..756201e7f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10129.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10129.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10130.yaml b/ingestion_tools/dataset_configs/gjensen/10130.yaml index 180a07fb6..aa09ebca8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10130.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10130.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10131.yaml b/ingestion_tools/dataset_configs/gjensen/10131.yaml index 87e942e85..28a3f11c2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10131.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10131.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10132.yaml b/ingestion_tools/dataset_configs/gjensen/10132.yaml index c45250261..8b8135d30 100644 --- a/ingestion_tools/dataset_configs/gjensen/10132.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10132.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10133.yaml b/ingestion_tools/dataset_configs/gjensen/10133.yaml index c847bb0f3..7b1d66818 100644 --- a/ingestion_tools/dataset_configs/gjensen/10133.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10133.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10134.yaml b/ingestion_tools/dataset_configs/gjensen/10134.yaml index 8191ad19f..80dd3447f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10134.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10134.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10135.yaml b/ingestion_tools/dataset_configs/gjensen/10135.yaml index ee08b3306..d1b2a1acc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10135.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10135.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10136.yaml b/ingestion_tools/dataset_configs/gjensen/10136.yaml index af7987d3e..1a5a18bbd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10136.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10136.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10137.yaml b/ingestion_tools/dataset_configs/gjensen/10137.yaml index ee2b7995a..0267f6cde 100644 --- a/ingestion_tools/dataset_configs/gjensen/10137.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10137.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10138.yaml b/ingestion_tools/dataset_configs/gjensen/10138.yaml index b1f16a7d1..df254b0ad 100644 --- a/ingestion_tools/dataset_configs/gjensen/10138.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10138.yaml @@ -108,6 +108,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10139.yaml b/ingestion_tools/dataset_configs/gjensen/10139.yaml index f72268360..8bacf6ac4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10139.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10139.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10140.yaml b/ingestion_tools/dataset_configs/gjensen/10140.yaml index 47c303901..c7bc2c76b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10140.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10140.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10141.yaml b/ingestion_tools/dataset_configs/gjensen/10141.yaml index 328a72ec5..ce257f1ce 100644 --- a/ingestion_tools/dataset_configs/gjensen/10141.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10141.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10142.yaml b/ingestion_tools/dataset_configs/gjensen/10142.yaml index d9211b35d..17e0ba90a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10142.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10142.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10143.yaml b/ingestion_tools/dataset_configs/gjensen/10143.yaml index cbcc03d54..19ac84d50 100644 --- a/ingestion_tools/dataset_configs/gjensen/10143.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10143.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10144.yaml b/ingestion_tools/dataset_configs/gjensen/10144.yaml index d601e6e17..02b114291 100644 --- a/ingestion_tools/dataset_configs/gjensen/10144.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10144.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10145.yaml b/ingestion_tools/dataset_configs/gjensen/10145.yaml index b11b64a7a..898db3f15 100644 --- a/ingestion_tools/dataset_configs/gjensen/10145.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10145.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10146.yaml b/ingestion_tools/dataset_configs/gjensen/10146.yaml index 4ecc41b82..12a2f759a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10146.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10146.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10147.yaml b/ingestion_tools/dataset_configs/gjensen/10147.yaml index 5e1d590ea..0f881405a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10147.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10147.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10148.yaml b/ingestion_tools/dataset_configs/gjensen/10148.yaml index 60d64fdb3..95bd7c3cf 100644 --- a/ingestion_tools/dataset_configs/gjensen/10148.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10148.yaml @@ -108,6 +108,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10149.yaml b/ingestion_tools/dataset_configs/gjensen/10149.yaml index c7fefbfeb..3bd482d9a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10149.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10149.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10150.yaml b/ingestion_tools/dataset_configs/gjensen/10150.yaml index b631ce468..14eaa2387 100644 --- a/ingestion_tools/dataset_configs/gjensen/10150.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10150.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10151.yaml b/ingestion_tools/dataset_configs/gjensen/10151.yaml index 95a6094fe..7edfad304 100644 --- a/ingestion_tools/dataset_configs/gjensen/10151.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10151.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10152.yaml b/ingestion_tools/dataset_configs/gjensen/10152.yaml index a4e366894..00a096dd0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10152.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10152.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10153.yaml b/ingestion_tools/dataset_configs/gjensen/10153.yaml index 850fb1c3b..79a34aad8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10153.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10153.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10154.yaml b/ingestion_tools/dataset_configs/gjensen/10154.yaml index ed87b4594..5625c89ce 100644 --- a/ingestion_tools/dataset_configs/gjensen/10154.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10154.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10155.yaml b/ingestion_tools/dataset_configs/gjensen/10155.yaml index e21151be9..3323c49ee 100644 --- a/ingestion_tools/dataset_configs/gjensen/10155.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10155.yaml @@ -119,6 +119,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10156.yaml b/ingestion_tools/dataset_configs/gjensen/10156.yaml index b078d376a..44e766db6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10156.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10156.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10157.yaml b/ingestion_tools/dataset_configs/gjensen/10157.yaml index 871713626..c5c52fbe6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10157.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10157.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10158.yaml b/ingestion_tools/dataset_configs/gjensen/10158.yaml index 2aec7d505..6d6af3566 100644 --- a/ingestion_tools/dataset_configs/gjensen/10158.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10158.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10159.yaml b/ingestion_tools/dataset_configs/gjensen/10159.yaml index 04b599983..fa08b6f30 100644 --- a/ingestion_tools/dataset_configs/gjensen/10159.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10159.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10160.yaml b/ingestion_tools/dataset_configs/gjensen/10160.yaml index addd076ca..7fa456d95 100644 --- a/ingestion_tools/dataset_configs/gjensen/10160.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10160.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10161.yaml b/ingestion_tools/dataset_configs/gjensen/10161.yaml index 0f870e910..05ebefd11 100644 --- a/ingestion_tools/dataset_configs/gjensen/10161.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10161.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10162.yaml b/ingestion_tools/dataset_configs/gjensen/10162.yaml index b87ea069f..8b8ba08d6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10162.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10162.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10163.yaml b/ingestion_tools/dataset_configs/gjensen/10163.yaml index b3553cc6b..09e9518a1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10163.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10163.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10164.yaml b/ingestion_tools/dataset_configs/gjensen/10164.yaml index 7a2448eff..0ec78ea6c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10164.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10164.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10165.yaml b/ingestion_tools/dataset_configs/gjensen/10165.yaml index 37053b98f..c0f3178cc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10165.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10165.yaml @@ -119,6 +119,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10166.yaml b/ingestion_tools/dataset_configs/gjensen/10166.yaml index 6d07f6e0d..0190662d5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10166.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10166.yaml @@ -119,6 +119,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10167.yaml b/ingestion_tools/dataset_configs/gjensen/10167.yaml index 740c033f6..556abe994 100644 --- a/ingestion_tools/dataset_configs/gjensen/10167.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10167.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10168.yaml b/ingestion_tools/dataset_configs/gjensen/10168.yaml index 8de8dded5..e9656fea3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10168.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10168.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10169.yaml b/ingestion_tools/dataset_configs/gjensen/10169.yaml index cdcfa1f9b..502967540 100644 --- a/ingestion_tools/dataset_configs/gjensen/10169.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10169.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10170.yaml b/ingestion_tools/dataset_configs/gjensen/10170.yaml index f70cc3014..789022900 100644 --- a/ingestion_tools/dataset_configs/gjensen/10170.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10170.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10171.yaml b/ingestion_tools/dataset_configs/gjensen/10171.yaml index 038fa4371..c3e235ab0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10171.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10171.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10172.yaml b/ingestion_tools/dataset_configs/gjensen/10172.yaml index c20a5fd09..6aa1c47a1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10172.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10172.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10173.yaml b/ingestion_tools/dataset_configs/gjensen/10173.yaml index 249210ecc..f671ca3a1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10173.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10173.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10174.yaml b/ingestion_tools/dataset_configs/gjensen/10174.yaml index 6ed263d55..9be48ed0a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10174.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10174.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10175.yaml b/ingestion_tools/dataset_configs/gjensen/10175.yaml index 313d51cc4..f48a1e48e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10175.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10175.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10176.yaml b/ingestion_tools/dataset_configs/gjensen/10176.yaml index a28f2f133..f62cf2057 100644 --- a/ingestion_tools/dataset_configs/gjensen/10176.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10176.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10177.yaml b/ingestion_tools/dataset_configs/gjensen/10177.yaml index 775167062..88e6ad789 100644 --- a/ingestion_tools/dataset_configs/gjensen/10177.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10177.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10178.yaml b/ingestion_tools/dataset_configs/gjensen/10178.yaml index f71d73bf1..0b60cd78a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10178.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10178.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10179.yaml b/ingestion_tools/dataset_configs/gjensen/10179.yaml index 4e3041962..5e6aafd2e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10179.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10179.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10180.yaml b/ingestion_tools/dataset_configs/gjensen/10180.yaml index 044b63f61..4a53575cc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10180.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10180.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10181.yaml b/ingestion_tools/dataset_configs/gjensen/10181.yaml index 489fd2b22..fc2b6ffb0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10181.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10181.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10182.yaml b/ingestion_tools/dataset_configs/gjensen/10182.yaml index 69ad645bf..4e6d42e47 100644 --- a/ingestion_tools/dataset_configs/gjensen/10182.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10182.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10183.yaml b/ingestion_tools/dataset_configs/gjensen/10183.yaml index 96af66835..f90ff5693 100644 --- a/ingestion_tools/dataset_configs/gjensen/10183.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10183.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10184.yaml b/ingestion_tools/dataset_configs/gjensen/10184.yaml index 7ddc9228c..3dfde0fc5 100644 --- a/ingestion_tools/dataset_configs/gjensen/10184.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10184.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10185.yaml b/ingestion_tools/dataset_configs/gjensen/10185.yaml index 0f33736a9..95db85806 100644 --- a/ingestion_tools/dataset_configs/gjensen/10185.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10185.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10186.yaml b/ingestion_tools/dataset_configs/gjensen/10186.yaml index 0843ce32d..e0550e5a0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10186.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10186.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10187.yaml b/ingestion_tools/dataset_configs/gjensen/10187.yaml index d2b47ab5c..e2c260483 100644 --- a/ingestion_tools/dataset_configs/gjensen/10187.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10187.yaml @@ -120,6 +120,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10188.yaml b/ingestion_tools/dataset_configs/gjensen/10188.yaml index 51ec84b46..0e40f3d24 100644 --- a/ingestion_tools/dataset_configs/gjensen/10188.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10188.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10189.yaml b/ingestion_tools/dataset_configs/gjensen/10189.yaml index d1d09dd4b..104b23cd9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10189.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10189.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10190.yaml b/ingestion_tools/dataset_configs/gjensen/10190.yaml index 51bf469d5..909bd29d1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10190.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10190.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10191.yaml b/ingestion_tools/dataset_configs/gjensen/10191.yaml index 5819f6ae7..dd0b992b7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10191.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10191.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10192.yaml b/ingestion_tools/dataset_configs/gjensen/10192.yaml index bf762dfc3..195068bdf 100644 --- a/ingestion_tools/dataset_configs/gjensen/10192.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10192.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10193.yaml b/ingestion_tools/dataset_configs/gjensen/10193.yaml index 822367abf..befe6363e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10193.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10193.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10194.yaml b/ingestion_tools/dataset_configs/gjensen/10194.yaml index 4621b430c..16c62a475 100644 --- a/ingestion_tools/dataset_configs/gjensen/10194.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10194.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10195.yaml b/ingestion_tools/dataset_configs/gjensen/10195.yaml index ec1a99c49..102479079 100644 --- a/ingestion_tools/dataset_configs/gjensen/10195.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10195.yaml @@ -137,6 +137,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10196.yaml b/ingestion_tools/dataset_configs/gjensen/10196.yaml index d8acc5354..3d12aed04 100644 --- a/ingestion_tools/dataset_configs/gjensen/10196.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10196.yaml @@ -80,6 +80,23 @@ standardization_config: source_prefix: GJensen_full tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10197.yaml b/ingestion_tools/dataset_configs/gjensen/10197.yaml index dded40d83..d194cc71b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10197.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10197.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10198.yaml b/ingestion_tools/dataset_configs/gjensen/10198.yaml index e3621534e..7ed2e6e77 100644 --- a/ingestion_tools/dataset_configs/gjensen/10198.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10198.yaml @@ -108,6 +108,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10199.yaml b/ingestion_tools/dataset_configs/gjensen/10199.yaml index 6beb21708..6470ed682 100644 --- a/ingestion_tools/dataset_configs/gjensen/10199.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10199.yaml @@ -108,6 +108,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10200.yaml b/ingestion_tools/dataset_configs/gjensen/10200.yaml index 84108664b..a338097fd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10200.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10200.yaml @@ -108,6 +108,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10201.yaml b/ingestion_tools/dataset_configs/gjensen/10201.yaml index db66874c0..134efbfe3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10201.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10201.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10202.yaml b/ingestion_tools/dataset_configs/gjensen/10202.yaml index 7dabbb30f..51392bce8 100644 --- a/ingestion_tools/dataset_configs/gjensen/10202.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10202.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10203.yaml b/ingestion_tools/dataset_configs/gjensen/10203.yaml index 177e32201..ee1e5c141 100644 --- a/ingestion_tools/dataset_configs/gjensen/10203.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10203.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10204.yaml b/ingestion_tools/dataset_configs/gjensen/10204.yaml index 81889e056..0832d0dd6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10204.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10204.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10205.yaml b/ingestion_tools/dataset_configs/gjensen/10205.yaml index 16e7183bc..babb8e6eb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10205.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10205.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10206.yaml b/ingestion_tools/dataset_configs/gjensen/10206.yaml index 6dfec7f99..aa12f41cc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10206.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10206.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10207.yaml b/ingestion_tools/dataset_configs/gjensen/10207.yaml index 820a38e8f..846542cb3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10207.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10207.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10208.yaml b/ingestion_tools/dataset_configs/gjensen/10208.yaml index 8488b751b..653816212 100644 --- a/ingestion_tools/dataset_configs/gjensen/10208.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10208.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10209.yaml b/ingestion_tools/dataset_configs/gjensen/10209.yaml index e2c678f4f..96060cbe9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10209.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10209.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: true diff --git a/ingestion_tools/dataset_configs/gjensen/10210.yaml b/ingestion_tools/dataset_configs/gjensen/10210.yaml index a0f57af92..7ea27b446 100644 --- a/ingestion_tools/dataset_configs/gjensen/10210.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10210.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10211.yaml b/ingestion_tools/dataset_configs/gjensen/10211.yaml index 24987674e..7fb31c1d2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10211.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10211.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10212.yaml b/ingestion_tools/dataset_configs/gjensen/10212.yaml index 7813f1202..0cc19f9df 100644 --- a/ingestion_tools/dataset_configs/gjensen/10212.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10212.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10213.yaml b/ingestion_tools/dataset_configs/gjensen/10213.yaml index 1cd814fd4..1cc237bb0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10213.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10213.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10214.yaml b/ingestion_tools/dataset_configs/gjensen/10214.yaml index 131cc5ba7..2717bcd06 100644 --- a/ingestion_tools/dataset_configs/gjensen/10214.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10214.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10215.yaml b/ingestion_tools/dataset_configs/gjensen/10215.yaml index 9ebe7179c..24b15302d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10215.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10215.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10216.yaml b/ingestion_tools/dataset_configs/gjensen/10216.yaml index 87bc28b8e..ac8acf9fc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10216.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10216.yaml @@ -118,6 +118,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10217.yaml b/ingestion_tools/dataset_configs/gjensen/10217.yaml index 3504fbfa3..5b4b0edd3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10217.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10217.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10218.yaml b/ingestion_tools/dataset_configs/gjensen/10218.yaml index d1031031f..2f6889ea1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10218.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10218.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10219.yaml b/ingestion_tools/dataset_configs/gjensen/10219.yaml index 4b603e41b..0eaf7e4d6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10219.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10219.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10220.yaml b/ingestion_tools/dataset_configs/gjensen/10220.yaml index 03575686c..79c1026f0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10220.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10220.yaml @@ -119,6 +119,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10221.yaml b/ingestion_tools/dataset_configs/gjensen/10221.yaml index d5c6c3aa2..9b872f7ca 100644 --- a/ingestion_tools/dataset_configs/gjensen/10221.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10221.yaml @@ -119,6 +119,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10222.yaml b/ingestion_tools/dataset_configs/gjensen/10222.yaml index 79d2fa8aa..da3380c8c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10222.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10222.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10223.yaml b/ingestion_tools/dataset_configs/gjensen/10223.yaml index 283445668..e23e3a8d4 100644 --- a/ingestion_tools/dataset_configs/gjensen/10223.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10223.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: true diff --git a/ingestion_tools/dataset_configs/gjensen/10224.yaml b/ingestion_tools/dataset_configs/gjensen/10224.yaml index c639a4be2..9d026e697 100644 --- a/ingestion_tools/dataset_configs/gjensen/10224.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10224.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10225.yaml b/ingestion_tools/dataset_configs/gjensen/10225.yaml index 5aa01530d..43081eed9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10225.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10225.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10226.yaml b/ingestion_tools/dataset_configs/gjensen/10226.yaml index d526851f6..78c13096f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10226.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10226.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10227.yaml b/ingestion_tools/dataset_configs/gjensen/10227.yaml index 75a8d4c52..4249b54ac 100644 --- a/ingestion_tools/dataset_configs/gjensen/10227.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10227.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10228.yaml b/ingestion_tools/dataset_configs/gjensen/10228.yaml index c54f6bc9b..b89af3f07 100644 --- a/ingestion_tools/dataset_configs/gjensen/10228.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10228.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10229.yaml b/ingestion_tools/dataset_configs/gjensen/10229.yaml index 6c35c5962..eee68191d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10229.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10229.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10230.yaml b/ingestion_tools/dataset_configs/gjensen/10230.yaml index 557e43b54..2245063c2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10230.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10230.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10231.yaml b/ingestion_tools/dataset_configs/gjensen/10231.yaml index 2bc9bd97d..49892777a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10231.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10231.yaml @@ -119,6 +119,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10232.yaml b/ingestion_tools/dataset_configs/gjensen/10232.yaml index c946f2d1f..64e3fb09b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10232.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10232.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10233.yaml b/ingestion_tools/dataset_configs/gjensen/10233.yaml index 73d4c8ec3..f140ef1d0 100644 --- a/ingestion_tools/dataset_configs/gjensen/10233.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10233.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10234.yaml b/ingestion_tools/dataset_configs/gjensen/10234.yaml index 0d53dd67d..898698251 100644 --- a/ingestion_tools/dataset_configs/gjensen/10234.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10234.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10235.yaml b/ingestion_tools/dataset_configs/gjensen/10235.yaml index e4f451c53..7539b749f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10235.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10235.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10236.yaml b/ingestion_tools/dataset_configs/gjensen/10236.yaml index 44d108444..edf467fef 100644 --- a/ingestion_tools/dataset_configs/gjensen/10236.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10236.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10237.yaml b/ingestion_tools/dataset_configs/gjensen/10237.yaml index ea88f196a..5ad465f6e 100644 --- a/ingestion_tools/dataset_configs/gjensen/10237.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10237.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10238.yaml b/ingestion_tools/dataset_configs/gjensen/10238.yaml index 472e7cf90..055ced2f6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10238.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10238.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10239.yaml b/ingestion_tools/dataset_configs/gjensen/10239.yaml index e61ca874c..5de979b9b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10239.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10239.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10240.yaml b/ingestion_tools/dataset_configs/gjensen/10240.yaml index 4777ad264..92955ba13 100644 --- a/ingestion_tools/dataset_configs/gjensen/10240.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10240.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10241.yaml b/ingestion_tools/dataset_configs/gjensen/10241.yaml index 0c47d7bd9..b2bdf5380 100644 --- a/ingestion_tools/dataset_configs/gjensen/10241.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10241.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10242.yaml b/ingestion_tools/dataset_configs/gjensen/10242.yaml index 0a80aa46a..b70a0264f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10242.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10242.yaml @@ -73,6 +73,23 @@ standardization_config: source_prefix: GJensen_full tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: IMOD authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10243.yaml b/ingestion_tools/dataset_configs/gjensen/10243.yaml index 9a62b5d82..51e96f2bd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10243.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10243.yaml @@ -105,6 +105,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10244.yaml b/ingestion_tools/dataset_configs/gjensen/10244.yaml index 47da9e8ec..75791c4fb 100644 --- a/ingestion_tools/dataset_configs/gjensen/10244.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10244.yaml @@ -106,6 +106,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10245.yaml b/ingestion_tools/dataset_configs/gjensen/10245.yaml index 6f85935f3..c5a9ab188 100644 --- a/ingestion_tools/dataset_configs/gjensen/10245.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10245.yaml @@ -107,6 +107,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10246.yaml b/ingestion_tools/dataset_configs/gjensen/10246.yaml index 1b2e23663..3be20c794 100644 --- a/ingestion_tools/dataset_configs/gjensen/10246.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10246.yaml @@ -115,6 +115,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10247.yaml b/ingestion_tools/dataset_configs/gjensen/10247.yaml index e0aec3139..ee4d6c044 100644 --- a/ingestion_tools/dataset_configs/gjensen/10247.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10247.yaml @@ -116,6 +116,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10248.yaml b/ingestion_tools/dataset_configs/gjensen/10248.yaml index 1b77ad033..0e2e3b8e2 100644 --- a/ingestion_tools/dataset_configs/gjensen/10248.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10248.yaml @@ -117,6 +117,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10249.yaml b/ingestion_tools/dataset_configs/gjensen/10249.yaml index 7be46387c..2b6cff96b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10249.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10249.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10250.yaml b/ingestion_tools/dataset_configs/gjensen/10250.yaml index c3b62f81b..db5df8582 100644 --- a/ingestion_tools/dataset_configs/gjensen/10250.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10250.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10251.yaml b/ingestion_tools/dataset_configs/gjensen/10251.yaml index 217f09366..b22a7a4f9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10251.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10251.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10252.yaml b/ingestion_tools/dataset_configs/gjensen/10252.yaml index 796133eca..5923c0cb6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10252.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10252.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10253.yaml b/ingestion_tools/dataset_configs/gjensen/10253.yaml index 690278b76..6df515756 100644 --- a/ingestion_tools/dataset_configs/gjensen/10253.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10253.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10254.yaml b/ingestion_tools/dataset_configs/gjensen/10254.yaml index 9708fa3b1..4d8e6413c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10254.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10254.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10255.yaml b/ingestion_tools/dataset_configs/gjensen/10255.yaml index 67bbc4a8c..507747a31 100644 --- a/ingestion_tools/dataset_configs/gjensen/10255.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10255.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10256.yaml b/ingestion_tools/dataset_configs/gjensen/10256.yaml index 45274d295..26f940251 100644 --- a/ingestion_tools/dataset_configs/gjensen/10256.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10256.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10257.yaml b/ingestion_tools/dataset_configs/gjensen/10257.yaml index 95d670644..161e7041d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10257.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10257.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10258.yaml b/ingestion_tools/dataset_configs/gjensen/10258.yaml index ad2cf051e..3744dfbed 100644 --- a/ingestion_tools/dataset_configs/gjensen/10258.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10258.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10259.yaml b/ingestion_tools/dataset_configs/gjensen/10259.yaml index c5d9f76d7..7ef0644b6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10259.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10259.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10260.yaml b/ingestion_tools/dataset_configs/gjensen/10260.yaml index f5ec0c192..34be4de74 100644 --- a/ingestion_tools/dataset_configs/gjensen/10260.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10260.yaml @@ -107,6 +107,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10261.yaml b/ingestion_tools/dataset_configs/gjensen/10261.yaml index 2603b9466..1c821196b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10261.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10261.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10262.yaml b/ingestion_tools/dataset_configs/gjensen/10262.yaml index dba22f5b4..c7052f736 100644 --- a/ingestion_tools/dataset_configs/gjensen/10262.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10262.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10263.yaml b/ingestion_tools/dataset_configs/gjensen/10263.yaml index 00414b94d..dbee90a5d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10263.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10263.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10264.yaml b/ingestion_tools/dataset_configs/gjensen/10264.yaml index 22ee067b6..c959bf239 100644 --- a/ingestion_tools/dataset_configs/gjensen/10264.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10264.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10265.yaml b/ingestion_tools/dataset_configs/gjensen/10265.yaml index 44b891264..3e9538c58 100644 --- a/ingestion_tools/dataset_configs/gjensen/10265.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10265.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10266.yaml b/ingestion_tools/dataset_configs/gjensen/10266.yaml index ae1a26298..8e828c611 100644 --- a/ingestion_tools/dataset_configs/gjensen/10266.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10266.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10267.yaml b/ingestion_tools/dataset_configs/gjensen/10267.yaml index c60e5d6ce..cf90f30bc 100644 --- a/ingestion_tools/dataset_configs/gjensen/10267.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10267.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10268.yaml b/ingestion_tools/dataset_configs/gjensen/10268.yaml index b54094245..88365e920 100644 --- a/ingestion_tools/dataset_configs/gjensen/10268.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10268.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10269.yaml b/ingestion_tools/dataset_configs/gjensen/10269.yaml index e15fd3673..169ffc139 100644 --- a/ingestion_tools/dataset_configs/gjensen/10269.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10269.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10270.yaml b/ingestion_tools/dataset_configs/gjensen/10270.yaml index 328d1406f..a91a16f49 100644 --- a/ingestion_tools/dataset_configs/gjensen/10270.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10270.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10271.yaml b/ingestion_tools/dataset_configs/gjensen/10271.yaml index 1615d31fa..daa347caa 100644 --- a/ingestion_tools/dataset_configs/gjensen/10271.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10271.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10272.yaml b/ingestion_tools/dataset_configs/gjensen/10272.yaml index ab1e16650..6cb76e3d9 100644 --- a/ingestion_tools/dataset_configs/gjensen/10272.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10272.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10273.yaml b/ingestion_tools/dataset_configs/gjensen/10273.yaml index f3f03e1cf..04560fbd6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10273.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10273.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10274.yaml b/ingestion_tools/dataset_configs/gjensen/10274.yaml index 696a9c435..be6ff90f7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10274.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10274.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10275.yaml b/ingestion_tools/dataset_configs/gjensen/10275.yaml index 1f4cef141..13eb8596f 100644 --- a/ingestion_tools/dataset_configs/gjensen/10275.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10275.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10276.yaml b/ingestion_tools/dataset_configs/gjensen/10276.yaml index d496f7c42..94dfbd0ce 100644 --- a/ingestion_tools/dataset_configs/gjensen/10276.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10276.yaml @@ -114,6 +114,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10277.yaml b/ingestion_tools/dataset_configs/gjensen/10277.yaml index 3c1ef60f3..8f2b2681a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10277.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10277.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10278.yaml b/ingestion_tools/dataset_configs/gjensen/10278.yaml index 71ca7274c..7ccaf893d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10278.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10278.yaml @@ -105,6 +105,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10279.yaml b/ingestion_tools/dataset_configs/gjensen/10279.yaml index dd7f731e2..cc91b2f33 100644 --- a/ingestion_tools/dataset_configs/gjensen/10279.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10279.yaml @@ -106,6 +106,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10280.yaml b/ingestion_tools/dataset_configs/gjensen/10280.yaml index 745aa64b4..ada7556e6 100644 --- a/ingestion_tools/dataset_configs/gjensen/10280.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10280.yaml @@ -106,6 +106,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10281.yaml b/ingestion_tools/dataset_configs/gjensen/10281.yaml index c3566ed2d..2b8f56ff1 100644 --- a/ingestion_tools/dataset_configs/gjensen/10281.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10281.yaml @@ -107,6 +107,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10282.yaml b/ingestion_tools/dataset_configs/gjensen/10282.yaml index 916b55cd9..d77fdc93c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10282.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10282.yaml @@ -108,6 +108,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10283.yaml b/ingestion_tools/dataset_configs/gjensen/10283.yaml index f23508676..f17f8da37 100644 --- a/ingestion_tools/dataset_configs/gjensen/10283.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10283.yaml @@ -108,6 +108,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10284.yaml b/ingestion_tools/dataset_configs/gjensen/10284.yaml index aeb6081d1..0f6000e1d 100644 --- a/ingestion_tools/dataset_configs/gjensen/10284.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10284.yaml @@ -107,6 +107,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10285.yaml b/ingestion_tools/dataset_configs/gjensen/10285.yaml index 348edd6a1..2c2f40be7 100644 --- a/ingestion_tools/dataset_configs/gjensen/10285.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10285.yaml @@ -106,6 +106,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10286.yaml b/ingestion_tools/dataset_configs/gjensen/10286.yaml index 8ee91b1b5..db8d00763 100644 --- a/ingestion_tools/dataset_configs/gjensen/10286.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10286.yaml @@ -107,6 +107,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10287.yaml b/ingestion_tools/dataset_configs/gjensen/10287.yaml index 7e34f7716..127e16d03 100644 --- a/ingestion_tools/dataset_configs/gjensen/10287.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10287.yaml @@ -110,6 +110,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10288.yaml b/ingestion_tools/dataset_configs/gjensen/10288.yaml index 276eaba40..6baee9002 100644 --- a/ingestion_tools/dataset_configs/gjensen/10288.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10288.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10289.yaml b/ingestion_tools/dataset_configs/gjensen/10289.yaml index 6c0e4e593..2e3cfdd8a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10289.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10289.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10290.yaml b/ingestion_tools/dataset_configs/gjensen/10290.yaml index dd511b234..d922b6f1a 100644 --- a/ingestion_tools/dataset_configs/gjensen/10290.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10290.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10291.yaml b/ingestion_tools/dataset_configs/gjensen/10291.yaml index bae4076a6..5a007992b 100644 --- a/ingestion_tools/dataset_configs/gjensen/10291.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10291.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10292.yaml b/ingestion_tools/dataset_configs/gjensen/10292.yaml index 7e81df05f..a860adc41 100644 --- a/ingestion_tools/dataset_configs/gjensen/10292.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10292.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10293.yaml b/ingestion_tools/dataset_configs/gjensen/10293.yaml index e6b118e14..54739dcbd 100644 --- a/ingestion_tools/dataset_configs/gjensen/10293.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10293.yaml @@ -113,6 +113,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10294.yaml b/ingestion_tools/dataset_configs/gjensen/10294.yaml index f995adbb7..541f78468 100644 --- a/ingestion_tools/dataset_configs/gjensen/10294.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10294.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10295.yaml b/ingestion_tools/dataset_configs/gjensen/10295.yaml index 4c3807aff..7c200fe71 100644 --- a/ingestion_tools/dataset_configs/gjensen/10295.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10295.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: '{tomo-align_software}' authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10296.yaml b/ingestion_tools/dataset_configs/gjensen/10296.yaml index 2ee7a23f5..3491abc1c 100644 --- a/ingestion_tools/dataset_configs/gjensen/10296.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10296.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10297.yaml b/ingestion_tools/dataset_configs/gjensen/10297.yaml index 244d9307e..c1654f705 100644 --- a/ingestion_tools/dataset_configs/gjensen/10297.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10297.yaml @@ -112,6 +112,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10298.yaml b/ingestion_tools/dataset_configs/gjensen/10298.yaml index 35cb37bc5..2c9d77d44 100644 --- a/ingestion_tools/dataset_configs/gjensen/10298.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10298.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10299.yaml b/ingestion_tools/dataset_configs/gjensen/10299.yaml index 15643bdd2..454fdbbf3 100644 --- a/ingestion_tools/dataset_configs/gjensen/10299.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10299.yaml @@ -111,6 +111,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/ingestion_tools/dataset_configs/gjensen/10300.yaml b/ingestion_tools/dataset_configs/gjensen/10300.yaml index 1ac5d2e05..ed4377491 100644 --- a/ingestion_tools/dataset_configs/gjensen/10300.yaml +++ b/ingestion_tools/dataset_configs/gjensen/10300.yaml @@ -109,6 +109,23 @@ tiltseries: match_regex: .*/rawdata/[^\._].*\.(mrc|st|ali)$ tomograms: - metadata: + affine_transformation_matrix: + - - 1 + - 0 + - 0 + - 0 + - - 0 + - 1 + - 0 + - 0 + - - 0 + - 0 + - 1 + - 0 + - - 0 + - 0 + - 0 + - 1 align_software: RAPTOR authors: *id001 ctf_corrected: null diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index c4ce717cc..0dd10c191 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -98,8 +98,8 @@ def update_tomogram_metadata(config: dict) -> None: "release_date": '1970-01-01'} metadata["dates"] = dates affine_transformation_matrix = metadata.get("affine_transformation_matrix", None) - if affine_transformation_matrix and np.allclose(affine_transformation_matrix, np.eye(4)): - metadata.pop("affine_transformation_matrix") + if not affine_transformation_matrix: + metadata["affine_transformation_matrix"] = np.eye(4, dtype=int).tolist() def update_annotation_sources(config: dict) -> None: From 465893c2813f2e391d86249b3dcb2637e9e75890 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 20 Sep 2024 17:42:33 -0700 Subject: [PATCH 38/59] remove voxel spacing from parent filter of alignment --- schema/ingestion_config/v1.0.0/ingestion_config_models.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml index c8a40e690..a337d2570 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml @@ -243,7 +243,6 @@ classes: - deposition - run - tomogram - - voxel_spacing AnnotationEntity: description: An annotation entity. From 54c811fca6a813a889172907750a83e8feb220f4 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 20 Sep 2024 17:50:54 -0700 Subject: [PATCH 39/59] lock the verison of linkml and regenerate files --- .../v1.1.0/codegen/metadata_materialized.yaml | 19 + schema/core/v1.1.0/codegen/metadata_models.py | 4787 ++++++++++++ .../v1.0.0/codegen/ingestion_config_models.py | 6668 +++++++++++++++++ .../ingestion_config_models.schema.json | 5372 +++++++++++++ .../ingestion_config_models_materialized.yaml | 21 - schema/requirements.txt | 2 +- 6 files changed, 16847 insertions(+), 22 deletions(-) create mode 100644 schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py create mode 100644 schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index c2bad2515..21597ee26 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -2553,6 +2553,24 @@ classes: required: true inlined: true inlined_as_list: true + affine_transformation_matrix: + name: affine_transformation_matrix + description: The flip or rotation transformation of this author submitted + tomogram is indicated here + from_schema: metadata + array: + exact_number_dimensions: 2 + dimensions: + - exact_cardinality: 4 + - exact_cardinality: 4 + alias: affine_transformation_matrix + owner: Tomogram + domain_of: + - Tomogram + - Alignment + range: float + inlined: true + inlined_as_list: true size: name: size description: The size of a tomogram in voxels in each dimension. @@ -4143,6 +4161,7 @@ classes: alias: affine_transformation_matrix owner: Alignment domain_of: + - Tomogram - Alignment range: float inlined: true diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index e69de29bb..21f31b12a 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -0,0 +1,4787 @@ +from __future__ import annotations +from datetime import datetime, date +from decimal import Decimal +from enum import Enum +import re +import sys +from typing import Any, ClassVar, List, Literal, Dict, Optional, Union +from pydantic import BaseModel, ConfigDict, Field, RootModel, field_validator, conlist + +metamodel_version = "None" +version = "1.1.0" + + +class ConfiguredBaseModel(BaseModel): + model_config = ConfigDict( + validate_assignment=True, + validate_default=True, + extra="forbid", + arbitrary_types_allowed=True, + use_enum_values=True, + strict=False, + ) + pass + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key: str): + return getattr(self.root, key) + + def __getitem__(self, key: str): + return self.root[key] + + def __setitem__(self, key: str, value): + self.root[key] = value + + def __contains__(self, key: str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta( + { + "default_prefix": "cdp-meta", + "default_range": "Any", + "id": "metadata", + "imports": ["linkml:types"], + "name": "cdp-meta", + "prefixes": { + "CL": {"prefix_prefix": "CL", "prefix_reference": "http://purl.obolibrary.org/obo/CL_"}, + "GO": {"prefix_prefix": "GO", "prefix_reference": "http://purl.obolibrary.org/obo/GO_"}, + "ORCID": {"prefix_prefix": "ORCID", "prefix_reference": "https://orcid.org/"}, + "ROR": {"prefix_prefix": "ROR", "prefix_reference": "https://ror.org/"}, + "UBERON": {"prefix_prefix": "UBERON", "prefix_reference": "http://purl.obolibrary.org/obo/UBERON_"}, + "cdp-meta": {"prefix_prefix": "cdp-meta", "prefix_reference": "metadata"}, + "linkml": {"prefix_prefix": "linkml", "prefix_reference": "https://w3id.org/linkml/"}, + }, + "source_file": "core/v1.1.0/codegen/metadata_materialized.yaml", + "types": { + "BTO_ID": { + "base": "str", + "description": "A BRENDA Tissue Ontology identifier", + "from_schema": "metadata", + "name": "BTO_ID", + "pattern": "^BTO:[0-9]{7}$", + }, + "CL_ID": { + "base": "str", + "description": "A Cell Ontology identifier", + "from_schema": "metadata", + "name": "CL_ID", + "pattern": "^CL:[0-9]{7}$", + }, + "DOI": { + "base": "str", + "description": "A Digital Object Identifier", + "from_schema": "metadata", + "name": "DOI", + "pattern": "^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+$", + }, + "DOI_LIST": { + "base": "str", + "description": "A list of Digital Object Identifiers", + "from_schema": "metadata", + "name": "DOI_LIST", + "pattern": "^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$", + }, + "EMDB_ID": { + "base": "str", + "description": "An Electron Microscopy Data Bank " "identifier", + "from_schema": "metadata", + "name": "EMDB_ID", + "pattern": "^EMD-[0-9]{4,5}$", + }, + "EMPIAR_EMDB_DOI_PDB_LIST": { + "base": "str", + "description": "A list of EMPIAR, " "EMDB, DOI, and PDB " "identifiers", + "from_schema": "metadata", + "name": "EMPIAR_EMDB_DOI_PDB_LIST", + "pattern": "^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$", + }, + "EMPIAR_EMDB_PDB_LIST": { + "base": "str", + "description": "A list of EMPIAR, EMDB, " "and PDB identifiers", + "from_schema": "metadata", + "name": "EMPIAR_EMDB_PDB_LIST", + "pattern": "^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$", + }, + "EMPIAR_ID": { + "base": "str", + "description": "An Electron Microscopy Public Image " "Archive identifier", + "from_schema": "metadata", + "name": "EMPIAR_ID", + "pattern": "^EMPIAR-[0-9]+$", + }, + "FloatFormattedString": { + "base": "str", + "description": "A formatted string that " "represents a floating " "point number.", + "from_schema": "metadata", + "name": "FloatFormattedString", + "pattern": "^float[ " "]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + }, + "GO_ID": { + "base": "str", + "description": "A Gene Ontology identifier", + "from_schema": "metadata", + "name": "GO_ID", + "pattern": "^GO:[0-9]{7}$", + }, + "IntegerFormattedString": { + "base": "str", + "description": "A formatted string that " "represents an integer.", + "from_schema": "metadata", + "name": "IntegerFormattedString", + "pattern": "^int[ " "]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + }, + "ONTOLOGY_ID": { + "base": "str", + "description": "An ontology identifier", + "from_schema": "metadata", + "name": "ONTOLOGY_ID", + "pattern": "^[a-zA-Z]+:[0-9]+$", + }, + "ORCID": { + "base": "str", + "description": "A unique, persistent identifier for " "researchers, provided by ORCID.", + "from_schema": "metadata", + "name": "ORCID", + "pattern": "[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$", + }, + "PDB_ID": { + "base": "str", + "description": "A Protein Data Bank identifier", + "from_schema": "metadata", + "name": "PDB_ID", + "pattern": "^PDB-[0-9a-zA-Z]{4,8}$", + }, + "StringFormattedString": { + "base": "str", + "description": "A formatted string " "(variable) that " "represents a string.", + "from_schema": "metadata", + "name": "StringFormattedString", + "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ " "]*$", + }, + "UNIPROT_ID": { + "base": "str", + "description": "A UniProt identifier", + "from_schema": "metadata", + "name": "UNIPROT_ID", + "pattern": "^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$", + }, + "URLorS3URI": { + "base": "str", + "description": "A URL or S3 URI", + "from_schema": "metadata", + "name": "URLorS3URI", + "pattern": "^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$", + }, + "VersionString": { + "base": "float", + "description": "A version number (only major, " "minor versions)", + "from_schema": "metadata", + "minimum_value": 0, + "name": "VersionString", + }, + "WORMBASE_ID": { + "base": "str", + "description": "A WormBase identifier", + "from_schema": "metadata", + "name": "WORMBASE_ID", + "pattern": "WBStrain[0-9]{8}$", + }, + "boolean": { + "base": "Bool", + "description": "A binary (true or false) value", + "exact_mappings": ["schema:Boolean"], + "from_schema": "metadata", + "name": "boolean", + "notes": [ + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"boolean".' + ], + "repr": "bool", + "uri": "xsd:boolean", + }, + "curie": { + "base": "Curie", + "comments": [ + "in RDF serializations this MUST be expanded " "to a URI", + "in non-RDF serializations MAY be serialized " "as the compact representation", + ], + "conforms_to": "https://www.w3.org/TR/curie/", + "description": "a compact URI", + "from_schema": "metadata", + "name": "curie", + "notes": [ + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"curie".' + ], + "repr": "str", + "uri": "xsd:string", + }, + "date": { + "base": "XSDDate", + "description": "a date (year, month and day) in an " "idealized calendar", + "exact_mappings": ["schema:Date"], + "from_schema": "metadata", + "name": "date", + "notes": [ + "URI is dateTime because OWL reasoners don't " "work with straight date or time", + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"date".', + ], + "repr": "str", + "uri": "xsd:date", + }, + "date_or_datetime": { + "base": "str", + "description": "Either a date or a datetime", + "from_schema": "metadata", + "name": "date_or_datetime", + "notes": [ + "If you are authoring schemas in " + "LinkML YAML, the type is referenced " + "with the lower case " + '"date_or_datetime".' + ], + "repr": "str", + "uri": "linkml:DateOrDatetime", + }, + "datetime": { + "base": "XSDDateTime", + "description": "The combination of a date and time", + "exact_mappings": ["schema:DateTime"], + "from_schema": "metadata", + "name": "datetime", + "notes": [ + "If you are authoring schemas in LinkML " + "YAML, the type is referenced with the lower " + 'case "datetime".' + ], + "repr": "str", + "uri": "xsd:dateTime", + }, + "decimal": { + "base": "Decimal", + "broad_mappings": ["schema:Number"], + "description": "A real number with arbitrary precision " + "that conforms to the xsd:decimal " + "specification", + "from_schema": "metadata", + "name": "decimal", + "notes": [ + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"decimal".' + ], + "uri": "xsd:decimal", + }, + "double": { + "base": "float", + "close_mappings": ["schema:Float"], + "description": "A real number that conforms to the " "xsd:double specification", + "from_schema": "metadata", + "name": "double", + "notes": [ + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"double".' + ], + "uri": "xsd:double", + }, + "float": { + "base": "float", + "description": "A real number that conforms to the " "xsd:float specification", + "exact_mappings": ["schema:Float"], + "from_schema": "metadata", + "name": "float", + "notes": [ + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"float".' + ], + "uri": "xsd:float", + }, + "integer": { + "base": "int", + "description": "An integer", + "exact_mappings": ["schema:Integer"], + "from_schema": "metadata", + "name": "integer", + "notes": [ + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"integer".' + ], + "uri": "xsd:integer", + }, + "jsonpath": { + "base": "str", + "conforms_to": "https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html", + "description": "A string encoding a JSON Path. The " + "value of the string MUST conform to " + "JSON Point syntax and SHOULD " + "dereference to zero or more valid " + "objects within the current instance " + "document when encoded in tree form.", + "from_schema": "metadata", + "name": "jsonpath", + "notes": [ + "If you are authoring schemas in LinkML " + "YAML, the type is referenced with the lower " + 'case "jsonpath".' + ], + "repr": "str", + "uri": "xsd:string", + }, + "jsonpointer": { + "base": "str", + "conforms_to": "https://datatracker.ietf.org/doc/html/rfc6901", + "description": "A string encoding a JSON Pointer. " + "The value of the string MUST " + "conform to JSON Point syntax and " + "SHOULD dereference to a valid " + "object within the current instance " + "document when encoded in tree form.", + "from_schema": "metadata", + "name": "jsonpointer", + "notes": [ + "If you are authoring schemas in LinkML " + "YAML, the type is referenced with the " + 'lower case "jsonpointer".' + ], + "repr": "str", + "uri": "xsd:string", + }, + "ncname": { + "base": "NCName", + "description": "Prefix part of CURIE", + "from_schema": "metadata", + "name": "ncname", + "notes": [ + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"ncname".' + ], + "repr": "str", + "uri": "xsd:string", + }, + "nodeidentifier": { + "base": "NodeIdentifier", + "description": "A URI, CURIE or BNODE that " "represents a node in a model.", + "from_schema": "metadata", + "name": "nodeidentifier", + "notes": [ + "If you are authoring schemas in " + "LinkML YAML, the type is referenced " + "with the lower case " + '"nodeidentifier".' + ], + "repr": "str", + "uri": "shex:nonLiteral", + }, + "objectidentifier": { + "base": "ElementIdentifier", + "comments": ["Used for inheritance and type " "checking"], + "description": "A URI or CURIE that represents " "an object in the model.", + "from_schema": "metadata", + "name": "objectidentifier", + "notes": [ + "If you are authoring schemas in " + "LinkML YAML, the type is referenced " + "with the lower case " + '"objectidentifier".' + ], + "repr": "str", + "uri": "shex:iri", + }, + "sparqlpath": { + "base": "str", + "conforms_to": "https://www.w3.org/TR/sparql11-query/#propertypaths", + "description": "A string encoding a SPARQL Property " + "Path. The value of the string MUST " + "conform to SPARQL syntax and SHOULD " + "dereference to zero or more valid " + "objects within the current instance " + "document when encoded as RDF.", + "from_schema": "metadata", + "name": "sparqlpath", + "notes": [ + "If you are authoring schemas in LinkML " + "YAML, the type is referenced with the " + 'lower case "sparqlpath".' + ], + "repr": "str", + "uri": "xsd:string", + }, + "string": { + "base": "str", + "description": "A character string", + "exact_mappings": ["schema:Text"], + "from_schema": "metadata", + "name": "string", + "notes": [ + "In RDF serializations, a slot with range of " + "string is treated as a literal or type " + "xsd:string. If you are authoring schemas in " + "LinkML YAML, the type is referenced with the " + 'lower case "string".' + ], + "uri": "xsd:string", + }, + "time": { + "base": "XSDTime", + "description": "A time object represents a (local) time of " "day, independent of any particular day", + "exact_mappings": ["schema:Time"], + "from_schema": "metadata", + "name": "time", + "notes": [ + "URI is dateTime because OWL reasoners do not " "work with straight date or time", + "If you are authoring schemas in LinkML YAML, " + "the type is referenced with the lower case " + '"time".', + ], + "repr": "str", + "uri": "xsd:time", + }, + "uri": { + "base": "URI", + "close_mappings": ["schema:URL"], + "comments": [ + "in RDF serializations a slot with range of " + "uri is treated as a literal or type " + "xsd:anyURI unless it is an identifier or a " + "reference to an identifier, in which case it " + "is translated directly to a node" + ], + "conforms_to": "https://www.ietf.org/rfc/rfc3987.txt", + "description": "a complete URI", + "from_schema": "metadata", + "name": "uri", + "notes": [ + "If you are authoring schemas in LinkML YAML, the " 'type is referenced with the lower case "uri".' + ], + "repr": "str", + "uri": "xsd:anyURI", + }, + "uriorcurie": { + "base": "URIorCURIE", + "description": "a URI or a CURIE", + "from_schema": "metadata", + "name": "uriorcurie", + "notes": [ + "If you are authoring schemas in LinkML " + "YAML, the type is referenced with the " + 'lower case "uriorcurie".' + ], + "repr": "str", + "uri": "xsd:anyURI", + }, + }, + } +) + + +class AlignmentTypeEnum(str, Enum): + """ + Type of alignment + """ + + # Local alignment + LOCAL = "LOCAL" + # Global alignment + GLOBAL = "GLOBAL" + + +class AlignmentFormatEnum(str, Enum): + """ + Used to determine what alignment alogrithm to use. + """ + + # formats (xf, tlt, com) + IMOD = "IMOD" + # formats (aln) + ARETOMO3 = "ARETOMO3" + + +class AnnotationMethodTypeEnum(str, Enum): + """ + Describes how the annotations were generated. + """ + + # Annotations were generated manually. + manual = "manual" + # Annotations were generated using automated tools or algorithms without supervision. + automated = "automated" + # Annotations were generated using a combination of automated and manual methods. + hybrid = "hybrid" + # Annotations were generated by simulation tools or algorithms. + simulated = "simulated" + + +class AnnotationFileShapeTypeEnum(str, Enum): + """ + Describes the shape of the annotation + """ + + # A binary mask volume + SegmentationMask = "SegmentationMask" + # A series of coordinates and an orientation + OrientedPoint = "OrientedPoint" + # A series of coordinates + Point = "Point" + # A volume with labels for multiple instances + InstanceSegmentation = "InstanceSegmentation" + # A mesh of triangles + TriangularMesh = "TriangularMesh" + # A group of triangular meshes + TriangularMeshGroup = "TriangularMeshGroup" + + +class AnnotationMethodLinkTypeEnum(str, Enum): + """ + Describes the type of link associated to the annotation method. + """ + + # Links to the documentation related to the method. + documentation = "documentation" + # Links to the weights that the models used for generating annotations were trained with. + models_weights = "models_weights" + # Link to resources that does not fit in the other categories. + other = "other" + # Links to the source code of the method. + source_code = "source_code" + # Links to a website of the method or tool used to generate the annotation. + website = "website" + + +class DepositionTypesEnum(str, Enum): + """ + Types of data a deposition has + """ + + # The deposition comprises of new annotations for existing datasets + annotation = "annotation" + # The deposition comprises of new dataset(s). + dataset = "dataset" + # The deposition comprises of new tomograms for existing datasets + tomogram = "tomogram" + + +class SampleTypeEnum(str, Enum): + """ + Type of sample imaged in a CryoET study. + """ + + # Tomographic data of whole cells or cell sections. + cell = "cell" + # Tomographic data of tissue sections. + tissue = "tissue" + # Tomographic data of sections through multicellular organisms. + organism = "organism" + # Tomographic data of purified organelles. + organelle = "organelle" + # Tomographic data of purified viruses or VLPs. + virus = "virus" + # Tomographic data of in vitro reconstituted systems or mixtures of proteins. + in_vitro = "in_vitro" + # Simulated tomographic data. + in_silico = "in_silico" + # Other type of sample. + other = "other" + + +class TiltseriesCameraAcquireModeEnum(str, Enum): + """ + Camera acquisition mode + """ + + # Counting mode + counting = "counting" + # Super-resolution mode + superresolution = "superresolution" + # Linear mode + linear = "linear" + # Correlated double sampling mode + cds = "cds" + + +class TiltseriesMicroscopeManufacturerEnum(str, Enum): + """ + Microscope manufacturer + """ + + # FEI Company + FEI = "FEI" + # Thermo Fisher Scientific + TFS = "TFS" + # JEOL Ltd. + JEOL = "JEOL" + # Simulated data + SIMULATED = "SIMULATED" + + +class FiducialAlignmentStatusEnum(str, Enum): + """ + Fiducial Alignment method + """ + + # Alignment computed based on fiducial markers + FIDUCIAL = "FIDUCIAL" + # Alignment computed without fiducial markers + NON_FIDUCIAL = "NON_FIDUCIAL" + + +class TomogramProcessingEnum(str, Enum): + """ + Tomogram processing method + """ + + # Tomogram was denoised + denoised = "denoised" + # Tomogram was filtered + filtered = "filtered" + # Tomogram was not processed + raw = "raw" + + +class TomogramReconstructionMethodEnum(str, Enum): + """ + Tomogram reconstruction method + """ + + # Simultaneous Algebraic Reconstruction Technique + SART = "SART" + # Fourier space reconstruction + Fourier_Space = "Fourier Space" + # Simultaneous Iterative Reconstruction Technique + SIRT = "SIRT" + # Weighted Back-Projection + WBP = "WBP" + # Unknown reconstruction method + Unknown = "Unknown" + + +class TomogramTypeEnum(str, Enum): + """ + Tomogram type + """ + + # Canonical tomogram (basis geometry for all annotations) + CANONICAL = "CANONICAL" + + +class PicturePath(ConfiguredBaseModel): + """ + A set of paths to representative images of a piece of data. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + snapshot: Optional[str] = Field( + None, + description="""Path to the dataset preview image relative to the dataset directory root.""", + json_schema_extra={ + "linkml_meta": { + "alias": "snapshot", + "domain_of": ["PicturePath"], + "exact_mappings": ["cdp-common:snapshot"], + "recommended": True, + } + }, + ) + thumbnail: Optional[str] = Field( + None, + description="""Path to the thumbnail of preview image relative to the dataset directory root.""", + json_schema_extra={ + "linkml_meta": { + "alias": "thumbnail", + "domain_of": ["PicturePath"], + "exact_mappings": ["cdp-common:thumbnail"], + "recommended": True, + } + }, + ) + + @field_validator("snapshot") + def pattern_snapshot(cls, v): + pattern = re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid snapshot format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid snapshot format: {v}") + return v + + @field_validator("thumbnail") + def pattern_thumbnail(cls, v): + pattern = re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid thumbnail format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid thumbnail format: {v}") + return v + + +class FundingDetails(ConfiguredBaseModel): + """ + A funding source for a scientific data entity (base for JSON and DB representation). + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + funding_agency_name: Optional[str] = Field( + None, + description="""The name of the funding source.""", + json_schema_extra={ + "linkml_meta": { + "alias": "funding_agency_name", + "domain_of": ["FundingDetails"], + "exact_mappings": ["cdp-common:funding_agency_name"], + "recommended": True, + } + }, + ) + grant_id: Optional[str] = Field( + None, + description="""Grant identifier provided by the funding agency""", + json_schema_extra={ + "linkml_meta": { + "alias": "grant_id", + "domain_of": ["FundingDetails"], + "exact_mappings": ["cdp-common:funding_grant_id"], + "recommended": True, + } + }, + ) + + +class DateStampedEntity(ConfiguredBaseModel): + """ + An entity with associated deposition, release and last modified dates. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + dates: DateStamp = Field( + ..., + description="""A set of dates at which a data item was deposited, published and last modified.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } + }, + ) + + +class AuthoredEntity(ConfiguredBaseModel): + """ + An entity with associated authors. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + authors: List[Author] = Field( + ..., + description="""Author of a scientific data entity.""", + min_length=1, + json_schema_extra={ + "linkml_meta": { + "alias": "authors", + "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], + "list_elements_ordered": True, + } + }, + ) + + +class FundedEntity(ConfiguredBaseModel): + """ + An entity with associated funding sources. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + funding: Optional[List[FundingDetails]] = Field( + None, + description="""A funding source for a scientific data entity (base for JSON and DB representation).""", + json_schema_extra={ + "linkml_meta": { + "alias": "funding", + "domain_of": ["FundedEntity", "Dataset"], + "list_elements_ordered": True, + "recommended": True, + } + }, + ) + + +class CrossReferencedEntity(ConfiguredBaseModel): + """ + An entity with associated cross-references to other databases and publications. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) + + cross_references: Optional[CrossReferences] = Field( + None, + description="""A set of cross-references to other databases and publications.""", + json_schema_extra={ + "linkml_meta": { + "alias": "cross_references", + "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], + } + }, + ) + + +class PicturedEntity(ConfiguredBaseModel): + """ + An entity with associated preview images. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + key_photos: PicturePath = Field( + ..., + description="""A set of paths to representative images of a piece of data.""", + json_schema_extra={"linkml_meta": {"alias": "key_photos", "domain_of": ["PicturedEntity"]}}, + ) + + +class OrganismDetails(ConfiguredBaseModel): + """ + The species from which the sample was derived. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + name: str = Field( + ..., + description="""Name of the organism from which a biological sample used in a CryoET study is derived from, e.g. homo sapiens.""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "AuthorMixin", + "Author", + ], + "exact_mappings": ["cdp-common:organism_name"], + } + }, + ) + taxonomy_id: Optional[int] = Field( + None, + description="""NCBI taxonomy identifier for the organism, e.g. 9606""", + ge=1, + json_schema_extra={ + "linkml_meta": { + "alias": "taxonomy_id", + "domain_of": ["OrganismDetails"], + "exact_mappings": ["cdp-common:organism_taxid"], + "recommended": True, + } + }, + ) + + +class TissueDetails(ConfiguredBaseModel): + """ + The type of tissue from which the sample was derived. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + name: str = Field( + ..., + description="""Name of the tissue from which a biological sample used in a CryoET study is derived from.""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "AuthorMixin", + "Author", + ], + "exact_mappings": ["cdp-common:tissue_name"], + } + }, + ) + id: Optional[str] = Field( + None, + description="""The UBERON identifier for the tissue.""", + json_schema_extra={ + "linkml_meta": { + "alias": "id", + "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], + "exact_mappings": ["cdp-common:tissue_id"], + "recommended": True, + } + }, + ) + + @field_validator("id") + def pattern_id(cls, v): + pattern = re.compile(r"^BTO:[0-9]{7}$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class CellType(ConfiguredBaseModel): + """ + The cell type from which the sample was derived. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + name: str = Field( + ..., + description="""Name of the cell type from which a biological sample used in a CryoET study is derived from.""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "AuthorMixin", + "Author", + ], + "exact_mappings": ["cdp-common:cell_name"], + } + }, + ) + id: Optional[str] = Field( + None, + description="""Cell Ontology identifier for the cell type""", + json_schema_extra={ + "linkml_meta": { + "alias": "id", + "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], + "exact_mappings": ["cdp-common:cell_type_id"], + "recommended": True, + } + }, + ) + + @field_validator("id") + def pattern_id(cls, v): + pattern = re.compile(r"^CL:[0-9]{7}$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class CellStrain(ConfiguredBaseModel): + """ + The strain or cell line from which the sample was derived. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + name: str = Field( + ..., + description="""Cell line or strain for the sample.""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "AuthorMixin", + "Author", + ], + "exact_mappings": ["cdp-common:cell_strain_name"], + } + }, + ) + id: Optional[str] = Field( + None, + description="""Link to more information about the cell strain.""", + json_schema_extra={ + "linkml_meta": { + "alias": "id", + "any_of": [{"range": "WORMBASE_ID"}, {"range": "ONTOLOGY_ID"}], + "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], + "exact_mappings": ["cdp-common:cell_strain_id"], + "recommended": True, + } + }, + ) + + @field_validator("id") + def pattern_id(cls, v): + pattern = re.compile(r"(WBStrain[0-9]{8}$)|(^[a-zA-Z]+:[0-9]+$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class CellComponent(ConfiguredBaseModel): + """ + The cellular component from which the sample was derived. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + name: str = Field( + ..., + description="""Name of the cellular component.""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "AuthorMixin", + "Author", + ], + "exact_mappings": ["cdp-common:cell_component_name"], + } + }, + ) + id: Optional[str] = Field( + None, + description="""The GO identifier for the cellular component.""", + json_schema_extra={ + "linkml_meta": { + "alias": "id", + "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], + "exact_mappings": ["cdp-common:cell_component_id"], + "recommended": True, + } + }, + ) + + @field_validator("id") + def pattern_id(cls, v): + pattern = re.compile(r"^GO:[0-9]{7}$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class ExperimentMetadata(ConfiguredBaseModel): + """ + Metadata describing sample and sample preparation methods used in a cryoET dataset. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + sample_type: SampleTypeEnum = Field( + ..., + description="""Type of sample imaged in a CryoET study.""", + json_schema_extra={ + "linkml_meta": { + "alias": "sample_type", + "domain_of": ["ExperimentMetadata", "Dataset"], + "exact_mappings": ["cdp-common:preparation_sample_type"], + } + }, + ) + sample_preparation: Optional[str] = Field( + None, + description="""Describes how the sample was prepared.""", + json_schema_extra={ + "linkml_meta": { + "alias": "sample_preparation", + "domain_of": ["ExperimentMetadata", "Dataset"], + "exact_mappings": ["cdp-common:sample_preparation"], + "recommended": True, + } + }, + ) + grid_preparation: Optional[str] = Field( + None, + description="""Describes Cryo-ET grid preparation.""", + json_schema_extra={ + "linkml_meta": { + "alias": "grid_preparation", + "domain_of": ["ExperimentMetadata", "Dataset"], + "exact_mappings": ["cdp-common:grid_preparation"], + "recommended": True, + } + }, + ) + other_setup: Optional[str] = Field( + None, + description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", + json_schema_extra={ + "linkml_meta": { + "alias": "other_setup", + "domain_of": ["ExperimentMetadata", "Dataset"], + "exact_mappings": ["cdp-common:preparation_other_setup"], + "recommended": True, + } + }, + ) + organism: Optional[OrganismDetails] = Field( + None, + description="""The species from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "organism", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + tissue: Optional[TissueDetails] = Field( + None, + description="""The type of tissue from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "tissue", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + cell_type: Optional[CellType] = Field( + None, + description="""The cell type from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "cell_type", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + cell_strain: Optional[CellStrain] = Field( + None, + description="""The strain or cell line from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "cell_strain", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + cell_component: Optional[CellComponent] = Field( + None, + description="""The cellular component from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "cell_component", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + + @field_validator("sample_type") + def pattern_sample_type(cls, v): + pattern = re.compile( + r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" + ) + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid sample_type format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid sample_type format: {v}") + return v + + +class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredEntity, DateStampedEntity): + """ + High-level description of a cryoET dataset. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( + { + "from_schema": "metadata", + "mixins": [ + "DateStampedEntity", + "AuthoredEntity", + "FundedEntity", + "CrossReferencedEntity", + "ExperimentMetadata", + ], + } + ) + + dataset_identifier: int = Field( + ..., + description="""An identifier for a CryoET dataset, assigned by the Data Portal. Used to identify the dataset as the directory name in data tree.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dataset_identifier", + "domain_of": ["Dataset"], + "exact_mappings": ["cdp-common:dataset_identifier"], + } + }, + ) + dataset_title: str = Field( + ..., + description="""Title of a CryoET dataset.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dataset_title", + "domain_of": ["Dataset"], + "exact_mappings": ["cdp-common:dataset_title"], + } + }, + ) + dataset_description: str = Field( + ..., + description="""A short description of a CryoET dataset, similar to an abstract for a journal article or dataset.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dataset_description", + "domain_of": ["Dataset"], + "exact_mappings": ["cdp-common:dataset_description"], + } + }, + ) + dates: DateStamp = Field( + ..., + description="""A set of dates at which a data item was deposited, published and last modified.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } + }, + ) + authors: List[Author] = Field( + ..., + description="""Author of a scientific data entity.""", + min_length=1, + json_schema_extra={ + "linkml_meta": { + "alias": "authors", + "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], + "list_elements_ordered": True, + } + }, + ) + funding: Optional[List[FundingDetails]] = Field( + None, + description="""A funding source for a scientific data entity (base for JSON and DB representation).""", + json_schema_extra={ + "linkml_meta": { + "alias": "funding", + "domain_of": ["FundedEntity", "Dataset"], + "list_elements_ordered": True, + "recommended": True, + } + }, + ) + cross_references: Optional[CrossReferences] = Field( + None, + description="""A set of cross-references to other databases and publications.""", + json_schema_extra={ + "linkml_meta": { + "alias": "cross_references", + "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], + } + }, + ) + sample_type: SampleTypeEnum = Field( + ..., + description="""Type of sample imaged in a CryoET study.""", + json_schema_extra={ + "linkml_meta": { + "alias": "sample_type", + "domain_of": ["ExperimentMetadata", "Dataset"], + "exact_mappings": ["cdp-common:preparation_sample_type"], + } + }, + ) + sample_preparation: Optional[str] = Field( + None, + description="""Describes how the sample was prepared.""", + json_schema_extra={ + "linkml_meta": { + "alias": "sample_preparation", + "domain_of": ["ExperimentMetadata", "Dataset"], + "exact_mappings": ["cdp-common:sample_preparation"], + "recommended": True, + } + }, + ) + grid_preparation: Optional[str] = Field( + None, + description="""Describes Cryo-ET grid preparation.""", + json_schema_extra={ + "linkml_meta": { + "alias": "grid_preparation", + "domain_of": ["ExperimentMetadata", "Dataset"], + "exact_mappings": ["cdp-common:grid_preparation"], + "recommended": True, + } + }, + ) + other_setup: Optional[str] = Field( + None, + description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", + json_schema_extra={ + "linkml_meta": { + "alias": "other_setup", + "domain_of": ["ExperimentMetadata", "Dataset"], + "exact_mappings": ["cdp-common:preparation_other_setup"], + "recommended": True, + } + }, + ) + organism: Optional[OrganismDetails] = Field( + None, + description="""The species from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "organism", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + tissue: Optional[TissueDetails] = Field( + None, + description="""The type of tissue from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "tissue", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + cell_type: Optional[CellType] = Field( + None, + description="""The cell type from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "cell_type", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + cell_strain: Optional[CellStrain] = Field( + None, + description="""The strain or cell line from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "cell_strain", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + cell_component: Optional[CellComponent] = Field( + None, + description="""The cellular component from which the sample was derived.""", + json_schema_extra={"linkml_meta": {"alias": "cell_component", "domain_of": ["ExperimentMetadata", "Dataset"]}}, + ) + + @field_validator("sample_type") + def pattern_sample_type(cls, v): + pattern = re.compile( + r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" + ) + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid sample_type format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid sample_type format: {v}") + return v + + +class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): + """ + Metadata describing a deposition. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( + {"from_schema": "metadata", "mixins": ["DateStampedEntity", "AuthoredEntity", "CrossReferencedEntity"]} + ) + + deposition_description: str = Field( + ..., + description="""A short description of the deposition, similar to an abstract for a journal article or dataset.""", + json_schema_extra={ + "linkml_meta": { + "alias": "deposition_description", + "domain_of": ["Deposition"], + "exact_mappings": ["cdp-common:deposition_description"], + } + }, + ) + deposition_identifier: int = Field( + ..., + description="""An identifier for a CryoET deposition, assigned by the Data Portal. Used to identify the deposition the entity is a part of.""", + json_schema_extra={ + "linkml_meta": { + "alias": "deposition_identifier", + "domain_of": ["Deposition"], + "exact_mappings": ["cdp-common:deposition_identifier"], + } + }, + ) + deposition_title: str = Field( + ..., + description="""Title of a CryoET deposition.""", + json_schema_extra={ + "linkml_meta": { + "alias": "deposition_title", + "domain_of": ["Deposition"], + "exact_mappings": ["cdp-common:deposition_title"], + } + }, + ) + deposition_types: List[DepositionTypesEnum] = Field( + ..., + description="""Type of data in the deposition (e.g. dataset, annotation, tomogram)""", + min_length=1, + json_schema_extra={ + "linkml_meta": { + "alias": "deposition_types", + "domain_of": ["Deposition"], + "exact_mappings": ["cdp-common:deposition_types"], + } + }, + ) + dates: DateStamp = Field( + ..., + description="""A set of dates at which a data item was deposited, published and last modified.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } + }, + ) + authors: List[Author] = Field( + ..., + description="""Author of a scientific data entity.""", + min_length=1, + json_schema_extra={ + "linkml_meta": { + "alias": "authors", + "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], + "list_elements_ordered": True, + } + }, + ) + cross_references: Optional[CrossReferences] = Field( + None, + description="""A set of cross-references to other databases and publications.""", + json_schema_extra={ + "linkml_meta": { + "alias": "cross_references", + "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], + } + }, + ) + + @field_validator("deposition_types") + def pattern_deposition_types(cls, v): + pattern = re.compile(r"(^annotation$)|(^dataset$)|(^tomogram$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid deposition_types format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid deposition_types format: {v}") + return v + + +class CameraDetails(ConfiguredBaseModel): + """ + The camera used to collect the tilt series. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + acquire_mode: Optional[Union[TiltseriesCameraAcquireModeEnum, str]] = Field( + None, + description="""Camera acquisition mode""", + json_schema_extra={ + "linkml_meta": { + "alias": "acquire_mode", + "any_of": [{"range": "StringFormattedString"}, {"range": "tiltseries_camera_acquire_mode_enum"}], + "domain_of": ["CameraDetails"], + "exact_mappings": ["cdp-common:tiltseries_camera_acquire_mode"], + } + }, + ) + manufacturer: str = Field( + ..., + description="""Name of the camera manufacturer""", + json_schema_extra={ + "linkml_meta": { + "alias": "manufacturer", + "domain_of": ["CameraDetails", "MicroscopeDetails"], + "exact_mappings": ["cdp-common:tiltseries_camera_manufacturer"], + } + }, + ) + model: str = Field( + ..., + description="""Camera model name""", + json_schema_extra={ + "linkml_meta": { + "alias": "model", + "domain_of": ["CameraDetails", "MicroscopeDetails"], + "exact_mappings": ["cdp-common:tiltseries_camera_model"], + } + }, + ) + + @field_validator("acquire_mode") + def pattern_acquire_mode(cls, v): + pattern = re.compile(r"(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)|((^counting$)|(^superresolution$)|(^linear$)|(^cds$))") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid acquire_mode format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid acquire_mode format: {v}") + return v + + +class MicroscopeDetails(ConfiguredBaseModel): + """ + The microscope used to collect the tilt series. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + additional_info: Optional[str] = Field( + None, + description="""Other microscope optical setup information, in addition to energy filter, phase plate and image corrector""", + json_schema_extra={ + "linkml_meta": { + "alias": "additional_info", + "domain_of": ["MicroscopeDetails"], + "exact_mappings": ["cdp-common:tiltseries_microscope_additional_info"], + } + }, + ) + manufacturer: Union[TiltseriesMicroscopeManufacturerEnum, str] = Field( + ..., + description="""Name of the microscope manufacturer""", + json_schema_extra={ + "linkml_meta": { + "alias": "manufacturer", + "any_of": [ + { + "description": "Name of the microscope manufacturer", + "exact_mappings": ["cdp-common:tiltseries_microscope_manufacturer"], + "range": "tiltseries_microscope_manufacturer_enum", + "required": True, + }, + {"range": "StringFormattedString"}, + ], + "domain_of": ["CameraDetails", "MicroscopeDetails"], + } + }, + ) + model: str = Field( + ..., + description="""Microscope model name""", + json_schema_extra={ + "linkml_meta": { + "alias": "model", + "domain_of": ["CameraDetails", "MicroscopeDetails"], + "exact_mappings": ["cdp-common:tiltseries_microscope_model"], + } + }, + ) + + @field_validator("manufacturer") + def pattern_manufacturer(cls, v): + pattern = re.compile(r"(^FEI$)|(^TFS$)|(^JEOL$)|(^SIMULATED$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid manufacturer format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid manufacturer format: {v}") + return v + + +class MicroscopeOpticalSetup(ConfiguredBaseModel): + """ + The optical setup of the microscope used to collect the tilt series. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + energy_filter: str = Field( + ..., + description="""Energy filter setup used""", + json_schema_extra={ + "linkml_meta": { + "alias": "energy_filter", + "domain_of": ["MicroscopeOpticalSetup"], + "exact_mappings": ["cdp-common:tiltseries_microscope_energy_filter"], + } + }, + ) + phase_plate: Optional[str] = Field( + None, + description="""Phase plate configuration""", + json_schema_extra={ + "linkml_meta": { + "alias": "phase_plate", + "domain_of": ["MicroscopeOpticalSetup"], + "exact_mappings": ["cdp-common:tiltseries_microscope_phase_plate"], + } + }, + ) + image_corrector: Optional[str] = Field( + None, + description="""Image corrector setup""", + json_schema_extra={ + "linkml_meta": { + "alias": "image_corrector", + "domain_of": ["MicroscopeOpticalSetup"], + "exact_mappings": ["cdp-common:tiltseries_microscope_image_corrector"], + } + }, + ) + + +class TiltRange(ConfiguredBaseModel): + """ + The range of tilt angles in the tilt series. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + min: Union[float, str] = Field( + ..., + description="""Minimal tilt angle in degrees""", + ge=-90, + le=90, + json_schema_extra={ + "linkml_meta": { + "alias": "min", + "any_of": [ + { + "description": "Minimal tilt angle in degrees", + "exact_mappings": ["cdp-common:tiltseries_tilt_min"], + "maximum_value": 90, + "minimum_value": -90, + "range": "float", + "required": True, + "unit": {"descriptive_name": "degrees", "symbol": "°"}, + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltRange"], + "unit": {"descriptive_name": "degrees", "symbol": "°"}, + } + }, + ) + max: Union[float, str] = Field( + ..., + description="""Maximal tilt angle in degrees""", + ge=-90, + le=90, + json_schema_extra={ + "linkml_meta": { + "alias": "max", + "any_of": [ + { + "description": "Maximal tilt angle in degrees", + "exact_mappings": ["cdp-common:tiltseries_tilt_max"], + "maximum_value": 90, + "minimum_value": -90, + "range": "float", + "required": True, + "unit": {"descriptive_name": "degrees", "symbol": "°"}, + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltRange"], + "unit": {"descriptive_name": "degrees", "symbol": "°"}, + } + }, + ) + + @field_validator("min") + def pattern_min(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid min format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid min format: {v}") + return v + + @field_validator("max") + def pattern_max(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid max format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid max format: {v}") + return v + + +class TiltSeries(ConfiguredBaseModel): + """ + Metadata describing a tilt series. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + acceleration_voltage: float = Field( + ..., + description="""Electron Microscope Accelerator voltage in volts""", + ge=20000, + json_schema_extra={ + "linkml_meta": { + "alias": "acceleration_voltage", + "domain_of": ["TiltSeries"], + "exact_mappings": ["cdp-common:tiltseries_acceleration_voltage"], + "unit": {"descriptive_name": "volts", "symbol": "V"}, + } + }, + ) + aligned_tiltseries_binning: Optional[Union[float, str]] = Field( + 1.0, + description="""Binning factor of the aligned tilt series""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "aligned_tiltseries_binning", + "any_of": [ + { + "description": "Binning factor of the aligned tilt series", + "exact_mappings": ["cdp-common:tiltseries_aligned_tiltseries_binning"], + "minimum_value": 0, + "range": "float", + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltSeries"], + "ifabsent": "float(1)", + } + }, + ) + binning_from_frames: Optional[Union[float, str]] = Field( + 1.0, + description="""Describes the binning factor from frames to tilt series file""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "binning_from_frames", + "any_of": [ + { + "description": "Describes the binning factor from frames to tilt " "series file", + "exact_mappings": ["cdp-common:tiltseries_binning_from_frames"], + "minimum_value": 0, + "range": "float", + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltSeries"], + "ifabsent": "float(1)", + } + }, + ) + camera: CameraDetails = Field( + ..., + description="""The camera used to collect the tilt series.""", + json_schema_extra={"linkml_meta": {"alias": "camera", "domain_of": ["TiltSeries"]}}, + ) + data_acquisition_software: str = Field( + ..., + description="""Software used to collect data""", + json_schema_extra={ + "linkml_meta": { + "alias": "data_acquisition_software", + "domain_of": ["TiltSeries"], + "exact_mappings": ["cdp-common:tiltseries_data_acquisition_software"], + } + }, + ) + frames_count: Optional[int] = Field( + None, + description="""Number of frames associated with this tiltseries""", + json_schema_extra={ + "linkml_meta": { + "alias": "frames_count", + "domain_of": ["TiltSeries"], + "exact_mappings": ["cdp-common:tiltseries_frames_count"], + } + }, + ) + is_aligned: bool = Field( + ..., + description="""Whether this tilt series is aligned""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_aligned", + "domain_of": ["TiltSeries"], + "exact_mappings": ["cdp-common:tiltseries_is_aligned"], + } + }, + ) + microscope: MicroscopeDetails = Field( + ..., + description="""The microscope used to collect the tilt series.""", + json_schema_extra={"linkml_meta": {"alias": "microscope", "domain_of": ["TiltSeries"]}}, + ) + microscope_optical_setup: MicroscopeOpticalSetup = Field( + ..., + description="""The optical setup of the microscope used to collect the tilt series.""", + json_schema_extra={"linkml_meta": {"alias": "microscope_optical_setup", "domain_of": ["TiltSeries"]}}, + ) + related_empiar_entry: Optional[str] = Field( + None, + description="""If a tilt series is deposited into EMPIAR, enter the EMPIAR dataset identifier""", + json_schema_extra={ + "linkml_meta": { + "alias": "related_empiar_entry", + "domain_of": ["TiltSeries"], + "exact_mappings": ["cdp-common:tiltseries_related_empiar_entry"], + } + }, + ) + spherical_aberration_constant: Union[float, str] = Field( + ..., + description="""Spherical Aberration Constant of the objective lens in millimeters""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "spherical_aberration_constant", + "any_of": [ + { + "description": "Spherical Aberration Constant of the objective " "lens in millimeters", + "exact_mappings": ["cdp-common:tiltseries_spherical_aberration_constant"], + "minimum_value": 0, + "range": "float", + "required": True, + "unit": {"descriptive_name": "millimeters", "symbol": "mm"}, + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltSeries"], + "unit": {"descriptive_name": "millimeters", "symbol": "mm"}, + } + }, + ) + tilt_alignment_software: Optional[str] = Field( + None, + description="""Software used for tilt alignment""", + json_schema_extra={ + "linkml_meta": { + "alias": "tilt_alignment_software", + "domain_of": ["TiltSeries"], + "exact_mappings": ["cdp-common:tiltseries_tilt_alignment_software"], + } + }, + ) + tilt_axis: Union[float, str] = Field( + ..., + description="""Rotation angle in degrees""", + ge=-360, + le=360, + json_schema_extra={ + "linkml_meta": { + "alias": "tilt_axis", + "any_of": [ + { + "description": "Rotation angle in degrees", + "exact_mappings": ["cdp-common:tiltseries_tilt_axis"], + "maximum_value": 360, + "minimum_value": -360, + "range": "float", + "required": True, + "unit": {"descriptive_name": "degrees", "symbol": "°"}, + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltSeries"], + "unit": {"descriptive_name": "degrees", "symbol": "°"}, + } + }, + ) + tilt_range: TiltRange = Field( + ..., + description="""The range of tilt angles in the tilt series.""", + json_schema_extra={"linkml_meta": {"alias": "tilt_range", "domain_of": ["TiltSeries"]}}, + ) + tilt_series_quality: Union[int, str] = Field( + ..., + description="""Author assessment of tilt series quality within the dataset (1-5, 5 is best)""", + ge=1, + le=5, + json_schema_extra={ + "linkml_meta": { + "alias": "tilt_series_quality", + "any_of": [ + { + "description": "Author assessment of tilt series quality within " + "the dataset (1-5, 5 is best)", + "exact_mappings": ["cdp-common:tiltseries_tilt_series_quality"], + "maximum_value": 5, + "minimum_value": 1, + "range": "integer", + "required": True, + }, + {"range": "IntegerFormattedString"}, + ], + "domain_of": ["TiltSeries"], + } + }, + ) + tilt_step: Union[float, str] = Field( + ..., + description="""Tilt step in degrees""", + ge=0, + le=90, + json_schema_extra={ + "linkml_meta": { + "alias": "tilt_step", + "any_of": [ + { + "description": "Tilt step in degrees", + "exact_mappings": ["cdp-common:tiltseries_tilt_step"], + "maximum_value": 90, + "minimum_value": 0, + "range": "float", + "required": True, + "unit": {"descriptive_name": "degrees", "symbol": "°"}, + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltSeries"], + "unit": {"descriptive_name": "degrees", "symbol": "°"}, + } + }, + ) + tilting_scheme: str = Field( + ..., + description="""The order of stage tilting during acquisition of the data""", + json_schema_extra={ + "linkml_meta": { + "alias": "tilting_scheme", + "domain_of": ["TiltSeries"], + "exact_mappings": ["cdp-common:tiltseries_tilting_scheme"], + } + }, + ) + total_flux: Union[float, str] = Field( + ..., + description="""Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "total_flux", + "any_of": [ + { + "description": "Number of Electrons reaching the specimen in a " + "square Angstrom area for the entire tilt series", + "exact_mappings": ["cdp-common:tiltseries_total_flux"], + "minimum_value": 0, + "range": "float", + "required": True, + "unit": {"descriptive_name": "electrons per square Angstrom", "symbol": "e^-/Å^2"}, + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltSeries"], + "unit": {"descriptive_name": "electrons per square Angstrom", "symbol": "e^-/Å^2"}, + } + }, + ) + pixel_spacing: Union[float, str] = Field( + ..., + description="""Pixel spacing for the tilt series""", + ge=0.001, + json_schema_extra={ + "linkml_meta": { + "alias": "pixel_spacing", + "any_of": [ + { + "description": "Pixel spacing for the tilt series", + "exact_mappings": ["cdp-common:tiltseries_pixel_spacing"], + "minimum_value": 0.001, + "range": "float", + "required": True, + "unit": {"descriptive_name": "Angstroms per pixel", "symbol": "Å/px"}, + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["TiltSeries"], + "unit": {"descriptive_name": "Angstroms per pixel", "symbol": "Å/px"}, + } + }, + ) + + @field_validator("aligned_tiltseries_binning") + def pattern_aligned_tiltseries_binning(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid aligned_tiltseries_binning format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid aligned_tiltseries_binning format: {v}") + return v + + @field_validator("binning_from_frames") + def pattern_binning_from_frames(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid binning_from_frames format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid binning_from_frames format: {v}") + return v + + @field_validator("related_empiar_entry") + def pattern_related_empiar_entry(cls, v): + pattern = re.compile(r"^EMPIAR-[0-9]+$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid related_empiar_entry format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid related_empiar_entry format: {v}") + return v + + @field_validator("spherical_aberration_constant") + def pattern_spherical_aberration_constant(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid spherical_aberration_constant format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid spherical_aberration_constant format: {v}") + return v + + @field_validator("tilt_axis") + def pattern_tilt_axis(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid tilt_axis format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid tilt_axis format: {v}") + return v + + @field_validator("tilt_series_quality") + def pattern_tilt_series_quality(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid tilt_series_quality format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid tilt_series_quality format: {v}") + return v + + @field_validator("tilt_step") + def pattern_tilt_step(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid tilt_step format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid tilt_step format: {v}") + return v + + @field_validator("total_flux") + def pattern_total_flux(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid total_flux format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid total_flux format: {v}") + return v + + @field_validator("pixel_spacing") + def pattern_pixel_spacing(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid pixel_spacing format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid pixel_spacing format: {v}") + return v + + +class TomogramSize(ConfiguredBaseModel): + """ + The size of a tomogram in voxels in each dimension. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + x: int = Field( + ..., + description="""Number of pixels in the 3D data fast axis""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "x", + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + y: int = Field( + ..., + description="""Number of pixels in the 3D data medium axis""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "y", + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + z: int = Field( + ..., + description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "z", + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + + +class TomogramOffset(ConfiguredBaseModel): + """ + The offset of a tomogram in voxels in each dimension relative to the canonical tomogram. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + x: Union[int, str] = Field( + ..., + description="""x offset data relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "x", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + y: Union[int, str] = Field( + ..., + description="""y offset data relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "y", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + z: Union[int, str] = Field( + ..., + description="""z offset data relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "z", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + + @field_validator("x") + def pattern_x(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator("y") + def pattern_y(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator("z") + def pattern_z(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + +class Tomogram(AuthoredEntity): + """ + Metadata describing a tomogram. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["AuthoredEntity"]}) + + voxel_spacing: Union[float, str] = Field( + ..., + description="""Voxel spacing equal in all three axes in angstroms""", + ge=0.001, + json_schema_extra={ + "linkml_meta": { + "alias": "voxel_spacing", + "any_of": [ + { + "description": "Voxel spacing equal in all three axes in " "angstroms", + "exact_mappings": ["cdp-common:tomogram_voxel_spacing"], + "minimum_value": 0.001, + "range": "float", + "required": True, + "unit": {"descriptive_name": "Angstroms per voxel", "symbol": "Å/voxel"}, + }, + {"range": "FloatFormattedString"}, + ], + "domain_of": ["Tomogram"], + "unit": {"descriptive_name": "Angstroms per voxel", "symbol": "Å/voxel"}, + } + }, + ) + fiducial_alignment_status: Union[FiducialAlignmentStatusEnum, str] = Field( + ..., + description="""Whether the tomographic alignment was computed based on fiducial markers.""", + json_schema_extra={ + "linkml_meta": { + "alias": "fiducial_alignment_status", + "any_of": [ + { + "description": "Whether the tomographic alignment was computed " "based on fiducial markers.", + "exact_mappings": ["cdp-common:tomogram_fiducial_alignment_status"], + "range": "fiducial_alignment_status_enum", + "required": True, + }, + {"range": "StringFormattedString"}, + ], + "domain_of": ["Tomogram"], + } + }, + ) + ctf_corrected: Optional[bool] = Field( + None, + description="""Whether this tomogram is CTF corrected""", + json_schema_extra={ + "linkml_meta": { + "alias": "ctf_corrected", + "domain_of": ["Tomogram"], + "exact_mappings": ["cdp-common:tomogram_ctf_corrected"], + "recommended": True, + } + }, + ) + align_software: Optional[str] = Field( + None, + description="""Software used for alignment""", + json_schema_extra={ + "linkml_meta": { + "alias": "align_software", + "domain_of": ["Tomogram"], + "exact_mappings": ["cdp-common:tomogram_align_software"], + } + }, + ) + reconstruction_method: Union[TomogramReconstructionMethodEnum, str] = Field( + ..., + description="""Describe reconstruction method (WBP, SART, SIRT)""", + json_schema_extra={ + "linkml_meta": { + "alias": "reconstruction_method", + "any_of": [ + { + "description": "Describe reconstruction method (WBP, SART, SIRT)", + "exact_mappings": ["cdp-common:tomogram_reconstruction_method"], + "range": "tomogram_reconstruction_method_enum", + "required": True, + }, + {"range": "StringFormattedString"}, + ], + "domain_of": ["Tomogram"], + } + }, + ) + reconstruction_software: str = Field( + ..., + description="""Name of software used for reconstruction""", + json_schema_extra={ + "linkml_meta": { + "alias": "reconstruction_software", + "domain_of": ["Tomogram"], + "exact_mappings": ["cdp-common:tomogram_reconstruction_software"], + } + }, + ) + processing: TomogramProcessingEnum = Field( + ..., + description="""Describe additional processing used to derive the tomogram""", + json_schema_extra={ + "linkml_meta": { + "alias": "processing", + "domain_of": ["Tomogram"], + "exact_mappings": ["cdp-common:tomogram_processing"], + } + }, + ) + processing_software: Optional[str] = Field( + None, + description="""Processing software used to derive the tomogram""", + json_schema_extra={ + "linkml_meta": { + "alias": "processing_software", + "domain_of": ["Tomogram"], + "exact_mappings": ["cdp-common:tomogram_processing_software"], + "recommended": True, + } + }, + ) + tomogram_version: float = Field( + ..., + description="""Version of tomogram""", + json_schema_extra={ + "linkml_meta": { + "alias": "tomogram_version", + "domain_of": ["Tomogram"], + "exact_mappings": ["cdp-common:tomogram_version"], + } + }, + ) + affine_transformation_matrix: Optional[ + conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float)) + ] = Field( + None, + description="""The flip or rotation transformation of this author submitted tomogram is indicated here""", + json_schema_extra={ + "linkml_meta": { + "alias": "affine_transformation_matrix", + "array": { + "dimensions": [{"exact_cardinality": 4}, {"exact_cardinality": 4}], + "exact_number_dimensions": 2, + }, + "domain_of": ["Tomogram", "Alignment"], + } + }, + ) + size: Optional[TomogramSize] = Field( + None, + description="""The size of a tomogram in voxels in each dimension.""", + json_schema_extra={"linkml_meta": {"alias": "size", "domain_of": ["Tomogram"]}}, + ) + offset: TomogramOffset = Field( + ..., + description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", + json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the tomogram is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "ifabsent": "False", + } + }, + ) + is_visualization_default: bool = Field( + True, + description="""Whether the tomogram is the default for visualization.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "ifabsent": "True", + } + }, + ) + cross_references: Optional[CrossReferences] = Field( + None, + description="""A set of cross-references to other databases and publications.""", + json_schema_extra={ + "linkml_meta": { + "alias": "cross_references", + "domain_of": ["CrossReferencedEntity", "Tomogram", "Dataset", "Deposition"], + } + }, + ) + dates: DateStamp = Field( + ..., + description="""A set of dates at which a data item was deposited, published and last modified.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } + }, + ) + authors: List[Author] = Field( + ..., + description="""Author of a scientific data entity.""", + min_length=1, + json_schema_extra={ + "linkml_meta": { + "alias": "authors", + "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], + "list_elements_ordered": True, + } + }, + ) + + @field_validator("voxel_spacing") + def pattern_voxel_spacing(cls, v): + pattern = re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid voxel_spacing format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid voxel_spacing format: {v}") + return v + + @field_validator("fiducial_alignment_status") + def pattern_fiducial_alignment_status(cls, v): + pattern = re.compile(r"(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid fiducial_alignment_status format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid fiducial_alignment_status format: {v}") + return v + + @field_validator("reconstruction_method") + def pattern_reconstruction_method(cls, v): + pattern = re.compile(r"(^SART$)|(^Fourier Space$)|(^SIRT$)|(^WBP$)|(^Unknown$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid reconstruction_method format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid reconstruction_method format: {v}") + return v + + @field_validator("processing") + def pattern_processing(cls, v): + pattern = re.compile(r"(^denoised$)|(^filtered$)|(^raw$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid processing format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid processing format: {v}") + return v + + +class AnnotationConfidence(ConfiguredBaseModel): + """ + Metadata describing the confidence of an annotation. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + precision: Optional[float] = Field( + None, + description="""Describe the confidence level of the annotation. Precision is defined as the % of annotation objects being true positive""", + ge=0, + le=100, + json_schema_extra={ + "linkml_meta": { + "alias": "precision", + "domain_of": ["AnnotationConfidence"], + "exact_mappings": ["cdp-common:annotation_confidence_precision"], + "unit": {"descriptive_name": "percentage", "symbol": "%"}, + } + }, + ) + recall: Optional[float] = Field( + None, + description="""Describe the confidence level of the annotation. Recall is defined as the % of true positives being annotated correctly""", + ge=0, + le=100, + json_schema_extra={ + "linkml_meta": { + "alias": "recall", + "domain_of": ["AnnotationConfidence"], + "exact_mappings": ["cdp-common:annotation_confidence_recall"], + "unit": {"descriptive_name": "percentage", "symbol": "%"}, + } + }, + ) + ground_truth_used: Optional[str] = Field( + None, + description="""Annotation filename used as ground truth for precision and recall""", + json_schema_extra={ + "linkml_meta": { + "alias": "ground_truth_used", + "domain_of": ["AnnotationConfidence"], + "exact_mappings": ["cdp-common:annotation_ground_truth_used"], + } + }, + ) + + +class AnnotationObject(ConfiguredBaseModel): + """ + Metadata describing the object being annotated. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + id: str = Field( + ..., + description="""Gene Ontology Cellular Component identifier or UniProtKB accession for the annotation object.""", + json_schema_extra={ + "linkml_meta": { + "alias": "id", + "any_of": [{"range": "GO_ID"}, {"range": "UNIPROT_ID"}], + "domain_of": ["TissueDetails", "CellType", "CellStrain", "CellComponent", "AnnotationObject"], + "exact_mappings": ["cdp-common:annotation_object_id"], + } + }, + ) + name: str = Field( + ..., + description="""Name of the object being annotated (e.g. ribosome, nuclear pore complex, actin filament, membrane)""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "AuthorMixin", + "Author", + ], + "exact_mappings": ["cdp-common:annotation_object_name"], + } + }, + ) + description: Optional[str] = Field( + None, + description="""A textual description of the annotation object, can be a longer description to include additional information not covered by the Annotation object name and state.""", + json_schema_extra={ + "linkml_meta": { + "alias": "description", + "domain_of": ["AnnotationObject"], + "exact_mappings": ["cdp-common:annotation_object_description"], + } + }, + ) + state: Optional[str] = Field( + None, + description="""Molecule state annotated (e.g. open, closed)""", + json_schema_extra={ + "linkml_meta": { + "alias": "state", + "domain_of": ["AnnotationObject"], + "exact_mappings": ["cdp-common:annotation_object_state"], + } + }, + ) + + @field_validator("id") + def pattern_id(cls, v): + pattern = re.compile( + r"(^GO:[0-9]{7}$)|(^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$)" + ) + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class AnnotationMethodLinks(ConfiguredBaseModel): + """ + A set of links to models, source code, documentation, etc referenced by annotation the method + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + link: str = Field( + ..., + description="""URL to the annotation method reference""", + json_schema_extra={ + "linkml_meta": { + "alias": "link", + "domain_of": ["AnnotationMethodLinks"], + "exact_mappings": ["cdp-common:annotation_method_link"], + } + }, + ) + link_type: AnnotationMethodLinkTypeEnum = Field( + ..., + description="""Type of link (e.g. model, source code, documentation)""", + json_schema_extra={ + "linkml_meta": { + "alias": "link_type", + "domain_of": ["AnnotationMethodLinks"], + "exact_mappings": ["cdp-common:annotation_method_link_type"], + } + }, + ) + custom_name: Optional[str] = Field( + None, + description="""user readable name of the resource""", + json_schema_extra={ + "linkml_meta": { + "alias": "custom_name", + "domain_of": ["AnnotationMethodLinks"], + "exact_mappings": ["cdp-common:annotation_method_link_custom_name"], + "recommended": True, + } + }, + ) + + @field_validator("link_type") + def pattern_link_type(cls, v): + pattern = re.compile(r"(^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid link_type format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid link_type format: {v}") + return v + + +class AnnotationSourceFile(ConfiguredBaseModel): + """ + File and sourcing data for an annotation. Represents an entry in annotation.sources. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + file_format: str = Field( + ..., + description="""File format for this file""", + json_schema_extra={ + "linkml_meta": { + "alias": "file_format", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_format"], + } + }, + ) + glob_string: Optional[str] = Field( + None, + description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_string", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], + } + }, + ) + glob_strings: Optional[List[str]] = Field( + None, + description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_strings", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], + } + }, + ) + is_visualization_default: Optional[bool] = Field( + False, + description="""This annotation will be rendered in neuroglancer by default.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], + "ifabsent": "False", + } + }, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) + + +class AnnotationOrientedPointFile(AnnotationSourceFile): + """ + File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["OrientedPoint"], "from_schema": "metadata"}) + + binning: Optional[float] = Field( + 1.0, + description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "binning", + "domain_of": [ + "AnnotationOrientedPointFile", + "AnnotationPointFile", + "AnnotationInstanceSegmentationFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_binning"], + "ifabsent": "float(1)", + } + }, + ) + filter_value: Optional[str] = Field( + None, + description="""The filter value for an oriented point / instance segmentation annotation file.""", + json_schema_extra={ + "linkml_meta": { + "alias": "filter_value", + "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], + "exact_mappings": ["cdp-common:annotation_source_file_filter_value"], + } + }, + ) + order: Optional[str] = Field( + "xyz", + description="""The order of axes for an oriented point / instance segmentation annotation file.""", + json_schema_extra={ + "linkml_meta": { + "alias": "order", + "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], + "exact_mappings": ["cdp-common:annotation_source_file_order"], + "ifabsent": "string(xyz)", + } + }, + ) + file_format: str = Field( + ..., + description="""File format for this file""", + json_schema_extra={ + "linkml_meta": { + "alias": "file_format", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_format"], + } + }, + ) + glob_string: Optional[str] = Field( + None, + description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_string", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], + } + }, + ) + glob_strings: Optional[List[str]] = Field( + None, + description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_strings", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], + } + }, + ) + is_visualization_default: Optional[bool] = Field( + False, + description="""This annotation will be rendered in neuroglancer by default.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], + "ifabsent": "False", + } + }, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) + + +class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): + """ + File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["InstanceSegmentation"], "from_schema": "metadata"}) + + binning: Optional[float] = Field( + 1.0, + description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "binning", + "domain_of": [ + "AnnotationOrientedPointFile", + "AnnotationPointFile", + "AnnotationInstanceSegmentationFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_binning"], + "ifabsent": "float(1)", + } + }, + ) + filter_value: Optional[str] = Field( + None, + description="""The filter value for an oriented point / instance segmentation annotation file.""", + json_schema_extra={ + "linkml_meta": { + "alias": "filter_value", + "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], + "exact_mappings": ["cdp-common:annotation_source_file_filter_value"], + } + }, + ) + order: Optional[str] = Field( + "xyz", + description="""The order of axes for an oriented point / instance segmentation annotation file.""", + json_schema_extra={ + "linkml_meta": { + "alias": "order", + "domain_of": ["AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile"], + "exact_mappings": ["cdp-common:annotation_source_file_order"], + "ifabsent": "string(xyz)", + } + }, + ) + file_format: str = Field( + ..., + description="""File format for this file""", + json_schema_extra={ + "linkml_meta": { + "alias": "file_format", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_format"], + } + }, + ) + glob_string: Optional[str] = Field( + None, + description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_string", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], + } + }, + ) + glob_strings: Optional[List[str]] = Field( + None, + description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_strings", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], + } + }, + ) + is_visualization_default: Optional[bool] = Field( + False, + description="""This annotation will be rendered in neuroglancer by default.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], + "ifabsent": "False", + } + }, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) + + +class AnnotationPointFile(AnnotationSourceFile): + """ + File and sourcing data for a point annotation. Annotation that identifies points in the volume. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["Point"], "from_schema": "metadata"}) + + binning: Optional[float] = Field( + 1.0, + description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "binning", + "domain_of": [ + "AnnotationOrientedPointFile", + "AnnotationPointFile", + "AnnotationInstanceSegmentationFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_binning"], + "ifabsent": "float(1)", + } + }, + ) + columns: Optional[str] = Field( + "xyz", + description="""The columns used in a point annotation file.""", + json_schema_extra={ + "linkml_meta": { + "alias": "columns", + "domain_of": ["AnnotationPointFile"], + "exact_mappings": ["cdp-common:annotation_source_file_columns"], + "ifabsent": "string(xyz)", + } + }, + ) + delimiter: Optional[str] = Field( + ",", + description="""The delimiter used in a point annotation file.""", + json_schema_extra={ + "linkml_meta": { + "alias": "delimiter", + "domain_of": ["AnnotationPointFile"], + "exact_mappings": ["cdp-common:annotation_source_file_delimiter"], + "ifabsent": "string(,)", + } + }, + ) + file_format: str = Field( + ..., + description="""File format for this file""", + json_schema_extra={ + "linkml_meta": { + "alias": "file_format", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_format"], + } + }, + ) + glob_string: Optional[str] = Field( + None, + description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_string", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], + } + }, + ) + glob_strings: Optional[List[str]] = Field( + None, + description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_strings", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], + } + }, + ) + is_visualization_default: Optional[bool] = Field( + False, + description="""This annotation will be rendered in neuroglancer by default.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], + "ifabsent": "False", + } + }, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) + + +class AnnotationSegmentationMaskFile(AnnotationSourceFile): + """ + File and sourcing data for a segmentation mask annotation. Annotation that identifies an object. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["SegmentationMask"], "from_schema": "metadata"}) + + file_format: str = Field( + ..., + description="""File format for this file""", + json_schema_extra={ + "linkml_meta": { + "alias": "file_format", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_format"], + } + }, + ) + glob_string: Optional[str] = Field( + None, + description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_string", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], + } + }, + ) + glob_strings: Optional[List[str]] = Field( + None, + description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_strings", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], + } + }, + ) + is_visualization_default: Optional[bool] = Field( + False, + description="""This annotation will be rendered in neuroglancer by default.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], + "ifabsent": "False", + } + }, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) + + +class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): + """ + File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["SemanticSegmentationMask"], "from_schema": "metadata"}) + + mask_label: Optional[int] = Field( + 1, + description="""The mask label for a semantic segmentation mask annotation file.""", + json_schema_extra={ + "linkml_meta": { + "alias": "mask_label", + "domain_of": ["AnnotationSemanticSegmentationMaskFile"], + "exact_mappings": ["cdp-common:annotation_source_file_mask_label"], + "ifabsent": "int(1)", + } + }, + ) + file_format: str = Field( + ..., + description="""File format for this file""", + json_schema_extra={ + "linkml_meta": { + "alias": "file_format", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_format"], + } + }, + ) + glob_string: Optional[str] = Field( + None, + description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_string", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], + } + }, + ) + glob_strings: Optional[List[str]] = Field( + None, + description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_strings", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], + } + }, + ) + is_visualization_default: Optional[bool] = Field( + False, + description="""This annotation will be rendered in neuroglancer by default.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], + "ifabsent": "False", + } + }, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) + + +class AnnotationTriangularMeshFile(AnnotationSourceFile): + """ + File and sourcing data for a triangular mesh annotation. Annotation that identifies an object. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["TriangularMesh"], "from_schema": "metadata"}) + + scale_factor: Optional[float] = Field( + 1.0, + description="""The scale factor for a mesh annotation file.""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "scale_factor", + "domain_of": ["AnnotationTriangularMeshFile", "AnnotationTriangularMeshGroupFile"], + "exact_mappings": ["cdp-common:annotation_source_file_scale_factor"], + "ifabsent": "float(1)", + } + }, + ) + file_format: str = Field( + ..., + description="""File format for this file""", + json_schema_extra={ + "linkml_meta": { + "alias": "file_format", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_format"], + } + }, + ) + glob_string: Optional[str] = Field( + None, + description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_string", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], + } + }, + ) + glob_strings: Optional[List[str]] = Field( + None, + description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_strings", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], + } + }, + ) + is_visualization_default: Optional[bool] = Field( + False, + description="""This annotation will be rendered in neuroglancer by default.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], + "ifabsent": "False", + } + }, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) + + +class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): + """ + File and sourcing data containing one or more triangular mesh annotations. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"aliases": ["TriangularMeshGroup"], "from_schema": "metadata"}) + + scale_factor: Optional[float] = Field( + 1.0, + description="""The scale factor for a mesh annotation file.""", + ge=0, + json_schema_extra={ + "linkml_meta": { + "alias": "scale_factor", + "domain_of": ["AnnotationTriangularMeshFile", "AnnotationTriangularMeshGroupFile"], + "exact_mappings": ["cdp-common:annotation_source_file_scale_factor"], + "ifabsent": "float(1)", + } + }, + ) + name: Optional[str] = Field( + None, + description="""The name that identifies to a single annotation mesh among multiple meshes.""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "AuthorMixin", + "Author", + ], + "exact_mappings": ["cdp-common:annotation_source_file_mesh_name"], + } + }, + ) + file_format: str = Field( + ..., + description="""File format for this file""", + json_schema_extra={ + "linkml_meta": { + "alias": "file_format", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_format"], + } + }, + ) + glob_string: Optional[str] = Field( + None, + description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_string", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_string"], + } + }, + ) + glob_strings: Optional[List[str]] = Field( + None, + description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", + json_schema_extra={ + "linkml_meta": { + "alias": "glob_strings", + "domain_of": [ + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_glob_strings"], + } + }, + ) + is_visualization_default: Optional[bool] = Field( + False, + description="""This annotation will be rendered in neuroglancer by default.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_visualization_default", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_visualization_default"], + "ifabsent": "False", + } + }, + ) + is_portal_standard: Optional[bool] = Field( + False, + description="""Whether the annotation source is a portal standard.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_portal_standard", + "domain_of": [ + "Tomogram", + "AnnotationSourceFile", + "AnnotationOrientedPointFile", + "AnnotationInstanceSegmentationFile", + "AnnotationPointFile", + "AnnotationSegmentationMaskFile", + "AnnotationSemanticSegmentationMaskFile", + "AnnotationTriangularMeshFile", + "AnnotationTriangularMeshGroupFile", + ], + "exact_mappings": ["cdp-common:annotation_source_file_is_portal_standard"], + "ifabsent": "False", + } + }, + ) + + +class Annotation(AuthoredEntity, DateStampedEntity): + """ + Metadata describing an annotation. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta( + {"from_schema": "metadata", "mixins": ["DateStampedEntity", "AuthoredEntity"]} + ) + + annotation_method: str = Field( + ..., + description="""Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)""", + json_schema_extra={ + "linkml_meta": { + "alias": "annotation_method", + "domain_of": ["Annotation"], + "exact_mappings": ["cdp-common:annotation_method"], + } + }, + ) + annotation_object: AnnotationObject = Field( + ..., + description="""Metadata describing the object being annotated.""", + json_schema_extra={"linkml_meta": {"alias": "annotation_object", "domain_of": ["Annotation"]}}, + ) + annotation_publications: Optional[str] = Field( + None, + description="""List of publication IDs (EMPIAR, EMDB, DOI, PDB) that describe this annotation method. Comma separated.""", + json_schema_extra={ + "linkml_meta": { + "alias": "annotation_publications", + "domain_of": ["Annotation"], + "exact_mappings": ["cdp-common:annotation_publications"], + } + }, + ) + annotation_software: Optional[str] = Field( + None, + description="""Software used for generating this annotation""", + json_schema_extra={ + "linkml_meta": { + "alias": "annotation_software", + "domain_of": ["Annotation"], + "exact_mappings": ["cdp-common:annotation_software"], + "recommended": True, + } + }, + ) + confidence: Optional[AnnotationConfidence] = Field( + None, + description="""Metadata describing the confidence of an annotation.""", + json_schema_extra={"linkml_meta": {"alias": "confidence", "domain_of": ["Annotation"]}}, + ) + files: Optional[List[AnnotationSourceFile]] = Field( + None, + description="""File and sourcing data for an annotation. Represents an entry in annotation.sources.""", + json_schema_extra={ + "linkml_meta": {"alias": "files", "domain_of": ["Annotation"], "list_elements_ordered": True} + }, + ) + ground_truth_status: Optional[bool] = Field( + False, + description="""Whether an annotation is considered ground truth, as determined by the annotator.""", + json_schema_extra={ + "linkml_meta": { + "alias": "ground_truth_status", + "domain_of": ["Annotation"], + "exact_mappings": ["cdp-common:annotation_ground_truth_status"], + "ifabsent": "False", + "recommended": True, + } + }, + ) + is_curator_recommended: Optional[bool] = Field( + False, + description="""This annotation is recommended by the curator to be preferred for this object type.""", + json_schema_extra={ + "linkml_meta": { + "alias": "is_curator_recommended", + "domain_of": ["Annotation"], + "exact_mappings": ["cdp-common:annotation_is_curator_recommended"], + "ifabsent": "False", + } + }, + ) + method_type: AnnotationMethodTypeEnum = Field( + ..., + description="""Classification of the annotation method based on supervision.""", + json_schema_extra={ + "linkml_meta": { + "alias": "method_type", + "domain_of": ["Annotation"], + "exact_mappings": ["cdp-common:annotation_method_type"], + } + }, + ) + method_links: Optional[List[AnnotationMethodLinks]] = Field( + None, + description="""A set of links to models, source code, documentation, etc referenced by annotation the method""", + json_schema_extra={"linkml_meta": {"alias": "method_links", "domain_of": ["Annotation"]}}, + ) + object_count: Optional[int] = Field( + None, + description="""Number of objects identified""", + json_schema_extra={ + "linkml_meta": { + "alias": "object_count", + "domain_of": ["Annotation"], + "exact_mappings": ["cdp-common:annotation_object_count"], + } + }, + ) + version: Optional[float] = Field( + None, + description="""Version of annotation.""", + json_schema_extra={ + "linkml_meta": { + "alias": "version", + "domain_of": ["Annotation"], + "exact_mappings": ["cdp-common:annotation_version"], + } + }, + ) + dates: DateStamp = Field( + ..., + description="""A set of dates at which a data item was deposited, published and last modified.""", + json_schema_extra={ + "linkml_meta": { + "alias": "dates", + "domain_of": ["DateStampedEntity", "Tomogram", "Dataset", "Deposition", "Annotation"], + } + }, + ) + authors: List[Author] = Field( + ..., + description="""Author of a scientific data entity.""", + min_length=1, + json_schema_extra={ + "linkml_meta": { + "alias": "authors", + "domain_of": ["AuthoredEntity", "Dataset", "Deposition", "Tomogram", "Annotation"], + "list_elements_ordered": True, + } + }, + ) + + @field_validator("annotation_publications") + def pattern_annotation_publications(cls, v): + pattern = re.compile( + r"^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$" + ) + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid annotation_publications format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid annotation_publications format: {v}") + return v + + @field_validator("method_type") + def pattern_method_type(cls, v): + pattern = re.compile(r"(^manual$)|(^automated$)|(^hybrid$)|(^simulated$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid method_type format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid method_type format: {v}") + return v + + +class AlignmentSize(ConfiguredBaseModel): + """ + The size of an alignment in voxels in each dimension. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + x: Union[int, str] = Field( + ..., + description="""Number of pixels in the 3D data fast axis""", + json_schema_extra={ + "linkml_meta": { + "alias": "x", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + y: Union[int, str] = Field( + ..., + description="""Number of pixels in the 3D data medium axis""", + json_schema_extra={ + "linkml_meta": { + "alias": "y", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + z: Union[int, str] = Field( + ..., + description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", + json_schema_extra={ + "linkml_meta": { + "alias": "z", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + + @field_validator("x") + def pattern_x(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator("y") + def pattern_y(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator("z") + def pattern_z(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + +class AlignmentOffset(ConfiguredBaseModel): + """ + The offset of a alignment in voxels in each dimension relative to the canonical tomogram. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + x: Union[int, str] = Field( + 0, + description="""x offset relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "x", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "ifabsent": "int(0)", + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + y: Union[int, str] = Field( + 0, + description="""y offset relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "y", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "ifabsent": "int(0)", + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + z: Union[int, str] = Field( + 0, + description="""z offset relative to the canonical tomogram in pixels""", + json_schema_extra={ + "linkml_meta": { + "alias": "z", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["TomogramSize", "TomogramOffset", "AlignmentSize", "AlignmentOffset"], + "ifabsent": "int(0)", + "unit": {"descriptive_name": "pixels", "symbol": "px"}, + } + }, + ) + + @field_validator("x") + def pattern_x(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator("y") + def pattern_y(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator("z") + def pattern_z(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + +class Alignment(ConfiguredBaseModel): + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + alignment_type: Optional[AlignmentTypeEnum] = Field( + None, + description="""The type of alignment.""", + json_schema_extra={"linkml_meta": {"alias": "alignment_type", "domain_of": ["Alignment"]}}, + ) + offset: Optional[AlignmentOffset] = Field( + None, + description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", + json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, + ) + volume_dimesion: Optional[AlignmentSize] = Field( + None, + description="""The size of an alignment in voxels in each dimension.""", + json_schema_extra={"linkml_meta": {"alias": "volume_dimesion", "domain_of": ["Alignment"]}}, + ) + x_rotation_offset: Optional[Union[int, str]] = Field( + 0, + description="""The x rotation offset relative to the tomogram.""", + json_schema_extra={ + "linkml_meta": { + "alias": "x_rotation_offset", + "any_of": [{"range": "integer"}, {"range": "IntegerFormattedString"}], + "domain_of": ["Alignment"], + "ifabsent": "int(0)", + } + }, + ) + tilt_offset: Optional[float] = Field( + 0.0, + description="""The tilt offset relative to the tomogram.""", + json_schema_extra={ + "linkml_meta": {"alias": "tilt_offset", "domain_of": ["Alignment"], "ifabsent": "float(0.0)"} + }, + ) + affine_transformation_matrix: Optional[ + conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float)) + ] = Field( + None, + description="""The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix.""", + json_schema_extra={ + "linkml_meta": { + "alias": "affine_transformation_matrix", + "array": { + "dimensions": [{"exact_cardinality": 4}, {"exact_cardinality": 4}], + "exact_number_dimensions": 2, + }, + "domain_of": ["Tomogram", "Alignment"], + } + }, + ) + is_canonical: Optional[bool] = Field( + True, + description="""Whether the alignment is canonical.""", + json_schema_extra={"linkml_meta": {"alias": "is_canonical", "domain_of": ["Alignment"], "ifabsent": "True"}}, + ) + format: AlignmentFormatEnum = Field( + ..., + description="""The format of the alignment.""", + json_schema_extra={"linkml_meta": {"alias": "format", "domain_of": ["Alignment"]}}, + ) + + @field_validator("alignment_type") + def pattern_alignment_type(cls, v): + pattern = re.compile(r"(^LOCAL$)|(^GLOBAL$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid alignment_type format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid alignment_type format: {v}") + return v + + @field_validator("x_rotation_offset") + def pattern_x_rotation_offset(cls, v): + pattern = re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x_rotation_offset format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid x_rotation_offset format: {v}") + return v + + @field_validator("format") + def pattern_format(cls, v): + pattern = re.compile(r"(^IMOD$)|(^ARETOMO3$)") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid format format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid format format: {v}") + return v + + +class Frame(ConfiguredBaseModel): + """ + A frame entity. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata"}) + + dose: float = Field( + ..., description="""The dose.""", json_schema_extra={"linkml_meta": {"alias": "dose", "domain_of": ["Frame"]}} + ) + defocus: float = Field( + ..., + description="""The defocus.""", + json_schema_extra={"linkml_meta": {"alias": "defocus", "domain_of": ["Frame"]}}, + ) + astigmatism: float = Field( + ..., + description="""The astigmatism.""", + json_schema_extra={"linkml_meta": {"alias": "astigmatism", "domain_of": ["Frame"]}}, + ) + astigmatic_angle: float = Field( + ..., + description="""The astigmatic angle.""", + json_schema_extra={"linkml_meta": {"alias": "astigmatic_angle", "domain_of": ["Frame"]}}, + ) + + +class DateStampedEntityMixin(ConfiguredBaseModel): + """ + A set of dates at which a data item was deposited, published and last modified. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) + + deposition_date: date = Field( + ..., + description="""The date a data item was received by the cryoET data portal.""", + json_schema_extra={ + "linkml_meta": { + "alias": "deposition_date", + "domain_of": ["DateStampedEntityMixin", "DateStamp"], + "exact_mappings": ["cdp-common:deposition_date"], + } + }, + ) + release_date: date = Field( + ..., + description="""The date a data item was received by the cryoET data portal.""", + json_schema_extra={ + "linkml_meta": { + "alias": "release_date", + "domain_of": ["DateStampedEntityMixin", "DateStamp"], + "exact_mappings": ["cdp-common:release_date"], + } + }, + ) + last_modified_date: date = Field( + ..., + description="""The date a piece of data was last modified on the cryoET data portal.""", + json_schema_extra={ + "linkml_meta": { + "alias": "last_modified_date", + "domain_of": ["DateStampedEntityMixin", "DateStamp"], + "exact_mappings": ["cdp-common:last_modified_date"], + } + }, + ) + + +class DateStamp(DateStampedEntityMixin): + """ + A set of dates at which a data item was deposited, published and last modified. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["DateStampedEntityMixin"]}) + + deposition_date: date = Field( + ..., + description="""The date a data item was received by the cryoET data portal.""", + json_schema_extra={ + "linkml_meta": { + "alias": "deposition_date", + "domain_of": ["DateStampedEntityMixin", "DateStamp"], + "exact_mappings": ["cdp-common:deposition_date"], + } + }, + ) + release_date: date = Field( + ..., + description="""The date a data item was received by the cryoET data portal.""", + json_schema_extra={ + "linkml_meta": { + "alias": "release_date", + "domain_of": ["DateStampedEntityMixin", "DateStamp"], + "exact_mappings": ["cdp-common:release_date"], + } + }, + ) + last_modified_date: date = Field( + ..., + description="""The date a piece of data was last modified on the cryoET data portal.""", + json_schema_extra={ + "linkml_meta": { + "alias": "last_modified_date", + "domain_of": ["DateStampedEntityMixin", "DateStamp"], + "exact_mappings": ["cdp-common:last_modified_date"], + } + }, + ) + + +class CrossReferencesMixin(ConfiguredBaseModel): + """ + A set of cross-references to other databases and publications. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) + + publications: Optional[str] = Field( + None, + description="""Comma-separated list of DOIs for publications associated with the dataset.""", + json_schema_extra={ + "linkml_meta": { + "alias": "publications", + "domain_of": ["CrossReferencesMixin", "CrossReferences"], + "recommended": True, + } + }, + ) + related_database_entries: Optional[str] = Field( + None, + description="""Comma-separated list of related database entries for the dataset.""", + json_schema_extra={ + "linkml_meta": { + "alias": "related_database_entries", + "domain_of": ["CrossReferencesMixin", "CrossReferences"], + "recommended": True, + } + }, + ) + related_database_links: Optional[str] = Field( + None, + description="""Comma-separated list of related database links for the dataset.""", + json_schema_extra={ + "linkml_meta": {"alias": "related_database_links", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} + }, + ) + dataset_citations: Optional[str] = Field( + None, + description="""Comma-separated list of DOIs for publications citing the dataset.""", + json_schema_extra={ + "linkml_meta": {"alias": "dataset_citations", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} + }, + ) + + @field_validator("publications") + def pattern_publications(cls, v): + pattern = re.compile( + r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)" + ) + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid publications format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid publications format: {v}") + return v + + @field_validator("related_database_entries") + def pattern_related_database_entries(cls, v): + pattern = re.compile( + r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)" + ) + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid related_database_entries format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid related_database_entries format: {v}") + return v + + +class CrossReferences(CrossReferencesMixin): + """ + A set of cross-references to other databases and publications. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["CrossReferencesMixin"]}) + + publications: Optional[str] = Field( + None, + description="""Comma-separated list of DOIs for publications associated with the dataset.""", + json_schema_extra={ + "linkml_meta": { + "alias": "publications", + "domain_of": ["CrossReferencesMixin", "CrossReferences"], + "recommended": True, + } + }, + ) + related_database_entries: Optional[str] = Field( + None, + description="""Comma-separated list of related database entries for the dataset.""", + json_schema_extra={ + "linkml_meta": { + "alias": "related_database_entries", + "domain_of": ["CrossReferencesMixin", "CrossReferences"], + "recommended": True, + } + }, + ) + related_database_links: Optional[str] = Field( + None, + description="""Comma-separated list of related database links for the dataset.""", + json_schema_extra={ + "linkml_meta": {"alias": "related_database_links", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} + }, + ) + dataset_citations: Optional[str] = Field( + None, + description="""Comma-separated list of DOIs for publications citing the dataset.""", + json_schema_extra={ + "linkml_meta": {"alias": "dataset_citations", "domain_of": ["CrossReferencesMixin", "CrossReferences"]} + }, + ) + + @field_validator("publications") + def pattern_publications(cls, v): + pattern = re.compile( + r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)" + ) + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid publications format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid publications format: {v}") + return v + + @field_validator("related_database_entries") + def pattern_related_database_entries(cls, v): + pattern = re.compile( + r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)" + ) + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid related_database_entries format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid related_database_entries format: {v}") + return v + + +class AuthorMixin(ConfiguredBaseModel): + """ + An entity with author data + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixin": True}) + + name: str = Field( + ..., + description="""The full name of the author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "AuthorMixin", + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "Author", + ], + "exact_mappings": ["cdp-common:author_name"], + } + }, + ) + email: Optional[str] = Field( + None, + description="""The email address of the author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "email", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_email"], + } + }, + ) + affiliation_name: Optional[str] = Field( + None, + description="""The name of the author's affiliation.""", + json_schema_extra={ + "linkml_meta": { + "alias": "affiliation_name", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_affiliation_name"], + } + }, + ) + affiliation_address: Optional[str] = Field( + None, + description="""The address of the author's affiliation.""", + json_schema_extra={ + "linkml_meta": { + "alias": "affiliation_address", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_affiliation_address"], + } + }, + ) + affiliation_identifier: Optional[str] = Field( + None, + description="""A Research Organization Registry (ROR) identifier.""", + json_schema_extra={ + "linkml_meta": { + "alias": "affiliation_identifier", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_affiliation_identifier"], + "recommended": True, + } + }, + ) + corresponding_author_status: Optional[bool] = Field( + False, + description="""Whether the author is a corresponding author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "corresponding_author_status", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_corresponding_author_status"], + "ifabsent": "False", + } + }, + ) + primary_author_status: Optional[bool] = Field( + False, + description="""Whether the author is a primary author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "primary_author_status", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_primary_author_status"], + "ifabsent": "False", + } + }, + ) + + +class Author(AuthorMixin): + """ + Author of a scientific data entity. + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "metadata", "mixins": ["AuthorMixin"]}) + + ORCID: Optional[str] = Field( + None, + description="""The ORCID identifier for the author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "ORCID", + "domain_of": ["Author"], + "exact_mappings": ["cdp-common:author_orcid"], + "recommended": True, + } + }, + ) + name: str = Field( + ..., + description="""The full name of the author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": [ + "AuthorMixin", + "OrganismDetails", + "TissueDetails", + "CellType", + "CellStrain", + "CellComponent", + "AnnotationObject", + "AnnotationTriangularMeshGroupFile", + "Author", + ], + "exact_mappings": ["cdp-common:author_name"], + } + }, + ) + email: Optional[str] = Field( + None, + description="""The email address of the author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "email", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_email"], + } + }, + ) + affiliation_name: Optional[str] = Field( + None, + description="""The name of the author's affiliation.""", + json_schema_extra={ + "linkml_meta": { + "alias": "affiliation_name", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_affiliation_name"], + } + }, + ) + affiliation_address: Optional[str] = Field( + None, + description="""The address of the author's affiliation.""", + json_schema_extra={ + "linkml_meta": { + "alias": "affiliation_address", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_affiliation_address"], + } + }, + ) + affiliation_identifier: Optional[str] = Field( + None, + description="""A Research Organization Registry (ROR) identifier.""", + json_schema_extra={ + "linkml_meta": { + "alias": "affiliation_identifier", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_affiliation_identifier"], + "recommended": True, + } + }, + ) + corresponding_author_status: Optional[bool] = Field( + False, + description="""Whether the author is a corresponding author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "corresponding_author_status", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_corresponding_author_status"], + "ifabsent": "False", + } + }, + ) + primary_author_status: Optional[bool] = Field( + False, + description="""Whether the author is a primary author.""", + json_schema_extra={ + "linkml_meta": { + "alias": "primary_author_status", + "domain_of": ["AuthorMixin", "Author"], + "exact_mappings": ["cdp-common:author_primary_author_status"], + "ifabsent": "False", + } + }, + ) + + @field_validator("ORCID") + def pattern_ORCID(cls, v): + pattern = re.compile(r"[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$") + if isinstance(v, list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid ORCID format: {element}") + elif isinstance(v, str): + if not pattern.match(v): + raise ValueError(f"Invalid ORCID format: {v}") + return v + + +# Model rebuild +# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model +PicturePath.model_rebuild() +FundingDetails.model_rebuild() +DateStampedEntity.model_rebuild() +AuthoredEntity.model_rebuild() +FundedEntity.model_rebuild() +CrossReferencedEntity.model_rebuild() +PicturedEntity.model_rebuild() +OrganismDetails.model_rebuild() +TissueDetails.model_rebuild() +CellType.model_rebuild() +CellStrain.model_rebuild() +CellComponent.model_rebuild() +ExperimentMetadata.model_rebuild() +Dataset.model_rebuild() +Deposition.model_rebuild() +CameraDetails.model_rebuild() +MicroscopeDetails.model_rebuild() +MicroscopeOpticalSetup.model_rebuild() +TiltRange.model_rebuild() +TiltSeries.model_rebuild() +TomogramSize.model_rebuild() +TomogramOffset.model_rebuild() +Tomogram.model_rebuild() +AnnotationConfidence.model_rebuild() +AnnotationObject.model_rebuild() +AnnotationMethodLinks.model_rebuild() +AnnotationSourceFile.model_rebuild() +AnnotationOrientedPointFile.model_rebuild() +AnnotationInstanceSegmentationFile.model_rebuild() +AnnotationPointFile.model_rebuild() +AnnotationSegmentationMaskFile.model_rebuild() +AnnotationSemanticSegmentationMaskFile.model_rebuild() +AnnotationTriangularMeshFile.model_rebuild() +AnnotationTriangularMeshGroupFile.model_rebuild() +Annotation.model_rebuild() +AlignmentSize.model_rebuild() +AlignmentOffset.model_rebuild() +Alignment.model_rebuild() +Frame.model_rebuild() +DateStampedEntityMixin.model_rebuild() +DateStamp.model_rebuild() +CrossReferencesMixin.model_rebuild() +CrossReferences.model_rebuild() +AuthorMixin.model_rebuild() +Author.model_rebuild() + diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py new file mode 100644 index 000000000..87959376a --- /dev/null +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -0,0 +1,6668 @@ +from __future__ import annotations +from datetime import ( + datetime, + date +) +from decimal import Decimal +from enum import Enum +import re +import sys +from typing import ( + Any, + ClassVar, + List, + Literal, + Dict, + Optional, + Union +) +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator, + conlist +) +metamodel_version = "None" +version = "1.1.0" + + +class ConfiguredBaseModel(BaseModel): + model_config = ConfigDict( + validate_assignment = True, + validate_default = True, + extra = "forbid", + arbitrary_types_allowed = True, + use_enum_values = True, + strict = False, + ) + pass + + + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'cdp-ingestion-config/', + 'description': 'Schema for ingestion configs', + 'id': 'cdp-ingestion-config', + 'imports': ['linkml:types', + '../../../core/v1.1.0/codegen/metadata_materialized', + '../../../core/v1.1.0/common'], + 'name': 'cdp-ingestion-config', + 'prefixes': {'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}}, + 'source_file': 'ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml', + 'types': {'BTO_ID': {'base': 'str', + 'description': 'A BRENDA Tissue Ontology identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'BTO_ID', + 'pattern': '^BTO:[0-9]{7}$'}, + 'CL_ID': {'base': 'str', + 'description': 'A Cell Ontology identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'CL_ID', + 'pattern': '^CL:[0-9]{7}$'}, + 'DOI': {'base': 'str', + 'description': 'A Digital Object Identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'DOI', + 'pattern': '^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+$'}, + 'DOI_LIST': {'base': 'str', + 'description': 'A list of Digital Object Identifiers', + 'from_schema': 'cdp-ingestion-config', + 'name': 'DOI_LIST', + 'pattern': '^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$'}, + 'EMDB_ID': {'base': 'str', + 'description': 'An Electron Microscopy Data Bank ' + 'identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'EMDB_ID', + 'pattern': '^EMD-[0-9]{4,5}$'}, + 'EMPIAR_EMDB_DOI_PDB_LIST': {'base': 'str', + 'description': 'A list of EMPIAR, ' + 'EMDB, DOI, and PDB ' + 'identifiers', + 'from_schema': 'cdp-ingestion-config', + 'name': 'EMPIAR_EMDB_DOI_PDB_LIST', + 'pattern': '^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$'}, + 'EMPIAR_EMDB_PDB_LIST': {'base': 'str', + 'description': 'A list of EMPIAR, EMDB, ' + 'and PDB identifiers', + 'from_schema': 'cdp-ingestion-config', + 'name': 'EMPIAR_EMDB_PDB_LIST', + 'pattern': '^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$'}, + 'EMPIAR_ID': {'base': 'str', + 'description': 'An Electron Microscopy Public Image ' + 'Archive identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'EMPIAR_ID', + 'pattern': '^EMPIAR-[0-9]+$'}, + 'FloatFormattedString': {'base': 'str', + 'description': 'A formatted string that ' + 'represents a floating ' + 'point number.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'FloatFormattedString', + 'pattern': '^float[ ' + ']*\\{[a-zA-Z0-9_-]+\\}[ ]*$'}, + 'GO_ID': {'base': 'str', + 'description': 'A Gene Ontology identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'GO_ID', + 'pattern': '^GO:[0-9]{7}$'}, + 'IntegerFormattedString': {'base': 'str', + 'description': 'A formatted string that ' + 'represents an integer.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'IntegerFormattedString', + 'pattern': '^int[ ' + ']*\\{[a-zA-Z0-9_-]+\\}[ ]*$'}, + 'ONTOLOGY_ID': {'base': 'str', + 'description': 'An ontology identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'ONTOLOGY_ID', + 'pattern': '^[a-zA-Z]+:[0-9]+$'}, + 'ORCID': {'base': 'str', + 'description': 'A unique, persistent identifier for ' + 'researchers, provided by ORCID.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'ORCID', + 'pattern': '[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$'}, + 'PDB_ID': {'base': 'str', + 'description': 'A Protein Data Bank identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'PDB_ID', + 'pattern': '^PDB-[0-9a-zA-Z]{4,8}$'}, + 'StringFormattedString': {'base': 'str', + 'description': 'A formatted string ' + '(variable) that ' + 'represents a string.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'StringFormattedString', + 'pattern': '^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ' + ']*$'}, + 'UNIPROT_ID': {'base': 'str', + 'description': 'A UniProt identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'UNIPROT_ID', + 'pattern': '^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$'}, + 'URLorS3URI': {'base': 'str', + 'description': 'A URL or S3 URI', + 'from_schema': 'cdp-ingestion-config', + 'name': 'URLorS3URI', + 'pattern': '^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$'}, + 'VersionString': {'base': 'float', + 'description': 'A version number (only major, ' + 'minor versions)', + 'from_schema': 'cdp-ingestion-config', + 'minimum_value': 0, + 'name': 'VersionString'}, + 'WORMBASE_ID': {'base': 'str', + 'description': 'A WormBase identifier', + 'from_schema': 'cdp-ingestion-config', + 'name': 'WORMBASE_ID', + 'pattern': 'WBStrain[0-9]{8}$'}, + 'boolean': {'base': 'Bool', + 'description': 'A binary (true or false) value', + 'exact_mappings': ['schema:Boolean'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'boolean', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"boolean".'], + 'repr': 'bool', + 'uri': 'xsd:boolean'}, + 'curie': {'base': 'Curie', + 'comments': ['in RDF serializations this MUST be expanded ' + 'to a URI', + 'in non-RDF serializations MAY be serialized ' + 'as the compact representation'], + 'conforms_to': 'https://www.w3.org/TR/curie/', + 'description': 'a compact URI', + 'from_schema': 'cdp-ingestion-config', + 'name': 'curie', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"curie".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'date': {'base': 'XSDDate', + 'description': 'a date (year, month and day) in an ' + 'idealized calendar', + 'exact_mappings': ['schema:Date'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'date', + 'notes': ["URI is dateTime because OWL reasoners don't " + 'work with straight date or time', + 'If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"date".'], + 'repr': 'str', + 'uri': 'xsd:date'}, + 'date_or_datetime': {'base': 'str', + 'description': 'Either a date or a datetime', + 'from_schema': 'cdp-ingestion-config', + 'name': 'date_or_datetime', + 'notes': ['If you are authoring schemas in ' + 'LinkML YAML, the type is referenced ' + 'with the lower case ' + '"date_or_datetime".'], + 'repr': 'str', + 'uri': 'linkml:DateOrDatetime'}, + 'datetime': {'base': 'XSDDateTime', + 'description': 'The combination of a date and time', + 'exact_mappings': ['schema:DateTime'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'datetime', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the lower ' + 'case "datetime".'], + 'repr': 'str', + 'uri': 'xsd:dateTime'}, + 'decimal': {'base': 'Decimal', + 'broad_mappings': ['schema:Number'], + 'description': 'A real number with arbitrary precision ' + 'that conforms to the xsd:decimal ' + 'specification', + 'from_schema': 'cdp-ingestion-config', + 'name': 'decimal', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"decimal".'], + 'uri': 'xsd:decimal'}, + 'double': {'base': 'float', + 'close_mappings': ['schema:Float'], + 'description': 'A real number that conforms to the ' + 'xsd:double specification', + 'from_schema': 'cdp-ingestion-config', + 'name': 'double', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"double".'], + 'uri': 'xsd:double'}, + 'float': {'base': 'float', + 'description': 'A real number that conforms to the ' + 'xsd:float specification', + 'exact_mappings': ['schema:Float'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'float', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"float".'], + 'uri': 'xsd:float'}, + 'integer': {'base': 'int', + 'description': 'An integer', + 'exact_mappings': ['schema:Integer'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'integer', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"integer".'], + 'uri': 'xsd:integer'}, + 'jsonpath': {'base': 'str', + 'conforms_to': 'https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html', + 'description': 'A string encoding a JSON Path. The ' + 'value of the string MUST conform to ' + 'JSON Point syntax and SHOULD ' + 'dereference to zero or more valid ' + 'objects within the current instance ' + 'document when encoded in tree form.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'jsonpath', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the lower ' + 'case "jsonpath".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'jsonpointer': {'base': 'str', + 'conforms_to': 'https://datatracker.ietf.org/doc/html/rfc6901', + 'description': 'A string encoding a JSON Pointer. ' + 'The value of the string MUST ' + 'conform to JSON Point syntax and ' + 'SHOULD dereference to a valid ' + 'object within the current instance ' + 'document when encoded in tree form.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'jsonpointer', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the ' + 'lower case "jsonpointer".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'ncname': {'base': 'NCName', + 'description': 'Prefix part of CURIE', + 'from_schema': 'cdp-ingestion-config', + 'name': 'ncname', + 'notes': ['If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"ncname".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'nodeidentifier': {'base': 'NodeIdentifier', + 'description': 'A URI, CURIE or BNODE that ' + 'represents a node in a model.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'nodeidentifier', + 'notes': ['If you are authoring schemas in ' + 'LinkML YAML, the type is referenced ' + 'with the lower case ' + '"nodeidentifier".'], + 'repr': 'str', + 'uri': 'shex:nonLiteral'}, + 'objectidentifier': {'base': 'ElementIdentifier', + 'comments': ['Used for inheritance and type ' + 'checking'], + 'description': 'A URI or CURIE that represents ' + 'an object in the model.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'objectidentifier', + 'notes': ['If you are authoring schemas in ' + 'LinkML YAML, the type is referenced ' + 'with the lower case ' + '"objectidentifier".'], + 'repr': 'str', + 'uri': 'shex:iri'}, + 'sparqlpath': {'base': 'str', + 'conforms_to': 'https://www.w3.org/TR/sparql11-query/#propertypaths', + 'description': 'A string encoding a SPARQL Property ' + 'Path. The value of the string MUST ' + 'conform to SPARQL syntax and SHOULD ' + 'dereference to zero or more valid ' + 'objects within the current instance ' + 'document when encoded as RDF.', + 'from_schema': 'cdp-ingestion-config', + 'name': 'sparqlpath', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the ' + 'lower case "sparqlpath".'], + 'repr': 'str', + 'uri': 'xsd:string'}, + 'string': {'base': 'str', + 'description': 'A character string', + 'exact_mappings': ['schema:Text'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'string', + 'notes': ['In RDF serializations, a slot with range of ' + 'string is treated as a literal or type ' + 'xsd:string. If you are authoring schemas in ' + 'LinkML YAML, the type is referenced with the ' + 'lower case "string".'], + 'uri': 'xsd:string'}, + 'time': {'base': 'XSDTime', + 'description': 'A time object represents a (local) time of ' + 'day, independent of any particular day', + 'exact_mappings': ['schema:Time'], + 'from_schema': 'cdp-ingestion-config', + 'name': 'time', + 'notes': ['URI is dateTime because OWL reasoners do not ' + 'work with straight date or time', + 'If you are authoring schemas in LinkML YAML, ' + 'the type is referenced with the lower case ' + '"time".'], + 'repr': 'str', + 'uri': 'xsd:time'}, + 'uri': {'base': 'URI', + 'close_mappings': ['schema:URL'], + 'comments': ['in RDF serializations a slot with range of ' + 'uri is treated as a literal or type ' + 'xsd:anyURI unless it is an identifier or a ' + 'reference to an identifier, in which case it ' + 'is translated directly to a node'], + 'conforms_to': 'https://www.ietf.org/rfc/rfc3987.txt', + 'description': 'a complete URI', + 'from_schema': 'cdp-ingestion-config', + 'name': 'uri', + 'notes': ['If you are authoring schemas in LinkML YAML, the ' + 'type is referenced with the lower case "uri".'], + 'repr': 'str', + 'uri': 'xsd:anyURI'}, + 'uriorcurie': {'base': 'URIorCURIE', + 'description': 'a URI or a CURIE', + 'from_schema': 'cdp-ingestion-config', + 'name': 'uriorcurie', + 'notes': ['If you are authoring schemas in LinkML ' + 'YAML, the type is referenced with the ' + 'lower case "uriorcurie".'], + 'repr': 'str', + 'uri': 'xsd:anyURI'}}} ) + +class AlignmentTypeEnum(str, Enum): + """ + Type of alignment + """ + # Local alignment + LOCAL = "LOCAL" + # Global alignment + GLOBAL = "GLOBAL" + + +class AlignmentFormatEnum(str, Enum): + """ + Used to determine what alignment alogrithm to use. + """ + # formats (xf, tlt, com) + IMOD = "IMOD" + # formats (aln) + ARETOMO3 = "ARETOMO3" + + +class AnnotationMethodTypeEnum(str, Enum): + """ + Describes how the annotations were generated. + """ + # Annotations were generated manually. + manual = "manual" + # Annotations were generated using automated tools or algorithms without supervision. + automated = "automated" + # Annotations were generated using a combination of automated and manual methods. + hybrid = "hybrid" + # Annotations were generated by simulation tools or algorithms. + simulated = "simulated" + + +class AnnotationFileShapeTypeEnum(str, Enum): + """ + Describes the shape of the annotation + """ + # A binary mask volume + SegmentationMask = "SegmentationMask" + # A series of coordinates and an orientation + OrientedPoint = "OrientedPoint" + # A series of coordinates + Point = "Point" + # A volume with labels for multiple instances + InstanceSegmentation = "InstanceSegmentation" + # A mesh of triangles + TriangularMesh = "TriangularMesh" + # A group of triangular meshes + TriangularMeshGroup = "TriangularMeshGroup" + + +class AnnotationMethodLinkTypeEnum(str, Enum): + """ + Describes the type of link associated to the annotation method. + """ + # Links to the documentation related to the method. + documentation = "documentation" + # Links to the weights that the models used for generating annotations were trained with. + models_weights = "models_weights" + # Link to resources that does not fit in the other categories. + other = "other" + # Links to the source code of the method. + source_code = "source_code" + # Links to a website of the method or tool used to generate the annotation. + website = "website" + + +class DepositionTypesEnum(str, Enum): + """ + Types of data a deposition has + """ + # The deposition comprises of new annotations for existing datasets + annotation = "annotation" + # The deposition comprises of new dataset(s). + dataset = "dataset" + # The deposition comprises of new tomograms for existing datasets + tomogram = "tomogram" + + +class SampleTypeEnum(str, Enum): + """ + Type of sample imaged in a CryoET study. + """ + # Tomographic data of whole cells or cell sections. + cell = "cell" + # Tomographic data of tissue sections. + tissue = "tissue" + # Tomographic data of sections through multicellular organisms. + organism = "organism" + # Tomographic data of purified organelles. + organelle = "organelle" + # Tomographic data of purified viruses or VLPs. + virus = "virus" + # Tomographic data of in vitro reconstituted systems or mixtures of proteins. + in_vitro = "in_vitro" + # Simulated tomographic data. + in_silico = "in_silico" + # Other type of sample. + other = "other" + + +class TiltseriesCameraAcquireModeEnum(str, Enum): + """ + Camera acquisition mode + """ + # Counting mode + counting = "counting" + # Super-resolution mode + superresolution = "superresolution" + # Linear mode + linear = "linear" + # Correlated double sampling mode + cds = "cds" + + +class TiltseriesMicroscopeManufacturerEnum(str, Enum): + """ + Microscope manufacturer + """ + # FEI Company + FEI = "FEI" + # Thermo Fisher Scientific + TFS = "TFS" + # JEOL Ltd. + JEOL = "JEOL" + # Simulated data + SIMULATED = "SIMULATED" + + +class FiducialAlignmentStatusEnum(str, Enum): + """ + Fiducial Alignment method + """ + # Alignment computed based on fiducial markers + FIDUCIAL = "FIDUCIAL" + # Alignment computed without fiducial markers + NON_FIDUCIAL = "NON_FIDUCIAL" + + +class TomogramProcessingEnum(str, Enum): + """ + Tomogram processing method + """ + # Tomogram was denoised + denoised = "denoised" + # Tomogram was filtered + filtered = "filtered" + # Tomogram was not processed + raw = "raw" + + +class TomogramReconstructionMethodEnum(str, Enum): + """ + Tomogram reconstruction method + """ + # Simultaneous Algebraic Reconstruction Technique + SART = "SART" + # Fourier space reconstruction + Fourier_Space = "Fourier Space" + # Simultaneous Iterative Reconstruction Technique + SIRT = "SIRT" + # Weighted Back-Projection + WBP = "WBP" + # Unknown reconstruction method + Unknown = "Unknown" + + +class TomogramTypeEnum(str, Enum): + """ + Tomogram type + """ + # Canonical tomogram (basis geometry for all annotations) + CANONICAL = "CANONICAL" + + + +class PicturePath(ConfiguredBaseModel): + """ + A set of paths to representative images of a piece of data. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + snapshot: Optional[str] = Field(None, description="""Path to the dataset preview image relative to the dataset directory root.""", json_schema_extra = { "linkml_meta": {'alias': 'snapshot', + 'domain_of': ['PicturePath'], + 'exact_mappings': ['cdp-common:snapshot'], + 'recommended': True} }) + thumbnail: Optional[str] = Field(None, description="""Path to the thumbnail of preview image relative to the dataset directory root.""", json_schema_extra = { "linkml_meta": {'alias': 'thumbnail', + 'domain_of': ['PicturePath'], + 'exact_mappings': ['cdp-common:thumbnail'], + 'recommended': True} }) + + @field_validator('snapshot') + def pattern_snapshot(cls, v): + pattern=re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid snapshot format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid snapshot format: {v}") + return v + + @field_validator('thumbnail') + def pattern_thumbnail(cls, v): + pattern=re.compile(r"^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid thumbnail format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid thumbnail format: {v}") + return v + + +class FundingDetails(ConfiguredBaseModel): + """ + A funding source for a scientific data entity (base for JSON and DB representation). + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + funding_agency_name: Optional[str] = Field(None, description="""The name of the funding source.""", json_schema_extra = { "linkml_meta": {'alias': 'funding_agency_name', + 'domain_of': ['FundingDetails'], + 'exact_mappings': ['cdp-common:funding_agency_name'], + 'recommended': True} }) + grant_id: Optional[str] = Field(None, description="""Grant identifier provided by the funding agency""", json_schema_extra = { "linkml_meta": {'alias': 'grant_id', + 'domain_of': ['FundingDetails'], + 'exact_mappings': ['cdp-common:funding_grant_id'], + 'recommended': True} }) + + +class DateStampedEntity(ConfiguredBaseModel): + """ + An entity with associated deposition, release and last modified dates. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) + + +class AuthoredEntity(ConfiguredBaseModel): + """ + An entity with associated authors. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + + +class FundedEntity(ConfiguredBaseModel): + """ + An entity with associated funding sources. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + funding: Optional[List[FundingDetails]] = Field(None, description="""A funding source for a scientific data entity (base for JSON and DB representation).""", json_schema_extra = { "linkml_meta": {'alias': 'funding', + 'domain_of': ['FundedEntity', 'Dataset'], + 'list_elements_ordered': True, + 'recommended': True} }) + + +class CrossReferencedEntity(ConfiguredBaseModel): + """ + An entity with associated cross-references to other databases and publications. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixin': True}) + + cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', + 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) + + +class PicturedEntity(ConfiguredBaseModel): + """ + An entity with associated preview images. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + key_photos: PicturePath = Field(..., description="""A set of paths to representative images of a piece of data.""", json_schema_extra = { "linkml_meta": {'alias': 'key_photos', 'domain_of': ['PicturedEntity']} }) + + +class OrganismDetails(ConfiguredBaseModel): + """ + The species from which the sample was derived. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Name of the organism from which a biological sample used in a CryoET study is derived from, e.g. homo sapiens.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:organism_name']} }) + taxonomy_id: Optional[int] = Field(None, description="""NCBI taxonomy identifier for the organism, e.g. 9606""", ge=1, json_schema_extra = { "linkml_meta": {'alias': 'taxonomy_id', + 'domain_of': ['OrganismDetails'], + 'exact_mappings': ['cdp-common:organism_taxid'], + 'recommended': True} }) + + +class TissueDetails(ConfiguredBaseModel): + """ + The type of tissue from which the sample was derived. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Name of the tissue from which a biological sample used in a CryoET study is derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:tissue_name']} }) + id: Optional[str] = Field(None, description="""The UBERON identifier for the tissue.""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:tissue_id'], + 'recommended': True} }) + + @field_validator('id') + def pattern_id(cls, v): + pattern=re.compile(r"^BTO:[0-9]{7}$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class CellType(ConfiguredBaseModel): + """ + The cell type from which the sample was derived. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Name of the cell type from which a biological sample used in a CryoET study is derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:cell_name']} }) + id: Optional[str] = Field(None, description="""Cell Ontology identifier for the cell type""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:cell_type_id'], + 'recommended': True} }) + + @field_validator('id') + def pattern_id(cls, v): + pattern=re.compile(r"^CL:[0-9]{7}$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class CellStrain(ConfiguredBaseModel): + """ + The strain or cell line from which the sample was derived. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Cell line or strain for the sample.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:cell_strain_name']} }) + id: Optional[str] = Field(None, description="""Link to more information about the cell strain.""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'any_of': [{'range': 'WORMBASE_ID'}, {'range': 'ONTOLOGY_ID'}], + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:cell_strain_id'], + 'recommended': True} }) + + @field_validator('id') + def pattern_id(cls, v): + pattern=re.compile(r"(WBStrain[0-9]{8}$)|(^[a-zA-Z]+:[0-9]+$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class CellComponent(ConfiguredBaseModel): + """ + The cellular component from which the sample was derived. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + name: str = Field(..., description="""Name of the cellular component.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:cell_component_name']} }) + id: Optional[str] = Field(None, description="""The GO identifier for the cellular component.""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:cell_component_id'], + 'recommended': True} }) + + @field_validator('id') + def pattern_id(cls, v): + pattern=re.compile(r"^GO:[0-9]{7}$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class ExperimentMetadata(ConfiguredBaseModel): + """ + Metadata describing sample and sample preparation methods used in a cryoET dataset. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + sample_type: SampleTypeEnum = Field(..., description="""Type of sample imaged in a CryoET study.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_type', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:preparation_sample_type']} }) + sample_preparation: Optional[str] = Field(None, description="""Describes how the sample was prepared.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_preparation', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:sample_preparation'], + 'recommended': True} }) + grid_preparation: Optional[str] = Field(None, description="""Describes Cryo-ET grid preparation.""", json_schema_extra = { "linkml_meta": {'alias': 'grid_preparation', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:grid_preparation'], + 'recommended': True} }) + other_setup: Optional[str] = Field(None, description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", json_schema_extra = { "linkml_meta": {'alias': 'other_setup', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:preparation_other_setup'], + 'recommended': True} }) + organism: Optional[OrganismDetails] = Field(None, description="""The species from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'organism', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + tissue: Optional[TissueDetails] = Field(None, description="""The type of tissue from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'tissue', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_type: Optional[CellType] = Field(None, description="""The cell type from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_strain: Optional[CellStrain] = Field(None, description="""The strain or cell line from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_strain', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_component: Optional[CellComponent] = Field(None, description="""The cellular component from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_component', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + + @field_validator('sample_type') + def pattern_sample_type(cls, v): + pattern=re.compile(r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid sample_type format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid sample_type format: {v}") + return v + + +class Dataset(ExperimentMetadata, CrossReferencedEntity, FundedEntity, AuthoredEntity, DateStampedEntity): + """ + High-level description of a cryoET dataset. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', + 'mixins': ['DateStampedEntity', + 'AuthoredEntity', + 'FundedEntity', + 'CrossReferencedEntity', + 'ExperimentMetadata']}) + + dataset_identifier: int = Field(..., description="""An identifier for a CryoET dataset, assigned by the Data Portal. Used to identify the dataset as the directory name in data tree.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_identifier', + 'domain_of': ['Dataset'], + 'exact_mappings': ['cdp-common:dataset_identifier']} }) + dataset_title: str = Field(..., description="""Title of a CryoET dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_title', + 'domain_of': ['Dataset'], + 'exact_mappings': ['cdp-common:dataset_title']} }) + dataset_description: str = Field(..., description="""A short description of a CryoET dataset, similar to an abstract for a journal article or dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_description', + 'domain_of': ['Dataset'], + 'exact_mappings': ['cdp-common:dataset_description']} }) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + funding: Optional[List[FundingDetails]] = Field(None, description="""A funding source for a scientific data entity (base for JSON and DB representation).""", json_schema_extra = { "linkml_meta": {'alias': 'funding', + 'domain_of': ['FundedEntity', 'Dataset'], + 'list_elements_ordered': True, + 'recommended': True} }) + cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', + 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) + sample_type: SampleTypeEnum = Field(..., description="""Type of sample imaged in a CryoET study.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_type', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:preparation_sample_type']} }) + sample_preparation: Optional[str] = Field(None, description="""Describes how the sample was prepared.""", json_schema_extra = { "linkml_meta": {'alias': 'sample_preparation', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:sample_preparation'], + 'recommended': True} }) + grid_preparation: Optional[str] = Field(None, description="""Describes Cryo-ET grid preparation.""", json_schema_extra = { "linkml_meta": {'alias': 'grid_preparation', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:grid_preparation'], + 'recommended': True} }) + other_setup: Optional[str] = Field(None, description="""Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.""", json_schema_extra = { "linkml_meta": {'alias': 'other_setup', + 'domain_of': ['ExperimentMetadata', 'Dataset'], + 'exact_mappings': ['cdp-common:preparation_other_setup'], + 'recommended': True} }) + organism: Optional[OrganismDetails] = Field(None, description="""The species from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'organism', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + tissue: Optional[TissueDetails] = Field(None, description="""The type of tissue from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'tissue', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_type: Optional[CellType] = Field(None, description="""The cell type from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_strain: Optional[CellStrain] = Field(None, description="""The strain or cell line from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_strain', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + cell_component: Optional[CellComponent] = Field(None, description="""The cellular component from which the sample was derived.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_component', 'domain_of': ['ExperimentMetadata', 'Dataset']} }) + + @field_validator('sample_type') + def pattern_sample_type(cls, v): + pattern=re.compile(r"(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid sample_type format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid sample_type format: {v}") + return v + + +class Deposition(CrossReferencedEntity, AuthoredEntity, DateStampedEntity): + """ + Metadata describing a deposition. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', + 'mixins': ['DateStampedEntity', 'AuthoredEntity', 'CrossReferencedEntity']}) + + deposition_description: str = Field(..., description="""A short description of the deposition, similar to an abstract for a journal article or dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_description', + 'domain_of': ['Deposition'], + 'exact_mappings': ['cdp-common:deposition_description']} }) + deposition_identifier: int = Field(..., description="""An identifier for a CryoET deposition, assigned by the Data Portal. Used to identify the deposition the entity is a part of.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_identifier', + 'domain_of': ['Deposition'], + 'exact_mappings': ['cdp-common:deposition_identifier']} }) + deposition_title: str = Field(..., description="""Title of a CryoET deposition.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_title', + 'domain_of': ['Deposition'], + 'exact_mappings': ['cdp-common:deposition_title']} }) + deposition_types: List[DepositionTypesEnum] = Field(..., description="""Type of data in the deposition (e.g. dataset, annotation, tomogram)""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'deposition_types', + 'domain_of': ['Deposition'], + 'exact_mappings': ['cdp-common:deposition_types']} }) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', + 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) + + @field_validator('deposition_types') + def pattern_deposition_types(cls, v): + pattern=re.compile(r"(^annotation$)|(^dataset$)|(^tomogram$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid deposition_types format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid deposition_types format: {v}") + return v + + +class CameraDetails(ConfiguredBaseModel): + """ + The camera used to collect the tilt series. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + acquire_mode: Optional[Union[TiltseriesCameraAcquireModeEnum, str]] = Field(None, description="""Camera acquisition mode""", json_schema_extra = { "linkml_meta": {'alias': 'acquire_mode', + 'any_of': [{'range': 'StringFormattedString'}, + {'range': 'tiltseries_camera_acquire_mode_enum'}], + 'domain_of': ['CameraDetails'], + 'exact_mappings': ['cdp-common:tiltseries_camera_acquire_mode']} }) + manufacturer: str = Field(..., description="""Name of the camera manufacturer""", json_schema_extra = { "linkml_meta": {'alias': 'manufacturer', + 'domain_of': ['CameraDetails', 'MicroscopeDetails'], + 'exact_mappings': ['cdp-common:tiltseries_camera_manufacturer']} }) + model: str = Field(..., description="""Camera model name""", json_schema_extra = { "linkml_meta": {'alias': 'model', + 'domain_of': ['CameraDetails', 'MicroscopeDetails'], + 'exact_mappings': ['cdp-common:tiltseries_camera_model']} }) + + @field_validator('acquire_mode') + def pattern_acquire_mode(cls, v): + pattern=re.compile(r"(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)|((^counting$)|(^superresolution$)|(^linear$)|(^cds$))") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid acquire_mode format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid acquire_mode format: {v}") + return v + + +class MicroscopeDetails(ConfiguredBaseModel): + """ + The microscope used to collect the tilt series. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + additional_info: Optional[str] = Field(None, description="""Other microscope optical setup information, in addition to energy filter, phase plate and image corrector""", json_schema_extra = { "linkml_meta": {'alias': 'additional_info', + 'domain_of': ['MicroscopeDetails'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_additional_info']} }) + manufacturer: Union[TiltseriesMicroscopeManufacturerEnum, str] = Field(..., description="""Name of the microscope manufacturer""", json_schema_extra = { "linkml_meta": {'alias': 'manufacturer', + 'any_of': [{'description': 'Name of the microscope manufacturer', + 'exact_mappings': ['cdp-common:tiltseries_microscope_manufacturer'], + 'range': 'tiltseries_microscope_manufacturer_enum', + 'required': True}, + {'range': 'StringFormattedString'}], + 'domain_of': ['CameraDetails', 'MicroscopeDetails']} }) + model: str = Field(..., description="""Microscope model name""", json_schema_extra = { "linkml_meta": {'alias': 'model', + 'domain_of': ['CameraDetails', 'MicroscopeDetails'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_model']} }) + + @field_validator('manufacturer') + def pattern_manufacturer(cls, v): + pattern=re.compile(r"(^FEI$)|(^TFS$)|(^JEOL$)|(^SIMULATED$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid manufacturer format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid manufacturer format: {v}") + return v + + +class MicroscopeOpticalSetup(ConfiguredBaseModel): + """ + The optical setup of the microscope used to collect the tilt series. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + energy_filter: str = Field(..., description="""Energy filter setup used""", json_schema_extra = { "linkml_meta": {'alias': 'energy_filter', + 'domain_of': ['MicroscopeOpticalSetup'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_energy_filter']} }) + phase_plate: Optional[str] = Field(None, description="""Phase plate configuration""", json_schema_extra = { "linkml_meta": {'alias': 'phase_plate', + 'domain_of': ['MicroscopeOpticalSetup'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_phase_plate']} }) + image_corrector: Optional[str] = Field(None, description="""Image corrector setup""", json_schema_extra = { "linkml_meta": {'alias': 'image_corrector', + 'domain_of': ['MicroscopeOpticalSetup'], + 'exact_mappings': ['cdp-common:tiltseries_microscope_image_corrector']} }) + + +class TiltRange(ConfiguredBaseModel): + """ + The range of tilt angles in the tilt series. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + min: Union[float, str] = Field(..., description="""Minimal tilt angle in degrees""", ge=-90, le=90, json_schema_extra = { "linkml_meta": {'alias': 'min', + 'any_of': [{'description': 'Minimal tilt angle in degrees', + 'exact_mappings': ['cdp-common:tiltseries_tilt_min'], + 'maximum_value': 90, + 'minimum_value': -90, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltRange'], + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) + max: Union[float, str] = Field(..., description="""Maximal tilt angle in degrees""", ge=-90, le=90, json_schema_extra = { "linkml_meta": {'alias': 'max', + 'any_of': [{'description': 'Maximal tilt angle in degrees', + 'exact_mappings': ['cdp-common:tiltseries_tilt_max'], + 'maximum_value': 90, + 'minimum_value': -90, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltRange'], + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) + + @field_validator('min') + def pattern_min(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid min format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid min format: {v}") + return v + + @field_validator('max') + def pattern_max(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid max format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid max format: {v}") + return v + + +class TiltSeries(ConfiguredBaseModel): + """ + Metadata describing a tilt series. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + acceleration_voltage: float = Field(..., description="""Electron Microscope Accelerator voltage in volts""", ge=20000, json_schema_extra = { "linkml_meta": {'alias': 'acceleration_voltage', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_acceleration_voltage'], + 'unit': {'descriptive_name': 'volts', 'symbol': 'V'}} }) + aligned_tiltseries_binning: Optional[Union[float, str]] = Field(1.0, description="""Binning factor of the aligned tilt series""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'aligned_tiltseries_binning', + 'any_of': [{'description': 'Binning factor of the aligned tilt series', + 'exact_mappings': ['cdp-common:tiltseries_aligned_tiltseries_binning'], + 'minimum_value': 0, + 'range': 'float'}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'ifabsent': 'float(1)'} }) + binning_from_frames: Optional[Union[float, str]] = Field(1.0, description="""Describes the binning factor from frames to tilt series file""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning_from_frames', + 'any_of': [{'description': 'Describes the binning factor from frames to tilt ' + 'series file', + 'exact_mappings': ['cdp-common:tiltseries_binning_from_frames'], + 'minimum_value': 0, + 'range': 'float'}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'ifabsent': 'float(1)'} }) + camera: CameraDetails = Field(..., description="""The camera used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'camera', 'domain_of': ['TiltSeries']} }) + data_acquisition_software: str = Field(..., description="""Software used to collect data""", json_schema_extra = { "linkml_meta": {'alias': 'data_acquisition_software', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_data_acquisition_software']} }) + frames_count: Optional[int] = Field(None, description="""Number of frames associated with this tiltseries""", json_schema_extra = { "linkml_meta": {'alias': 'frames_count', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_frames_count']} }) + is_aligned: bool = Field(..., description="""Whether this tilt series is aligned""", json_schema_extra = { "linkml_meta": {'alias': 'is_aligned', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_is_aligned']} }) + microscope: MicroscopeDetails = Field(..., description="""The microscope used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'microscope', 'domain_of': ['TiltSeries']} }) + microscope_optical_setup: MicroscopeOpticalSetup = Field(..., description="""The optical setup of the microscope used to collect the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'microscope_optical_setup', 'domain_of': ['TiltSeries']} }) + related_empiar_entry: Optional[str] = Field(None, description="""If a tilt series is deposited into EMPIAR, enter the EMPIAR dataset identifier""", json_schema_extra = { "linkml_meta": {'alias': 'related_empiar_entry', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_related_empiar_entry']} }) + spherical_aberration_constant: Union[float, str] = Field(..., description="""Spherical Aberration Constant of the objective lens in millimeters""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'spherical_aberration_constant', + 'any_of': [{'description': 'Spherical Aberration Constant of the objective ' + 'lens in millimeters', + 'exact_mappings': ['cdp-common:tiltseries_spherical_aberration_constant'], + 'minimum_value': 0, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'millimeters', 'symbol': 'mm'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'millimeters', 'symbol': 'mm'}} }) + tilt_alignment_software: Optional[str] = Field(None, description="""Software used for tilt alignment""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_alignment_software', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_tilt_alignment_software']} }) + tilt_axis: Union[float, str] = Field(..., description="""Rotation angle in degrees""", ge=-360, le=360, json_schema_extra = { "linkml_meta": {'alias': 'tilt_axis', + 'any_of': [{'description': 'Rotation angle in degrees', + 'exact_mappings': ['cdp-common:tiltseries_tilt_axis'], + 'maximum_value': 360, + 'minimum_value': -360, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) + tilt_range: TiltRange = Field(..., description="""The range of tilt angles in the tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_range', 'domain_of': ['TiltSeries']} }) + tilt_series_quality: Union[int, str] = Field(..., description="""Author assessment of tilt series quality within the dataset (1-5, 5 is best)""", ge=1, le=5, json_schema_extra = { "linkml_meta": {'alias': 'tilt_series_quality', + 'any_of': [{'description': 'Author assessment of tilt series quality within ' + 'the dataset (1-5, 5 is best)', + 'exact_mappings': ['cdp-common:tiltseries_tilt_series_quality'], + 'maximum_value': 5, + 'minimum_value': 1, + 'range': 'integer', + 'required': True}, + {'range': 'IntegerFormattedString'}], + 'domain_of': ['TiltSeries']} }) + tilt_step: Union[float, str] = Field(..., description="""Tilt step in degrees""", ge=0, le=90, json_schema_extra = { "linkml_meta": {'alias': 'tilt_step', + 'any_of': [{'description': 'Tilt step in degrees', + 'exact_mappings': ['cdp-common:tiltseries_tilt_step'], + 'maximum_value': 90, + 'minimum_value': 0, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'degrees', 'symbol': '°'}} }) + tilting_scheme: str = Field(..., description="""The order of stage tilting during acquisition of the data""", json_schema_extra = { "linkml_meta": {'alias': 'tilting_scheme', + 'domain_of': ['TiltSeries'], + 'exact_mappings': ['cdp-common:tiltseries_tilting_scheme']} }) + total_flux: Union[float, str] = Field(..., description="""Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'total_flux', + 'any_of': [{'description': 'Number of Electrons reaching the specimen in a ' + 'square Angstrom area for the entire tilt series', + 'exact_mappings': ['cdp-common:tiltseries_total_flux'], + 'minimum_value': 0, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'electrons per square Angstrom', + 'symbol': 'e^-/Å^2'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'electrons per square Angstrom', + 'symbol': 'e^-/Å^2'}} }) + pixel_spacing: Union[float, str] = Field(..., description="""Pixel spacing for the tilt series""", ge=0.001, json_schema_extra = { "linkml_meta": {'alias': 'pixel_spacing', + 'any_of': [{'description': 'Pixel spacing for the tilt series', + 'exact_mappings': ['cdp-common:tiltseries_pixel_spacing'], + 'minimum_value': 0.001, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'Angstroms per pixel', + 'symbol': 'Å/px'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['TiltSeries'], + 'unit': {'descriptive_name': 'Angstroms per pixel', 'symbol': 'Å/px'}} }) + + @field_validator('aligned_tiltseries_binning') + def pattern_aligned_tiltseries_binning(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid aligned_tiltseries_binning format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid aligned_tiltseries_binning format: {v}") + return v + + @field_validator('binning_from_frames') + def pattern_binning_from_frames(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid binning_from_frames format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid binning_from_frames format: {v}") + return v + + @field_validator('related_empiar_entry') + def pattern_related_empiar_entry(cls, v): + pattern=re.compile(r"^EMPIAR-[0-9]+$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid related_empiar_entry format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid related_empiar_entry format: {v}") + return v + + @field_validator('spherical_aberration_constant') + def pattern_spherical_aberration_constant(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid spherical_aberration_constant format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid spherical_aberration_constant format: {v}") + return v + + @field_validator('tilt_axis') + def pattern_tilt_axis(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid tilt_axis format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid tilt_axis format: {v}") + return v + + @field_validator('tilt_series_quality') + def pattern_tilt_series_quality(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid tilt_series_quality format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid tilt_series_quality format: {v}") + return v + + @field_validator('tilt_step') + def pattern_tilt_step(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid tilt_step format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid tilt_step format: {v}") + return v + + @field_validator('total_flux') + def pattern_total_flux(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid total_flux format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid total_flux format: {v}") + return v + + @field_validator('pixel_spacing') + def pattern_pixel_spacing(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid pixel_spacing format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid pixel_spacing format: {v}") + return v + + +class TomogramSize(ConfiguredBaseModel): + """ + The size of a tomogram in voxels in each dimension. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + x: int = Field(..., description="""Number of pixels in the 3D data fast axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'x', + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + y: int = Field(..., description="""Number of pixels in the 3D data medium axis""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'y', + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + z: int = Field(..., description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'z', + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + + +class TomogramOffset(ConfiguredBaseModel): + """ + The offset of a tomogram in voxels in each dimension relative to the canonical tomogram. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + x: Union[int, str] = Field(..., description="""x offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + y: Union[int, str] = Field(..., description="""y offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + z: Union[int, str] = Field(..., description="""z offset data relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + + @field_validator('x') + def pattern_x(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator('y') + def pattern_y(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator('z') + def pattern_z(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + +class Tomogram(AuthoredEntity): + """ + Metadata describing a tomogram. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['AuthoredEntity']}) + + voxel_spacing: Union[float, str] = Field(..., description="""Voxel spacing equal in all three axes in angstroms""", ge=0.001, json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'any_of': [{'description': 'Voxel spacing equal in all three axes in ' + 'angstroms', + 'exact_mappings': ['cdp-common:tomogram_voxel_spacing'], + 'minimum_value': 0.001, + 'range': 'float', + 'required': True, + 'unit': {'descriptive_name': 'Angstroms per voxel', + 'symbol': 'Å/voxel'}}, + {'range': 'FloatFormattedString'}], + 'domain_of': ['Tomogram', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent'], + 'unit': {'descriptive_name': 'Angstroms per voxel', 'symbol': 'Å/voxel'}} }) + fiducial_alignment_status: Union[FiducialAlignmentStatusEnum, str] = Field(..., description="""Whether the tomographic alignment was computed based on fiducial markers.""", json_schema_extra = { "linkml_meta": {'alias': 'fiducial_alignment_status', + 'any_of': [{'description': 'Whether the tomographic alignment was computed ' + 'based on fiducial markers.', + 'exact_mappings': ['cdp-common:tomogram_fiducial_alignment_status'], + 'range': 'fiducial_alignment_status_enum', + 'required': True}, + {'range': 'StringFormattedString'}], + 'domain_of': ['Tomogram']} }) + ctf_corrected: Optional[bool] = Field(None, description="""Whether this tomogram is CTF corrected""", json_schema_extra = { "linkml_meta": {'alias': 'ctf_corrected', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_ctf_corrected'], + 'recommended': True} }) + align_software: Optional[str] = Field(None, description="""Software used for alignment""", json_schema_extra = { "linkml_meta": {'alias': 'align_software', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_align_software']} }) + reconstruction_method: Union[TomogramReconstructionMethodEnum, str] = Field(..., description="""Describe reconstruction method (WBP, SART, SIRT)""", json_schema_extra = { "linkml_meta": {'alias': 'reconstruction_method', + 'any_of': [{'description': 'Describe reconstruction method (WBP, SART, SIRT)', + 'exact_mappings': ['cdp-common:tomogram_reconstruction_method'], + 'range': 'tomogram_reconstruction_method_enum', + 'required': True}, + {'range': 'StringFormattedString'}], + 'domain_of': ['Tomogram']} }) + reconstruction_software: str = Field(..., description="""Name of software used for reconstruction""", json_schema_extra = { "linkml_meta": {'alias': 'reconstruction_software', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_reconstruction_software']} }) + processing: TomogramProcessingEnum = Field(..., description="""Describe additional processing used to derive the tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'processing', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_processing']} }) + processing_software: Optional[str] = Field(None, description="""Processing software used to derive the tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'processing_software', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_processing_software'], + 'recommended': True} }) + tomogram_version: float = Field(..., description="""Version of tomogram""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_version', + 'domain_of': ['Tomogram'], + 'exact_mappings': ['cdp-common:tomogram_version']} }) + affine_transformation_matrix: Optional[conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float))] = Field(None, description="""The flip or rotation transformation of this author submitted tomogram is indicated here""", json_schema_extra = { "linkml_meta": {'alias': 'affine_transformation_matrix', + 'array': {'dimensions': [{'exact_cardinality': 4}, {'exact_cardinality': 4}], + 'exact_number_dimensions': 2}, + 'domain_of': ['Tomogram', 'Alignment']} }) + size: Optional[TomogramSize] = Field(None, description="""The size of a tomogram in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'size', 'domain_of': ['Tomogram']} }) + offset: TomogramOffset = Field(..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the tomogram is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'ifabsent': 'False'} }) + is_visualization_default: bool = Field(True, description="""Whether the tomogram is the default for visualization.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'ifabsent': 'True'} }) + cross_references: Optional[CrossReferences] = Field(None, description="""A set of cross-references to other databases and publications.""", json_schema_extra = { "linkml_meta": {'alias': 'cross_references', + 'domain_of': ['CrossReferencedEntity', 'Tomogram', 'Dataset', 'Deposition']} }) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + + @field_validator('voxel_spacing') + def pattern_voxel_spacing(cls, v): + pattern=re.compile(r"^float[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid voxel_spacing format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid voxel_spacing format: {v}") + return v + + @field_validator('fiducial_alignment_status') + def pattern_fiducial_alignment_status(cls, v): + pattern=re.compile(r"(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid fiducial_alignment_status format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid fiducial_alignment_status format: {v}") + return v + + @field_validator('reconstruction_method') + def pattern_reconstruction_method(cls, v): + pattern=re.compile(r"(^SART$)|(^Fourier Space$)|(^SIRT$)|(^WBP$)|(^Unknown$)|(^[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid reconstruction_method format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid reconstruction_method format: {v}") + return v + + @field_validator('processing') + def pattern_processing(cls, v): + pattern=re.compile(r"(^denoised$)|(^filtered$)|(^raw$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid processing format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid processing format: {v}") + return v + + +class AnnotationConfidence(ConfiguredBaseModel): + """ + Metadata describing the confidence of an annotation. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + precision: Optional[float] = Field(None, description="""Describe the confidence level of the annotation. Precision is defined as the % of annotation objects being true positive""", ge=0, le=100, json_schema_extra = { "linkml_meta": {'alias': 'precision', + 'domain_of': ['AnnotationConfidence'], + 'exact_mappings': ['cdp-common:annotation_confidence_precision'], + 'unit': {'descriptive_name': 'percentage', 'symbol': '%'}} }) + recall: Optional[float] = Field(None, description="""Describe the confidence level of the annotation. Recall is defined as the % of true positives being annotated correctly""", ge=0, le=100, json_schema_extra = { "linkml_meta": {'alias': 'recall', + 'domain_of': ['AnnotationConfidence'], + 'exact_mappings': ['cdp-common:annotation_confidence_recall'], + 'unit': {'descriptive_name': 'percentage', 'symbol': '%'}} }) + ground_truth_used: Optional[str] = Field(None, description="""Annotation filename used as ground truth for precision and recall""", json_schema_extra = { "linkml_meta": {'alias': 'ground_truth_used', + 'domain_of': ['AnnotationConfidence'], + 'exact_mappings': ['cdp-common:annotation_ground_truth_used']} }) + + +class AnnotationObject(ConfiguredBaseModel): + """ + Metadata describing the object being annotated. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + id: str = Field(..., description="""Gene Ontology Cellular Component identifier or UniProtKB accession for the annotation object.""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'any_of': [{'range': 'GO_ID'}, {'range': 'UNIPROT_ID'}], + 'domain_of': ['TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject'], + 'exact_mappings': ['cdp-common:annotation_object_id']} }) + name: str = Field(..., description="""Name of the object being annotated (e.g. ribosome, nuclear pore complex, actin filament, membrane)""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:annotation_object_name']} }) + description: Optional[str] = Field(None, description="""A textual description of the annotation object, can be a longer description to include additional information not covered by the Annotation object name and state.""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'domain_of': ['AnnotationObject'], + 'exact_mappings': ['cdp-common:annotation_object_description']} }) + state: Optional[str] = Field(None, description="""Molecule state annotated (e.g. open, closed)""", json_schema_extra = { "linkml_meta": {'alias': 'state', + 'domain_of': ['AnnotationObject'], + 'exact_mappings': ['cdp-common:annotation_object_state']} }) + + @field_validator('id') + def pattern_id(cls, v): + pattern=re.compile(r"(^GO:[0-9]{7}$)|(^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid id format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid id format: {v}") + return v + + +class AnnotationMethodLinks(ConfiguredBaseModel): + """ + A set of links to models, source code, documentation, etc referenced by annotation the method + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + link: str = Field(..., description="""URL to the annotation method reference""", json_schema_extra = { "linkml_meta": {'alias': 'link', + 'domain_of': ['AnnotationMethodLinks'], + 'exact_mappings': ['cdp-common:annotation_method_link']} }) + link_type: AnnotationMethodLinkTypeEnum = Field(..., description="""Type of link (e.g. model, source code, documentation)""", json_schema_extra = { "linkml_meta": {'alias': 'link_type', + 'domain_of': ['AnnotationMethodLinks'], + 'exact_mappings': ['cdp-common:annotation_method_link_type']} }) + custom_name: Optional[str] = Field(None, description="""user readable name of the resource""", json_schema_extra = { "linkml_meta": {'alias': 'custom_name', + 'domain_of': ['AnnotationMethodLinks'], + 'exact_mappings': ['cdp-common:annotation_method_link_custom_name'], + 'recommended': True} }) + + @field_validator('link_type') + def pattern_link_type(cls, v): + pattern=re.compile(r"(^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid link_type format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid link_type format: {v}") + return v + + +class AnnotationSourceFile(ConfiguredBaseModel): + """ + File and sourcing data for an annotation. Represents an entry in annotation.sources. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) + + +class AnnotationOrientedPointFile(AnnotationSourceFile): + """ + File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['OrientedPoint'], 'from_schema': 'metadata'}) + + binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_binning'], + 'ifabsent': 'float(1)'} }) + filter_value: Optional[str] = Field(None, description="""The filter value for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'filter_value', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_filter_value']} }) + order: Optional[str] = Field("xyz", description="""The order of axes for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'order', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_order'], + 'ifabsent': 'string(xyz)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) + + +class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): + """ + File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['InstanceSegmentation'], 'from_schema': 'metadata'}) + + binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_binning'], + 'ifabsent': 'float(1)'} }) + filter_value: Optional[str] = Field(None, description="""The filter value for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'filter_value', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_filter_value']} }) + order: Optional[str] = Field("xyz", description="""The order of axes for an oriented point / instance segmentation annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'order', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_order'], + 'ifabsent': 'string(xyz)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) + + +class AnnotationPointFile(AnnotationSourceFile): + """ + File and sourcing data for a point annotation. Annotation that identifies points in the volume. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['Point'], 'from_schema': 'metadata'}) + + binning: Optional[float] = Field(1.0, description="""The binning factor for a point / oriented point / instance segmentation annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'binning', + 'domain_of': ['AnnotationOrientedPointFile', + 'AnnotationPointFile', + 'AnnotationInstanceSegmentationFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_binning'], + 'ifabsent': 'float(1)'} }) + columns: Optional[str] = Field("xyz", description="""The columns used in a point annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'columns', + 'domain_of': ['AnnotationPointFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_columns'], + 'ifabsent': 'string(xyz)'} }) + delimiter: Optional[str] = Field(",", description="""The delimiter used in a point annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'delimiter', + 'domain_of': ['AnnotationPointFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_delimiter'], + 'ifabsent': 'string(,)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) + + +class AnnotationSegmentationMaskFile(AnnotationSourceFile): + """ + File and sourcing data for a segmentation mask annotation. Annotation that identifies an object. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['SegmentationMask'], 'from_schema': 'metadata'}) + + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) + + +class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): + """ + File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['SemanticSegmentationMask'], 'from_schema': 'metadata'}) + + mask_label: Optional[int] = Field(1, description="""The mask label for a semantic segmentation mask annotation file.""", json_schema_extra = { "linkml_meta": {'alias': 'mask_label', + 'domain_of': ['AnnotationSemanticSegmentationMaskFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_mask_label'], + 'ifabsent': 'int(1)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) + + +class AnnotationTriangularMeshFile(AnnotationSourceFile): + """ + File and sourcing data for a triangular mesh annotation. Annotation that identifies an object. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['TriangularMesh'], 'from_schema': 'metadata'}) + + scale_factor: Optional[float] = Field(1.0, description="""The scale factor for a mesh annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'scale_factor', + 'domain_of': ['AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_scale_factor'], + 'ifabsent': 'float(1)'} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) + + +class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): + """ + File and sourcing data containing one or more triangular mesh annotations. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['TriangularMeshGroup'], 'from_schema': 'metadata'}) + + scale_factor: Optional[float] = Field(1.0, description="""The scale factor for a mesh annotation file.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'scale_factor', + 'domain_of': ['AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_scale_factor'], + 'ifabsent': 'float(1)'} }) + name: Optional[str] = Field(None, description="""The name that identifies to a single annotation mesh among multiple meshes.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile', + 'AuthorMixin', + 'Author'], + 'exact_mappings': ['cdp-common:annotation_source_file_mesh_name']} }) + file_format: str = Field(..., description="""File format for this file""", json_schema_extra = { "linkml_meta": {'alias': 'file_format', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_format']} }) + glob_string: Optional[str] = Field(None, description="""Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_string', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_string']} }) + glob_strings: Optional[List[str]] = Field(None, description="""Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.""", json_schema_extra = { "linkml_meta": {'alias': 'glob_strings', + 'domain_of': ['AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_glob_strings']} }) + is_visualization_default: Optional[bool] = Field(False, description="""This annotation will be rendered in neuroglancer by default.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], + 'ifabsent': 'False'} }) + is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', + 'domain_of': ['Tomogram', + 'AnnotationSourceFile', + 'AnnotationOrientedPointFile', + 'AnnotationInstanceSegmentationFile', + 'AnnotationPointFile', + 'AnnotationSegmentationMaskFile', + 'AnnotationSemanticSegmentationMaskFile', + 'AnnotationTriangularMeshFile', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:annotation_source_file_is_portal_standard'], + 'ifabsent': 'False'} }) + + +class Annotation(AuthoredEntity, DateStampedEntity): + """ + Metadata describing an annotation. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['DateStampedEntity', 'AuthoredEntity']}) + + annotation_method: str = Field(..., description="""Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_method', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_method']} }) + annotation_object: AnnotationObject = Field(..., description="""Metadata describing the object being annotated.""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_object', 'domain_of': ['Annotation']} }) + annotation_publications: Optional[str] = Field(None, description="""List of publication IDs (EMPIAR, EMDB, DOI, PDB) that describe this annotation method. Comma separated.""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_publications', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_publications']} }) + annotation_software: Optional[str] = Field(None, description="""Software used for generating this annotation""", json_schema_extra = { "linkml_meta": {'alias': 'annotation_software', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_software'], + 'recommended': True} }) + confidence: Optional[AnnotationConfidence] = Field(None, description="""Metadata describing the confidence of an annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'confidence', 'domain_of': ['Annotation']} }) + files: Optional[List[AnnotationSourceFile]] = Field(None, description="""File and sourcing data for an annotation. Represents an entry in annotation.sources.""", json_schema_extra = { "linkml_meta": {'alias': 'files', 'domain_of': ['Annotation'], 'list_elements_ordered': True} }) + ground_truth_status: Optional[bool] = Field(False, description="""Whether an annotation is considered ground truth, as determined by the annotator.""", json_schema_extra = { "linkml_meta": {'alias': 'ground_truth_status', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_ground_truth_status'], + 'ifabsent': 'False', + 'recommended': True} }) + is_curator_recommended: Optional[bool] = Field(False, description="""This annotation is recommended by the curator to be preferred for this object type.""", json_schema_extra = { "linkml_meta": {'alias': 'is_curator_recommended', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_is_curator_recommended'], + 'ifabsent': 'False'} }) + method_type: AnnotationMethodTypeEnum = Field(..., description="""Classification of the annotation method based on supervision.""", json_schema_extra = { "linkml_meta": {'alias': 'method_type', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_method_type']} }) + method_links: Optional[List[AnnotationMethodLinks]] = Field(None, description="""A set of links to models, source code, documentation, etc referenced by annotation the method""", json_schema_extra = { "linkml_meta": {'alias': 'method_links', 'domain_of': ['Annotation']} }) + object_count: Optional[int] = Field(None, description="""Number of objects identified""", json_schema_extra = { "linkml_meta": {'alias': 'object_count', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_object_count']} }) + version: Optional[float] = Field(None, description="""Version of annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'version', + 'domain_of': ['Annotation'], + 'exact_mappings': ['cdp-common:annotation_version']} }) + dates: DateStamp = Field(..., description="""A set of dates at which a data item was deposited, published and last modified.""", json_schema_extra = { "linkml_meta": {'alias': 'dates', + 'domain_of': ['DateStampedEntity', + 'Tomogram', + 'Dataset', + 'Deposition', + 'Annotation']} }) + authors: List[Author] = Field(..., description="""Author of a scientific data entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'authors', + 'domain_of': ['AuthoredEntity', + 'Dataset', + 'Deposition', + 'Tomogram', + 'Annotation'], + 'list_elements_ordered': True} }) + + @field_validator('annotation_publications') + def pattern_annotation_publications(cls, v): + pattern=re.compile(r"^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid annotation_publications format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid annotation_publications format: {v}") + return v + + @field_validator('method_type') + def pattern_method_type(cls, v): + pattern=re.compile(r"(^manual$)|(^automated$)|(^hybrid$)|(^simulated$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid method_type format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid method_type format: {v}") + return v + + +class AlignmentSize(ConfiguredBaseModel): + """ + The size of an alignment in voxels in each dimension. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + x: Union[int, str] = Field(..., description="""Number of pixels in the 3D data fast axis""", json_schema_extra = { "linkml_meta": {'alias': 'x', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + y: Union[int, str] = Field(..., description="""Number of pixels in the 3D data medium axis""", json_schema_extra = { "linkml_meta": {'alias': 'y', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + z: Union[int, str] = Field(..., description="""Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt""", json_schema_extra = { "linkml_meta": {'alias': 'z', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + + @field_validator('x') + def pattern_x(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator('y') + def pattern_y(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator('z') + def pattern_z(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + +class AlignmentOffset(ConfiguredBaseModel): + """ + The offset of a alignment in voxels in each dimension relative to the canonical tomogram. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + x: Union[int, str] = Field(0, description="""x offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'x', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'ifabsent': 'int(0)', + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + y: Union[int, str] = Field(0, description="""y offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'y', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'ifabsent': 'int(0)', + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + z: Union[int, str] = Field(0, description="""z offset relative to the canonical tomogram in pixels""", json_schema_extra = { "linkml_meta": {'alias': 'z', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['TomogramSize', + 'TomogramOffset', + 'AlignmentSize', + 'AlignmentOffset'], + 'ifabsent': 'int(0)', + 'unit': {'descriptive_name': 'pixels', 'symbol': 'px'}} }) + + @field_validator('x') + def pattern_x(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid x format: {v}") + return v + + @field_validator('y') + def pattern_y(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid y format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid y format: {v}") + return v + + @field_validator('z') + def pattern_z(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid z format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid z format: {v}") + return v + + +class Alignment(ConfiguredBaseModel): + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + alignment_type: Optional[AlignmentTypeEnum] = Field(None, description="""The type of alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'alignment_type', 'domain_of': ['Alignment']} }) + offset: Optional[AlignmentOffset] = Field(None, description="""The offset of a alignment in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) + volume_dimesion: Optional[AlignmentSize] = Field(None, description="""The size of an alignment in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'volume_dimesion', 'domain_of': ['Alignment']} }) + x_rotation_offset: Optional[Union[int, str]] = Field(0, description="""The x rotation offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'x_rotation_offset', + 'any_of': [{'range': 'integer'}, {'range': 'IntegerFormattedString'}], + 'domain_of': ['Alignment'], + 'ifabsent': 'int(0)'} }) + tilt_offset: Optional[float] = Field(0.0, description="""The tilt offset relative to the tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'tilt_offset', 'domain_of': ['Alignment'], 'ifabsent': 'float(0.0)'} }) + affine_transformation_matrix: Optional[conlist(min_length=4, max_length=4, item_type=conlist(min_length=4, max_length=4, item_type=float))] = Field(None, description="""The flip or rotation transformation of this author submitted tomogram is indicated here. The default value if not present, is an identity matrix.""", json_schema_extra = { "linkml_meta": {'alias': 'affine_transformation_matrix', + 'array': {'dimensions': [{'exact_cardinality': 4}, {'exact_cardinality': 4}], + 'exact_number_dimensions': 2}, + 'domain_of': ['Tomogram', 'Alignment']} }) + is_canonical: Optional[bool] = Field(True, description="""Whether the alignment is canonical.""", json_schema_extra = { "linkml_meta": {'alias': 'is_canonical', 'domain_of': ['Alignment'], 'ifabsent': 'True'} }) + format: AlignmentFormatEnum = Field(..., description="""The format of the alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'format', 'domain_of': ['Alignment']} }) + + @field_validator('alignment_type') + def pattern_alignment_type(cls, v): + pattern=re.compile(r"(^LOCAL$)|(^GLOBAL$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid alignment_type format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid alignment_type format: {v}") + return v + + @field_validator('x_rotation_offset') + def pattern_x_rotation_offset(cls, v): + pattern=re.compile(r"^int[ ]*\{[a-zA-Z0-9_-]+\}[ ]*$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid x_rotation_offset format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid x_rotation_offset format: {v}") + return v + + @field_validator('format') + def pattern_format(cls, v): + pattern=re.compile(r"(^IMOD$)|(^ARETOMO3$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid format format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid format format: {v}") + return v + + +class Frame(ConfiguredBaseModel): + """ + A frame entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata'}) + + dose: float = Field(..., description="""The dose.""", json_schema_extra = { "linkml_meta": {'alias': 'dose', 'domain_of': ['Frame']} }) + defocus: float = Field(..., description="""The defocus.""", json_schema_extra = { "linkml_meta": {'alias': 'defocus', 'domain_of': ['Frame']} }) + astigmatism: float = Field(..., description="""The astigmatism.""", json_schema_extra = { "linkml_meta": {'alias': 'astigmatism', 'domain_of': ['Frame']} }) + astigmatic_angle: float = Field(..., description="""The astigmatic angle.""", json_schema_extra = { "linkml_meta": {'alias': 'astigmatic_angle', 'domain_of': ['Frame']} }) + + +class DateStampedEntityMixin(ConfiguredBaseModel): + """ + A set of dates at which a data item was deposited, published and last modified. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) + + deposition_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:deposition_date']} }) + release_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'release_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:release_date']} }) + last_modified_date: date = Field(..., description="""The date a piece of data was last modified on the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'last_modified_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:last_modified_date']} }) + + +class DateStamp(DateStampedEntityMixin): + """ + A set of dates at which a data item was deposited, published and last modified. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['DateStampedEntityMixin']}) + + deposition_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:deposition_date']} }) + release_date: date = Field(..., description="""The date a data item was received by the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'release_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:release_date']} }) + last_modified_date: date = Field(..., description="""The date a piece of data was last modified on the cryoET data portal.""", json_schema_extra = { "linkml_meta": {'alias': 'last_modified_date', + 'domain_of': ['DateStampedEntityMixin', 'DateStamp'], + 'exact_mappings': ['cdp-common:last_modified_date']} }) + + +class CrossReferencesMixin(ConfiguredBaseModel): + """ + A set of cross-references to other databases and publications. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) + + publications: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications associated with the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'publications', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], + 'recommended': True} }) + related_database_entries: Optional[str] = Field(None, description="""Comma-separated list of related database entries for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_entries', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], + 'recommended': True} }) + related_database_links: Optional[str] = Field(None, description="""Comma-separated list of related database links for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_links', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) + dataset_citations: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications citing the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_citations', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) + + @field_validator('publications') + def pattern_publications(cls, v): + pattern=re.compile(r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid publications format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid publications format: {v}") + return v + + @field_validator('related_database_entries') + def pattern_related_database_entries(cls, v): + pattern=re.compile(r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid related_database_entries format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid related_database_entries format: {v}") + return v + + +class CrossReferences(CrossReferencesMixin): + """ + A set of cross-references to other databases and publications. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['CrossReferencesMixin']}) + + publications: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications associated with the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'publications', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], + 'recommended': True} }) + related_database_entries: Optional[str] = Field(None, description="""Comma-separated list of related database entries for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_entries', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences'], + 'recommended': True} }) + related_database_links: Optional[str] = Field(None, description="""Comma-separated list of related database links for the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'related_database_links', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) + dataset_citations: Optional[str] = Field(None, description="""Comma-separated list of DOIs for publications citing the dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_citations', + 'domain_of': ['CrossReferencesMixin', 'CrossReferences']} }) + + @field_validator('publications') + def pattern_publications(cls, v): + pattern=re.compile(r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid publications format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid publications format: {v}") + return v + + @field_validator('related_database_entries') + def pattern_related_database_entries(cls, v): + pattern=re.compile(r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid related_database_entries format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid related_database_entries format: {v}") + return v + + +class AuthorMixin(ConfiguredBaseModel): + """ + An entity with author data + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'mixin': True}) + + name: str = Field(..., description="""The full name of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['AuthorMixin', + 'Author', + 'OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile'], + 'exact_mappings': ['cdp-common:author_name']} }) + email: Optional[str] = Field(None, description="""The email address of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'email', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_email']} }) + affiliation_name: Optional[str] = Field(None, description="""The name of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_name', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_name']} }) + affiliation_address: Optional[str] = Field(None, description="""The address of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_address', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_address']} }) + affiliation_identifier: Optional[str] = Field(None, description="""A Research Organization Registry (ROR) identifier.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_identifier', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_identifier'], + 'recommended': True} }) + corresponding_author_status: Optional[bool] = Field(False, description="""Whether the author is a corresponding author.""", json_schema_extra = { "linkml_meta": {'alias': 'corresponding_author_status', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_corresponding_author_status'], + 'ifabsent': 'False'} }) + primary_author_status: Optional[bool] = Field(False, description="""Whether the author is a primary author.""", json_schema_extra = { "linkml_meta": {'alias': 'primary_author_status', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_primary_author_status'], + 'ifabsent': 'False'} }) + + +class Author(AuthorMixin): + """ + Author of a scientific data entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'metadata', 'mixins': ['AuthorMixin']}) + + ORCID: Optional[str] = Field(None, description="""The ORCID identifier for the author.""", json_schema_extra = { "linkml_meta": {'alias': 'ORCID', + 'domain_of': ['Author'], + 'exact_mappings': ['cdp-common:author_orcid'], + 'recommended': True} }) + name: str = Field(..., description="""The full name of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'domain_of': ['AuthorMixin', + 'OrganismDetails', + 'TissueDetails', + 'CellType', + 'CellStrain', + 'CellComponent', + 'AnnotationObject', + 'AnnotationTriangularMeshGroupFile', + 'Author'], + 'exact_mappings': ['cdp-common:author_name']} }) + email: Optional[str] = Field(None, description="""The email address of the author.""", json_schema_extra = { "linkml_meta": {'alias': 'email', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_email']} }) + affiliation_name: Optional[str] = Field(None, description="""The name of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_name', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_name']} }) + affiliation_address: Optional[str] = Field(None, description="""The address of the author's affiliation.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_address', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_address']} }) + affiliation_identifier: Optional[str] = Field(None, description="""A Research Organization Registry (ROR) identifier.""", json_schema_extra = { "linkml_meta": {'alias': 'affiliation_identifier', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_affiliation_identifier'], + 'recommended': True} }) + corresponding_author_status: Optional[bool] = Field(False, description="""Whether the author is a corresponding author.""", json_schema_extra = { "linkml_meta": {'alias': 'corresponding_author_status', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_corresponding_author_status'], + 'ifabsent': 'False'} }) + primary_author_status: Optional[bool] = Field(False, description="""Whether the author is a primary author.""", json_schema_extra = { "linkml_meta": {'alias': 'primary_author_status', + 'domain_of': ['AuthorMixin', 'Author'], + 'exact_mappings': ['cdp-common:author_primary_author_status'], + 'ifabsent': 'False'} }) + + @field_validator('ORCID') + def pattern_ORCID(cls, v): + pattern=re.compile(r"[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$") + if isinstance(v,list): + for element in v: + if not pattern.match(element): + raise ValueError(f"Invalid ORCID format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid ORCID format: {v}") + return v + + +class Container(ConfiguredBaseModel): + """ + Class that models the ingestion config file. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config', 'tree_root': True}) + + alignments: Optional[List[AlignmentEntity]] = Field(None, description="""An alignment entity.""", json_schema_extra = { "linkml_meta": {'alias': 'alignments', 'domain_of': ['Container']} }) + annotations: Optional[List[AnnotationEntity]] = Field(None, description="""An annotation entity.""", json_schema_extra = { "linkml_meta": {'alias': 'annotations', 'domain_of': ['Container']} }) + collection_metadata: Optional[List[CollectionMetadataEntity]] = Field(None, description="""A collection_metadata entity.""", json_schema_extra = { "linkml_meta": {'alias': 'collection_metadata', 'domain_of': ['Container']} }) + dataset_keyphotos: Optional[List[DatasetKeyPhotoEntity]] = Field(None, description="""A dataset key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset_keyphotos', 'domain_of': ['Container']} }) + datasets: List[DatasetEntity] = Field(..., description="""A dataset entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'datasets', 'domain_of': ['Container']} }) + deposition_keyphotos: Optional[List[DepositionKeyPhotoEntity]] = Field(None, description="""A deposition key photo entity.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_keyphotos', 'domain_of': ['Container']} }) + depositions: List[DepositionEntity] = Field(..., description="""A deposition entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'depositions', 'domain_of': ['Container']} }) + frames: Optional[List[FrameEntity]] = Field(None, description="""A frame entity.""", json_schema_extra = { "linkml_meta": {'alias': 'frames', 'domain_of': ['Container']} }) + gains: Optional[List[GainEntity]] = Field(None, description="""A gain entity.""", json_schema_extra = { "linkml_meta": {'alias': 'gains', 'domain_of': ['Container']} }) + key_images: Optional[List[KeyImageEntity]] = Field(None, description="""A key image entity.""", json_schema_extra = { "linkml_meta": {'alias': 'key_images', 'domain_of': ['Container']} }) + rawtilts: Optional[List[RawTiltEntity]] = Field(None, description="""A raw tilt entity.""", json_schema_extra = { "linkml_meta": {'alias': 'rawtilts', 'domain_of': ['Container']} }) + runs: List[RunEntity] = Field(..., description="""A run entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'runs', 'domain_of': ['Container']} }) + standardization_config: StandardizationConfig = Field(..., description="""A standardization configuration.""", json_schema_extra = { "linkml_meta": {'alias': 'standardization_config', 'domain_of': ['Container']} }) + tiltseries: Optional[List[TiltSeriesEntity]] = Field(None, description="""A tilt series entity.""", json_schema_extra = { "linkml_meta": {'alias': 'tiltseries', 'domain_of': ['Container']} }) + tomograms: Optional[List[TomogramEntity]] = Field(None, description="""A tomogram entity.""", json_schema_extra = { "linkml_meta": {'alias': 'tomograms', 'domain_of': ['Container']} }) + voxel_spacings: List[VoxelSpacingEntity] = Field(..., description="""A voxel spacing entity.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacings', 'domain_of': ['Container']} }) + + +class GeneralGlob(ConfiguredBaseModel): + """ + An abstracted glob class for destination and source globs. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, 'from_schema': 'cdp-ingestion-config'}) + + list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob']} }) + match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob'], + 'ifabsent': 'string(.*)'} }) + name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', + 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], + 'ifabsent': 'string((.*))'} }) + + +class DestinationGlob(GeneralGlob): + """ + A glob class for finding files in the output / destination directory. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob']} }) + match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob'], + 'ifabsent': 'string(.*)'} }) + name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', + 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], + 'ifabsent': 'string((.*))'} }) + + +class SourceGlob(GeneralGlob): + """ + A glob class for finding files in the source directory. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + list_glob: str = Field(..., description="""The glob for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob']} }) + match_regex: Optional[str] = Field(".*", description="""The regex for the file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob'], + 'ifabsent': 'string(.*)'} }) + name_regex: Optional[str] = Field("(.*)", description="""The regex for the name of the file.""", json_schema_extra = { "linkml_meta": {'alias': 'name_regex', + 'domain_of': ['GeneralGlob', 'DestinationGlob', 'SourceGlob'], + 'ifabsent': 'string((.*))'} }) + + +class SourceMultiGlob(ConfiguredBaseModel): + """ + A glob class for finding files in the source directory (with multiple globs). + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + list_globs: List[str] = Field(..., description="""The globs for the file.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'list_globs', 'domain_of': ['SourceMultiGlob']} }) + + +class DefaultSource(ConfiguredBaseModel): + """ + A default source class that all source classes inherit from. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class StandardSource(DefaultSource): + """ + A generalized source class with glob finders. Inherited by a majority of source classes. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class StandardLiteral(ConfiguredBaseModel): + """ + A literal class with a value attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + value: List[Any] = Field(..., description="""The value for the literal.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'value', + 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) + + +class KeyPhotoLiteral(ConfiguredBaseModel): + """ + A literal for a key photo. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + value: PicturePath = Field(..., description="""A set of paths to representative images of a piece of data.""", json_schema_extra = { "linkml_meta": {'alias': 'value', + 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) + + +class AlignmentEntity(ConfiguredBaseModel): + """ + An alignment entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Alignment = Field(..., description="""The metadata for the alignment.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'FrameEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[AlignmentSource] = Field(..., description="""An alignment source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class AlignmentSource(StandardSource): + """ + An alignment source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[AlignmentParentFilters] = Field(None, description="""Types of parent filters for an alignment source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class AlignmentParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for an alignment source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[AlignmentParent] = Field(None, description="""A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[AlignmentParent] = Field(None, description="""A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class AlignmentParent(ConfiguredBaseModel): + """ + A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['AlignmentParent', 'KeyImageParent']} }) + + +class AnnotationEntity(ConfiguredBaseModel): + """ + An annotation entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Annotation = Field(..., description="""Metadata describing an annotation.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'FrameEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[AnnotationSource] = Field(..., description="""An annotation source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class AnnotationSource(DefaultSource): + """ + An annotation source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + InstanceSegmentation: Optional[AnnotationInstanceSegmentationFile] = Field(None, description="""File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes.""", json_schema_extra = { "linkml_meta": {'alias': 'InstanceSegmentation', 'domain_of': ['AnnotationSource']} }) + OrientedPoint: Optional[AnnotationOrientedPointFile] = Field(None, description="""File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume.""", json_schema_extra = { "linkml_meta": {'alias': 'OrientedPoint', 'domain_of': ['AnnotationSource']} }) + Point: Optional[AnnotationPointFile] = Field(None, description="""File and sourcing data for a point annotation. Annotation that identifies points in the volume.""", json_schema_extra = { "linkml_meta": {'alias': 'Point', 'domain_of': ['AnnotationSource']} }) + SegmentationMask: Optional[AnnotationSegmentationMaskFile] = Field(None, description="""File and sourcing data for a segmentation mask annotation. Annotation that identifies an object.""", json_schema_extra = { "linkml_meta": {'alias': 'SegmentationMask', 'domain_of': ['AnnotationSource']} }) + SemanticSegmentationMask: Optional[AnnotationSemanticSegmentationMaskFile] = Field(None, description="""File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects.""", json_schema_extra = { "linkml_meta": {'alias': 'SemanticSegmentationMask', 'domain_of': ['AnnotationSource']} }) + TriangularMesh: Optional[AnnotationTriangularMeshFile] = Field(None, description="""File and sourcing data for a triangular mesh annotation. Annotation that identifies an object.""", json_schema_extra = { "linkml_meta": {'alias': 'TriangularMesh', 'domain_of': ['AnnotationSource']} }) + TriangularMeshGroup: Optional[AnnotationTriangularMeshGroupFile] = Field(None, description="""File and sourcing data containing one or more triangular mesh annotations.""", json_schema_extra = { "linkml_meta": {'alias': 'TriangularMeshGroup', 'domain_of': ['AnnotationSource']} }) + parent_filters: Optional[AnnotationParentFilters] = Field(None, description="""Filters for the parent of an annotation source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class AnnotationParentFilters(ConfiguredBaseModel): + """ + Filters for the parent of an annotation source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[AnnotationParent] = Field(None, description="""A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class AnnotationParent(ConfiguredBaseModel): + """ + A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'domain_of': ['Tomogram', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent']} }) + + +class CollectionMetadataEntity(ConfiguredBaseModel): + """ + A collection_metadata entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[CollectionMetadataSource] = Field(..., description="""A collection_metadata source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class CollectionMetadataSource(StandardSource): + """ + A collection_metadata source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[CollectionMetadataParentFilters] = Field(None, description="""Types of parent filters for a collection_metadata source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class CollectionMetadataParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a collection_metadata source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[CollectionMetadataParent] = Field(None, description="""A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class CollectionMetadataParent(ConfiguredBaseModel): + """ + A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class DatasetEntity(ConfiguredBaseModel): + """ + A dataset entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Optional[Dataset] = Field(None, description="""High-level description of a cryoET dataset.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'FrameEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[DatasetSource] = Field(..., description="""A dataset source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class DatasetSource(StandardSource): + """ + A dataset source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[DatasetParentFilters] = Field(None, description="""Types of parent filters for a dataset source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class DatasetParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a dataset source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[DatasetParent] = Field(None, description="""A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class DatasetParent(ConfiguredBaseModel): + """ + A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class DatasetKeyPhotoEntity(ConfiguredBaseModel): + """ + A dataset key photo entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[DatasetKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class DatasetKeyPhotoSource(StandardSource): + """ + A key photo source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + literal: Optional[KeyPhotoLiteral] = Field(None, description="""A literal for a key photo.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + parent_filters: Optional[DatasetKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class DatasetKeyPhotoParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a key photo source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[DatasetKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class DatasetKeyPhotoParent(ConfiguredBaseModel): + """ + A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class DepositionEntity(ConfiguredBaseModel): + """ + A deposition entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Optional[Deposition] = Field(None, description="""Metadata describing a deposition.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'FrameEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[DepositionSource] = Field(..., description="""A deposition source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class DepositionSource(StandardSource): + """ + A deposition source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class DepositionKeyPhotoEntity(ConfiguredBaseModel): + """ + A deposition key photo entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[DepositionKeyPhotoSource] = Field(..., description="""A key photo source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class DepositionKeyPhotoSource(StandardSource): + """ + A key photo source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + literal: Optional[KeyPhotoLiteral] = Field(None, description="""A literal for a key photo.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + parent_filters: Optional[DepositionKeyPhotoParentFilters] = Field(None, description="""Types of parent filters for a key photo source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class DepositionKeyPhotoParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a key photo source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[DepositionKeyPhotoParent] = Field(None, description="""A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class DepositionKeyPhotoParent(ConfiguredBaseModel): + """ + A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class FrameEntity(ConfiguredBaseModel): + """ + A frame entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[FrameSource] = Field(..., description="""A frame source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + metadata: Optional[Frame] = Field(None, description="""A frame entity.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'FrameEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + + +class FrameSource(StandardSource): + """ + A frame source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[FrameParentFilters] = Field(None, description="""Types of parent filters for a frame source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class FrameParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a frame source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[FrameParent] = Field(None, description="""A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class FrameParent(ConfiguredBaseModel): + """ + A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class GainEntity(ConfiguredBaseModel): + """ + A gain entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[GainSource] = Field(..., description="""A gain source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class GainSource(StandardSource): + """ + A gain source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[GainParentFilters] = Field(None, description="""Types of parent filters for a gain source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class GainParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a gain source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[GainParent] = Field(None, description="""A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class GainParent(ConfiguredBaseModel): + """ + A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class KeyImageEntity(ConfiguredBaseModel): + """ + A key image entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[KeyImageSource] = Field(..., description="""A key image source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class KeyImageSource(StandardSource): + """ + A key image source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[KeyImageParentFilters] = Field(None, description="""Types of parent filters for a key image source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class KeyImageParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a key image source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[KeyImageParent] = Field(None, description="""A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class KeyImageParent(ConfiguredBaseModel): + """ + A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['AlignmentParent', 'KeyImageParent']} }) + voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'domain_of': ['Tomogram', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent']} }) + + +class RawTiltEntity(ConfiguredBaseModel): + """ + A raw tilt entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[RawTiltSource] = Field(..., description="""A raw tilt source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class RawTiltSource(StandardSource): + """ + A raw tilt source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[RawTiltParentFilters] = Field(None, description="""Types of parent filters for a raw tilt source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class RawTiltParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a raw tilt source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[RawTiltParent] = Field(None, description="""A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class RawTiltParent(ConfiguredBaseModel): + """ + A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class RunEntity(ConfiguredBaseModel): + """ + A run entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[RunSource] = Field(..., description="""A run source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class RunSource(StandardSource): + """ + A run source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[RunParentFilters] = Field(None, description="""Types of parent filters for a run source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class RunParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a run source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[RunParent] = Field(None, description="""A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class RunParent(ConfiguredBaseModel): + """ + A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class StandardizationConfig(ConfiguredBaseModel): + """ + A standardization configuration. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + deposition_id: int = Field(..., description="""The deposition ID.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition_id', 'domain_of': ['StandardizationConfig']} }) + run_data_map_file: Optional[str] = Field(None, description="""The run data map file.""", json_schema_extra = { "linkml_meta": {'alias': 'run_data_map_file', 'domain_of': ['StandardizationConfig']} }) + run_to_frame_map_csv: Optional[str] = Field(None, description="""The run to frame map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_frame_map_csv', 'domain_of': ['StandardizationConfig']} }) + run_to_tomo_map_csv: Optional[str] = Field(None, description="""The run to tomogram map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_tomo_map_csv', 'domain_of': ['StandardizationConfig']} }) + run_to_ts_map_csv: Optional[str] = Field(None, description="""The run to tilt series map CSV.""", json_schema_extra = { "linkml_meta": {'alias': 'run_to_ts_map_csv', 'domain_of': ['StandardizationConfig']} }) + source_prefix: str = Field(..., description="""The source prefix of the input files.""", json_schema_extra = { "linkml_meta": {'alias': 'source_prefix', 'domain_of': ['StandardizationConfig']} }) + + +class TiltSeriesEntity(ConfiguredBaseModel): + """ + A tilt series entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Optional[TiltSeries] = Field(None, description="""Metadata describing a tilt series.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'FrameEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[TiltSeriesSource] = Field(..., description="""A tilt series source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class TiltSeriesSource(StandardSource): + """ + A tilt series source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[TiltSeriesParentFilters] = Field(None, description="""Types of parent filters for a tilt series source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class TiltSeriesParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a tilt series source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[TiltSeriesParent] = Field(None, description="""A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class TiltSeriesParent(ConfiguredBaseModel): + """ + A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class TomogramEntity(ConfiguredBaseModel): + """ + A tomogram entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + metadata: Optional[Tomogram] = Field(None, description="""Metadata describing a tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'metadata', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'DatasetEntity', + 'DepositionEntity', + 'FrameEntity', + 'TiltSeriesEntity', + 'TomogramEntity']} }) + sources: List[TomogramSource] = Field(..., description="""A tomogram source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class TomogramSource(StandardSource): + """ + A tomogram source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + parent_filters: Optional[TomogramParentFilters] = Field(None, description="""Types of parent filters for a tomogram source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_multi_glob: Optional[SourceMultiGlob] = Field(None, description="""A glob class for finding files in the source directory (with multiple globs).""", json_schema_extra = { "linkml_meta": {'alias': 'source_multi_glob', + 'domain_of': ['StandardSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[StandardLiteral] = Field(None, description="""A literal class with a value attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class TomogramParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a tomogram source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[TomogramParent] = Field(None, description="""A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class TomogramParent(ConfiguredBaseModel): + """ + A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', + 'domain_of': ['Tomogram', + 'AnnotationParent', + 'KeyImageParent', + 'TomogramParent']} }) + + +class VoxelSpacingEntity(ConfiguredBaseModel): + """ + A voxel spacing entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + sources: List[VoxelSpacingSource] = Field(..., description="""A voxel spacing source.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'sources', + 'domain_of': ['AlignmentEntity', + 'AnnotationEntity', + 'CollectionMetadataEntity', + 'DatasetEntity', + 'DatasetKeyPhotoEntity', + 'DepositionEntity', + 'DepositionKeyPhotoEntity', + 'FrameEntity', + 'GainEntity', + 'KeyImageEntity', + 'RawTiltEntity', + 'RunEntity', + 'TiltSeriesEntity', + 'TomogramEntity', + 'VoxelSpacingEntity']} }) + + +class VoxelSpacingSource(DefaultSource): + """ + A voxel spacing source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + destination_glob: Optional[DestinationGlob] = Field(None, description="""A glob class for finding files in the output / destination directory.""", json_schema_extra = { "linkml_meta": {'alias': 'destination_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + source_glob: Optional[SourceGlob] = Field(None, description="""A glob class for finding files in the source directory.""", json_schema_extra = { "linkml_meta": {'alias': 'source_glob', + 'domain_of': ['StandardSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + literal: Optional[VoxelSpacingLiteral] = Field(None, description="""A literal for a voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'literal', + 'domain_of': ['StandardSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'VoxelSpacingSource', + 'AlignmentSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DepositionSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource']} }) + tomogram_header: Optional[TomogramHeader] = Field(None, description="""A tomogram header, a unique source attribute for voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram_header', 'domain_of': ['VoxelSpacingSource']} }) + parent_filters: Optional[VoxelSpacingParentFilters] = Field(None, description="""Types of parent filters for a voxel spacing source.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_filters', + 'domain_of': ['AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + exclude: Optional[List[str]] = Field(None, description="""Exclude files from the source that match (regexes).""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class VoxelSpacingParentFilters(ConfiguredBaseModel): + """ + Types of parent filters for a voxel spacing source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + include: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'include', + 'domain_of': ['AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters']} }) + exclude: Optional[VoxelSpacingParent] = Field(None, description="""A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.""", json_schema_extra = { "linkml_meta": {'alias': 'exclude', + 'domain_of': ['DefaultSource', + 'AlignmentParentFilters', + 'AnnotationParentFilters', + 'CollectionMetadataParentFilters', + 'DatasetParentFilters', + 'DatasetKeyPhotoParentFilters', + 'DepositionKeyPhotoParentFilters', + 'FrameParentFilters', + 'GainParentFilters', + 'KeyImageParentFilters', + 'RawTiltParentFilters', + 'RunParentFilters', + 'TiltSeriesParentFilters', + 'TomogramParentFilters', + 'VoxelSpacingParentFilters', + 'StandardSource', + 'AlignmentSource', + 'AnnotationSource', + 'CollectionMetadataSource', + 'DatasetSource', + 'DatasetKeyPhotoSource', + 'DepositionSource', + 'DepositionKeyPhotoSource', + 'FrameSource', + 'GainSource', + 'KeyImageSource', + 'RawTiltSource', + 'RunSource', + 'TiltSeriesSource', + 'TomogramSource', + 'VoxelSpacingSource']} }) + + +class VoxelSpacingParent(ConfiguredBaseModel): + """ + A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + dataset: Optional[List[str]] = Field(None, description="""Include or exclude datasets for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'dataset', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + deposition: Optional[List[str]] = Field(None, description="""Include or exclude depositions for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'deposition', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'DatasetParent', + 'DatasetKeyPhotoParent', + 'DepositionKeyPhotoParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'RunParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + run: Optional[List[str]] = Field(None, description="""Include or exclude runs for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'run', + 'domain_of': ['AlignmentParent', + 'AnnotationParent', + 'CollectionMetadataParent', + 'FrameParent', + 'GainParent', + 'KeyImageParent', + 'RawTiltParent', + 'TiltSeriesParent', + 'TomogramParent', + 'VoxelSpacingParent']} }) + + +class VoxelSpacingLiteral(ConfiguredBaseModel): + """ + A literal for a voxel spacing. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + value: List[float] = Field(..., description="""The value for the voxel spacing literal.""", min_length=1, json_schema_extra = { "linkml_meta": {'alias': 'value', + 'domain_of': ['StandardLiteral', 'KeyPhotoLiteral', 'VoxelSpacingLiteral']} }) + + +class TomogramHeader(ConfiguredBaseModel): + """ + A tomogram header, a unique source attribute for voxel spacing. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'cdp-ingestion-config'}) + + list_glob: str = Field(..., description="""The glob for the tomogram header file.""", json_schema_extra = { "linkml_meta": {'alias': 'list_glob', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob']} }) + match_regex: Optional[str] = Field(".*", description="""The regex for the tomogram header file.""", json_schema_extra = { "linkml_meta": {'alias': 'match_regex', + 'domain_of': ['GeneralGlob', + 'TomogramHeader', + 'DestinationGlob', + 'SourceGlob'], + 'ifabsent': 'string(.*)'} }) + header_key: Optional[str] = Field("voxel_size", description="""The key in the header file for the voxel spacing.""", json_schema_extra = { "linkml_meta": {'alias': 'header_key', + 'domain_of': ['TomogramHeader'], + 'ifabsent': 'string(voxel_size)'} }) + + +# Model rebuild +# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model +PicturePath.model_rebuild() +FundingDetails.model_rebuild() +DateStampedEntity.model_rebuild() +AuthoredEntity.model_rebuild() +FundedEntity.model_rebuild() +CrossReferencedEntity.model_rebuild() +PicturedEntity.model_rebuild() +OrganismDetails.model_rebuild() +TissueDetails.model_rebuild() +CellType.model_rebuild() +CellStrain.model_rebuild() +CellComponent.model_rebuild() +ExperimentMetadata.model_rebuild() +Dataset.model_rebuild() +Deposition.model_rebuild() +CameraDetails.model_rebuild() +MicroscopeDetails.model_rebuild() +MicroscopeOpticalSetup.model_rebuild() +TiltRange.model_rebuild() +TiltSeries.model_rebuild() +TomogramSize.model_rebuild() +TomogramOffset.model_rebuild() +Tomogram.model_rebuild() +AnnotationConfidence.model_rebuild() +AnnotationObject.model_rebuild() +AnnotationMethodLinks.model_rebuild() +AnnotationSourceFile.model_rebuild() +AnnotationOrientedPointFile.model_rebuild() +AnnotationInstanceSegmentationFile.model_rebuild() +AnnotationPointFile.model_rebuild() +AnnotationSegmentationMaskFile.model_rebuild() +AnnotationSemanticSegmentationMaskFile.model_rebuild() +AnnotationTriangularMeshFile.model_rebuild() +AnnotationTriangularMeshGroupFile.model_rebuild() +Annotation.model_rebuild() +AlignmentSize.model_rebuild() +AlignmentOffset.model_rebuild() +Alignment.model_rebuild() +Frame.model_rebuild() +DateStampedEntityMixin.model_rebuild() +DateStamp.model_rebuild() +CrossReferencesMixin.model_rebuild() +CrossReferences.model_rebuild() +AuthorMixin.model_rebuild() +Author.model_rebuild() +Container.model_rebuild() +GeneralGlob.model_rebuild() +DestinationGlob.model_rebuild() +SourceGlob.model_rebuild() +SourceMultiGlob.model_rebuild() +DefaultSource.model_rebuild() +StandardSource.model_rebuild() +StandardLiteral.model_rebuild() +KeyPhotoLiteral.model_rebuild() +AlignmentEntity.model_rebuild() +AlignmentSource.model_rebuild() +AlignmentParentFilters.model_rebuild() +AlignmentParent.model_rebuild() +AnnotationEntity.model_rebuild() +AnnotationSource.model_rebuild() +AnnotationParentFilters.model_rebuild() +AnnotationParent.model_rebuild() +CollectionMetadataEntity.model_rebuild() +CollectionMetadataSource.model_rebuild() +CollectionMetadataParentFilters.model_rebuild() +CollectionMetadataParent.model_rebuild() +DatasetEntity.model_rebuild() +DatasetSource.model_rebuild() +DatasetParentFilters.model_rebuild() +DatasetParent.model_rebuild() +DatasetKeyPhotoEntity.model_rebuild() +DatasetKeyPhotoSource.model_rebuild() +DatasetKeyPhotoParentFilters.model_rebuild() +DatasetKeyPhotoParent.model_rebuild() +DepositionEntity.model_rebuild() +DepositionSource.model_rebuild() +DepositionKeyPhotoEntity.model_rebuild() +DepositionKeyPhotoSource.model_rebuild() +DepositionKeyPhotoParentFilters.model_rebuild() +DepositionKeyPhotoParent.model_rebuild() +FrameEntity.model_rebuild() +FrameSource.model_rebuild() +FrameParentFilters.model_rebuild() +FrameParent.model_rebuild() +GainEntity.model_rebuild() +GainSource.model_rebuild() +GainParentFilters.model_rebuild() +GainParent.model_rebuild() +KeyImageEntity.model_rebuild() +KeyImageSource.model_rebuild() +KeyImageParentFilters.model_rebuild() +KeyImageParent.model_rebuild() +RawTiltEntity.model_rebuild() +RawTiltSource.model_rebuild() +RawTiltParentFilters.model_rebuild() +RawTiltParent.model_rebuild() +RunEntity.model_rebuild() +RunSource.model_rebuild() +RunParentFilters.model_rebuild() +RunParent.model_rebuild() +StandardizationConfig.model_rebuild() +TiltSeriesEntity.model_rebuild() +TiltSeriesSource.model_rebuild() +TiltSeriesParentFilters.model_rebuild() +TiltSeriesParent.model_rebuild() +TomogramEntity.model_rebuild() +TomogramSource.model_rebuild() +TomogramParentFilters.model_rebuild() +TomogramParent.model_rebuild() +VoxelSpacingEntity.model_rebuild() +VoxelSpacingSource.model_rebuild() +VoxelSpacingParentFilters.model_rebuild() +VoxelSpacingParent.model_rebuild() +VoxelSpacingLiteral.model_rebuild() +TomogramHeader.model_rebuild() + diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json new file mode 100644 index 000000000..7ecf8792e --- /dev/null +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -0,0 +1,5372 @@ +{ + "$defs": { + "Alignment": { + "additionalProperties": false, + "description": "", + "properties": { + "affine_transformation_matrix": { + "items": { + "additionalProperties": true, + "type": [ + "null", + "boolean", + "object", + "number", + "string", + "array" + ] + }, + "type": [ + "array", + "null" + ] + }, + "alignment_type": { + "$ref": "#/$defs/AlignmentTypeEnum", + "description": "The type of alignment.", + "pattern": "(^LOCAL$)|(^GLOBAL$)" + }, + "format": { + "$ref": "#/$defs/AlignmentFormatEnum", + "description": "The format of the alignment.", + "pattern": "(^IMOD$)|(^ARETOMO3$)" + }, + "is_canonical": { + "description": "Whether the alignment is canonical.", + "type": [ + "boolean", + "null" + ] + }, + "offset": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentOffset" + }, + { + "type": "null" + } + ], + "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram." + }, + "tilt_offset": { + "description": "The tilt offset relative to the tomogram.", + "type": [ + "number", + "null" + ] + }, + "volume_dimesion": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentSize" + }, + { + "type": "null" + } + ], + "description": "The size of an alignment in voxels in each dimension." + }, + "x_rotation_offset": { + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The x rotation offset relative to the tomogram.", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "format" + ], + "title": "Alignment", + "type": "object" + }, + "AlignmentEntity": { + "additionalProperties": false, + "description": "An alignment entity.", + "properties": { + "metadata": { + "$ref": "#/$defs/Alignment", + "description": "The metadata for the alignment." + }, + "sources": { + "description": "An alignment source.", + "items": { + "$ref": "#/$defs/AlignmentSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "metadata", + "sources" + ], + "title": "AlignmentEntity", + "type": "object" + }, + "AlignmentFormatEnum": { + "description": "Used to determine what alignment alogrithm to use.", + "enum": [ + "IMOD", + "ARETOMO3" + ], + "title": "AlignmentFormatEnum", + "type": "string" + }, + "AlignmentOffset": { + "additionalProperties": false, + "description": "The offset of a alignment in voxels in each dimension relative to the canonical tomogram.", + "properties": { + "x": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "x offset relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "y": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "y offset relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "z": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "z offset relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "x", + "y", + "z" + ], + "title": "AlignmentOffset", + "type": "object" + }, + "AlignmentParent": { + "additionalProperties": false, + "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "tomogram": { + "description": "Include or exclude tomograms for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "AlignmentParent", + "type": "object" + }, + "AlignmentParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for an alignment source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of an alignment source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "AlignmentParentFilters", + "type": "object" + }, + "AlignmentSize": { + "additionalProperties": false, + "description": "The size of an alignment in voxels in each dimension.", + "properties": { + "x": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Number of pixels in the 3D data fast axis", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "y": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Number of pixels in the 3D data medium axis", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "z": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "x", + "y", + "z" + ], + "title": "AlignmentSize", + "type": "object" + }, + "AlignmentSource": { + "additionalProperties": false, + "description": "An alignment source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/AlignmentParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for an alignment source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "AlignmentSource", + "type": "object" + }, + "AlignmentTypeEnum": { + "description": "Type of alignment", + "enum": [ + "LOCAL", + "GLOBAL" + ], + "title": "AlignmentTypeEnum", + "type": "string" + }, + "Annotation": { + "additionalProperties": false, + "description": "Metadata describing an annotation.", + "properties": { + "annotation_method": { + "description": "Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)", + "type": "string" + }, + "annotation_object": { + "$ref": "#/$defs/AnnotationObject", + "description": "Metadata describing the object being annotated." + }, + "annotation_publications": { + "description": "List of publication IDs (EMPIAR, EMDB, DOI, PDB) that describe this annotation method. Comma separated.", + "pattern": "^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+|PDB-[0-9a-zA-Z]{4,8}))*$", + "type": [ + "string", + "null" + ] + }, + "annotation_software": { + "description": "Software used for generating this annotation", + "type": [ + "string", + "null" + ] + }, + "authors": { + "description": "Author of a scientific data entity.", + "items": { + "$ref": "#/$defs/Author" + }, + "minItems": 1, + "type": "array" + }, + "confidence": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationConfidence" + }, + { + "type": "null" + } + ], + "description": "Metadata describing the confidence of an annotation." + }, + "dates": { + "$ref": "#/$defs/DateStamp", + "description": "A set of dates at which a data item was deposited, published and last modified." + }, + "files": { + "description": "File and sourcing data for an annotation. Represents an entry in annotation.sources.", + "items": { + "$ref": "#/$defs/AnnotationSourceFile" + }, + "type": [ + "array", + "null" + ] + }, + "ground_truth_status": { + "description": "Whether an annotation is considered ground truth, as determined by the annotator.", + "type": [ + "boolean", + "null" + ] + }, + "is_curator_recommended": { + "description": "This annotation is recommended by the curator to be preferred for this object type.", + "type": [ + "boolean", + "null" + ] + }, + "method_links": { + "description": "A set of links to models, source code, documentation, etc referenced by annotation the method", + "items": { + "$ref": "#/$defs/AnnotationMethodLinks" + }, + "type": [ + "array", + "null" + ] + }, + "method_type": { + "$ref": "#/$defs/AnnotationMethodTypeEnum", + "description": "Classification of the annotation method based on supervision.", + "pattern": "(^manual$)|(^automated$)|(^hybrid$)|(^simulated$)" + }, + "object_count": { + "description": "Number of objects identified", + "type": [ + "integer", + "null" + ] + }, + "version": { + "description": "Version of annotation.", + "minimum": 0, + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "annotation_method", + "annotation_object", + "method_type", + "dates", + "authors" + ], + "title": "Annotation", + "type": "object" + }, + "AnnotationConfidence": { + "additionalProperties": false, + "description": "Metadata describing the confidence of an annotation.", + "properties": { + "ground_truth_used": { + "description": "Annotation filename used as ground truth for precision and recall", + "type": [ + "string", + "null" + ] + }, + "precision": { + "description": "Describe the confidence level of the annotation. Precision is defined as the % of annotation objects being true positive", + "maximum": 100, + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "recall": { + "description": "Describe the confidence level of the annotation. Recall is defined as the % of true positives being annotated correctly", + "maximum": 100, + "minimum": 0, + "type": [ + "number", + "null" + ] + } + }, + "title": "AnnotationConfidence", + "type": "object" + }, + "AnnotationEntity": { + "additionalProperties": false, + "description": "An annotation entity.", + "properties": { + "metadata": { + "$ref": "#/$defs/Annotation", + "description": "Metadata describing an annotation." + }, + "sources": { + "description": "An annotation source.", + "items": { + "$ref": "#/$defs/AnnotationSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "metadata", + "sources" + ], + "title": "AnnotationEntity", + "type": "object" + }, + "AnnotationFileShapeTypeEnum": { + "description": "Describes the shape of the annotation", + "enum": [ + "SegmentationMask", + "OrientedPoint", + "Point", + "InstanceSegmentation", + "TriangularMesh", + "TriangularMeshGroup" + ], + "title": "AnnotationFileShapeTypeEnum", + "type": "string" + }, + "AnnotationInstanceSegmentationFile": { + "additionalProperties": false, + "description": "File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes.", + "properties": { + "binning": { + "description": "The binning factor for a point / oriented point / instance segmentation annotation file.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "file_format": { + "description": "File format for this file", + "type": "string" + }, + "filter_value": { + "description": "The filter value for an oriented point / instance segmentation annotation file.", + "type": [ + "string", + "null" + ] + }, + "glob_string": { + "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", + "type": [ + "string", + "null" + ] + }, + "glob_strings": { + "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "This annotation will be rendered in neuroglancer by default.", + "type": [ + "boolean", + "null" + ] + }, + "order": { + "description": "The order of axes for an oriented point / instance segmentation annotation file.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "file_format" + ], + "title": "AnnotationInstanceSegmentationFile", + "type": "object" + }, + "AnnotationMethodLinkTypeEnum": { + "description": "Describes the type of link associated to the annotation method.", + "enum": [ + "documentation", + "models_weights", + "other", + "source_code", + "website" + ], + "title": "AnnotationMethodLinkTypeEnum", + "type": "string" + }, + "AnnotationMethodLinks": { + "additionalProperties": false, + "description": "A set of links to models, source code, documentation, etc referenced by annotation the method", + "properties": { + "custom_name": { + "description": "user readable name of the resource", + "type": [ + "string", + "null" + ] + }, + "link": { + "description": "URL to the annotation method reference", + "type": "string" + }, + "link_type": { + "$ref": "#/$defs/AnnotationMethodLinkTypeEnum", + "description": "Type of link (e.g. model, source code, documentation)", + "pattern": "(^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$)" + } + }, + "required": [ + "link", + "link_type" + ], + "title": "AnnotationMethodLinks", + "type": "object" + }, + "AnnotationMethodTypeEnum": { + "description": "Describes how the annotations were generated.", + "enum": [ + "manual", + "automated", + "hybrid", + "simulated" + ], + "title": "AnnotationMethodTypeEnum", + "type": "string" + }, + "AnnotationObject": { + "additionalProperties": false, + "description": "Metadata describing the object being annotated.", + "properties": { + "description": { + "description": "A textual description of the annotation object, can be a longer description to include additional information not covered by the Annotation object name and state.", + "type": [ + "string", + "null" + ] + }, + "id": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "pattern": "^GO:[0-9]{7}$", + "type": "string" + }, + { + "pattern": "^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$", + "type": "string" + } + ], + "description": "Gene Ontology Cellular Component identifier or UniProtKB accession for the annotation object.", + "pattern": "(^GO:[0-9]{7}$)|(^UniProtKB:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2}$)" + }, + "name": { + "description": "Name of the object being annotated (e.g. ribosome, nuclear pore complex, actin filament, membrane)", + "type": "string" + }, + "state": { + "description": "Molecule state annotated (e.g. open, closed)", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "title": "AnnotationObject", + "type": "object" + }, + "AnnotationOrientedPointFile": { + "additionalProperties": false, + "description": "File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume.", + "properties": { + "binning": { + "description": "The binning factor for a point / oriented point / instance segmentation annotation file.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "file_format": { + "description": "File format for this file", + "type": "string" + }, + "filter_value": { + "description": "The filter value for an oriented point / instance segmentation annotation file.", + "type": [ + "string", + "null" + ] + }, + "glob_string": { + "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", + "type": [ + "string", + "null" + ] + }, + "glob_strings": { + "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "This annotation will be rendered in neuroglancer by default.", + "type": [ + "boolean", + "null" + ] + }, + "order": { + "description": "The order of axes for an oriented point / instance segmentation annotation file.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "file_format" + ], + "title": "AnnotationOrientedPointFile", + "type": "object" + }, + "AnnotationParent": { + "additionalProperties": false, + "description": "A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "voxel_spacing": { + "description": "Include or exclude voxel spacings for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "AnnotationParent", + "type": "object" + }, + "AnnotationParentFilters": { + "additionalProperties": false, + "description": "Filters for the parent of an annotation source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of an annotation source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "AnnotationParentFilters", + "type": "object" + }, + "AnnotationPointFile": { + "additionalProperties": false, + "description": "File and sourcing data for a point annotation. Annotation that identifies points in the volume.", + "properties": { + "binning": { + "description": "The binning factor for a point / oriented point / instance segmentation annotation file.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "columns": { + "description": "The columns used in a point annotation file.", + "type": [ + "string", + "null" + ] + }, + "delimiter": { + "description": "The delimiter used in a point annotation file.", + "type": [ + "string", + "null" + ] + }, + "file_format": { + "description": "File format for this file", + "type": "string" + }, + "glob_string": { + "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", + "type": [ + "string", + "null" + ] + }, + "glob_strings": { + "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "This annotation will be rendered in neuroglancer by default.", + "type": [ + "boolean", + "null" + ] + } + }, + "required": [ + "file_format" + ], + "title": "AnnotationPointFile", + "type": "object" + }, + "AnnotationSegmentationMaskFile": { + "additionalProperties": false, + "description": "File and sourcing data for a segmentation mask annotation. Annotation that identifies an object.", + "properties": { + "file_format": { + "description": "File format for this file", + "type": "string" + }, + "glob_string": { + "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", + "type": [ + "string", + "null" + ] + }, + "glob_strings": { + "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "This annotation will be rendered in neuroglancer by default.", + "type": [ + "boolean", + "null" + ] + } + }, + "required": [ + "file_format" + ], + "title": "AnnotationSegmentationMaskFile", + "type": "object" + }, + "AnnotationSemanticSegmentationMaskFile": { + "additionalProperties": false, + "description": "File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects.", + "properties": { + "file_format": { + "description": "File format for this file", + "type": "string" + }, + "glob_string": { + "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", + "type": [ + "string", + "null" + ] + }, + "glob_strings": { + "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "This annotation will be rendered in neuroglancer by default.", + "type": [ + "boolean", + "null" + ] + }, + "mask_label": { + "description": "The mask label for a semantic segmentation mask annotation file.", + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "file_format" + ], + "title": "AnnotationSemanticSegmentationMaskFile", + "type": "object" + }, + "AnnotationSource": { + "additionalProperties": false, + "description": "An annotation source.", + "properties": { + "InstanceSegmentation": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationInstanceSegmentationFile" + }, + { + "type": "null" + } + ], + "description": "File and sourcing data for an instance segmentation annotation. Annotation that identifies individual instances of object shapes." + }, + "OrientedPoint": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationOrientedPointFile" + }, + { + "type": "null" + } + ], + "description": "File and sourcing data for an oriented point annotation. Annotation that identifies points along with orientation in the volume." + }, + "Point": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationPointFile" + }, + { + "type": "null" + } + ], + "description": "File and sourcing data for a point annotation. Annotation that identifies points in the volume." + }, + "SegmentationMask": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationSegmentationMaskFile" + }, + { + "type": "null" + } + ], + "description": "File and sourcing data for a segmentation mask annotation. Annotation that identifies an object." + }, + "SemanticSegmentationMask": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationSemanticSegmentationMaskFile" + }, + { + "type": "null" + } + ], + "description": "File and sourcing data for a semantic segmentation mask annotation. Annotation that identifies classes of objects." + }, + "TriangularMesh": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationTriangularMeshFile" + }, + { + "type": "null" + } + ], + "description": "File and sourcing data for a triangular mesh annotation. Annotation that identifies an object." + }, + "TriangularMeshGroup": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationTriangularMeshGroupFile" + }, + { + "type": "null" + } + ], + "description": "File and sourcing data containing one or more triangular mesh annotations." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/AnnotationParentFilters" + }, + { + "type": "null" + } + ], + "description": "Filters for the parent of an annotation source." + } + }, + "title": "AnnotationSource", + "type": "object" + }, + "AnnotationSourceFile": { + "additionalProperties": false, + "description": "File and sourcing data for an annotation. Represents an entry in annotation.sources.", + "properties": { + "file_format": { + "description": "File format for this file", + "type": "string" + }, + "glob_string": { + "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", + "type": [ + "string", + "null" + ] + }, + "glob_strings": { + "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "This annotation will be rendered in neuroglancer by default.", + "type": [ + "boolean", + "null" + ] + } + }, + "required": [ + "file_format" + ], + "title": "AnnotationSourceFile", + "type": "object" + }, + "AnnotationTriangularMeshFile": { + "additionalProperties": false, + "description": "File and sourcing data for a triangular mesh annotation. Annotation that identifies an object.", + "properties": { + "file_format": { + "description": "File format for this file", + "type": "string" + }, + "glob_string": { + "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", + "type": [ + "string", + "null" + ] + }, + "glob_strings": { + "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "This annotation will be rendered in neuroglancer by default.", + "type": [ + "boolean", + "null" + ] + }, + "scale_factor": { + "description": "The scale factor for a mesh annotation file.", + "minimum": 0, + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "file_format" + ], + "title": "AnnotationTriangularMeshFile", + "type": "object" + }, + "AnnotationTriangularMeshGroupFile": { + "additionalProperties": false, + "description": "File and sourcing data containing one or more triangular mesh annotations.", + "properties": { + "file_format": { + "description": "File format for this file", + "type": "string" + }, + "glob_string": { + "description": "Glob string to match annotation files in the dataset. Required if annotation_source_file_glob_strings is not provided.", + "type": [ + "string", + "null" + ] + }, + "glob_strings": { + "description": "Glob strings to match annotation files in the dataset. Required if annotation_source_file_glob_string is not provided.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "is_portal_standard": { + "description": "Whether the annotation source is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "This annotation will be rendered in neuroglancer by default.", + "type": [ + "boolean", + "null" + ] + }, + "name": { + "description": "The name that identifies to a single annotation mesh among multiple meshes.", + "type": [ + "string", + "null" + ] + }, + "scale_factor": { + "description": "The scale factor for a mesh annotation file.", + "minimum": 0, + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "file_format" + ], + "title": "AnnotationTriangularMeshGroupFile", + "type": "object" + }, + "Any": { + "additionalProperties": true, + "description": "", + "title": "Any", + "type": [ + "null", + "boolean", + "object", + "number", + "string" + ] + }, + "Author": { + "additionalProperties": false, + "description": "Author of a scientific data entity.", + "properties": { + "ORCID": { + "description": "The ORCID identifier for the author.", + "pattern": "[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$", + "type": [ + "string", + "null" + ] + }, + "affiliation_address": { + "description": "The address of the author's affiliation.", + "type": [ + "string", + "null" + ] + }, + "affiliation_identifier": { + "description": "A Research Organization Registry (ROR) identifier.", + "type": [ + "string", + "null" + ] + }, + "affiliation_name": { + "description": "The name of the author's affiliation.", + "type": [ + "string", + "null" + ] + }, + "corresponding_author_status": { + "description": "Whether the author is a corresponding author.", + "type": [ + "boolean", + "null" + ] + }, + "email": { + "description": "The email address of the author.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "The full name of the author.", + "type": "string" + }, + "primary_author_status": { + "description": "Whether the author is a primary author.", + "type": [ + "boolean", + "null" + ] + } + }, + "required": [ + "name" + ], + "title": "Author", + "type": "object" + }, + "AuthoredEntity": { + "additionalProperties": false, + "description": "An entity with associated authors.", + "properties": { + "authors": { + "description": "Author of a scientific data entity.", + "items": { + "$ref": "#/$defs/Author" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "authors" + ], + "title": "AuthoredEntity", + "type": "object" + }, + "CameraDetails": { + "additionalProperties": false, + "description": "The camera used to collect the tilt series.", + "properties": { + "acquire_mode": { + "anyOf": [ + { + "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + }, + { + "$ref": "#/$defs/TiltseriesCameraAcquireModeEnum" + }, + { + "type": "null" + } + ], + "description": "Camera acquisition mode", + "pattern": "(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)|((^counting$)|(^superresolution$)|(^linear$)|(^cds$))" + }, + "manufacturer": { + "description": "Name of the camera manufacturer", + "type": "string" + }, + "model": { + "description": "Camera model name", + "type": "string" + } + }, + "required": [ + "manufacturer", + "model" + ], + "title": "CameraDetails", + "type": "object" + }, + "CellComponent": { + "additionalProperties": false, + "description": "The cellular component from which the sample was derived.", + "properties": { + "id": { + "description": "The GO identifier for the cellular component.", + "pattern": "^GO:[0-9]{7}$", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "Name of the cellular component.", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "CellComponent", + "type": "object" + }, + "CellStrain": { + "additionalProperties": false, + "description": "The strain or cell line from which the sample was derived.", + "properties": { + "id": { + "anyOf": [ + { + "pattern": "WBStrain[0-9]{8}$", + "type": "string" + }, + { + "pattern": "^[a-zA-Z]+:[0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Link to more information about the cell strain.", + "pattern": "(WBStrain[0-9]{8}$)|(^[a-zA-Z]+:[0-9]+$)" + }, + "name": { + "description": "Cell line or strain for the sample.", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "CellStrain", + "type": "object" + }, + "CellType": { + "additionalProperties": false, + "description": "The cell type from which the sample was derived.", + "properties": { + "id": { + "description": "Cell Ontology identifier for the cell type", + "pattern": "^CL:[0-9]{7}$", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "Name of the cell type from which a biological sample used in a CryoET study is derived from.", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "CellType", + "type": "object" + }, + "CollectionMetadataEntity": { + "additionalProperties": false, + "description": "A collection_metadata entity.", + "properties": { + "sources": { + "description": "A collection_metadata source.", + "items": { + "$ref": "#/$defs/CollectionMetadataSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "CollectionMetadataEntity", + "type": "object" + }, + "CollectionMetadataParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "CollectionMetadataParent", + "type": "object" + }, + "CollectionMetadataParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a collection_metadata source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/CollectionMetadataParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/CollectionMetadataParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a collection_metadata source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "CollectionMetadataParentFilters", + "type": "object" + }, + "CollectionMetadataSource": { + "additionalProperties": false, + "description": "A collection_metadata source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/CollectionMetadataParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a collection_metadata source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "CollectionMetadataSource", + "type": "object" + }, + "Container": { + "additionalProperties": false, + "description": "Class that models the ingestion config file.", + "properties": { + "alignments": { + "description": "An alignment entity.", + "items": { + "$ref": "#/$defs/AlignmentEntity" + }, + "type": [ + "array", + "null" + ] + }, + "annotations": { + "description": "An annotation entity.", + "items": { + "$ref": "#/$defs/AnnotationEntity" + }, + "type": [ + "array", + "null" + ] + }, + "collection_metadata": { + "description": "A collection_metadata entity.", + "items": { + "$ref": "#/$defs/CollectionMetadataEntity" + }, + "type": [ + "array", + "null" + ] + }, + "dataset_keyphotos": { + "description": "A dataset key photo entity.", + "items": { + "$ref": "#/$defs/DatasetKeyPhotoEntity" + }, + "type": [ + "array", + "null" + ] + }, + "datasets": { + "description": "A dataset entity.", + "items": { + "$ref": "#/$defs/DatasetEntity" + }, + "minItems": 1, + "type": "array" + }, + "deposition_keyphotos": { + "description": "A deposition key photo entity.", + "items": { + "$ref": "#/$defs/DepositionKeyPhotoEntity" + }, + "type": [ + "array", + "null" + ] + }, + "depositions": { + "description": "A deposition entity.", + "items": { + "$ref": "#/$defs/DepositionEntity" + }, + "minItems": 1, + "type": "array" + }, + "frames": { + "description": "A frame entity.", + "items": { + "$ref": "#/$defs/FrameEntity" + }, + "type": [ + "array", + "null" + ] + }, + "gains": { + "description": "A gain entity.", + "items": { + "$ref": "#/$defs/GainEntity" + }, + "type": [ + "array", + "null" + ] + }, + "key_images": { + "description": "A key image entity.", + "items": { + "$ref": "#/$defs/KeyImageEntity" + }, + "type": [ + "array", + "null" + ] + }, + "rawtilts": { + "description": "A raw tilt entity.", + "items": { + "$ref": "#/$defs/RawTiltEntity" + }, + "type": [ + "array", + "null" + ] + }, + "runs": { + "description": "A run entity.", + "items": { + "$ref": "#/$defs/RunEntity" + }, + "minItems": 1, + "type": "array" + }, + "standardization_config": { + "$ref": "#/$defs/StandardizationConfig", + "description": "A standardization configuration." + }, + "tiltseries": { + "description": "A tilt series entity.", + "items": { + "$ref": "#/$defs/TiltSeriesEntity" + }, + "type": [ + "array", + "null" + ] + }, + "tomograms": { + "description": "A tomogram entity.", + "items": { + "$ref": "#/$defs/TomogramEntity" + }, + "type": [ + "array", + "null" + ] + }, + "voxel_spacings": { + "description": "A voxel spacing entity.", + "items": { + "$ref": "#/$defs/VoxelSpacingEntity" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "datasets", + "depositions", + "runs", + "standardization_config", + "voxel_spacings" + ], + "title": "Container", + "type": "object" + }, + "CrossReferences": { + "additionalProperties": false, + "description": "A set of cross-references to other databases and publications.", + "properties": { + "dataset_citations": { + "description": "Comma-separated list of DOIs for publications citing the dataset.", + "type": [ + "string", + "null" + ] + }, + "publications": { + "description": "Comma-separated list of DOIs for publications associated with the dataset.", + "pattern": "(^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\\s*,\\s*(doi:)?10\\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)", + "type": [ + "string", + "null" + ] + }, + "related_database_entries": { + "description": "Comma-separated list of related database entries for the dataset.", + "pattern": "(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8})(\\s*,\\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|PDB-[0-9a-zA-Z]{4,8}))*$)", + "type": [ + "string", + "null" + ] + }, + "related_database_links": { + "description": "Comma-separated list of related database links for the dataset.", + "type": [ + "string", + "null" + ] + } + }, + "title": "CrossReferences", + "type": "object" + }, + "Dataset": { + "additionalProperties": false, + "description": "High-level description of a cryoET dataset.", + "properties": { + "authors": { + "description": "Author of a scientific data entity.", + "items": { + "$ref": "#/$defs/Author" + }, + "minItems": 1, + "type": "array" + }, + "cell_component": { + "anyOf": [ + { + "$ref": "#/$defs/CellComponent" + }, + { + "type": "null" + } + ], + "description": "The cellular component from which the sample was derived." + }, + "cell_strain": { + "anyOf": [ + { + "$ref": "#/$defs/CellStrain" + }, + { + "type": "null" + } + ], + "description": "The strain or cell line from which the sample was derived." + }, + "cell_type": { + "anyOf": [ + { + "$ref": "#/$defs/CellType" + }, + { + "type": "null" + } + ], + "description": "The cell type from which the sample was derived." + }, + "cross_references": { + "anyOf": [ + { + "$ref": "#/$defs/CrossReferences" + }, + { + "type": "null" + } + ], + "description": "A set of cross-references to other databases and publications." + }, + "dataset_description": { + "description": "A short description of a CryoET dataset, similar to an abstract for a journal article or dataset.", + "type": "string" + }, + "dataset_identifier": { + "description": "An identifier for a CryoET dataset, assigned by the Data Portal. Used to identify the dataset as the directory name in data tree.", + "type": "integer" + }, + "dataset_title": { + "description": "Title of a CryoET dataset.", + "type": "string" + }, + "dates": { + "$ref": "#/$defs/DateStamp", + "description": "A set of dates at which a data item was deposited, published and last modified." + }, + "funding": { + "description": "A funding source for a scientific data entity (base for JSON and DB representation).", + "items": { + "$ref": "#/$defs/FundingDetails" + }, + "type": [ + "array", + "null" + ] + }, + "grid_preparation": { + "description": "Describes Cryo-ET grid preparation.", + "type": [ + "string", + "null" + ] + }, + "organism": { + "anyOf": [ + { + "$ref": "#/$defs/OrganismDetails" + }, + { + "type": "null" + } + ], + "description": "The species from which the sample was derived." + }, + "other_setup": { + "description": "Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.", + "type": [ + "string", + "null" + ] + }, + "sample_preparation": { + "description": "Describes how the sample was prepared.", + "type": [ + "string", + "null" + ] + }, + "sample_type": { + "$ref": "#/$defs/SampleTypeEnum", + "description": "Type of sample imaged in a CryoET study.", + "pattern": "(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" + }, + "tissue": { + "anyOf": [ + { + "$ref": "#/$defs/TissueDetails" + }, + { + "type": "null" + } + ], + "description": "The type of tissue from which the sample was derived." + } + }, + "required": [ + "dataset_identifier", + "dataset_title", + "dataset_description", + "dates", + "authors", + "sample_type" + ], + "title": "Dataset", + "type": "object" + }, + "DatasetEntity": { + "additionalProperties": false, + "description": "A dataset entity.", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/$defs/Dataset" + }, + { + "type": "null" + } + ], + "description": "High-level description of a cryoET dataset." + }, + "sources": { + "description": "A dataset source.", + "items": { + "$ref": "#/$defs/DatasetSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "DatasetEntity", + "type": "object" + }, + "DatasetKeyPhotoEntity": { + "additionalProperties": false, + "description": "A dataset key photo entity.", + "properties": { + "sources": { + "description": "A key photo source.", + "items": { + "$ref": "#/$defs/DatasetKeyPhotoSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "DatasetKeyPhotoEntity", + "type": "object" + }, + "DatasetKeyPhotoParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "DatasetKeyPhotoParent", + "type": "object" + }, + "DatasetKeyPhotoParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a key photo source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetKeyPhotoParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetKeyPhotoParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "DatasetKeyPhotoParentFilters", + "type": "object" + }, + "DatasetKeyPhotoSource": { + "additionalProperties": false, + "description": "A key photo source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/KeyPhotoLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal for a key photo." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetKeyPhotoParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a key photo source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "DatasetKeyPhotoSource", + "type": "object" + }, + "DatasetParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "DatasetParent", + "type": "object" + }, + "DatasetParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a dataset source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a dataset source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "DatasetParentFilters", + "type": "object" + }, + "DatasetSource": { + "additionalProperties": false, + "description": "A dataset source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a dataset source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "DatasetSource", + "type": "object" + }, + "DateStamp": { + "additionalProperties": false, + "description": "A set of dates at which a data item was deposited, published and last modified.", + "properties": { + "deposition_date": { + "description": "The date a data item was received by the cryoET data portal.", + "format": "date", + "type": "string" + }, + "last_modified_date": { + "description": "The date a piece of data was last modified on the cryoET data portal.", + "format": "date", + "type": "string" + }, + "release_date": { + "description": "The date a data item was received by the cryoET data portal.", + "format": "date", + "type": "string" + } + }, + "required": [ + "deposition_date", + "release_date", + "last_modified_date" + ], + "title": "DateStamp", + "type": "object" + }, + "DateStampedEntity": { + "additionalProperties": false, + "description": "An entity with associated deposition, release and last modified dates.", + "properties": { + "dates": { + "$ref": "#/$defs/DateStamp", + "description": "A set of dates at which a data item was deposited, published and last modified." + } + }, + "required": [ + "dates" + ], + "title": "DateStampedEntity", + "type": "object" + }, + "DefaultSource": { + "additionalProperties": false, + "description": "A default source class that all source classes inherit from.", + "properties": { + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "DefaultSource", + "type": "object" + }, + "Deposition": { + "additionalProperties": false, + "description": "Metadata describing a deposition.", + "properties": { + "authors": { + "description": "Author of a scientific data entity.", + "items": { + "$ref": "#/$defs/Author" + }, + "minItems": 1, + "type": "array" + }, + "cross_references": { + "anyOf": [ + { + "$ref": "#/$defs/CrossReferences" + }, + { + "type": "null" + } + ], + "description": "A set of cross-references to other databases and publications." + }, + "dates": { + "$ref": "#/$defs/DateStamp", + "description": "A set of dates at which a data item was deposited, published and last modified." + }, + "deposition_description": { + "description": "A short description of the deposition, similar to an abstract for a journal article or dataset.", + "type": "string" + }, + "deposition_identifier": { + "description": "An identifier for a CryoET deposition, assigned by the Data Portal. Used to identify the deposition the entity is a part of.", + "type": "integer" + }, + "deposition_title": { + "description": "Title of a CryoET deposition.", + "type": "string" + }, + "deposition_types": { + "description": "Type of data in the deposition (e.g. dataset, annotation, tomogram)", + "items": { + "$ref": "#/$defs/DepositionTypesEnum", + "pattern": "(^annotation$)|(^dataset$)|(^tomogram$)" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "deposition_description", + "deposition_identifier", + "deposition_title", + "deposition_types", + "dates", + "authors" + ], + "title": "Deposition", + "type": "object" + }, + "DepositionEntity": { + "additionalProperties": false, + "description": "A deposition entity.", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/$defs/Deposition" + }, + { + "type": "null" + } + ], + "description": "Metadata describing a deposition." + }, + "sources": { + "description": "A deposition source.", + "items": { + "$ref": "#/$defs/DepositionSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "DepositionEntity", + "type": "object" + }, + "DepositionKeyPhotoEntity": { + "additionalProperties": false, + "description": "A deposition key photo entity.", + "properties": { + "sources": { + "description": "A key photo source.", + "items": { + "$ref": "#/$defs/DepositionKeyPhotoSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "DepositionKeyPhotoEntity", + "type": "object" + }, + "DepositionKeyPhotoParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "DepositionKeyPhotoParent", + "type": "object" + }, + "DepositionKeyPhotoParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a key photo source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/DepositionKeyPhotoParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/DepositionKeyPhotoParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a key photo source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "DepositionKeyPhotoParentFilters", + "type": "object" + }, + "DepositionKeyPhotoSource": { + "additionalProperties": false, + "description": "A key photo source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/KeyPhotoLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal for a key photo." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/DepositionKeyPhotoParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a key photo source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "DepositionKeyPhotoSource", + "type": "object" + }, + "DepositionSource": { + "additionalProperties": false, + "description": "A deposition source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "DepositionSource", + "type": "object" + }, + "DepositionTypesEnum": { + "description": "Types of data a deposition has", + "enum": [ + "annotation", + "dataset", + "tomogram" + ], + "title": "DepositionTypesEnum", + "type": "string" + }, + "DestinationGlob": { + "additionalProperties": false, + "description": "A glob class for finding files in the output / destination directory.", + "properties": { + "list_glob": { + "description": "The glob for the file.", + "type": "string" + }, + "match_regex": { + "description": "The regex for the file.", + "type": [ + "string", + "null" + ] + }, + "name_regex": { + "description": "The regex for the name of the file.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "list_glob" + ], + "title": "DestinationGlob", + "type": "object" + }, + "ExperimentMetadata": { + "additionalProperties": false, + "description": "Metadata describing sample and sample preparation methods used in a cryoET dataset.", + "properties": { + "cell_component": { + "anyOf": [ + { + "$ref": "#/$defs/CellComponent" + }, + { + "type": "null" + } + ], + "description": "The cellular component from which the sample was derived." + }, + "cell_strain": { + "anyOf": [ + { + "$ref": "#/$defs/CellStrain" + }, + { + "type": "null" + } + ], + "description": "The strain or cell line from which the sample was derived." + }, + "cell_type": { + "anyOf": [ + { + "$ref": "#/$defs/CellType" + }, + { + "type": "null" + } + ], + "description": "The cell type from which the sample was derived." + }, + "grid_preparation": { + "description": "Describes Cryo-ET grid preparation.", + "type": [ + "string", + "null" + ] + }, + "organism": { + "anyOf": [ + { + "$ref": "#/$defs/OrganismDetails" + }, + { + "type": "null" + } + ], + "description": "The species from which the sample was derived." + }, + "other_setup": { + "description": "Describes other setup not covered by sample preparation or grid preparation that may make this dataset unique in the same publication.", + "type": [ + "string", + "null" + ] + }, + "sample_preparation": { + "description": "Describes how the sample was prepared.", + "type": [ + "string", + "null" + ] + }, + "sample_type": { + "$ref": "#/$defs/SampleTypeEnum", + "description": "Type of sample imaged in a CryoET study.", + "pattern": "(^cell$)|(^tissue$)|(^organism$)|(^organelle$)|(^virus$)|(^in_vitro$)|(^in_silico$)|(^other$)" + }, + "tissue": { + "anyOf": [ + { + "$ref": "#/$defs/TissueDetails" + }, + { + "type": "null" + } + ], + "description": "The type of tissue from which the sample was derived." + } + }, + "required": [ + "sample_type" + ], + "title": "ExperimentMetadata", + "type": "object" + }, + "FiducialAlignmentStatusEnum": { + "description": "Fiducial Alignment method", + "enum": [ + "FIDUCIAL", + "NON_FIDUCIAL" + ], + "title": "FiducialAlignmentStatusEnum", + "type": "string" + }, + "Frame": { + "additionalProperties": false, + "description": "A frame entity.", + "properties": { + "astigmatic_angle": { + "description": "The astigmatic angle.", + "type": "number" + }, + "astigmatism": { + "description": "The astigmatism.", + "type": "number" + }, + "defocus": { + "description": "The defocus.", + "type": "number" + }, + "dose": { + "description": "The dose.", + "type": "number" + } + }, + "required": [ + "dose", + "defocus", + "astigmatism", + "astigmatic_angle" + ], + "title": "Frame", + "type": "object" + }, + "FrameEntity": { + "additionalProperties": false, + "description": "A frame entity.", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/$defs/Frame" + }, + { + "type": "null" + } + ], + "description": "A frame entity." + }, + "sources": { + "description": "A frame source.", + "items": { + "$ref": "#/$defs/FrameSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "FrameEntity", + "type": "object" + }, + "FrameParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "FrameParent", + "type": "object" + }, + "FrameParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a frame source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/FrameParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/FrameParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a frame source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "FrameParentFilters", + "type": "object" + }, + "FrameSource": { + "additionalProperties": false, + "description": "A frame source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/FrameParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a frame source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "FrameSource", + "type": "object" + }, + "FundedEntity": { + "additionalProperties": false, + "description": "An entity with associated funding sources.", + "properties": { + "funding": { + "description": "A funding source for a scientific data entity (base for JSON and DB representation).", + "items": { + "$ref": "#/$defs/FundingDetails" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "FundedEntity", + "type": "object" + }, + "FundingDetails": { + "additionalProperties": false, + "description": "A funding source for a scientific data entity (base for JSON and DB representation).", + "properties": { + "funding_agency_name": { + "description": "The name of the funding source.", + "type": [ + "string", + "null" + ] + }, + "grant_id": { + "description": "Grant identifier provided by the funding agency", + "type": [ + "string", + "null" + ] + } + }, + "title": "FundingDetails", + "type": "object" + }, + "GainEntity": { + "additionalProperties": false, + "description": "A gain entity.", + "properties": { + "sources": { + "description": "A gain source.", + "items": { + "$ref": "#/$defs/GainSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "GainEntity", + "type": "object" + }, + "GainParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "GainParent", + "type": "object" + }, + "GainParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a gain source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/GainParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/GainParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a gain source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "GainParentFilters", + "type": "object" + }, + "GainSource": { + "additionalProperties": false, + "description": "A gain source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/GainParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a gain source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "GainSource", + "type": "object" + }, + "KeyImageEntity": { + "additionalProperties": false, + "description": "A key image entity.", + "properties": { + "sources": { + "description": "A key image source.", + "items": { + "$ref": "#/$defs/KeyImageSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "KeyImageEntity", + "type": "object" + }, + "KeyImageParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "tomogram": { + "description": "Include or exclude tomograms for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "voxel_spacing": { + "description": "Include or exclude voxel spacings for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "KeyImageParent", + "type": "object" + }, + "KeyImageParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a key image source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/KeyImageParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/KeyImageParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a key image source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "KeyImageParentFilters", + "type": "object" + }, + "KeyImageSource": { + "additionalProperties": false, + "description": "A key image source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/KeyImageParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a key image source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "KeyImageSource", + "type": "object" + }, + "KeyPhotoLiteral": { + "additionalProperties": false, + "description": "A literal for a key photo.", + "properties": { + "value": { + "$ref": "#/$defs/PicturePath", + "description": "A set of paths to representative images of a piece of data." + } + }, + "required": [ + "value" + ], + "title": "KeyPhotoLiteral", + "type": "object" + }, + "MicroscopeDetails": { + "additionalProperties": false, + "description": "The microscope used to collect the tilt series.", + "properties": { + "additional_info": { + "description": "Other microscope optical setup information, in addition to energy filter, phase plate and image corrector", + "type": [ + "string", + "null" + ] + }, + "manufacturer": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "$ref": "#/$defs/TiltseriesMicroscopeManufacturerEnum", + "description": "Name of the microscope manufacturer" + }, + { + "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Name of the microscope manufacturer", + "pattern": "(^FEI$)|(^TFS$)|(^JEOL$)|(^SIMULATED$)|(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)" + }, + "model": { + "description": "Microscope model name", + "type": "string" + } + }, + "required": [ + "manufacturer", + "model" + ], + "title": "MicroscopeDetails", + "type": "object" + }, + "MicroscopeOpticalSetup": { + "additionalProperties": false, + "description": "The optical setup of the microscope used to collect the tilt series.", + "properties": { + "energy_filter": { + "description": "Energy filter setup used", + "type": "string" + }, + "image_corrector": { + "description": "Image corrector setup", + "type": [ + "string", + "null" + ] + }, + "phase_plate": { + "description": "Phase plate configuration", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "energy_filter" + ], + "title": "MicroscopeOpticalSetup", + "type": "object" + }, + "OrganismDetails": { + "additionalProperties": false, + "description": "The species from which the sample was derived.", + "properties": { + "name": { + "description": "Name of the organism from which a biological sample used in a CryoET study is derived from, e.g. homo sapiens.", + "type": "string" + }, + "taxonomy_id": { + "description": "NCBI taxonomy identifier for the organism, e.g. 9606", + "minimum": 1, + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "name" + ], + "title": "OrganismDetails", + "type": "object" + }, + "PicturePath": { + "additionalProperties": false, + "description": "A set of paths to representative images of a piece of data.", + "properties": { + "snapshot": { + "description": "Path to the dataset preview image relative to the dataset directory root.", + "pattern": "^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$", + "type": [ + "string", + "null" + ] + }, + "thumbnail": { + "description": "Path to the thumbnail of preview image relative to the dataset directory root.", + "pattern": "^(((https?|s3)://)|cryoetportal-rawdatasets-dev).*$", + "type": [ + "string", + "null" + ] + } + }, + "title": "PicturePath", + "type": "object" + }, + "PicturedEntity": { + "additionalProperties": false, + "description": "An entity with associated preview images.", + "properties": { + "key_photos": { + "$ref": "#/$defs/PicturePath", + "description": "A set of paths to representative images of a piece of data." + } + }, + "required": [ + "key_photos" + ], + "title": "PicturedEntity", + "type": "object" + }, + "RawTiltEntity": { + "additionalProperties": false, + "description": "A raw tilt entity.", + "properties": { + "sources": { + "description": "A raw tilt source.", + "items": { + "$ref": "#/$defs/RawTiltSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "RawTiltEntity", + "type": "object" + }, + "RawTiltParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "RawTiltParent", + "type": "object" + }, + "RawTiltParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a raw tilt source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/RawTiltParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/RawTiltParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a raw tilt source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "RawTiltParentFilters", + "type": "object" + }, + "RawTiltSource": { + "additionalProperties": false, + "description": "A raw tilt source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/RawTiltParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a raw tilt source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "RawTiltSource", + "type": "object" + }, + "RunEntity": { + "additionalProperties": false, + "description": "A run entity.", + "properties": { + "sources": { + "description": "A run source.", + "items": { + "$ref": "#/$defs/RunSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "RunEntity", + "type": "object" + }, + "RunParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "RunParent", + "type": "object" + }, + "RunParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a run source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/RunParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/RunParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a run source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "RunParentFilters", + "type": "object" + }, + "RunSource": { + "additionalProperties": false, + "description": "A run source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/RunParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a run source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "RunSource", + "type": "object" + }, + "SampleTypeEnum": { + "description": "Type of sample imaged in a CryoET study.", + "enum": [ + "cell", + "tissue", + "organism", + "organelle", + "virus", + "in_vitro", + "in_silico", + "other" + ], + "title": "SampleTypeEnum", + "type": "string" + }, + "SourceGlob": { + "additionalProperties": false, + "description": "A glob class for finding files in the source directory.", + "properties": { + "list_glob": { + "description": "The glob for the file.", + "type": "string" + }, + "match_regex": { + "description": "The regex for the file.", + "type": [ + "string", + "null" + ] + }, + "name_regex": { + "description": "The regex for the name of the file.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "list_glob" + ], + "title": "SourceGlob", + "type": "object" + }, + "SourceMultiGlob": { + "additionalProperties": false, + "description": "A glob class for finding files in the source directory (with multiple globs).", + "properties": { + "list_globs": { + "description": "The globs for the file.", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "list_globs" + ], + "title": "SourceMultiGlob", + "type": "object" + }, + "StandardLiteral": { + "additionalProperties": false, + "description": "A literal class with a value attribute.", + "properties": { + "value": { + "description": "The value for the literal.", + "items": { + "$ref": "#/$defs/Any" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "value" + ], + "title": "StandardLiteral", + "type": "object" + }, + "StandardSource": { + "additionalProperties": false, + "description": "A generalized source class with glob finders. Inherited by a majority of source classes.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "StandardSource", + "type": "object" + }, + "StandardizationConfig": { + "additionalProperties": false, + "description": "A standardization configuration.", + "properties": { + "deposition_id": { + "description": "The deposition ID.", + "type": "integer" + }, + "run_data_map_file": { + "description": "The run data map file.", + "type": [ + "string", + "null" + ] + }, + "run_to_frame_map_csv": { + "description": "The run to frame map CSV.", + "type": [ + "string", + "null" + ] + }, + "run_to_tomo_map_csv": { + "description": "The run to tomogram map CSV.", + "type": [ + "string", + "null" + ] + }, + "run_to_ts_map_csv": { + "description": "The run to tilt series map CSV.", + "type": [ + "string", + "null" + ] + }, + "source_prefix": { + "description": "The source prefix of the input files.", + "type": "string" + } + }, + "required": [ + "deposition_id", + "source_prefix" + ], + "title": "StandardizationConfig", + "type": "object" + }, + "TiltRange": { + "additionalProperties": false, + "description": "The range of tilt angles in the tilt series.", + "properties": { + "max": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Maximal tilt angle in degrees", + "maximum": 90, + "minimum": -90, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Maximal tilt angle in degrees", + "maximum": 90, + "minimum": -90, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "min": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Minimal tilt angle in degrees", + "maximum": 90, + "minimum": -90, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Minimal tilt angle in degrees", + "maximum": 90, + "minimum": -90, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "min", + "max" + ], + "title": "TiltRange", + "type": "object" + }, + "TiltSeries": { + "additionalProperties": false, + "description": "Metadata describing a tilt series.", + "properties": { + "acceleration_voltage": { + "description": "Electron Microscope Accelerator voltage in volts", + "minimum": 20000, + "type": "number" + }, + "aligned_tiltseries_binning": { + "anyOf": [ + { + "description": "Binning factor of the aligned tilt series", + "minimum": 0, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Binning factor of the aligned tilt series", + "minimum": 0, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "binning_from_frames": { + "anyOf": [ + { + "description": "Describes the binning factor from frames to tilt series file", + "minimum": 0, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Describes the binning factor from frames to tilt series file", + "minimum": 0, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "camera": { + "$ref": "#/$defs/CameraDetails", + "description": "The camera used to collect the tilt series." + }, + "data_acquisition_software": { + "description": "Software used to collect data", + "type": "string" + }, + "frames_count": { + "description": "Number of frames associated with this tiltseries", + "type": [ + "integer", + "null" + ] + }, + "is_aligned": { + "description": "Whether this tilt series is aligned", + "type": "boolean" + }, + "microscope": { + "$ref": "#/$defs/MicroscopeDetails", + "description": "The microscope used to collect the tilt series." + }, + "microscope_optical_setup": { + "$ref": "#/$defs/MicroscopeOpticalSetup", + "description": "The optical setup of the microscope used to collect the tilt series." + }, + "pixel_spacing": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Pixel spacing for the tilt series", + "minimum": 0.001, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Pixel spacing for the tilt series", + "minimum": 0.001, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "related_empiar_entry": { + "description": "If a tilt series is deposited into EMPIAR, enter the EMPIAR dataset identifier", + "pattern": "^EMPIAR-[0-9]+$", + "type": [ + "string", + "null" + ] + }, + "spherical_aberration_constant": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Spherical Aberration Constant of the objective lens in millimeters", + "minimum": 0, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Spherical Aberration Constant of the objective lens in millimeters", + "minimum": 0, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "tilt_alignment_software": { + "description": "Software used for tilt alignment", + "type": [ + "string", + "null" + ] + }, + "tilt_axis": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Rotation angle in degrees", + "maximum": 360, + "minimum": -360, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Rotation angle in degrees", + "maximum": 360, + "minimum": -360, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "tilt_range": { + "$ref": "#/$defs/TiltRange", + "description": "The range of tilt angles in the tilt series." + }, + "tilt_series_quality": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Author assessment of tilt series quality within the dataset (1-5, 5 is best)", + "maximum": 5, + "minimum": 1, + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Author assessment of tilt series quality within the dataset (1-5, 5 is best)", + "maximum": 5, + "minimum": 1, + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "tilt_step": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Tilt step in degrees", + "maximum": 90, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Tilt step in degrees", + "maximum": 90, + "minimum": 0, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "tilting_scheme": { + "description": "The order of stage tilting during acquisition of the data", + "type": "string" + }, + "total_flux": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series", + "minimum": 0, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Number of Electrons reaching the specimen in a square Angstrom area for the entire tilt series", + "minimum": 0, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "acceleration_voltage", + "camera", + "data_acquisition_software", + "is_aligned", + "microscope", + "microscope_optical_setup", + "spherical_aberration_constant", + "tilt_axis", + "tilt_range", + "tilt_series_quality", + "tilt_step", + "tilting_scheme", + "total_flux", + "pixel_spacing" + ], + "title": "TiltSeries", + "type": "object" + }, + "TiltSeriesEntity": { + "additionalProperties": false, + "description": "A tilt series entity.", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/$defs/TiltSeries" + }, + { + "type": "null" + } + ], + "description": "Metadata describing a tilt series." + }, + "sources": { + "description": "A tilt series source.", + "items": { + "$ref": "#/$defs/TiltSeriesSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "TiltSeriesEntity", + "type": "object" + }, + "TiltSeriesParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "TiltSeriesParent", + "type": "object" + }, + "TiltSeriesParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a tilt series source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/TiltSeriesParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/TiltSeriesParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a tilt series source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "TiltSeriesParentFilters", + "type": "object" + }, + "TiltSeriesSource": { + "additionalProperties": false, + "description": "A tilt series source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/TiltSeriesParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a tilt series source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "TiltSeriesSource", + "type": "object" + }, + "TiltseriesCameraAcquireModeEnum": { + "description": "Camera acquisition mode", + "enum": [ + "counting", + "superresolution", + "linear", + "cds" + ], + "title": "TiltseriesCameraAcquireModeEnum", + "type": "string" + }, + "TiltseriesMicroscopeManufacturerEnum": { + "description": "Microscope manufacturer", + "enum": [ + "FEI", + "TFS", + "JEOL", + "SIMULATED" + ], + "title": "TiltseriesMicroscopeManufacturerEnum", + "type": "string" + }, + "TissueDetails": { + "additionalProperties": false, + "description": "The type of tissue from which the sample was derived.", + "properties": { + "id": { + "description": "The UBERON identifier for the tissue.", + "pattern": "^BTO:[0-9]{7}$", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "Name of the tissue from which a biological sample used in a CryoET study is derived from.", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "TissueDetails", + "type": "object" + }, + "Tomogram": { + "additionalProperties": false, + "description": "Metadata describing a tomogram.", + "properties": { + "affine_transformation_matrix": { + "items": { + "additionalProperties": true, + "type": [ + "null", + "boolean", + "object", + "number", + "string", + "array" + ] + }, + "type": [ + "array", + "null" + ] + }, + "align_software": { + "description": "Software used for alignment", + "type": [ + "string", + "null" + ] + }, + "authors": { + "description": "Author of a scientific data entity.", + "items": { + "$ref": "#/$defs/Author" + }, + "minItems": 1, + "type": "array" + }, + "cross_references": { + "anyOf": [ + { + "$ref": "#/$defs/CrossReferences" + }, + { + "type": "null" + } + ], + "description": "A set of cross-references to other databases and publications." + }, + "ctf_corrected": { + "description": "Whether this tomogram is CTF corrected", + "type": [ + "boolean", + "null" + ] + }, + "dates": { + "$ref": "#/$defs/DateStamp", + "description": "A set of dates at which a data item was deposited, published and last modified." + }, + "fiducial_alignment_status": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "$ref": "#/$defs/FiducialAlignmentStatusEnum", + "description": "Whether the tomographic alignment was computed based on fiducial markers." + }, + { + "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Whether the tomographic alignment was computed based on fiducial markers.", + "pattern": "(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)" + }, + "is_portal_standard": { + "description": "Whether the tomogram is a portal standard.", + "type": [ + "boolean", + "null" + ] + }, + "is_visualization_default": { + "description": "Whether the tomogram is the default for visualization.", + "type": "boolean" + }, + "offset": { + "$ref": "#/$defs/TomogramOffset", + "description": "The offset of a tomogram in voxels in each dimension relative to the canonical tomogram." + }, + "processing": { + "$ref": "#/$defs/TomogramProcessingEnum", + "description": "Describe additional processing used to derive the tomogram", + "pattern": "(^denoised$)|(^filtered$)|(^raw$)" + }, + "processing_software": { + "description": "Processing software used to derive the tomogram", + "type": [ + "string", + "null" + ] + }, + "reconstruction_method": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "$ref": "#/$defs/TomogramReconstructionMethodEnum", + "description": "Describe reconstruction method (WBP, SART, SIRT)" + }, + { + "pattern": "^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Describe reconstruction method (WBP, SART, SIRT)", + "pattern": "(^SART$)|(^Fourier Space$)|(^SIRT$)|(^WBP$)|(^Unknown$)|(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)" + }, + "reconstruction_software": { + "description": "Name of software used for reconstruction", + "type": "string" + }, + "size": { + "anyOf": [ + { + "$ref": "#/$defs/TomogramSize" + }, + { + "type": "null" + } + ], + "description": "The size of a tomogram in voxels in each dimension." + }, + "tomogram_version": { + "description": "Version of tomogram", + "minimum": 0, + "type": "number" + }, + "voxel_spacing": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "description": "Voxel spacing equal in all three axes in angstroms", + "minimum": 0.001, + "type": "number" + }, + { + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "Voxel spacing equal in all three axes in angstroms", + "minimum": 0.001, + "pattern": "^float[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "voxel_spacing", + "fiducial_alignment_status", + "reconstruction_method", + "reconstruction_software", + "processing", + "tomogram_version", + "offset", + "is_visualization_default", + "dates", + "authors" + ], + "title": "Tomogram", + "type": "object" + }, + "TomogramEntity": { + "additionalProperties": false, + "description": "A tomogram entity.", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/$defs/Tomogram" + }, + { + "type": "null" + } + ], + "description": "Metadata describing a tomogram." + }, + "sources": { + "description": "A tomogram source.", + "items": { + "$ref": "#/$defs/TomogramSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "TomogramEntity", + "type": "object" + }, + "TomogramHeader": { + "additionalProperties": false, + "description": "A tomogram header, a unique source attribute for voxel spacing.", + "properties": { + "header_key": { + "description": "The key in the header file for the voxel spacing.", + "type": [ + "string", + "null" + ] + }, + "list_glob": { + "description": "The glob for the tomogram header file.", + "type": "string" + }, + "match_regex": { + "description": "The regex for the tomogram header file.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "list_glob" + ], + "title": "TomogramHeader", + "type": "object" + }, + "TomogramOffset": { + "additionalProperties": false, + "description": "The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.", + "properties": { + "x": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "x offset data relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "y": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "y offset data relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + }, + "z": { + "$ref": "#/$defs/Any", + "anyOf": [ + { + "type": "integer" + }, + { + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$", + "type": "string" + } + ], + "description": "z offset data relative to the canonical tomogram in pixels", + "pattern": "^int[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$" + } + }, + "required": [ + "x", + "y", + "z" + ], + "title": "TomogramOffset", + "type": "object" + }, + "TomogramParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "voxel_spacing": { + "description": "Include or exclude voxel spacings for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "TomogramParent", + "type": "object" + }, + "TomogramParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a tomogram source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/TomogramParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/TomogramParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a tomogram source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "TomogramParentFilters", + "type": "object" + }, + "TomogramProcessingEnum": { + "description": "Tomogram processing method", + "enum": [ + "denoised", + "filtered", + "raw" + ], + "title": "TomogramProcessingEnum", + "type": "string" + }, + "TomogramReconstructionMethodEnum": { + "description": "Tomogram reconstruction method", + "enum": [ + "SART", + "Fourier Space", + "SIRT", + "WBP", + "Unknown" + ], + "title": "TomogramReconstructionMethodEnum", + "type": "string" + }, + "TomogramSize": { + "additionalProperties": false, + "description": "The size of a tomogram in voxels in each dimension.", + "properties": { + "x": { + "description": "Number of pixels in the 3D data fast axis", + "minimum": 0, + "type": "integer" + }, + "y": { + "description": "Number of pixels in the 3D data medium axis", + "minimum": 0, + "type": "integer" + }, + "z": { + "description": "Number of pixels in the 3D data slow axis. This is the image projection direction at zero stage tilt", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "x", + "y", + "z" + ], + "title": "TomogramSize", + "type": "object" + }, + "TomogramSource": { + "additionalProperties": false, + "description": "A tomogram source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/StandardLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal class with a value attribute." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/TomogramParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a tomogram source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "source_multi_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceMultiGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory (with multiple globs)." + } + }, + "title": "TomogramSource", + "type": "object" + }, + "TomogramTypeEnum": { + "description": "Tomogram type", + "enum": [ + "CANONICAL" + ], + "title": "TomogramTypeEnum", + "type": "string" + }, + "VoxelSpacingEntity": { + "additionalProperties": false, + "description": "A voxel spacing entity.", + "properties": { + "sources": { + "description": "A voxel spacing source.", + "items": { + "$ref": "#/$defs/VoxelSpacingSource" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "sources" + ], + "title": "VoxelSpacingEntity", + "type": "object" + }, + "VoxelSpacingLiteral": { + "additionalProperties": false, + "description": "A literal for a voxel spacing.", + "properties": { + "value": { + "description": "The value for the voxel spacing literal.", + "items": { + "type": "number" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "value" + ], + "title": "VoxelSpacingLiteral", + "type": "object" + }, + "VoxelSpacingParent": { + "additionalProperties": false, + "description": "A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute.", + "properties": { + "dataset": { + "description": "Include or exclude datasets for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deposition": { + "description": "Include or exclude depositions for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "run": { + "description": "Include or exclude runs for a source.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "title": "VoxelSpacingParent", + "type": "object" + }, + "VoxelSpacingParentFilters": { + "additionalProperties": false, + "description": "Types of parent filters for a voxel spacing source.", + "properties": { + "exclude": { + "anyOf": [ + { + "$ref": "#/$defs/VoxelSpacingParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + }, + "include": { + "anyOf": [ + { + "$ref": "#/$defs/VoxelSpacingParent" + }, + { + "type": "null" + } + ], + "description": "A filter for a parent class of a voxel spacing source. For a given attribute, it can only be used if the current class is a subclass of the attribute." + } + }, + "title": "VoxelSpacingParentFilters", + "type": "object" + }, + "VoxelSpacingSource": { + "additionalProperties": false, + "description": "A voxel spacing source.", + "properties": { + "destination_glob": { + "anyOf": [ + { + "$ref": "#/$defs/DestinationGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the output / destination directory." + }, + "exclude": { + "description": "Exclude files from the source that match (regexes).", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "literal": { + "anyOf": [ + { + "$ref": "#/$defs/VoxelSpacingLiteral" + }, + { + "type": "null" + } + ], + "description": "A literal for a voxel spacing." + }, + "parent_filters": { + "anyOf": [ + { + "$ref": "#/$defs/VoxelSpacingParentFilters" + }, + { + "type": "null" + } + ], + "description": "Types of parent filters for a voxel spacing source." + }, + "source_glob": { + "anyOf": [ + { + "$ref": "#/$defs/SourceGlob" + }, + { + "type": "null" + } + ], + "description": "A glob class for finding files in the source directory." + }, + "tomogram_header": { + "anyOf": [ + { + "$ref": "#/$defs/TomogramHeader" + }, + { + "type": "null" + } + ], + "description": "A tomogram header, a unique source attribute for voxel spacing." + } + }, + "title": "VoxelSpacingSource", + "type": "object" + } + }, + "$id": "cdp-ingestion-config", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "additionalProperties": true, + "description": "Class that models the ingestion config file.", + "metamodel_version": "1.7.0", + "properties": { + "alignments": { + "description": "An alignment entity.", + "items": { + "$ref": "#/$defs/AlignmentEntity" + }, + "type": [ + "array", + "null" + ] + }, + "annotations": { + "description": "An annotation entity.", + "items": { + "$ref": "#/$defs/AnnotationEntity" + }, + "type": [ + "array", + "null" + ] + }, + "collection_metadata": { + "description": "A collection_metadata entity.", + "items": { + "$ref": "#/$defs/CollectionMetadataEntity" + }, + "type": [ + "array", + "null" + ] + }, + "dataset_keyphotos": { + "description": "A dataset key photo entity.", + "items": { + "$ref": "#/$defs/DatasetKeyPhotoEntity" + }, + "type": [ + "array", + "null" + ] + }, + "datasets": { + "description": "A dataset entity.", + "items": { + "$ref": "#/$defs/DatasetEntity" + }, + "minItems": 1, + "type": "array" + }, + "deposition_keyphotos": { + "description": "A deposition key photo entity.", + "items": { + "$ref": "#/$defs/DepositionKeyPhotoEntity" + }, + "type": [ + "array", + "null" + ] + }, + "depositions": { + "description": "A deposition entity.", + "items": { + "$ref": "#/$defs/DepositionEntity" + }, + "minItems": 1, + "type": "array" + }, + "frames": { + "description": "A frame entity.", + "items": { + "$ref": "#/$defs/FrameEntity" + }, + "type": [ + "array", + "null" + ] + }, + "gains": { + "description": "A gain entity.", + "items": { + "$ref": "#/$defs/GainEntity" + }, + "type": [ + "array", + "null" + ] + }, + "key_images": { + "description": "A key image entity.", + "items": { + "$ref": "#/$defs/KeyImageEntity" + }, + "type": [ + "array", + "null" + ] + }, + "rawtilts": { + "description": "A raw tilt entity.", + "items": { + "$ref": "#/$defs/RawTiltEntity" + }, + "type": [ + "array", + "null" + ] + }, + "runs": { + "description": "A run entity.", + "items": { + "$ref": "#/$defs/RunEntity" + }, + "minItems": 1, + "type": "array" + }, + "standardization_config": { + "$ref": "#/$defs/StandardizationConfig", + "description": "A standardization configuration." + }, + "tiltseries": { + "description": "A tilt series entity.", + "items": { + "$ref": "#/$defs/TiltSeriesEntity" + }, + "type": [ + "array", + "null" + ] + }, + "tomograms": { + "description": "A tomogram entity.", + "items": { + "$ref": "#/$defs/TomogramEntity" + }, + "type": [ + "array", + "null" + ] + }, + "voxel_spacings": { + "description": "A voxel spacing entity.", + "items": { + "$ref": "#/$defs/VoxelSpacingEntity" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "datasets", + "depositions", + "runs", + "standardization_config", + "voxel_spacings" + ], + "title": "cdp-ingestion-config", + "type": "object", + "version": "1.1.0" +} diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml index 9cdceac2e..1ac93e580 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml @@ -652,7 +652,6 @@ slots: from_schema: cdp-ingestion-config domain_of: - Tomogram - - AlignmentParent - AnnotationParent - KeyImageParent - TomogramParent @@ -1396,7 +1395,6 @@ classes: - deposition - run - tomogram - - voxel_spacing attributes: dataset: name: dataset @@ -1479,22 +1477,6 @@ classes: multivalued: true inlined: true inlined_as_list: true - voxel_spacing: - name: voxel_spacing - description: Include or exclude voxel spacings for a source. - from_schema: cdp-ingestion-config - alias: voxel_spacing - owner: AlignmentParent - domain_of: - - Tomogram - - AlignmentParent - - AnnotationParent - - KeyImageParent - - TomogramParent - range: string - multivalued: true - inlined: true - inlined_as_list: true AnnotationEntity: name: AnnotationEntity description: An annotation entity. @@ -1831,7 +1813,6 @@ classes: owner: AnnotationParent domain_of: - Tomogram - - AlignmentParent - AnnotationParent - KeyImageParent - TomogramParent @@ -3815,7 +3796,6 @@ classes: owner: KeyImageParent domain_of: - Tomogram - - AlignmentParent - AnnotationParent - KeyImageParent - TomogramParent @@ -5015,7 +4995,6 @@ classes: owner: TomogramParent domain_of: - Tomogram - - AlignmentParent - AnnotationParent - KeyImageParent - TomogramParent diff --git a/schema/requirements.txt b/schema/requirements.txt index 85ac90acc..c35b463a6 100644 --- a/schema/requirements.txt +++ b/schema/requirements.txt @@ -1,3 +1,3 @@ -linkml +linkml==1.8.2 # upgrade blocked by https://github.com/chanzuckerberg/cryoet-data-portal-backend/issues/274 linkml-runtime click From 90734f12d2e792cab7bc95be3c3c4db0b1004798 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 23 Sep 2024 11:28:06 -0700 Subject: [PATCH 40/59] add xtlt and copy to transform_ingestion_configs.py --- .../scripts/transform_ingestion_configs.py | 55 +++++++++++++++++++ .../ingestion_config/migrations/issue_997.py | 24 ++++---- 2 files changed, 67 insertions(+), 12 deletions(-) diff --git a/ingestion_tools/scripts/transform_ingestion_configs.py b/ingestion_tools/scripts/transform_ingestion_configs.py index 11c079840..1ed752034 100644 --- a/ingestion_tools/scripts/transform_ingestion_configs.py +++ b/ingestion_tools/scripts/transform_ingestion_configs.py @@ -35,6 +35,61 @@ def has_no_sources(data: list[dict[str, Any]] | dict[str, Any]) -> bool: return isinstance(data, dict) or not any(row.get("sources") for row in data) +def rawtilts_to_alignments(data: dict) -> None: + list_globs = [] + format_dict = { + "IMOD": [], + "ARETOMO3": [], + } + + def valid_file(file): + return any(file.endswith(ext) for ext in ['.tlt', ".xf", ".aln", ".com", ".txt", ".csv", ".tiltx"]) + + def get_format(file): + if any(file.endswith(ext) for ext in ['.tlt', ".xf", ".com", ".xtlt"]): + format_dict["IMOD"].append(file) + elif any(file.endswith(ext) for ext in ['.aln', ".txt", ".csv"]): + format_dict["ARETOMO3"].append(file) + + if len(data.get('tomograms', [])) > 1 or len(data.get("rawtilts", [])) > 1: + raise ValueError("More than one tomogram or rawtilt") + + if 'rawtilts' in data: + for i in data['rawtilts']: + if "sources" not in i: + continue + old_source = i["sources"][0]["source_multi_glob"]["list_globs"] + list_globs.extend(s for s in old_source if valid_file(s)) + for source in list_globs: + old_source.remove(source) + get_format(source) + if list_globs: + if 'alignments' not in data: + data['alignments'] = [] + for key, files in format_dict.items(): + if files: + # check if there is an alignment with the key in the metadata.format + alignment = [a for a in data.get("alignments", []) if a["metadata"]["format"] == key] + if alignment: + alignment = alignment.pop() + else: + alignment = { + "metadata": {"format": key}, + "sources": [{"source_multi_glob": {"list_globs": files}}]} + + if 'tomograms' in data: + for i in data['tomograms']: + if "metadata" not in i: + continue + affine_transformation_matrix = i["metadata"].get("affine_transformation_matrix", None) + if affine_transformation_matrix and np.allclose(affine_transformation_matrix,np.eye(4)): + # skip if is an idenity matrix + continue + if affine_transformation_matrix: + alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix + data["alignments"].append(alignment) + + def update_config(data: dict[str, Any]) -> dict[str, Any]: standardization_config = data["standardization_config"] if data.get("overrides_by_run"): diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 0dd10c191..b7f5aaf4f 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -28,7 +28,7 @@ def rawtilts_to_collection_metadata(config: dict) -> None: config["collection_metadata"][0]["sources"][0]["source_multi_glob"]["list_globs"].extend(list_globs) -def rawtilts_to_alignments(config: dict) -> None: +def rawtilts_to_alignments(data: dict) -> None: list_globs = [] format_dict = { "IMOD": [], @@ -36,19 +36,19 @@ def rawtilts_to_alignments(config: dict) -> None: } def valid_file(file): - return any(file.endswith(ext) for ext in ['.tlt', ".xf", ".aln", ".com", ".txt", ".csv"]) + return any(file.endswith(ext) for ext in ['.tlt', ".xf", ".aln", ".com", ".txt", ".csv", ".tiltx"]) def get_format(file): - if any(file.endswith(ext) for ext in ['.tlt', ".xf", ".com"]): + if any(file.endswith(ext) for ext in ['.tlt', ".xf", ".com", ".xtlt"]): format_dict["IMOD"].append(file) elif any(file.endswith(ext) for ext in ['.aln', ".txt", ".csv"]): format_dict["ARETOMO3"].append(file) - if len(config.get('tomograms', [])) > 1 or len(config.get("rawtilts", [])) > 1: + if len(data.get('tomograms', [])) > 1 or len(data.get("rawtilts", [])) > 1: raise ValueError("More than one tomogram or rawtilt") - if 'rawtilts' in config: - for i in config['rawtilts']: + if 'rawtilts' in data: + for i in data['rawtilts']: if "sources" not in i: continue old_source = i["sources"][0]["source_multi_glob"]["list_globs"] @@ -57,12 +57,12 @@ def get_format(file): old_source.remove(source) get_format(source) if list_globs: - if 'alignments' not in config: - config['alignments'] = [] + if 'alignments' not in data: + data['alignments'] = [] for key, files in format_dict.items(): if files: # check if there is an alignment with the key in the metadata.format - alignment = [a for a in config.get("alignments", []) if a["metadata"]["format"] == key] + alignment = [a for a in data.get("alignments", []) if a["metadata"]["format"] == key] if alignment: alignment = alignment.pop() else: @@ -70,8 +70,8 @@ def get_format(file): "metadata": {"format": key}, "sources": [{"source_multi_glob": {"list_globs": files}}]} - if 'tomograms' in config: - for i in config['tomograms']: + if 'tomograms' in data: + for i in data['tomograms']: if "metadata" not in i: continue affine_transformation_matrix = i["metadata"].get("affine_transformation_matrix", None) @@ -80,7 +80,7 @@ def get_format(file): continue if affine_transformation_matrix: alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix - config["alignments"].append(alignment) + data["alignments"].append(alignment) def update_tomogram_metadata(config: dict) -> None: From a3394fbecc8da04f18e0451ef239fcbef7655102 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Mon, 23 Sep 2024 11:29:19 -0700 Subject: [PATCH 41/59] lint --- ingestion_tools/scripts/transform_ingestion_configs.py | 1 + schema/core/v1.1.0/codegen/metadata_models.py | 1 - .../v1.0.0/codegen/ingestion_config_models.py | 7 +++---- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ingestion_tools/scripts/transform_ingestion_configs.py b/ingestion_tools/scripts/transform_ingestion_configs.py index 1ed752034..4d37e1bc1 100644 --- a/ingestion_tools/scripts/transform_ingestion_configs.py +++ b/ingestion_tools/scripts/transform_ingestion_configs.py @@ -1,6 +1,7 @@ from typing import Any import click +import numpy as np import yaml diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 21f31b12a..ceab2afe0 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4784,4 +4784,3 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() - diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 87959376a..7512ff368 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -6665,4 +6665,3 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() - From e2072d82bb859f2dedc888e4038722a6a66ce4da Mon Sep 17 00:00:00 2001 From: Bento007 Date: Tue, 24 Sep 2024 11:46:31 -0700 Subject: [PATCH 42/59] iron out tilt formats --- .../scripts/transform_ingestion_configs.py | 11 +++++++---- schema/ingestion_config/migrations/issue_997.py | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ingestion_tools/scripts/transform_ingestion_configs.py b/ingestion_tools/scripts/transform_ingestion_configs.py index 4d37e1bc1..0b8613696 100644 --- a/ingestion_tools/scripts/transform_ingestion_configs.py +++ b/ingestion_tools/scripts/transform_ingestion_configs.py @@ -43,13 +43,17 @@ def rawtilts_to_alignments(data: dict) -> None: "ARETOMO3": [], } + IMOD_ext = ['.tlt', ".xf", "tilt.com", "news.com", ".xtilt"] + AreTomo3_ext = ['.aln', ".txt", ".csv"] + extensions = IMOD_ext + AreTomo3_ext + def valid_file(file): - return any(file.endswith(ext) for ext in ['.tlt', ".xf", ".aln", ".com", ".txt", ".csv", ".tiltx"]) + return any(file.endswith(ext) for ext in extensions) def get_format(file): - if any(file.endswith(ext) for ext in ['.tlt', ".xf", ".com", ".xtlt"]): + if any(file.endswith(ext) for ext in IMOD_ext): format_dict["IMOD"].append(file) - elif any(file.endswith(ext) for ext in ['.aln', ".txt", ".csv"]): + elif any(file.endswith(ext) for ext in AreTomo3_ext): format_dict["ARETOMO3"].append(file) if len(data.get('tomograms', [])) > 1 or len(data.get("rawtilts", [])) > 1: @@ -90,7 +94,6 @@ def get_format(file): alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix data["alignments"].append(alignment) - def update_config(data: dict[str, Any]) -> dict[str, Any]: standardization_config = data["standardization_config"] if data.get("overrides_by_run"): diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index b7f5aaf4f..715a5a50d 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -27,7 +27,6 @@ def rawtilts_to_collection_metadata(config: dict) -> None: config['collection_metadata'] = [{"sources": [{"source_multi_glob": {"list_globs": []}}]}] config["collection_metadata"][0]["sources"][0]["source_multi_glob"]["list_globs"].extend(list_globs) - def rawtilts_to_alignments(data: dict) -> None: list_globs = [] format_dict = { @@ -35,13 +34,17 @@ def rawtilts_to_alignments(data: dict) -> None: "ARETOMO3": [], } + IMOD_ext = ['.tlt', ".xf", "tilt.com", "news.com", ".xtilt"] + AreTomo3_ext = ['.aln', ".txt", ".csv"] + extensions = IMOD_ext + AreTomo3_ext + def valid_file(file): - return any(file.endswith(ext) for ext in ['.tlt', ".xf", ".aln", ".com", ".txt", ".csv", ".tiltx"]) + return any(file.endswith(ext) for ext in extensions) def get_format(file): - if any(file.endswith(ext) for ext in ['.tlt', ".xf", ".com", ".xtlt"]): + if any(file.endswith(ext) for ext in IMOD_ext): format_dict["IMOD"].append(file) - elif any(file.endswith(ext) for ext in ['.aln', ".txt", ".csv"]): + elif any(file.endswith(ext) for ext in AreTomo3_ext): format_dict["ARETOMO3"].append(file) if len(data.get('tomograms', [])) > 1 or len(data.get("rawtilts", [])) > 1: From 2096a74db4468d9fa7d8f06659d32302d0dbbde8 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Tue, 24 Sep 2024 12:50:59 -0700 Subject: [PATCH 43/59] iron out tilt formats --- ingestion_tools/dataset_configs/10436.yaml | 2 +- ingestion_tools/dataset_configs/10437.yaml | 2 +- schema/core/v1.1.0/common.yaml | 4 ++-- schema/ingestion_config/migrations/issue_997.py | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index 630c459d5..29b24fd8f 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -7,6 +7,7 @@ alignments: - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xf - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.tlt - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.com + - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xtilt - metadata: format: ARETOMO3 sources: @@ -354,7 +355,6 @@ rawtilts: - source_multi_glob: list_globs: - Data_Set_2/{run_name}/tilt_series/*.st.rawtlt - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xtilt - source_multi_glob: list_globs: - Data_Set_1/{run_name}/tilt_series/*.mrc.tlt diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index eedf93a66..7ee82c148 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -7,6 +7,7 @@ alignments: - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xf - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.tlt - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.com + - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xtilt annotations: - metadata: annotation_method: Manually annotate 5 slices of object of interest on 8X binned @@ -552,7 +553,6 @@ rawtilts: - source_multi_glob: list_globs: - Data_Set_3/{run_name}/tilt_series/*.mrc.rawtlt - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xtilt runs: - sources: - source_glob: diff --git a/schema/core/v1.1.0/common.yaml b/schema/core/v1.1.0/common.yaml index e49e181ca..963aa6bd1 100644 --- a/schema/core/v1.1.0/common.yaml +++ b/schema/core/v1.1.0/common.yaml @@ -823,9 +823,9 @@ enums: description: Used to determine what alignment alogrithm to use. permissible_values: IMOD: - description: formats (xf, tlt, com) + description: IMOD was used for the alignment. Supported file formats are (xf, tlt, tilt.com, news.com, xtilt) ARETOMO3: - description: formats (aln) + description: ARETOMO3 was used for the alignment. Supported file formats are (aln, txt, csv) annotation_method_type_enum: description: Describes how the annotations were generated. diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 715a5a50d..4f9000408 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -68,11 +68,12 @@ def get_format(file): alignment = [a for a in data.get("alignments", []) if a["metadata"]["format"] == key] if alignment: alignment = alignment.pop() + alignment["sources"][0]["source_multi_glob"]["list_globs"].extend(files) else: alignment = { "metadata": {"format": key}, "sources": [{"source_multi_glob": {"list_globs": files}}]} - + data["alignments"].append(alignment) if 'tomograms' in data: for i in data['tomograms']: if "metadata" not in i: @@ -83,7 +84,6 @@ def get_format(file): continue if affine_transformation_matrix: alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix - data["alignments"].append(alignment) def update_tomogram_metadata(config: dict) -> None: From 4b627a29308821ca88695740eca7e9dc1fcd90a7 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Tue, 24 Sep 2024 12:51:42 -0700 Subject: [PATCH 44/59] update schema --- schema/core/v1.1.0/codegen/metadata_materialized.yaml | 6 ++++-- schema/core/v1.1.0/codegen/metadata_models.py | 4 ++-- .../v1.0.0/codegen/ingestion_config_models.py | 4 ++-- .../codegen/ingestion_config_models_materialized.yaml | 6 ++++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index 21597ee26..fedbadfd6 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -391,10 +391,12 @@ enums: permissible_values: IMOD: text: IMOD - description: formats (xf, tlt, com) + description: IMOD was used for the alignment. Supported file formats are (xf, + tlt, tilt.com, news.com, xtilt) ARETOMO3: text: ARETOMO3 - description: formats (aln) + description: ARETOMO3 was used for the alignment. Supported file formats are + (aln, txt, csv) annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index ceab2afe0..5ec44bda4 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -503,9 +503,9 @@ class AlignmentFormatEnum(str, Enum): Used to determine what alignment alogrithm to use. """ - # formats (xf, tlt, com) + # IMOD was used for the alignment. Supported file formats are (xf, tlt, tilt.com, news.com, xtilt) IMOD = "IMOD" - # formats (aln) + # ARETOMO3 was used for the alignment. Supported file formats are (aln, txt, csv) ARETOMO3 = "ARETOMO3" diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 7512ff368..f2e467ac7 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -417,9 +417,9 @@ class AlignmentFormatEnum(str, Enum): """ Used to determine what alignment alogrithm to use. """ - # formats (xf, tlt, com) + # IMOD was used for the alignment. Supported file formats are (xf, tlt, tilt.com, news.com, xtilt) IMOD = "IMOD" - # formats (aln) + # ARETOMO3 was used for the alignment. Supported file formats are (aln, txt, csv) ARETOMO3 = "ARETOMO3" diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml index 1ac93e580..241bd8e04 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml @@ -375,10 +375,12 @@ enums: permissible_values: IMOD: text: IMOD - description: formats (xf, tlt, com) + description: IMOD was used for the alignment. Supported file formats are (xf, + tlt, tilt.com, news.com, xtilt) ARETOMO3: text: ARETOMO3 - description: formats (aln) + description: ARETOMO3 was used for the alignment. Supported file formats are + (aln, txt, csv) annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. From 61c75e90df9f3ab868cf4f05699559652b5c1a3b Mon Sep 17 00:00:00 2001 From: Bento007 Date: Tue, 24 Sep 2024 12:59:37 -0700 Subject: [PATCH 45/59] merge main --- ingestion_tools/dataset_configs/10436.yaml | 18 +- ingestion_tools/dataset_configs/10439.yaml | 413 +++++++++++------- .../ingestion_config/migrations/issue_997.py | 6 +- 3 files changed, 257 insertions(+), 180 deletions(-) diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index a728496a9..014d71bf2 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -92,22 +92,8 @@ annotations: name: microsporidian-type exospore annotation_publications: 10.1101/2024.07.13.603322 annotation_software: Dragonfly - authors: &id001 - - ORCID: 0000-0002-9479-3800 - corresponding_author_status: true - name: Mahrukh Usmani - primary_author_status: true - - name: Harshita Ramchandani - - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - name: Damian C. Ekiert - - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - name: Gira Bhabha - dates: &id002 - deposition_date: '2024-07-09' - last_modified_date: '2024-07-24' - release_date: '2024-07-29' + authors: *id001 + dates: *id002 ground_truth_status: true is_curator_recommended: true method_type: hybrid diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index ba76c9d88..2422e5f9a 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -6,177 +6,264 @@ alignments: list_globs: - '{run_name}/TiltSeries/*.tlt' - '{run_name}/TiltSeries/*.xf' -datasets: - - metadata: - authors: &id001 - - name: Jonathan Schwartz - ORCID: 0000-0002-8063-6951 - primary_author_status: true - - name: Bridget Carragher - ORCID: 0000-0002-0624-5020 - corresponding_author_status: true - cross_references: &dataset_cross_references - publications: 10.1109/TMI.2024.3398401 - related_database_entries: PDB-6MRD, PDB-1ZEF, PDB-6UPH, PDB-7TM3, PDB-7PKZ, PDB-6NK5 - dataset_description: This dataset is comprised of simulated tiltseries, tomograms and ground truth annotations for - the purpose of benchmarking and training particle picking algorithms for cryoET. The data was simulated - using polnet. - dataset_identifier: 10439 - dataset_title: CZ Imaging Institute simulated dataset 1 - dates: &id002 - deposition_date: '2024-08-21' - last_modified_date: '2024-08-21' - release_date: '2024-08-21' - funding: - - funding_agency_name: Chan Zuckerberg Initiative - grant_id: 'CZII-2023–327779' - grid_preparation: "" - sample_preparation: "Simulation of 3D volumes with polnet + projection using IMOD's xyzproj + addition of noise - + reconstruction with IMOD's tilt" - sample_type: in_silico - sources: - - literal: - value: - - '10439' annotations: - - metadata: &annotation_metadata - annotation_method: "polnet-simulated ground truth" - annotation_object: - id: GO:0016020 - name: membrane - annotation_publications: 10.1109/TMI.2024.3398401 - method_links: &method_links - - link: https://github.com/anmartinezs/polnet - link_type: source_code - custom_name: polnet on GitHub - annotation_software: polnet - authors: *id001 - dates: *id002 - ground_truth_status: true - is_curator_recommended: true - method_type: hybrid - version: 1.0 - sources: - - SemanticSegmentationMask: &segmentation_mask_source - file_format: mrc - is_visualization_default: true - mask_label: 1 - glob_strings: - - "{run_name}/Segmentations/ground_truth.mrc" - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:1990220 - name: GroEL-GroES complex - annotation_publications: 10.1109/TMI.2024.3398401, PDB-6MRD - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 2 - - OrientedPoint: &oriented_point_source - binning: 10 - file_format: relion3_star - is_visualization_default: true - order: xyz - glob_strings: - - "{run_name}/Picks/adp-mitochondrial.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: UniProtKB:P05187 - name: "Alkaline phosphatase, placental type" - annotation_publications: 10.1109/TMI.2024.3398401, PDB-1ZEF - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 3 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/alkaline-phosphatase.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0000786 - name: nucleosome - annotation_publications: 10.1109/TMI.2024.3398401, PDB-6UPH - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 4 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/nucleosome.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0022626 - name: cytosolic ribosome - annotation_publications: 10.1109/TMI.2024.3398401, PDB-7TM3 - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 5 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/ribosome.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: UniProtKB:Q62667 - name: Major vault protein - annotation_publications: 10.1109/TMI.2024.3398401, PDB-7PKZ - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 6 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/vault.star" - - metadata: - <<: *annotation_metadata - annotation_object: - id: GO:0170047 - name: virus-like capsid - description: Chikungunya VLP - annotation_publications: 10.1109/TMI.2024.3398401, PDB-6NK5 - sources: - - SemanticSegmentationMask: - <<: *segmentation_mask_source - mask_label: 7 - - OrientedPoint: - <<: *oriented_point_source - glob_strings: - - "{run_name}/Picks/virus-like-particle.star" +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: GO:0016020 + name: membrane + annotation_publications: 10.1109/TMI.2024.3398401 + annotation_software: polnet + authors: &id001 + - ORCID: 0000-0002-8063-6951 + name: Jonathan Schwartz + primary_author_status: true + - ORCID: 0000-0002-0624-5020 + corresponding_author_status: true + name: Bridget Carragher + dates: &id002 + deposition_date: '2024-08-21' + last_modified_date: '2024-08-21' + release_date: '2024-08-21' + ground_truth_status: true + is_curator_recommended: true + method_links: &id003 + - custom_name: polnet on GitHub + link: https://github.com/anmartinezs/polnet + link_type: source_code + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: &id004 + - '{run_name}/Segmentations/ground_truth.mrc' + is_portal_standard: false + is_visualization_default: true + mask_label: 1 +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: GO:1990220 + name: GroEL-GroES complex + annotation_publications: 10.1109/TMI.2024.3398401, PDB-6MRD + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_links: *id003 + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id004 + is_portal_standard: false + is_visualization_default: true + mask_label: 2 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/adp-mitochondrial.star' + is_portal_standard: false + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: UniProtKB:P05187 + name: Alkaline phosphatase, placental type + annotation_publications: 10.1109/TMI.2024.3398401, PDB-1ZEF + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_links: *id003 + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id004 + is_portal_standard: false + is_visualization_default: true + mask_label: 3 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/alkaline-phosphatase.star' + is_portal_standard: false + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: GO:0000786 + name: nucleosome + annotation_publications: 10.1109/TMI.2024.3398401, PDB-6UPH + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_links: *id003 + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id004 + is_portal_standard: false + is_visualization_default: true + mask_label: 4 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/nucleosome.star' + is_portal_standard: false + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: GO:0022626 + name: cytosolic ribosome + annotation_publications: 10.1109/TMI.2024.3398401, PDB-7TM3 + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_links: *id003 + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id004 + is_portal_standard: false + is_visualization_default: true + mask_label: 5 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/ribosome.star' + is_portal_standard: false + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + id: UniProtKB:Q62667 + name: Major vault protein + annotation_publications: 10.1109/TMI.2024.3398401, PDB-7PKZ + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_links: *id003 + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id004 + is_portal_standard: false + is_visualization_default: true + mask_label: 6 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/vault.star' + is_portal_standard: false + is_visualization_default: true + order: xyz +- metadata: + annotation_method: polnet-simulated ground truth + annotation_object: + description: Chikungunya VLP + id: GO:0170047 + name: virus-like capsid + annotation_publications: 10.1109/TMI.2024.3398401, PDB-6NK5 + annotation_software: polnet + authors: *id001 + dates: *id002 + ground_truth_status: true + is_curator_recommended: true + method_links: *id003 + method_type: hybrid + version: 1.0 + sources: + - SemanticSegmentationMask: + file_format: mrc + glob_strings: *id004 + is_portal_standard: false + is_visualization_default: true + mask_label: 7 + - OrientedPoint: + binning: 10 + file_format: relion3_star + glob_strings: + - '{run_name}/Picks/virus-like-particle.star' + is_portal_standard: false + is_visualization_default: true + order: xyz dataset_keyphotos: - sources: - literal: value: snapshot: null thumbnail: null +datasets: +- metadata: + authors: *id001 + cross_references: &id005 + publications: 10.1109/TMI.2024.3398401 + related_database_entries: PDB-6MRD, PDB-1ZEF, PDB-6UPH, PDB-7TM3, PDB-7PKZ, + PDB-6NK5 + dataset_description: This dataset is comprised of simulated tiltseries, tomograms + and ground truth annotations for the purpose of benchmarking and training particle + picking algorithms for cryoET. The data was simulated using polnet. + dataset_identifier: 10439 + dataset_title: CZ Imaging Institute simulated dataset 1 + dates: *id002 + funding: + - funding_agency_name: Chan Zuckerberg Initiative + grant_id: "CZII-2023\u2013327779" + grid_preparation: '' + sample_preparation: Simulation of 3D volumes with polnet + projection using IMOD's + xyzproj + addition of noise + reconstruction with IMOD's tilt + sample_type: in_silico + sources: + - literal: + value: + - '10439' depositions: - - metadata: - authors: *id001 - dates: *id002 - deposition_description: This deposition includes simulated data for the evaluation of particle picking - algorithms. The simulated data was generated using polnet and includes tilt series, tomograms and ground truth - annotations (oriented points, as well as segmentation masks). - deposition_identifier: 10309 - deposition_title: CZ Imaging Institute simulated data - cross_references: *dataset_cross_references - deposition_types: - - dataset - - annotation - sources: - - literal: - value: - - 10309 - -frames: [] - +- metadata: + authors: *id001 + cross_references: *id005 + dates: *id002 + deposition_description: This deposition includes simulated data for the evaluation + of particle picking algorithms. The simulated data was generated using polnet + and includes tilt series, tomograms and ground truth annotations (oriented points, + as well as segmentation masks). + deposition_identifier: 10309 + deposition_title: CZ Imaging Institute simulated data + deposition_types: + - dataset + - annotation + sources: + - literal: + value: + - 10309 key_images: - sources: - source_glob: diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 4f9000408..1a043e0fc 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -149,7 +149,11 @@ def has_changes(file, config): def migrate_config(file_path): with open(file_path, 'r') as file: - config = yaml.safe_load(file) + try: + config = yaml.safe_load(file) + except yaml.YAMLError as e: + print(f"Error in {get_relative_path(file_path)}: {e}") + return try: rawtilts_to_collection_metadata(config) From ffafd79f39a96887367362445ef03ee9d17b341b Mon Sep 17 00:00:00 2001 From: Bento007 Date: Tue, 24 Sep 2024 13:00:24 -0700 Subject: [PATCH 46/59] update transform_ingestion_configs.py --- ingestion_tools/scripts/transform_ingestion_configs.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ingestion_tools/scripts/transform_ingestion_configs.py b/ingestion_tools/scripts/transform_ingestion_configs.py index 0b8613696..f23226343 100644 --- a/ingestion_tools/scripts/transform_ingestion_configs.py +++ b/ingestion_tools/scripts/transform_ingestion_configs.py @@ -77,11 +77,12 @@ def get_format(file): alignment = [a for a in data.get("alignments", []) if a["metadata"]["format"] == key] if alignment: alignment = alignment.pop() + alignment["sources"][0]["source_multi_glob"]["list_globs"].extend(files) else: alignment = { "metadata": {"format": key}, "sources": [{"source_multi_glob": {"list_globs": files}}]} - + data["alignments"].append(alignment) if 'tomograms' in data: for i in data['tomograms']: if "metadata" not in i: @@ -92,7 +93,7 @@ def get_format(file): continue if affine_transformation_matrix: alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix - data["alignments"].append(alignment) + def update_config(data: dict[str, Any]) -> dict[str, Any]: standardization_config = data["standardization_config"] From e7d80f2e0e3d2359b4cbd644c9ddc9ba6e5c8850 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Wed, 25 Sep 2024 13:24:38 -0700 Subject: [PATCH 47/59] regenerate schema files --- schema/core/v1.1.0/codegen/metadata_models.py | 1 + .../v1.0.0/codegen/ingestion_config_models.py | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 5ec44bda4..d8d130dc8 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4784,3 +4784,4 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() + diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index f2e467ac7..b8455d873 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -6665,3 +6665,4 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() + From 326f2277e78483b7d1f094c2ad37d50b9c12ab9b Mon Sep 17 00:00:00 2001 From: Bento007 Date: Wed, 25 Sep 2024 14:17:01 -0700 Subject: [PATCH 48/59] flatten code in ingest_997.py add dosctring to transform_ingestion_configs.py --- .../scripts/transform_ingestion_configs.py | 4 + .../ingestion_config/migrations/issue_997.py | 183 ++++++++++-------- 2 files changed, 107 insertions(+), 80 deletions(-) diff --git a/ingestion_tools/scripts/transform_ingestion_configs.py b/ingestion_tools/scripts/transform_ingestion_configs.py index f23226343..549c13c01 100644 --- a/ingestion_tools/scripts/transform_ingestion_configs.py +++ b/ingestion_tools/scripts/transform_ingestion_configs.py @@ -1,3 +1,7 @@ +""" +Copnverts and ingest-config from the previous version to the latest. +""" + from typing import Any import click diff --git a/schema/ingestion_config/migrations/issue_997.py b/schema/ingestion_config/migrations/issue_997.py index 1a043e0fc..c10004a7b 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/schema/ingestion_config/migrations/issue_997.py @@ -13,19 +13,22 @@ def rawtilts_to_collection_metadata(config: dict) -> None: + if 'rawtilts' not in config: + return + list_globs = [] - if 'rawtilts' in config: - for i in config['rawtilts']: - if "sources" not in i: - continue - old_source = i["sources"][0]["source_multi_glob"]["list_globs"] - list_globs.extend(s for s in old_source if s.endswith('.mdoc') or "{mdoc_name}" in s) - for source in list_globs: - old_source.remove(source) - if list_globs: - if 'collection_metadata' not in config: - config['collection_metadata'] = [{"sources": [{"source_multi_glob": {"list_globs": []}}]}] - config["collection_metadata"][0]["sources"][0]["source_multi_glob"]["list_globs"].extend(list_globs) + for i in config['rawtilts']: + if "sources" not in i: + continue + old_source = i["sources"][0]["source_multi_glob"]["list_globs"] + list_globs.extend(s for s in old_source if s.endswith('.mdoc')) + for source in list_globs: + old_source.remove(source) + if list_globs: + if 'collection_metadata' not in config: + config['collection_metadata'] = [{"sources": [{"source_multi_glob": {"list_globs": []}}]}] + config["collection_metadata"][0]["sources"][0]["source_multi_glob"]["list_globs"].extend(list_globs) + def rawtilts_to_alignments(data: dict) -> None: list_globs = [] @@ -50,103 +53,122 @@ def get_format(file): if len(data.get('tomograms', [])) > 1 or len(data.get("rawtilts", [])) > 1: raise ValueError("More than one tomogram or rawtilt") - if 'rawtilts' in data: - for i in data['rawtilts']: - if "sources" not in i: + if 'rawtilts' not in data: + return + + for rawtilt in data['rawtilts']: + if "sources" not in rawtilt: + continue + old_source = rawtilt["sources"][0]["source_multi_glob"]["list_globs"] + list_globs.extend(s for s in old_source if valid_file(s)) + for source in list_globs: + old_source.remove(source) + get_format(source) + + if not list_globs: + return + + if 'alignments' not in data: + data['alignments'] = [] + for key, files in format_dict.items(): + if not files: + continue + # check if there is an alignment with the key in the metadata.format + alignment = [a for a in data.get("alignments", []) if a["metadata"]["format"] == key] + if alignment: + alignment = alignment.pop() + alignment["sources"][0]["source_multi_glob"]["list_globs"].extend(files) + else: + alignment = { + "metadata": {"format": key}, + "sources": [{"source_multi_glob": {"list_globs": files}}]} + data["alignments"].append(alignment) + + if 'tomograms' not in data: + continue + + for i in data['tomograms']: + if "metadata" not in i: continue - old_source = i["sources"][0]["source_multi_glob"]["list_globs"] - list_globs.extend(s for s in old_source if valid_file(s)) - for source in list_globs: - old_source.remove(source) - get_format(source) - if list_globs: - if 'alignments' not in data: - data['alignments'] = [] - for key, files in format_dict.items(): - if files: - # check if there is an alignment with the key in the metadata.format - alignment = [a for a in data.get("alignments", []) if a["metadata"]["format"] == key] - if alignment: - alignment = alignment.pop() - alignment["sources"][0]["source_multi_glob"]["list_globs"].extend(files) - else: - alignment = { - "metadata": {"format": key}, - "sources": [{"source_multi_glob": {"list_globs": files}}]} - data["alignments"].append(alignment) - if 'tomograms' in data: - for i in data['tomograms']: - if "metadata" not in i: - continue - affine_transformation_matrix = i["metadata"].get("affine_transformation_matrix", None) - if affine_transformation_matrix and np.allclose(affine_transformation_matrix,np.eye(4)): - # skip if is an idenity matrix - continue - if affine_transformation_matrix: - alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix + affine_transformation_matrix = i["metadata"].get("affine_transformation_matrix", None) + if affine_transformation_matrix and np.allclose(affine_transformation_matrix, np.eye(4)): + # skip if is an idenity matrix + continue + if affine_transformation_matrix: + alignment["metadata"]["affine_transformation_matrix"] = affine_transformation_matrix def update_tomogram_metadata(config: dict) -> None: - if tomograms := config.get("tomograms"): - for tomogram in tomograms: - if metadata := tomogram.get("metadata"): - metadata["is_visualization_default"] = True - if not metadata.get("dates"): - try: - dates = config["depositions"][0]["metadata"]["dates"] - except (KeyError, IndexError): - dates = { - "deposition_date": '1970-01-01', - "last_modified_date": '1970-01-01', - "release_date": '1970-01-01'} - metadata["dates"] = dates - affine_transformation_matrix = metadata.get("affine_transformation_matrix", None) - if not affine_transformation_matrix: - metadata["affine_transformation_matrix"] = np.eye(4, dtype=int).tolist() + tomograms = config.get("tomograms") + if not tomograms: + return + + for tomogram in tomograms: + metadata = tomogram.get("metadata") + if not metadata: + continue + metadata["is_visualization_default"] = True + if not metadata.get("dates"): + dates = config["depositions"][0]["metadata"]["dates"] + metadata["dates"] = dates + affine_transformation_matrix = metadata.get("affine_transformation_matrix", None) + if not affine_transformation_matrix: + metadata["affine_transformation_matrix"] = np.eye(4, dtype=int).tolist() def update_annotation_sources(config: dict) -> None: - if annotations := config.get('annotations'): - for annotation in annotations: - if sources := annotation.get("sources"): - for source in sources: - for value in source.values(): - value["is_portal_standard"] = False + annotations = config.get('annotations') + if not annotations: + return + for annotation in annotations: + sources = annotation.get("sources") + if not sources: + continue + for source in sources: + for value in source.values(): + value["is_portal_standard"] = False + def remove_empty_fields(config: Union[list, dict]) -> None: remove_key = [] exclude_keys = ['annotations'] if isinstance(config, list): for i in config: - if isinstance(i, (list, dict)): - remove_empty_fields(i) - if len(i) == 0: - remove_key.append(i) + if not isinstance(i, (list, dict)): + continue + remove_empty_fields(i) + if len(i) == 0: + remove_key.append(i) if remove_key: for key in remove_key: config.remove(key) elif isinstance(config, dict): for key, value in config.items(): - if isinstance(value, (list, dict)): - remove_empty_fields(value) - if len(value) == 0: - remove_key.append(key) - if remove_key: - for key in remove_key: - if key in exclude_keys: - continue - config.pop(key) + if not isinstance(value, (list, dict)): + continue + remove_empty_fields(value) + if len(value) == 0: + remove_key.append(key) + if not remove_key: + return + for key in remove_key: + if key in exclude_keys: + continue + config.pop(key) + def check_deposition(config: dict) -> bool: if "depositions" in config: return True raise ValueError("depositions is not in the config") + def has_changes(file, config): with open(file, 'r') as file: old_config = yaml.safe_load(file) return json.dumps(old_config) != json.dumps(config) + def migrate_config(file_path): with open(file_path, 'r') as file: try: @@ -173,6 +195,7 @@ def migrate_config(file_path): with open(file_path, 'w') as file: yaml.safe_dump(config, file) + def get_relative_path(file_path): return file_path[file_path.find("cryoet-data-portal-backend"):] From 4048d79f5f8635b5bf01dd6d15d8bf2781f43a63 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 12:21:03 -0700 Subject: [PATCH 49/59] remove tomogram from alignment in ingest-config --- .../v1.0.0/codegen/api_models_materialized.yaml | 6 ++++-- .../v1.0.0/codegen/ingestion_config_models.py | 3 +-- .../codegen/ingestion_config_models.schema.json | 10 ---------- .../ingestion_config_models_materialized.yaml | 16 ---------------- .../v1.0.0/ingestion_config_models.yaml | 1 - 5 files changed, 5 insertions(+), 31 deletions(-) diff --git a/schema/api/v1.0.0/codegen/api_models_materialized.yaml b/schema/api/v1.0.0/codegen/api_models_materialized.yaml index 31390d604..6ba82b068 100644 --- a/schema/api/v1.0.0/codegen/api_models_materialized.yaml +++ b/schema/api/v1.0.0/codegen/api_models_materialized.yaml @@ -385,10 +385,12 @@ enums: permissible_values: IMOD: text: IMOD - description: formats (xf, tlt, com) + description: IMOD was used for the alignment. Supported file formats are (xf, + tlt, tilt.com, news.com, xtilt) ARETOMO3: text: ARETOMO3 - description: formats (aln) + description: ARETOMO3 was used for the alignment. Supported file formats are + (aln, txt, csv) annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index f2e467ac7..2af92a757 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -3299,7 +3299,6 @@ class AlignmentParent(ConfiguredBaseModel): 'TiltSeriesParent', 'TomogramParent', 'VoxelSpacingParent']} }) - tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['AlignmentParent', 'KeyImageParent']} }) class AnnotationEntity(ConfiguredBaseModel): @@ -5283,7 +5282,7 @@ class KeyImageParent(ConfiguredBaseModel): 'TiltSeriesParent', 'TomogramParent', 'VoxelSpacingParent']} }) - tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['AlignmentParent', 'KeyImageParent']} }) + tomogram: Optional[List[str]] = Field(None, description="""Include or exclude tomograms for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'tomogram', 'domain_of': ['KeyImageParent']} }) voxel_spacing: Optional[List[str]] = Field(None, description="""Include or exclude voxel spacings for a source.""", json_schema_extra = { "linkml_meta": {'alias': 'voxel_spacing', 'domain_of': ['Tomogram', 'AnnotationParent', diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json index 7ecf8792e..dcf47f010 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -211,16 +211,6 @@ "array", "null" ] - }, - "tomogram": { - "description": "Include or exclude tomograms for a source.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] } }, "title": "AlignmentParent", diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml index 241bd8e04..d6b60bda3 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models_materialized.yaml @@ -644,7 +644,6 @@ slots: description: Include or exclude tomograms for a source. from_schema: cdp-ingestion-config domain_of: - - AlignmentParent - KeyImageParent range: string multivalued: true @@ -1396,7 +1395,6 @@ classes: - dataset - deposition - run - - tomogram attributes: dataset: name: dataset @@ -1466,19 +1464,6 @@ classes: multivalued: true inlined: true inlined_as_list: true - tomogram: - name: tomogram - description: Include or exclude tomograms for a source. - from_schema: cdp-ingestion-config - alias: tomogram - owner: AlignmentParent - domain_of: - - AlignmentParent - - KeyImageParent - range: string - multivalued: true - inlined: true - inlined_as_list: true AnnotationEntity: name: AnnotationEntity description: An annotation entity. @@ -3784,7 +3769,6 @@ classes: alias: tomogram owner: KeyImageParent domain_of: - - AlignmentParent - KeyImageParent range: string multivalued: true diff --git a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml index a337d2570..9dc1c2770 100644 --- a/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml +++ b/schema/ingestion_config/v1.0.0/ingestion_config_models.yaml @@ -242,7 +242,6 @@ classes: - dataset - deposition - run - - tomogram AnnotationEntity: description: An annotation entity. From dded1d13b1e69c2d82e65875be5cc79376cf5bac Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 14:45:35 -0700 Subject: [PATCH 50/59] move migrate script to ingest-tools --- ingestion_tools/dataset_configs/10002.yaml | 5 - ingestion_tools/dataset_configs/10004.yaml | 6 -- ingestion_tools/dataset_configs/10008.yaml | 6 -- ingestion_tools/dataset_configs/10009.yaml | 6 -- ingestion_tools/dataset_configs/10436.yaml | 99 +++++-------------- ingestion_tools/dataset_configs/10437.yaml | 5 +- ingestion_tools/dataset_configs/10438.yaml | 7 -- ingestion_tools/dataset_configs/10439.yaml | 2 - .../schema_migration/migrate_v1_1_0.py | 67 +++---------- .../transform_ingestion_configs.py | 20 ++-- 10 files changed, 53 insertions(+), 170 deletions(-) rename schema/ingestion_config/migrations/issue_997.py => ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py (71%) diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index 612271a5b..9bd0a5b8b 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -187,11 +187,6 @@ gains: - sources: - source_glob: list_glob: CountRef_{mapped_frame_name}-range.dm4 -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - metadata/{run_name}_sq_df_sorted_fid.xf runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index 5babcb3ff..22f65f647 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -167,12 +167,6 @@ gains: - sources: - source_glob: list_glob: gain/gain.mrc -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - '{run_name}/{run_name}.mdoc-dose_filt.tlt' - - '{run_name}/{run_name}.mdoc-dose_filt.xf' runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index dc146fa4c..acfc6a061 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -172,12 +172,6 @@ frames: - sources: - source_glob: list_glob: tomo/raw_stacks/{mapped_ts_name}/frames/*{mapped_frame_name}_*.tif -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.tlt - - tomo/raw_stacks/{mapped_ts_name}/imod/{mapped_frame_name}-.*.xf runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index 102f7f895..f17001562 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -307,12 +307,6 @@ frames: - sources: - source_glob: list_glob: Tomo{run_name}/raw_data/raw_frames/*.mrc.bz2 -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - Tomo{run_name}/raw_data/imod_metadata/*.tlt - - Tomo{run_name}/raw_data/imod_metadata/*.xf runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index 0830fa84b..6180a5714 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -8,80 +8,13 @@ alignments: - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.tlt - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.com - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xtilt + - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.com - metadata: format: ARETOMO3 sources: - source_multi_glob: list_globs: - Data_Set_2/{run_name}/aligned_tilt_series/*.st.aln -datasets: - - metadata: - authors: &id001 - - name: Mahrukh Usmani - ORCID: 0000-0002-9479-3800 - primary_author_status: true - corresponding_author_status: true - - name: Nicolas Coudray - ORCID: 0000-0002-6050-2219 - primary_author_status: true - corresponding_author_status: true - - name: Daija Bobe - ORCID: 0000-0002-7388-8907 - - name: Mykhailo Kopylov - ORCID: 0000-0003-0188-9799 - - name: Damian C. Ekiert - ORCID: 0000-0002-2570-0404 - corresponding_author_status: true - - name: Gira Bhabha - ORCID: 0000-0003-0624-6178 - corresponding_author_status: true - cell_strain: - name: ATCC-50506 - cell_type: - name: fungal spore - id: CL:0002369 - cross_references: &dataset_cross_references - publications: 10.1101/2024.07.13.603322 - #TODO: Add EMPIAR-12176 once available - related_database_entries: EMD-45674, EMD-45671, EMD-45672, EMD-45673 - dataset_description: This dataset contains raw frames, tilt series, tomogram reconstructions and segmentations from - Encephalitozoon intestinalis microsporidian spores. Samples were cryo-FIB milled. - dataset_identifier: 10436 - dataset_title: Cryo-ET datasets (1 and 2) of dormant microporidian spores from Encephalitozoon intestinalis - dates: &id002 - deposition_date: '2024-07-09' - last_modified_date: '2024-07-24' - release_date: '2024-07-29' - funding: - - funding_agency_name: American Heart Association - grant_id: '915749' - - funding_agency_name: Searle Scholars Program - grant_id: 'SSP-2018-2737' - - funding_agency_name: NIH/NIAID - grant_id: 'R01AI147131' - - funding_agency_name: The Pew Charitable Trusts - grant_id: 'PEW-00033055' - - funding_agency_name: NIH Common Fund Transformative High Resolution Cryo-Electron Microscopy program - grant_id: 'U24 GM129539' - - funding_agency_name: Simons Foundation - grant_id: "SF349247" - - funding_agency_name: NY State Assembly - - funding_agency_name: NIH/NIGMS - grant_id: "9 P41 GM103310" - - funding_agency_name: Irma T. Hirschl Career Scientist Award - grid_preparation: quantifoil 2/2 200mesh, ~20nm evaporated carbon, prepared using waffle method - organism: - name: Encephalitozoon intestinalis - taxonomy_id: 58839 - other_setup: Cryo-FIB milling - sample_preparation: "E. intestinalis spores were purified from infected vero cells, then ran over a discontinuous - percoll gradient to separate out mature spores. For details, (see manuscript: Cryo-ET reveals the in situ - architecture of the polar tube invasion apparatus from microsporidian parasites)" - sample_type: cell - sources: - - literal: - value: - - '10436' annotations: - metadata: annotation_method: Each organelle was segmented as a separate region of interest @@ -92,8 +25,29 @@ annotations: name: microsporidian-type exospore annotation_publications: 10.1101/2024.07.13.603322 annotation_software: Dragonfly - authors: *id001 - dates: *id002 + authors: &id001 + - ORCID: 0000-0002-9479-3800 + corresponding_author_status: true + name: Mahrukh Usmani + primary_author_status: true + - ORCID: 0000-0002-6050-2219 + corresponding_author_status: true + name: Nicolas Coudray + primary_author_status: true + - ORCID: 0000-0002-7388-8907 + name: Daija Bobe + - ORCID: 0000-0003-0188-9799 + name: Mykhailo Kopylov + - ORCID: 0000-0002-2570-0404 + corresponding_author_status: true + name: Damian C. Ekiert + - ORCID: 0000-0003-0624-6178 + corresponding_author_status: true + name: Gira Bhabha + dates: &id002 + deposition_date: '2024-07-09' + last_modified_date: '2024-07-24' + release_date: '2024-07-29' ground_truth_status: true is_curator_recommended: true method_type: hybrid @@ -411,11 +365,6 @@ rawtilts: - source_multi_glob: list_globs: - Data_Set_2/{run_name}/tilt_series/*.st.rawtlt - - Data_Set_2/{run_name}/aligned_tilt_series/*.st.aln - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xf - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.xtilt - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.tlt - - Data_Set_2/{run_name}/aligned_tilt_series/*_IMOD/*.com - source_multi_glob: list_globs: - Data_Set_1/{run_name}/tilt_series/*.mrc.tlt diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index 393bced75..48b814333 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -8,6 +8,7 @@ alignments: - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.tlt - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.com - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xtilt + - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.com annotations: - metadata: annotation_method: Manually annotate 5 slices of object of interest on 8X binned @@ -553,10 +554,6 @@ rawtilts: - source_multi_glob: list_globs: - Data_Set_3/{run_name}/tilt_series/*.mrc.rawtlt - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xf - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.xtilt - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.tlt - - Data_Set_3/{run_name}/aligned_tilt_series/*_Imod/*.com runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10438.yaml b/ingestion_tools/dataset_configs/10438.yaml index dfe9aaf46..67803331d 100644 --- a/ingestion_tools/dataset_configs/10438.yaml +++ b/ingestion_tools/dataset_configs/10438.yaml @@ -505,17 +505,10 @@ depositions: - literal: value: - 10307 -frames: [] -gains: [] key_images: - sources: - source_glob: list_glob: .*\.jpg -rawtilts: -- sources: - - source_multi_glob: - list_globs: - - Data_Set_4/{run_name}/tilt_series/*.txt runs: - sources: - source_glob: diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index 1eaeb2e13..2728e0aaf 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -264,8 +264,6 @@ depositions: - literal: value: - 10309 -frames: [] -gains: [] key_images: - sources: - source_glob: diff --git a/schema/ingestion_config/migrations/issue_997.py b/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py similarity index 71% rename from schema/ingestion_config/migrations/issue_997.py rename to ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py index c10004a7b..2884dc84a 100644 --- a/schema/ingestion_config/migrations/issue_997.py +++ b/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py @@ -1,11 +1,4 @@ -""" -This script migrates the ingest config files to a new schema based on the changes outlines in -https://github.com/chanzuckerberg/cryoet-data-portal/issues/997 -""" -import glob -import itertools import json -import traceback from typing import Union import numpy as np @@ -37,17 +30,17 @@ def rawtilts_to_alignments(data: dict) -> None: "ARETOMO3": [], } - IMOD_ext = ['.tlt', ".xf", "tilt.com", "news.com", ".xtilt"] - AreTomo3_ext = ['.aln', ".txt", ".csv"] - extensions = IMOD_ext + AreTomo3_ext + imod_ext = ['.tlt', ".xf", ".com", ".xtilt"] + aretomo3_ext = ['.aln', ".txt", ".csv"] + extensions = imod_ext + aretomo3_ext def valid_file(file): return any(file.endswith(ext) for ext in extensions) def get_format(file): - if any(file.endswith(ext) for ext in IMOD_ext): + if any(file.endswith(ext) for ext in imod_ext): format_dict["IMOD"].append(file) - elif any(file.endswith(ext) for ext in AreTomo3_ext): + elif any(file.endswith(ext) for ext in aretomo3_ext): format_dict["ARETOMO3"].append(file) if len(data.get('tomograms', [])) > 1 or len(data.get("rawtilts", [])) > 1: @@ -169,47 +162,15 @@ def has_changes(file, config): return json.dumps(old_config) != json.dumps(config) -def migrate_config(file_path): - with open(file_path, 'r') as file: - try: - config = yaml.safe_load(file) - except yaml.YAMLError as e: - print(f"Error in {get_relative_path(file_path)}: {e}") - return - - try: - rawtilts_to_collection_metadata(config) - rawtilts_to_alignments(config) - update_tomogram_metadata(config) - check_deposition(config) - update_annotation_sources(config) - remove_empty_fields(config) - except Exception as e: - print(f"Error in {get_relative_path(file_path)}: missing {e}") - print(traceback.format_exc()) - return +def upgrade(config: dict) -> dict: + rawtilts_to_collection_metadata(config) + rawtilts_to_alignments(config) + update_tomogram_metadata(config) + check_deposition(config) + update_annotation_sources(config) + remove_empty_fields(config) + config["version"] = "1.1.0" + return config - if has_changes(file_path, config): - relative_path = file_path[file_path.find("cryoet-data-portal-backend"):] - print(f"modified: {relative_path}") - with open(file_path, 'w') as file: - yaml.safe_dump(config, file) -def get_relative_path(file_path): - return file_path[file_path.find("cryoet-data-portal-backend"):] - - -if __name__ == "__main__": - # Update all config files - config_files = glob.glob( - '/Users/trentsmith/workspace/cryoet/cryoet-data-portal-backend/ingestion_tools/dataset_configs/**/*.yaml', - recursive=True) - test_config_files = glob.glob( - '/Users/trentsmith/workspace/cryoet/cryoet-data-portal-backend/ingestion_tools/dataset_configs/tests/**/*.yaml', - recursive=True) - configs = itertools.chain(config_files, test_config_files) - for config_file in configs: - if "template" in config_file: - continue - migrate_config(config_file) diff --git a/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py b/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py index 9c08a149f..62fdfd2e0 100644 --- a/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py +++ b/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py @@ -1,3 +1,4 @@ +import json import logging from collections import OrderedDict from typing import Any @@ -5,8 +6,11 @@ import click import yaml +from schema_migration import migrate_v1_1_0 + logger = logging.getLogger(__name__) + @click.group() def cli(): pass @@ -222,7 +226,7 @@ def update_config(data: dict[str, Any]) -> dict[str, Any]: { # current_version: (update_function, next_version) "0.0.0": (update_config_to_v1, "1.0.0"), - "1.0.0": (update_config_to_v1_1, "1.1.0")}) + "1.0.0": (migrate_v1_1_0.upgrade, "1.1.0")}) if not data.get("version"): logger.warning("No version found in config file. Assuming version 0.0.0.") @@ -238,6 +242,12 @@ def update_config(data: dict[str, Any]) -> dict[str, Any]: return data +def has_changes(file, config): + with open(file, 'r') as file: + old_config = yaml.safe_load(file) + return json.dumps(old_config) != json.dumps(config) + + def update_file(filename: str) -> None: with open(filename, "r") as fh: logger.debug("Reading %s", filename) @@ -245,16 +255,14 @@ def update_file(filename: str) -> None: update_config(data) + if not has_changes(filename, data): + return + with open(filename, "w") as fh: logger.debug("Writing %s", filename) fh.write(yaml.dump(data)) -def update_config_to_v1_1(data: dict[str, Any]) -> dict[str, Any]: - data["version"] = "1.1.0" - return data - - def convert_version(version: str) -> tuple[int, int, int]: return tuple(map(int, version.split("."))) From 918ed8ebd28c43e573ac05a0e035dfa4906b14ca Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 14:48:34 -0700 Subject: [PATCH 51/59] lint --- ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py b/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py index 2884dc84a..2139088b0 100644 --- a/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py +++ b/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py @@ -171,6 +171,3 @@ def upgrade(config: dict) -> dict: remove_empty_fields(config) config["version"] = "1.1.0" return config - - - From 6912e063047792e0e03f2bfa8ddc5f6fd9f3a9d4 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 15:03:44 -0700 Subject: [PATCH 52/59] update configs --- ingestion_tools/dataset_configs/10426.yaml | 2 +- .../scripts/schema_migration/transform_ingestion_configs.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ingestion_tools/dataset_configs/10426.yaml b/ingestion_tools/dataset_configs/10426.yaml index 839cdb11f..43d0e1ed9 100644 --- a/ingestion_tools/dataset_configs/10426.yaml +++ b/ingestion_tools/dataset_configs/10426.yaml @@ -150,7 +150,7 @@ tomograms: - 1 authors: *id001 ctf_corrected: false - dates: *id002 + dates: *id003 fiducial_alignment_status: FIDUCIAL is_visualization_default: true offset: diff --git a/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py b/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py index 62fdfd2e0..a33d52e85 100644 --- a/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py +++ b/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py @@ -6,7 +6,7 @@ import click import yaml -from schema_migration import migrate_v1_1_0 +import migrate_v1_1_0 logger = logging.getLogger(__name__) From 15f0309b85d4776473c2e0daf916fc2fc4369d5b Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 15:23:39 -0700 Subject: [PATCH 53/59] liknt --- .pre-commit-config.yaml | 4 ++-- .../scripts/schema_migration/transform_ingestion_configs.py | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4ea000454..4f2c926c1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.2 + rev: v0.6.8 hooks: - id: ruff # These files are codegen'd and non-compliant :'( @@ -15,7 +15,7 @@ repos: - --config - ingestion_tools/pyproject.toml - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.2 + rev: v0.6.8 hooks: - id: ruff args: diff --git a/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py b/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py index a33d52e85..36b335d66 100644 --- a/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py +++ b/ingestion_tools/scripts/schema_migration/transform_ingestion_configs.py @@ -4,9 +4,8 @@ from typing import Any import click -import yaml - import migrate_v1_1_0 +import yaml logger = logging.getLogger(__name__) From aacf325f12609c146fa8e181228b0e544ceb19c3 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 16:06:18 -0700 Subject: [PATCH 54/59] remove is_portal_standard --- ingestion_tools/dataset_configs/template.yaml | 7 ------- schema/core/v1.1.0/metadata.yaml | 5 ----- schema/core/v2.0.0/metadata.yaml | 5 ----- 3 files changed, 17 deletions(-) diff --git a/ingestion_tools/dataset_configs/template.yaml b/ingestion_tools/dataset_configs/template.yaml index 9ad61b34d..8c6b91bbd 100644 --- a/ingestion_tools/dataset_configs/template.yaml +++ b/ingestion_tools/dataset_configs/template.yaml @@ -44,7 +44,6 @@ annotations: OPTIONAL glob_strings: - OPTIONAL, STRING (REGEX) is_visualization_default: OPTIONAL, BOOLEAN (DEFAULT FALSE) - is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) binning: OPTIONAL, FLOAT (DEFAULT 1) (POSITIVE) filter_value: OPTIONAL, STRING order: OPTIONAL, STRING (DEFAULT xyz) @@ -55,7 +54,6 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default - is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) binning: see InstanceSegmentation.binning filter_value: see InstanceSegmentation.filter_value order: see InstanceSegmentation.order @@ -66,7 +64,6 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default - is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) binning: see InstanceSegmentation.binning columns: OPTIONAL, STRING (DEFAULT xyz) delimiter: OPTIONAL, STRING (DEFAULT ',') @@ -77,7 +74,6 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default - is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) parent_filters: see InstanceSegmentation.parent_filters exclude: SEE InstanceSegmentation.exclude - SemanticSegmentationMask: @@ -85,7 +81,6 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default - is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) mask_label: OPTIONAL, INTEGER (DEFAULT 1) parent_filters: see InstanceSegmentation.parent_filters exclude: SEE InstanceSegmentation.exclude @@ -94,7 +89,6 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default - is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) scale_factor: OPTIONAL, FLOAT (DEFAULT 1) (POSITIVE) parent_filters: see InstanceSegmentation.parent_filters exclude: SEE InstanceSegmentation.exclude @@ -103,7 +97,6 @@ annotations: OPTIONAL glob_string: see InstanceSegmentation.glob_string glob_strings: see InstanceSegmentation.glob_strings is_visualization_default: see InstanceSegmentation.is_visualization_default - is_portal_standard: OPTIONAL, BOOLEAN (DEFAULT FALSE) scale_factor: OPTIONAL, FLOAT (DEFAULT 1) (POSITIVE) name: REQUIRED, STRING parent_filters: see InstanceSegmentation.parent_filters diff --git a/schema/core/v1.1.0/metadata.yaml b/schema/core/v1.1.0/metadata.yaml index a8bb9cd9a..29dc57280 100644 --- a/schema/core/v1.1.0/metadata.yaml +++ b/schema/core/v1.1.0/metadata.yaml @@ -527,11 +527,6 @@ classes: description: *desc_tomogram_offset range: TomogramOffset required: true - is_portal_standard: - description: Whether the tomogram is a portal standard. - range: boolean - required: false - ifabsent: false is_visualization_default: description: Whether the tomogram is the default for visualization. range: boolean diff --git a/schema/core/v2.0.0/metadata.yaml b/schema/core/v2.0.0/metadata.yaml index 0b9744029..dbc8ecd78 100644 --- a/schema/core/v2.0.0/metadata.yaml +++ b/schema/core/v2.0.0/metadata.yaml @@ -532,11 +532,6 @@ classes: description: *desc_tomogram_offset range: TomogramOffset required: true - is_portal_standard: - description: Whether the tomogram is a portal standard. - range: boolean - required: false - ifabsent: false is_visualization_default: description: Whether the tomogram is the default for visualization. range: boolean From 48b33cb28d66ee357dee6cbd5109a3b2aaa4b4da Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 16:08:17 -0700 Subject: [PATCH 55/59] remove is_portal_standard --- ingestion_tools/dataset_configs/10000.yaml | 30 ++++++++-------- ingestion_tools/dataset_configs/10001.yaml | 30 ++++++++-------- ingestion_tools/dataset_configs/10002.yaml | 4 +-- ingestion_tools/dataset_configs/10003.yaml | 2 +- ingestion_tools/dataset_configs/10004.yaml | 2 +- ingestion_tools/dataset_configs/10005.yaml | 4 +-- ingestion_tools/dataset_configs/10006.yaml | 2 +- ingestion_tools/dataset_configs/10007.yaml | 2 +- ingestion_tools/dataset_configs/10008.yaml | 4 +-- ingestion_tools/dataset_configs/10009.yaml | 14 ++++---- ingestion_tools/dataset_configs/10010.yaml | 6 ++-- ingestion_tools/dataset_configs/10301.yaml | 12 +++---- ingestion_tools/dataset_configs/10436.yaml | 18 +++++----- ingestion_tools/dataset_configs/10437.yaml | 32 ++++++++--------- ingestion_tools/dataset_configs/10438.yaml | 34 +++++++++---------- ingestion_tools/dataset_configs/10439.yaml | 26 +++++++------- .../dataset_configs/deposition_10301.yaml | 4 +-- .../dataset_configs/deposition_10302.yaml | 2 +- .../dataset_configs/deposition_10303.yaml | 2 +- .../dataset_configs/deposition_10304.yaml | 2 +- .../dataset_configs/deposition_10305.yaml | 2 +- .../dataset_configs/deposition_10308.yaml | 2 +- .../schema_migration/migrate_v1_1_0.py | 3 -- 23 files changed, 118 insertions(+), 121 deletions(-) diff --git a/ingestion_tools/dataset_configs/10000.yaml b/ingestion_tools/dataset_configs/10000.yaml index fb27e88fd..141ddcaaf 100644 --- a/ingestion_tools/dataset_configs/10000.yaml +++ b/ingestion_tools/dataset_configs/10000.yaml @@ -62,7 +62,7 @@ annotations: columns: xyz file_format: csv glob_string: particle_lists/{run_name}_fas.csv - is_portal_standard: false + is_visualization_default: false - metadata: annotation_method: Cumulative template-matching trained 2D CNN predictions + visual @@ -85,7 +85,7 @@ annotations: columns: xyz file_format: csv glob_string: particle_lists/{run_name}_cyto_ribosomes.csv - is_portal_standard: false + is_visualization_default: true - metadata: annotation_method: spectrum equalization filter + 2D CNN prediction + manual correction @@ -106,7 +106,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 1 - metadata: @@ -128,7 +128,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 2 - metadata: @@ -150,7 +150,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 3 - metadata: @@ -172,7 +172,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 4 - metadata: @@ -194,7 +194,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 5 - metadata: @@ -216,7 +216,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 6 - metadata: @@ -238,7 +238,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 7 - metadata: @@ -260,7 +260,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 8 - metadata: @@ -282,7 +282,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 9 - metadata: @@ -304,7 +304,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 10 - metadata: @@ -326,7 +326,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 11 - metadata: @@ -348,7 +348,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/180426_{mapped_segmask_name}.labels.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 13 - metadata: @@ -370,7 +370,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_membranes.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 1 collection_metadata: diff --git a/ingestion_tools/dataset_configs/10001.yaml b/ingestion_tools/dataset_configs/10001.yaml index b5c1292be..bb8cb348c 100644 --- a/ingestion_tools/dataset_configs/10001.yaml +++ b/ingestion_tools/dataset_configs/10001.yaml @@ -62,7 +62,7 @@ annotations: columns: xyz file_format: csv glob_string: particle_lists/{run_name}_fas.csv - is_portal_standard: false + is_visualization_default: false - metadata: annotation_method: Cumulative template-matching trained 2D CNN predictions + visual @@ -85,7 +85,7 @@ annotations: columns: xyz file_format: csv glob_string: particle_lists/{run_name}_cyto_ribosomes.csv - is_portal_standard: false + is_visualization_default: true - metadata: annotation_method: manual segmentation @@ -105,7 +105,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 1 - metadata: @@ -126,7 +126,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 2 - metadata: @@ -147,7 +147,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 3 - metadata: @@ -168,7 +168,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 4 - metadata: @@ -189,7 +189,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 5 - metadata: @@ -210,7 +210,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 6 - metadata: @@ -231,7 +231,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 7 - metadata: @@ -252,7 +252,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 8 - metadata: @@ -273,7 +273,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 9 - metadata: @@ -294,7 +294,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 10 - metadata: @@ -315,7 +315,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 11 - metadata: @@ -336,7 +336,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_organelles.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 13 - metadata: @@ -358,7 +358,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_membranes.mrc - is_portal_standard: false + is_visualization_default: false mask_label: 1 collection_metadata: diff --git a/ingestion_tools/dataset_configs/10002.yaml b/ingestion_tools/dataset_configs/10002.yaml index 9bd0a5b8b..396403fc5 100644 --- a/ingestion_tools/dataset_configs/10002.yaml +++ b/ingestion_tools/dataset_configs/10002.yaml @@ -75,7 +75,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: labels/{run_name}_actin_ground_truth.mrc - is_portal_standard: false + is_visualization_default: true - metadata: annotation_method: 2D CNN + 3D CNN hyperparameter tuning @@ -99,7 +99,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: prediction/{run_name}_*.mrc - is_portal_standard: false + is_visualization_default: false collection_metadata: - sources: diff --git a/ingestion_tools/dataset_configs/10003.yaml b/ingestion_tools/dataset_configs/10003.yaml index 4359e29fa..c1f0a7ed3 100644 --- a/ingestion_tools/dataset_configs/10003.yaml +++ b/ingestion_tools/dataset_configs/10003.yaml @@ -35,7 +35,7 @@ annotations: file_format: relion3_star filter_value: '{mapped_tomo_name}.tomostar' glob_string: run_ct17_it034_data.star - is_portal_standard: false + is_visualization_default: true order: xyz dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10004.yaml b/ingestion_tools/dataset_configs/10004.yaml index 22f65f647..345e2bdfc 100644 --- a/ingestion_tools/dataset_configs/10004.yaml +++ b/ingestion_tools/dataset_configs/10004.yaml @@ -69,7 +69,7 @@ annotations: columns: xyz file_format: csv_with_header glob_string: '{run_name}/annoRibosome_bin4.txt' - is_portal_standard: false + is_visualization_default: true collection_metadata: - sources: diff --git a/ingestion_tools/dataset_configs/10005.yaml b/ingestion_tools/dataset_configs/10005.yaml index 945295616..2b7fe374c 100644 --- a/ingestion_tools/dataset_configs/10005.yaml +++ b/ingestion_tools/dataset_configs/10005.yaml @@ -30,7 +30,7 @@ annotations: delimiter: ' ' file_format: csv glob_string: coorinates_dmt48/s{run_name}_dmt48_coordinates_bin2.txt - is_portal_standard: false + is_visualization_default: true - metadata: annotation_method: Template matching + manual filtering + 3D classification filtering @@ -51,7 +51,7 @@ annotations: delimiter: ' ' file_format: csv glob_string: coordinates_dmt96/s{run_name}_dmt96_coordinates_bin2.txt - is_portal_standard: false + is_visualization_default: true dataset_keyphotos: - sources: diff --git a/ingestion_tools/dataset_configs/10006.yaml b/ingestion_tools/dataset_configs/10006.yaml index 866ff2d32..c81c5b0f3 100644 --- a/ingestion_tools/dataset_configs/10006.yaml +++ b/ingestion_tools/dataset_configs/10006.yaml @@ -56,7 +56,7 @@ annotations: file_format: relion4_star filter_value: '{run_name}' glob_string: motl_star/czii-remapped-points.star - is_portal_standard: false + is_visualization_default: true order: xyz dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10007.yaml b/ingestion_tools/dataset_configs/10007.yaml index 6a2493c3e..181f23529 100644 --- a/ingestion_tools/dataset_configs/10007.yaml +++ b/ingestion_tools/dataset_configs/10007.yaml @@ -44,7 +44,7 @@ annotations: binning: 4 file_format: tomoman_relion_star glob_string: '{run_name}/metadata/particles/*.star' - is_portal_standard: false + is_visualization_default: true order: xyz collection_metadata: diff --git a/ingestion_tools/dataset_configs/10008.yaml b/ingestion_tools/dataset_configs/10008.yaml index acfc6a061..181799c03 100644 --- a/ingestion_tools/dataset_configs/10008.yaml +++ b/ingestion_tools/dataset_configs/10008.yaml @@ -54,7 +54,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: subtomo/hdcr/hdcr_tm_bin2_motl_12.star - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -76,7 +76,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: subtomo/ribo/ribo_tm_bin1_motl_12.star - is_portal_standard: false + is_visualization_default: true order: xyz collection_metadata: diff --git a/ingestion_tools/dataset_configs/10009.yaml b/ingestion_tools/dataset_configs/10009.yaml index f17001562..3d0647f1b 100644 --- a/ingestion_tools/dataset_configs/10009.yaml +++ b/ingestion_tools/dataset_configs/10009.yaml @@ -64,7 +64,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_S_newbin2_3.star - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -86,7 +86,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_Y_newbin2_3.star - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -108,7 +108,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_H_cleanbin2.star - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -131,7 +131,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/MTD_MIP_bin2_recentered_shiftedorg_9.star - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -153,7 +153,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_B2_newbin2_3.star - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -175,7 +175,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_A2_newbin2_3.star - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -197,7 +197,7 @@ annotations: file_format: stopgap_star filter_value: '{run_name}' glob_string: motivelists/allmotl_D_newbin2_3.star - is_portal_standard: false + is_visualization_default: true order: xyz collection_metadata: diff --git a/ingestion_tools/dataset_configs/10010.yaml b/ingestion_tools/dataset_configs/10010.yaml index aa720c8af..acb4d9bfc 100644 --- a/ingestion_tools/dataset_configs/10010.yaml +++ b/ingestion_tools/dataset_configs/10010.yaml @@ -25,7 +25,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: Voxel_Segmentations/{run_name}_labels.rec.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -45,7 +45,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: Voxel_Segmentations/{run_name}_labels.rec.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 2 - metadata: @@ -65,7 +65,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_string: Voxel_Segmentations/{run_name}_labels.rec.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 3 collection_metadata: diff --git a/ingestion_tools/dataset_configs/10301.yaml b/ingestion_tools/dataset_configs/10301.yaml index cc27df2f0..f55ad61f1 100644 --- a/ingestion_tools/dataset_configs/10301.yaml +++ b/ingestion_tools/dataset_configs/10301.yaml @@ -76,7 +76,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/f1atpase_bin*.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -100,7 +100,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/f1atpase_mito_*.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -124,7 +124,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/ribosome_*.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -147,7 +147,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/nucleosome_*.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -171,7 +171,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/rubisco_*.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -194,7 +194,7 @@ annotations: file_format: stopgap_star filter_value: '{annotation_micrograph_name}' glob_string: '{run_name}/metadata/particles/microtubule_*.star' - is_portal_standard: false + is_visualization_default: true order: xyz collection_metadata: diff --git a/ingestion_tools/dataset_configs/10436.yaml b/ingestion_tools/dataset_configs/10436.yaml index 6180a5714..16e167f71 100644 --- a/ingestion_tools/dataset_configs/10436.yaml +++ b/ingestion_tools/dataset_configs/10436.yaml @@ -58,7 +58,7 @@ annotations: glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Exospore.mrc - Data_Set_2/{run_name}/segmentation_masks/Exospore.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -82,7 +82,7 @@ annotations: glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Endospore.mrc - Data_Set_2/{run_name}/segmentation_masks/Endospore.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -106,7 +106,7 @@ annotations: glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Plasma_Membrane.mrc - Data_Set_2/{run_name}/segmentation_masks/Plasma_Membrane.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -129,7 +129,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_2/{run_name}/segmentation_masks/Polaroplast.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -152,7 +152,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Nuclear_Envelope.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -175,7 +175,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Nuclear_Fill.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -200,7 +200,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -225,7 +225,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -248,7 +248,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_1/{run_name}/segmentation_masks/Sporewall.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10437.yaml b/ingestion_tools/dataset_configs/10437.yaml index 48b814333..93cad1ccb 100644 --- a/ingestion_tools/dataset_configs/10437.yaml +++ b/ingestion_tools/dataset_configs/10437.yaml @@ -51,7 +51,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Exospore.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -77,7 +77,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Endospore.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -103,7 +103,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Plasma_Membrane.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -130,7 +130,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Anchoring_Disk_Fill.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -157,7 +157,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Anchoring_Disk_Outline.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -183,7 +183,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polaroplast.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -210,7 +210,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Vesicles_in_Polaroplast.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -236,7 +236,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Nuclear_Envelope.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -262,7 +262,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Nuclear_Fill.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -290,7 +290,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -318,7 +318,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_M-Layer_TopCoilsOnly.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -346,7 +346,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -374,7 +374,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_Straight_Portion.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -401,7 +401,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Polar_Tube_Unknown_Cluster.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -428,7 +428,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Unknown_Structure.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -455,7 +455,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_3/{run_name}/segmentation_masks/Extra_Membranous_Vesicles.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10438.yaml b/ingestion_tools/dataset_configs/10438.yaml index 67803331d..b9d935a86 100644 --- a/ingestion_tools/dataset_configs/10438.yaml +++ b/ingestion_tools/dataset_configs/10438.yaml @@ -40,7 +40,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Exospore.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -63,7 +63,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Endospore.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -86,7 +86,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Plasma_Membrane.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -109,7 +109,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polaroplast.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -133,7 +133,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Vesicles_in_Polaroplast.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -156,7 +156,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Nuclear_Envelope.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -179,7 +179,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Nuclear_Fill.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -204,7 +204,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -229,7 +229,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_multiple_coils.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -254,7 +254,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_single_coil.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -279,7 +279,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_Circular_Coils.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -304,7 +304,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_M-Layer_long.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -329,7 +329,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -354,7 +354,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_IF-Layer.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -379,7 +379,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer_Circular_Coils.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -404,7 +404,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Polar_Tube_OF-Layer_long.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -428,7 +428,7 @@ annotations: file_format: mrc glob_strings: - Data_Set_4/{run_name}/segmentation_masks/Vesicles.mrc - is_portal_standard: false + is_visualization_default: true mask_label: 1 dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/10439.yaml b/ingestion_tools/dataset_configs/10439.yaml index 2728e0aaf..c1b13c5be 100644 --- a/ingestion_tools/dataset_configs/10439.yaml +++ b/ingestion_tools/dataset_configs/10439.yaml @@ -38,7 +38,7 @@ annotations: file_format: mrc glob_strings: &id004 - '{run_name}/Segmentations/ground_truth.mrc' - is_portal_standard: false + is_visualization_default: true mask_label: 1 - metadata: @@ -59,7 +59,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id004 - is_portal_standard: false + is_visualization_default: true mask_label: 2 - OrientedPoint: @@ -67,7 +67,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/adp-mitochondrial.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -88,7 +88,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id004 - is_portal_standard: false + is_visualization_default: true mask_label: 3 - OrientedPoint: @@ -96,7 +96,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/alkaline-phosphatase.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -117,7 +117,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id004 - is_portal_standard: false + is_visualization_default: true mask_label: 4 - OrientedPoint: @@ -125,7 +125,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/nucleosome.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -146,7 +146,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id004 - is_portal_standard: false + is_visualization_default: true mask_label: 5 - OrientedPoint: @@ -154,7 +154,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/ribosome.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -175,7 +175,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id004 - is_portal_standard: false + is_visualization_default: true mask_label: 6 - OrientedPoint: @@ -183,7 +183,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/vault.star' - is_portal_standard: false + is_visualization_default: true order: xyz - metadata: @@ -205,7 +205,7 @@ annotations: - SemanticSegmentationMask: file_format: mrc glob_strings: *id004 - is_portal_standard: false + is_visualization_default: true mask_label: 7 - OrientedPoint: @@ -213,7 +213,7 @@ annotations: file_format: relion3_star glob_strings: - '{run_name}/Picks/virus-like-particle.star' - is_portal_standard: false + is_visualization_default: true order: xyz dataset_keyphotos: diff --git a/ingestion_tools/dataset_configs/deposition_10301.yaml b/ingestion_tools/dataset_configs/deposition_10301.yaml index 17a826b0f..e362a2bf7 100644 --- a/ingestion_tools/dataset_configs/deposition_10301.yaml +++ b/ingestion_tools/dataset_configs/deposition_10301.yaml @@ -32,13 +32,13 @@ annotations: binning: 1 file_format: tardis glob_string: '{dataset_name}/{run_name}/{run_name}_instance.csv' - is_portal_standard: false + is_visualization_default: false order: xyz - SemanticSegmentationMask: file_format: mrc glob_string: '{dataset_name}/{run_name}/{run_name}_semantic.mrc' - is_portal_standard: false + is_visualization_default: false datasets: - sources: diff --git a/ingestion_tools/dataset_configs/deposition_10302.yaml b/ingestion_tools/dataset_configs/deposition_10302.yaml index f189e4501..82e4cd821 100644 --- a/ingestion_tools/dataset_configs/deposition_10302.yaml +++ b/ingestion_tools/dataset_configs/deposition_10302.yaml @@ -22,7 +22,7 @@ annotations: binning: 1 file_format: mod glob_string: '{dataset_name}/{run_name}_MS.mod' - is_portal_standard: false + is_visualization_default: true order: xyz datasets: diff --git a/ingestion_tools/dataset_configs/deposition_10303.yaml b/ingestion_tools/dataset_configs/deposition_10303.yaml index 1d7dba627..d0518769b 100644 --- a/ingestion_tools/dataset_configs/deposition_10303.yaml +++ b/ingestion_tools/dataset_configs/deposition_10303.yaml @@ -49,7 +49,7 @@ annotations: - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*PgU0Bz.zarr' - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*4h1eIH.zarr' - '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*gBcgAd.zarr' - is_portal_standard: false + is_visualization_default: true datasets: - sources: diff --git a/ingestion_tools/dataset_configs/deposition_10304.yaml b/ingestion_tools/dataset_configs/deposition_10304.yaml index 6631f309a..266ae82f0 100644 --- a/ingestion_tools/dataset_configs/deposition_10304.yaml +++ b/ingestion_tools/dataset_configs/deposition_10304.yaml @@ -38,7 +38,7 @@ annotations: - SegmentationMask: file_format: mrc glob_string: '{dataset_name}/{run_name}_membrane_segmentation_mask.mrc' - is_portal_standard: false + is_visualization_default: false datasets: - sources: diff --git a/ingestion_tools/dataset_configs/deposition_10305.yaml b/ingestion_tools/dataset_configs/deposition_10305.yaml index 0cfeefda8..2feff97cf 100644 --- a/ingestion_tools/dataset_configs/deposition_10305.yaml +++ b/ingestion_tools/dataset_configs/deposition_10305.yaml @@ -22,7 +22,7 @@ annotations: binning: 1 file_format: mod glob_string: '{dataset_name}/{run_name}_T4P.mod' - is_portal_standard: false + is_visualization_default: true order: xyz datasets: diff --git a/ingestion_tools/dataset_configs/deposition_10308.yaml b/ingestion_tools/dataset_configs/deposition_10308.yaml index 01823811b..fc096d94d 100644 --- a/ingestion_tools/dataset_configs/deposition_10308.yaml +++ b/ingestion_tools/dataset_configs/deposition_10308.yaml @@ -38,7 +38,7 @@ annotations: - SegmentationMask: file_format: zarr glob_string: '{dataset_name}/{run_name}/Tomograms/VoxelSpacing{voxel_spacing_name}/CanonicalTomogram/*ckpt_segmented_*55ar5k.zarr' - is_portal_standard: false + is_visualization_default: true datasets: - sources: diff --git a/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py b/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py index 2139088b0..9ae32a95a 100644 --- a/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py +++ b/ingestion_tools/scripts/schema_migration/migrate_v1_1_0.py @@ -117,9 +117,6 @@ def update_annotation_sources(config: dict) -> None: sources = annotation.get("sources") if not sources: continue - for source in sources: - for value in source.values(): - value["is_portal_standard"] = False def remove_empty_fields(config: Union[list, dict]) -> None: From 2a45a3195e72c53637ec4b30e5589c8190bd23ae Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 16:09:18 -0700 Subject: [PATCH 56/59] linkml --- .../v1.1.0/codegen/metadata_materialized.yaml | 22 ------------ schema/core/v1.1.0/codegen/metadata_models.py | 29 --------------- .../v1.0.0/codegen/ingestion_config_models.py | 35 +++++-------------- .../ingestion_config_models.schema.json | 7 ---- 4 files changed, 8 insertions(+), 85 deletions(-) diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index fedbadfd6..81ed0e6ae 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -2598,20 +2598,6 @@ classes: required: true inlined: true inlined_as_list: true - is_portal_standard: - name: is_portal_standard - description: Whether the tomogram is a portal standard. - from_schema: metadata - ifabsent: 'False' - alias: is_portal_standard - owner: Tomogram - domain_of: - - Tomogram - - AnnotationSourceFile - range: boolean - required: false - inlined: true - inlined_as_list: true is_visualization_default: name: is_visualization_default description: Whether the tomogram is the default for visualization. @@ -2927,7 +2913,6 @@ classes: alias: is_portal_standard owner: AnnotationSourceFile domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3058,7 +3043,6 @@ classes: alias: is_portal_standard owner: AnnotationOrientedPointFile domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3189,7 +3173,6 @@ classes: alias: is_portal_standard owner: AnnotationInstanceSegmentationFile domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3319,7 +3302,6 @@ classes: alias: is_portal_standard owner: AnnotationPointFile domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3404,7 +3386,6 @@ classes: alias: is_portal_standard owner: AnnotationSegmentationMaskFile domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3503,7 +3484,6 @@ classes: alias: is_portal_standard owner: AnnotationSemanticSegmentationMaskFile domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3604,7 +3584,6 @@ classes: alias: is_portal_standard owner: AnnotationTriangularMeshFile domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3725,7 +3704,6 @@ classes: alias: is_portal_standard owner: AnnotationTriangularMeshGroupFile domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index d8d130dc8..9e54aa3ab 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -2430,27 +2430,6 @@ class Tomogram(AuthoredEntity): description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra={"linkml_meta": {"alias": "offset", "domain_of": ["Tomogram", "Alignment"]}}, ) - is_portal_standard: Optional[bool] = Field( - False, - description="""Whether the tomogram is a portal standard.""", - json_schema_extra={ - "linkml_meta": { - "alias": "is_portal_standard", - "domain_of": [ - "Tomogram", - "AnnotationSourceFile", - "AnnotationOrientedPointFile", - "AnnotationInstanceSegmentationFile", - "AnnotationPointFile", - "AnnotationSegmentationMaskFile", - "AnnotationSemanticSegmentationMaskFile", - "AnnotationTriangularMeshFile", - "AnnotationTriangularMeshGroupFile", - ], - "ifabsent": "False", - } - }, - ) is_visualization_default: bool = Field( True, description="""Whether the tomogram is the default for visualization.""", @@ -2831,7 +2810,6 @@ class AnnotationSourceFile(ConfiguredBaseModel): "linkml_meta": { "alias": "is_portal_standard", "domain_of": [ - "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -2984,7 +2962,6 @@ class AnnotationOrientedPointFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_portal_standard", "domain_of": [ - "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3137,7 +3114,6 @@ class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): "linkml_meta": { "alias": "is_portal_standard", "domain_of": [ - "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3291,7 +3267,6 @@ class AnnotationPointFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_portal_standard", "domain_of": [ - "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3404,7 +3379,6 @@ class AnnotationSegmentationMaskFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_portal_standard", "domain_of": [ - "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3529,7 +3503,6 @@ class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_portal_standard", "domain_of": [ - "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3655,7 +3628,6 @@ class AnnotationTriangularMeshFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_portal_standard", "domain_of": [ - "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", @@ -3802,7 +3774,6 @@ class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): "linkml_meta": { "alias": "is_portal_standard", "domain_of": [ - "Tomogram", "AnnotationSourceFile", "AnnotationOrientedPointFile", "AnnotationInstanceSegmentationFile", diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 7620197bb..fae6d3755 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1551,17 +1551,6 @@ class Tomogram(AuthoredEntity): 'domain_of': ['Tomogram', 'Alignment']} }) size: Optional[TomogramSize] = Field(None, description="""The size of a tomogram in voxels in each dimension.""", json_schema_extra = { "linkml_meta": {'alias': 'size', 'domain_of': ['Tomogram']} }) offset: TomogramOffset = Field(..., description="""The offset of a tomogram in voxels in each dimension relative to the canonical tomogram.""", json_schema_extra = { "linkml_meta": {'alias': 'offset', 'domain_of': ['Tomogram', 'Alignment']} }) - is_portal_standard: Optional[bool] = Field(False, description="""Whether the tomogram is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', - 'AnnotationOrientedPointFile', - 'AnnotationInstanceSegmentationFile', - 'AnnotationPointFile', - 'AnnotationSegmentationMaskFile', - 'AnnotationSemanticSegmentationMaskFile', - 'AnnotationTriangularMeshFile', - 'AnnotationTriangularMeshGroupFile'], - 'ifabsent': 'False'} }) is_visualization_default: bool = Field(True, description="""Whether the tomogram is the default for visualization.""", json_schema_extra = { "linkml_meta": {'alias': 'is_visualization_default', 'domain_of': ['Tomogram', 'AnnotationSourceFile', @@ -1781,8 +1770,7 @@ class AnnotationSourceFile(ConfiguredBaseModel): 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', + 'domain_of': ['AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -1858,8 +1846,7 @@ class AnnotationOrientedPointFile(AnnotationSourceFile): 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', + 'domain_of': ['AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -1935,8 +1922,7 @@ class AnnotationInstanceSegmentationFile(AnnotationOrientedPointFile): 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', + 'domain_of': ['AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2011,8 +1997,7 @@ class AnnotationPointFile(AnnotationSourceFile): 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', + 'domain_of': ['AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2073,8 +2058,7 @@ class AnnotationSegmentationMaskFile(AnnotationSourceFile): 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', + 'domain_of': ['AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2139,8 +2123,7 @@ class AnnotationSemanticSegmentationMaskFile(AnnotationSourceFile): 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', + 'domain_of': ['AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2206,8 +2189,7 @@ class AnnotationTriangularMeshFile(AnnotationSourceFile): 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', + 'domain_of': ['AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', @@ -2284,8 +2266,7 @@ class AnnotationTriangularMeshGroupFile(AnnotationSourceFile): 'exact_mappings': ['cdp-common:annotation_source_file_is_visualization_default'], 'ifabsent': 'False'} }) is_portal_standard: Optional[bool] = Field(False, description="""Whether the annotation source is a portal standard.""", json_schema_extra = { "linkml_meta": {'alias': 'is_portal_standard', - 'domain_of': ['Tomogram', - 'AnnotationSourceFile', + 'domain_of': ['AnnotationSourceFile', 'AnnotationOrientedPointFile', 'AnnotationInstanceSegmentationFile', 'AnnotationPointFile', diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json index 887c18982..86f029123 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.schema.json @@ -4603,13 +4603,6 @@ "description": "Whether the tomographic alignment was computed based on fiducial markers.", "pattern": "(^FIDUCIAL$)|(^NON_FIDUCIAL$)|(^[ ]*\\{[a-zA-Z0-9_-]+\\}[ ]*$)" }, - "is_portal_standard": { - "description": "Whether the tomogram is a portal standard.", - "type": [ - "boolean", - "null" - ] - }, "is_visualization_default": { "description": "Whether the tomogram is the default for visualization.", "type": "boolean" From 5eb546b23474f2a947e5bcfb74c0c049f8abefc7 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Thu, 26 Sep 2024 16:09:51 -0700 Subject: [PATCH 57/59] lint --- schema/core/v1.1.0/codegen/metadata_models.py | 1 - .../v1.0.0/codegen/ingestion_config_models.py | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 9e54aa3ab..5ba7d73db 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4755,4 +4755,3 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() - diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index fae6d3755..4ce47f234 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -6646,4 +6646,3 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() - From 7404d3842dc4da71200b5e95724480cd9e9d6a73 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 27 Sep 2024 10:38:59 -0700 Subject: [PATCH 58/59] run linkml --- .../v1.1.0/codegen/metadata_materialized.yaml | 38 ------------------- schema/core/v1.1.0/codegen/metadata_models.py | 1 + .../v1.0.0/codegen/ingestion_config_models.py | 7 ++-- 3 files changed, 5 insertions(+), 41 deletions(-) diff --git a/schema/core/v1.1.0/codegen/metadata_materialized.yaml b/schema/core/v1.1.0/codegen/metadata_materialized.yaml index 32769f6f7..81ed0e6ae 100644 --- a/schema/core/v1.1.0/codegen/metadata_materialized.yaml +++ b/schema/core/v1.1.0/codegen/metadata_materialized.yaml @@ -2901,7 +2901,6 @@ classes: - Tomogram - AnnotationSourceFile range: boolean - required: false inlined: true inlined_as_list: true is_portal_standard: @@ -3044,22 +3043,6 @@ classes: alias: is_portal_standard owner: AnnotationOrientedPointFile domain_of: - - Tomogram - - AnnotationSourceFile - range: boolean - inlined: true - inlined_as_list: true - is_portal_standard: - name: is_portal_standard - description: Whether the annotation source is a portal standard. - from_schema: metadata - exact_mappings: - - cdp-common:annotation_source_file_is_portal_standard - ifabsent: 'False' - alias: is_portal_standard - owner: AnnotationOrientedPointFile - domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3178,7 +3161,6 @@ classes: - Tomogram - AnnotationSourceFile range: boolean - required: false inlined: true inlined_as_list: true is_portal_standard: @@ -3308,7 +3290,6 @@ classes: - Tomogram - AnnotationSourceFile range: boolean - required: false inlined: true inlined_as_list: true is_portal_standard: @@ -3393,7 +3374,6 @@ classes: - Tomogram - AnnotationSourceFile range: boolean - required: false inlined: true inlined_as_list: true is_portal_standard: @@ -3504,22 +3484,6 @@ classes: alias: is_portal_standard owner: AnnotationSemanticSegmentationMaskFile domain_of: - - Tomogram - - AnnotationSourceFile - range: boolean - inlined: true - inlined_as_list: true - is_portal_standard: - name: is_portal_standard - description: Whether the annotation source is a portal standard. - from_schema: metadata - exact_mappings: - - cdp-common:annotation_source_file_is_portal_standard - ifabsent: 'False' - alias: is_portal_standard - owner: AnnotationSemanticSegmentationMaskFile - domain_of: - - Tomogram - AnnotationSourceFile range: boolean required: false @@ -3608,7 +3572,6 @@ classes: - Tomogram - AnnotationSourceFile range: boolean - required: false inlined: true inlined_as_list: true is_portal_standard: @@ -3729,7 +3692,6 @@ classes: - Tomogram - AnnotationSourceFile range: boolean - required: false inlined: true inlined_as_list: true is_portal_standard: diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 5ba7d73db..9e54aa3ab 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4755,3 +4755,4 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() + diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index 4ce47f234..fae6d3755 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -6646,3 +6646,4 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() + From f1b8e9ec9a8e7a892d3b5a84e8b1d3da09f99383 Mon Sep 17 00:00:00 2001 From: Bento007 Date: Fri, 27 Sep 2024 10:39:28 -0700 Subject: [PATCH 59/59] lint --- schema/core/v1.1.0/codegen/metadata_models.py | 1 - .../v1.0.0/codegen/ingestion_config_models.py | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/schema/core/v1.1.0/codegen/metadata_models.py b/schema/core/v1.1.0/codegen/metadata_models.py index 9e54aa3ab..5ba7d73db 100644 --- a/schema/core/v1.1.0/codegen/metadata_models.py +++ b/schema/core/v1.1.0/codegen/metadata_models.py @@ -4755,4 +4755,3 @@ def pattern_ORCID(cls, v): CrossReferences.model_rebuild() AuthorMixin.model_rebuild() Author.model_rebuild() - diff --git a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py index fae6d3755..4ce47f234 100644 --- a/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py +++ b/schema/ingestion_config/v1.0.0/codegen/ingestion_config_models.py @@ -1,10 +1,10 @@ -from __future__ import annotations +from __future__ import annotations from datetime import ( datetime, date ) -from decimal import Decimal -from enum import Enum +from decimal import Decimal +from enum import Enum import re import sys from typing import ( @@ -6646,4 +6646,3 @@ class TomogramHeader(ConfiguredBaseModel): VoxelSpacingParent.model_rebuild() VoxelSpacingLiteral.model_rebuild() TomogramHeader.model_rebuild() -