From 5e537547df905cf0d687e1d174f34c9c52dc35d0 Mon Sep 17 00:00:00 2001 From: j-uranic <117292295+j-uranic@users.noreply.github.com> Date: Tue, 5 Dec 2023 14:14:53 -0500 Subject: [PATCH 01/11] Juranic/codex dir schema (#1268) * Update codex-v2.yaml Update to next-gen schema * Update CHANGELOG.md * Create mxif-v2.yaml Draft * Update mxif-v2.yaml Update to next-gen schema * Update second-harmonic-generation-v2.yaml Update to next-gen schema * Update enhanced-srs-v2.yaml Update to next-gen schema * Update CHANGELOG.md * Docs: Update docs --------- Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/codex/current/index.md | 30 ++++- docs/enhanced-srs/current/index.md | 35 +++++- docs/mxif/current/index.md | 36 ++++++ .../current/index.md | 35 +++++- .../directory-schemas/codex-v2.yaml | 87 ++++++++++++++- .../directory-schemas/enhanced-srs-v2.yaml | 103 +++++++++++++++++- .../directory-schemas/mxif-v2.yaml | 103 ++++++++++++++++++ .../second-harmonic-generation-v2.yaml | 103 +++++++++++++++++- 9 files changed, 523 insertions(+), 10 deletions(-) create mode 100644 src/ingest_validation_tools/directory-schemas/mxif-v2.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index d3a3c6a9b..53bbeaf09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,6 +59,7 @@ - Add Visium with probes next-gen directory schema - Update MALDI, SIMS, DESI, Visium no probes, and HiFi-Slide directory schemas - Fix paths in Histology, MIBI, IMC2D, AF, Confocal, Light Sheet, and Visium with probes directory schemas +- Add CODEX, Thick section Multiphoton MxIF, Second Harmonic Generation, and Enhanced Stimulated Raman Spectroscopy (SRS) next-gen directory schemas ## v0.0.15 - 2023-04-04 diff --git a/docs/codex/current/index.md b/docs/codex/current/index.md index 2d48458a8..01f84f92e 100644 --- a/docs/codex/current/index.md +++ b/docs/codex/current/index.md @@ -28,5 +28,33 @@ Related files:
## Directory schemas -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) +Version 2 (use this one) + +| pattern | required? | description | dependent on | +| --- | --- | --- | --- | +| extras\/.* | ✓ | Folder for general lab-specific files related to the dataset. [Exists in all assays] | | +| extras\/microscope_hardware\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| extras\/microscope_settings\.json | | **[QA/QC]** A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| raw\/.* | ✓ | This is a directory containing raw data. | | +| lab_processed\/images\/[^\/]+\.ome\.tiff | ✓ | OME-TIFF file (multichannel, multi-layered) produced by the experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | +| lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file should describe any processing that was done to generate the images in each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. Two columns should be booleans "is this a channel to use for nuclei segmentation" and "is this a channel to use for cell segmentation". | | +| lab_processed\/annotations\/.* | | Directory containing segmentation masks. | | +| lab_processed\/annotations\/[^\/]+\.segmentations\.ome\.tiff | | The segmentation masks should be stored as multi-channel pyramidal OME TIFF bitmasks with one channel per mask, where a single mask contains all instances of a type of object (e.g., all cells, a class of FTUs, etc). The class of objects contained in the mask is documented in the segmentation-masks.csv file. Each individual object in a mask should be represented by a unique integer pixel value starting at 1, with 0 meaning background (e.g., all pixels belonging to the first instance of a T-cell have a value of 1, the pixels for the second instance of a T-cell have a value of 2, etc). The pixel values should be unique within a mask. FTUs and other structural elements should be captured the same way as cells with segmentation masks and the appropriate channel feature definitions. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/segmentation-masks\.csv | | This file contains details about each mask, with one row per mask. Each column in this file contains details describing the mask (e.g., channel number, mask name, ontological ID, etc). Each mask is stored as a channel in the segmentations.ome.tiff file and the mask name should be ontologically based and linked to the ASCT+B table where possible. The number of rows in this file should equal the number of channels in the segmentations.ome.tiff. For example, one row in this file would ontologically describe cells, if the segmentations.ome.tiff file contained a mask of all cells. A minimum set of fields (required and optional) is included below. If multiple segmentations.ome.tiff files are used, this segmentation-masks.csv file should document the masks across all of the OME TIFF files. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+-objects\.csv | | This is a matrix where each row describes an individual object (e.g., one row per cell in the case where a mask contains all cells) and columns are features (i.e., object type, marker intensity, classification strategies, etc). One file should be created per mask with the name of the mask prepended to the file name. For example, if there’s a cell segmentation map called “cells” then you would include a file called “cells-objects.csv” and that file would contain one row per cell in the “cells” mask and one column per feature, such as marker intensity and/or cell type. A minimum set of fields (required and optional) is included below. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+\.geojson | | A GeoJSON file(s) containing the geometries of each object within a mask. For example, if the mask contains multiple FTUs, multiple cells, etc, each of the objects in the mask would be independently documented in the GeoJSON file. There would be a single GeoJSON file per mask and the name of the file should be the name of the mask. If this file is generated by QuPath, the coordinates will be in pixel units with the origin (0, 0) as the top left corner of the full-resolution image. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/tissue-boundary\.geojson | | **[QA/QC]** If the boundaries of the tissue have been identified (e.g., by manual efforts), then the boundary geometry can be included as a GeoJSON file named “tissue-boundary.geojson”. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.csv | | This file and the associated GeoJSON file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain one row per region and include documentation about the region and why it's being flagged. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.geojson | | This file and the associated CSV file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain the geometric coordinates of each region being flagged. | lab_processed\/annotations\/.* | +| [^\/]*NAV[^\/]*\.tif (example: NAV.tif) | | Navigational Image showing Region of Interest (Keyance Microscope only) | | +| [^\/]+\.pdf (example: summary.pdf) | | **[QA/QC]** PDF export of Powerpoint slide deck containing the Image Analysis Report | | +| extras\/dir-schema-v2-with-dataset-json | ✓ | Empty file whose presence indicates the version of the directory schema in use | | +| processed\/drv_[^\/]*\/ | ✓ | Processed files produced by the Akoya software or alternative software. | | +| raw\/cyc[^\/]*_reg[^\/]*\/.* | ✓ | Intermediary directory | | +| raw\/src_[^\/]*\/ | ✓ | Intermediary directory | | +| raw\/cyc[^\/]*_reg[^\/]*\/[^\/]*_z[^\/]*_CH[^\/]*\.tif | ✓ | TIFF files produced by the experiment. General folder format: Cycle(n)_Region(n)_date; General file format: name_tileNumber(n)_zplaneNumber(n)_channelNumber(n) | | +| raw\/src_[^\/]*\/cyc[^\/]*_reg[^\/]*_[^\/]*\/[^\/]+\.gci | | Group Capture Information File (Keyance Microscope only) | | +| raw\/dataset\.json (example: raw/dataset.json) | ✓ | Data processing parameters file. This will include additional CODEX specific metadata needed for the HIVE processing workflow. | | +| raw\/reg_[^\/]*\.png (example: raw/reg_00.png) | | Region overviews | | +| raw\/experiment\.json (example: raw/experiment.json) | | JSON file produced by the Akoya software which contains the metadata for the experiment, including the software version used, microscope parameters, channel names, pixel dimensions, etc. (required for HuBMAP pipeline) | | diff --git a/docs/enhanced-srs/current/index.md b/docs/enhanced-srs/current/index.md index 09ed5590d..868a5ba3c 100644 --- a/docs/enhanced-srs/current/index.md +++ b/docs/enhanced-srs/current/index.md @@ -28,5 +28,38 @@ See the following link for the set of fields that are required in the OME TIFF f
## Directory schemas -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) +Version 2 (use this one) + +| pattern | required? | description | dependent on | +| --- | --- | --- | --- | +| extras\/.* | ✓ | Folder for general lab-specific files related to the dataset. [Exists in all assays] | | +| extras\/microscope_hardware\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| extras\/microscope_settings\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| raw\/.* | ✓ | Raw data files for the experiment. | | +| raw\/channel_layout\.tsv | ✓ | Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. | | +| raw\/lightpath_configuration\.tsv | | This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. | | +| raw\/fingerprint_layout\.tsv | | Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. | | +| raw\/images\/.* | ✓ | Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] | | +| raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) | ✓ | Raw microscope file for the experiment | | +| lab_processed\/.* | ✓ | Experiment files that were processed by the lab generating the data. | | +| lab_processed\/images\/.* | ✓ | Processed image files | | +| lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | +| lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | +| lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | +| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | +| qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | +| qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | +| qa_qc\/resolution_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. | | +| qa_qc\/illumination_report\/.* | ✓ | Directory containing the results of illumination tests and/or vendor preventative maintenance reports. | | +| qa_qc\/illumination_report\/illumination.txt | | This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. | | +| qa_qc\/illumination_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. | | +| lab_processed\/annotations\/.* | | Directory containing segmentation masks. | | +| lab_processed\/annotations\/[^\/]+\.segmentations\.ome\.tiff | | The segmentation masks should be stored as multi-channel pyramidal OME TIFF bitmasks with one channel per mask, where a single mask contains all instances of a type of object (e.g., all cells, a class of FTUs, etc). The class of objects contained in the mask is documented in the segmentation-masks.csv file. Each individual object in a mask should be represented by a unique integer pixel value starting at 1, with 0 meaning background (e.g., all pixels belonging to the first instance of a T-cell have a value of 1, the pixels for the second instance of a T-cell have a value of 2, etc). The pixel values should be unique within a mask. FTUs and other structural elements should be captured the same way as cells with segmentation masks and the appropriate channel feature definitions. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/segmentation-masks\.csv | | This file contains details about each mask, with one row per mask. Each column in this file contains details describing the mask (e.g., channel number, mask name, ontological ID, etc). Each mask is stored as a channel in the segmentations.ome.tiff file and the mask name should be ontologically based and linked to the ASCT+B table where possible. The number of rows in this file should equal the number of channels in the segmentations.ome.tiff. For example, one row in this file would ontologically describe cells, if the segmentations.ome.tiff file contained a mask of all cells. A minimum set of fields (required and optional) is included below. If multiple segmentations.ome.tiff files are used, this segmentation-masks.csv file should document the masks across all of the OME TIFF files. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+-objects\.csv | | This is a matrix where each row describes an individual object (e.g., one row per cell in the case where a mask contains all cells) and columns are features (i.e., object type, marker intensity, classification strategies, etc). One file should be created per mask with the name of the mask prepended to the file name. For example, if there’s a cell segmentation map called “cells” then you would include a file called “cells-objects.csv” and that file would contain one row per cell in the “cells” mask and one column per feature, such as marker intensity and/or cell type. A minimum set of fields (required and optional) is included below. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+\.geojson | | A GeoJSON file(s) containing the geometries of each object within a mask. For example, if the mask contains multiple FTUs, multiple cells, etc, each of the objects in the mask would be independently documented in the GeoJSON file. There would be a single GeoJSON file per mask and the name of the file should be the name of the mask. If this file is generated by QuPath, the coordinates will be in pixel units with the origin (0, 0) as the top left corner of the full-resolution image. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/tissue-boundary\.geojson | | **[QA/QC]** If the boundaries of the tissue have been identified (e.g., by manual efforts), then the boundary geometry can be included as a GeoJSON file named “tissue-boundary.geojson”. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.csv | | This file and the associated GeoJSON file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain one row per region and include documentation about the region and why it's being flagged. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.geojson | | This file and the associated CSV file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain the geometric coordinates of each region being flagged. | lab_processed\/annotations\/.* | diff --git a/docs/mxif/current/index.md b/docs/mxif/current/index.md index f7bb0c794..968d9f78d 100644 --- a/docs/mxif/current/index.md +++ b/docs/mxif/current/index.md @@ -26,3 +26,39 @@ If you are planning to submit new data of this assay type, reach out to help@hub
+## Directory schemas +Version 2 (use this one) + +| pattern | required? | description | dependent on | +| --- | --- | --- | --- | +| extras\/.* | ✓ | Folder for general lab-specific files related to the dataset. [Exists in all assays] | | +| extras\/microscope_hardware\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| extras\/microscope_settings\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| raw\/.* | ✓ | Raw data files for the experiment. | | +| raw\/channel_layout\.tsv | ✓ | Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. | | +| raw\/lightpath_configuration\.tsv | | This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. | | +| raw\/fingerprint_layout\.tsv | | Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. | | +| raw\/images\/.* | ✓ | Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] | | +| raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) | ✓ | Raw microscope file for the experiment | | +| lab_processed\/.* | ✓ | Experiment files that were processed by the lab generating the data. | | +| lab_processed\/images\/.* | ✓ | Processed image files | | +| lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | +| lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | +| lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | +| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | +| qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | +| qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | +| qa_qc\/resolution_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. | | +| qa_qc\/illumination_report\/.* | ✓ | Directory containing the results of illumination tests and/or vendor preventative maintenance reports. | | +| qa_qc\/illumination_report\/illumination.txt | | This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. | | +| qa_qc\/illumination_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. | | +| lab_processed\/annotations\/.* | | Directory containing segmentation masks. | | +| lab_processed\/annotations\/[^\/]+\.segmentations\.ome\.tiff | | The segmentation masks should be stored as multi-channel pyramidal OME TIFF bitmasks with one channel per mask, where a single mask contains all instances of a type of object (e.g., all cells, a class of FTUs, etc). The class of objects contained in the mask is documented in the segmentation-masks.csv file. Each individual object in a mask should be represented by a unique integer pixel value starting at 1, with 0 meaning background (e.g., all pixels belonging to the first instance of a T-cell have a value of 1, the pixels for the second instance of a T-cell have a value of 2, etc). The pixel values should be unique within a mask. FTUs and other structural elements should be captured the same way as cells with segmentation masks and the appropriate channel feature definitions. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/segmentation-masks\.csv | | This file contains details about each mask, with one row per mask. Each column in this file contains details describing the mask (e.g., channel number, mask name, ontological ID, etc). Each mask is stored as a channel in the segmentations.ome.tiff file and the mask name should be ontologically based and linked to the ASCT+B table where possible. The number of rows in this file should equal the number of channels in the segmentations.ome.tiff. For example, one row in this file would ontologically describe cells, if the segmentations.ome.tiff file contained a mask of all cells. A minimum set of fields (required and optional) is included below. If multiple segmentations.ome.tiff files are used, this segmentation-masks.csv file should document the masks across all of the OME TIFF files. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+-objects\.csv | | This is a matrix where each row describes an individual object (e.g., one row per cell in the case where a mask contains all cells) and columns are features (i.e., object type, marker intensity, classification strategies, etc). One file should be created per mask with the name of the mask prepended to the file name. For example, if there’s a cell segmentation map called “cells” then you would include a file called “cells-objects.csv” and that file would contain one row per cell in the “cells” mask and one column per feature, such as marker intensity and/or cell type. A minimum set of fields (required and optional) is included below. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+\.geojson | | A GeoJSON file(s) containing the geometries of each object within a mask. For example, if the mask contains multiple FTUs, multiple cells, etc, each of the objects in the mask would be independently documented in the GeoJSON file. There would be a single GeoJSON file per mask and the name of the file should be the name of the mask. If this file is generated by QuPath, the coordinates will be in pixel units with the origin (0, 0) as the top left corner of the full-resolution image. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/tissue-boundary\.geojson | | **[QA/QC]** If the boundaries of the tissue have been identified (e.g., by manual efforts), then the boundary geometry can be included as a GeoJSON file named “tissue-boundary.geojson”. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.csv | | This file and the associated GeoJSON file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain one row per region and include documentation about the region and why it's being flagged. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.geojson | | This file and the associated CSV file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain the geometric coordinates of each region being flagged. | lab_processed\/annotations\/.* | + diff --git a/docs/second-harmonic-generation/current/index.md b/docs/second-harmonic-generation/current/index.md index 132969088..35ae3bc3f 100644 --- a/docs/second-harmonic-generation/current/index.md +++ b/docs/second-harmonic-generation/current/index.md @@ -28,5 +28,38 @@ Related files:
## Directory schemas -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) +Version 2 (use this one) + +| pattern | required? | description | dependent on | +| --- | --- | --- | --- | +| extras\/.* | ✓ | Folder for general lab-specific files related to the dataset. [Exists in all assays] | | +| extras\/microscope_hardware\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| extras\/microscope_settings\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| raw\/.* | ✓ | Raw data files for the experiment. | | +| raw\/channel_layout\.tsv | ✓ | Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. | | +| raw\/lightpath_configuration\.tsv | | This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. | | +| raw\/fingerprint_layout\.tsv | | Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. | | +| raw\/images\/.* | ✓ | Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] | | +| raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) | ✓ | Raw microscope file for the experiment | | +| lab_processed\/.* | ✓ | Experiment files that were processed by the lab generating the data. | | +| lab_processed\/images\/.* | ✓ | Processed image files | | +| lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | +| lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | +| lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | +| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | +| qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | +| qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | +| qa_qc\/resolution_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. | | +| qa_qc\/illumination_report\/.* | ✓ | Directory containing the results of illumination tests and/or vendor preventative maintenance reports. | | +| qa_qc\/illumination_report\/illumination.txt | | This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. | | +| qa_qc\/illumination_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. | | +| lab_processed\/annotations\/.* | | Directory containing segmentation masks. | | +| lab_processed\/annotations\/[^\/]+\.segmentations\.ome\.tiff | | The segmentation masks should be stored as multi-channel pyramidal OME TIFF bitmasks with one channel per mask, where a single mask contains all instances of a type of object (e.g., all cells, a class of FTUs, etc). The class of objects contained in the mask is documented in the segmentation-masks.csv file. Each individual object in a mask should be represented by a unique integer pixel value starting at 1, with 0 meaning background (e.g., all pixels belonging to the first instance of a T-cell have a value of 1, the pixels for the second instance of a T-cell have a value of 2, etc). The pixel values should be unique within a mask. FTUs and other structural elements should be captured the same way as cells with segmentation masks and the appropriate channel feature definitions. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/segmentation-masks\.csv | | This file contains details about each mask, with one row per mask. Each column in this file contains details describing the mask (e.g., channel number, mask name, ontological ID, etc). Each mask is stored as a channel in the segmentations.ome.tiff file and the mask name should be ontologically based and linked to the ASCT+B table where possible. The number of rows in this file should equal the number of channels in the segmentations.ome.tiff. For example, one row in this file would ontologically describe cells, if the segmentations.ome.tiff file contained a mask of all cells. A minimum set of fields (required and optional) is included below. If multiple segmentations.ome.tiff files are used, this segmentation-masks.csv file should document the masks across all of the OME TIFF files. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+-objects\.csv | | This is a matrix where each row describes an individual object (e.g., one row per cell in the case where a mask contains all cells) and columns are features (i.e., object type, marker intensity, classification strategies, etc). One file should be created per mask with the name of the mask prepended to the file name. For example, if there’s a cell segmentation map called “cells” then you would include a file called “cells-objects.csv” and that file would contain one row per cell in the “cells” mask and one column per feature, such as marker intensity and/or cell type. A minimum set of fields (required and optional) is included below. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+\.geojson | | A GeoJSON file(s) containing the geometries of each object within a mask. For example, if the mask contains multiple FTUs, multiple cells, etc, each of the objects in the mask would be independently documented in the GeoJSON file. There would be a single GeoJSON file per mask and the name of the file should be the name of the mask. If this file is generated by QuPath, the coordinates will be in pixel units with the origin (0, 0) as the top left corner of the full-resolution image. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/tissue-boundary\.geojson | | **[QA/QC]** If the boundaries of the tissue have been identified (e.g., by manual efforts), then the boundary geometry can be included as a GeoJSON file named “tissue-boundary.geojson”. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.csv | | This file and the associated GeoJSON file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain one row per region and include documentation about the region and why it's being flagged. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.geojson | | This file and the associated CSV file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain the geometric coordinates of each region being flagged. | lab_processed\/annotations\/.* | diff --git a/src/ingest_validation_tools/directory-schemas/codex-v2.yaml b/src/ingest_validation_tools/directory-schemas/codex-v2.yaml index e8d46e7ee..372c7d6c3 100644 --- a/src/ingest_validation_tools/directory-schemas/codex-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/codex-v2.yaml @@ -1,5 +1,86 @@ -# GE CellDIVE Directory Schema -draft: true files: - - draft_link: 'https://docs.google.com/spreadsheets/d/1pZD2e51e4QkxzIk6xjHPPu1RBZpx5mzoykMmlaDK8rA' \ No newline at end of file + pattern: extras\/.* + required: True + description: Folder for general lab-specific files related to the dataset. [Exists in all assays] + - + pattern: extras\/microscope_hardware\.json + required: True + description: A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: extras\/microscope_settings\.json + required: False + description: A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: raw\/.* + required: True + description: This is a directory containing raw data. + - + pattern: lab_processed\/images\/[^\/]+\.ome\.tiff + required: True + description: OME-TIFF file (multichannel, multi-layered) produced by the experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. + is_qa_qc: False + - + pattern: lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv + required: True + description: This file should describe any processing that was done to generate the images in each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. Two columns should be booleans "is this a channel to use for nuclei segmentation" and "is this a channel to use for cell segmentation". + - + pattern: lab_processed\/annotations\/.* + required: False + description: Directory containing segmentation masks. + dependency: segmentation-masks-v2 + - + pattern: '[^\/]*NAV[^\/]*\.tif' + required: False + description: Navigational Image showing Region of Interest (Keyance Microscope only) + is_qa_qc: False + example: NAV.tif + - + pattern: '[^\/]+\.pdf' + required: False + description: PDF export of Powerpoint slide deck containing the Image Analysis Report + is_qa_qc: True + example: summary.pdf + - + pattern: extras\/dir-schema-v2-with-dataset-json + required: True + description: Empty file whose presence indicates the version of the directory schema in use + is_qa_qc: False + - + pattern: processed\/drv_[^\/]*\/ + required: True + description: Processed files produced by the Akoya software or alternative software. + - + pattern: raw\/cyc[^\/]*_reg[^\/]*\/.* + required: True + description: Intermediary directory + - + pattern: raw\/src_[^\/]*\/ + required: True + description: Intermediary directory + - + pattern: raw\/cyc[^\/]*_reg[^\/]*\/[^\/]*_z[^\/]*_CH[^\/]*\.tif + required: True + description: 'TIFF files produced by the experiment. General folder format: Cycle(n)_Region(n)_date; General file format: name_tileNumber(n)_zplaneNumber(n)_channelNumber(n)' + - + pattern: raw\/src_[^\/]*\/cyc[^\/]*_reg[^\/]*_[^\/]*\/[^\/]+\.gci + required: False + description: Group Capture Information File (Keyance Microscope only) + - + pattern: raw\/dataset\.json + required: True + description: Data processing parameters file. This will include additional CODEX specific metadata needed for the HIVE processing workflow. + example: raw/dataset.json + - + pattern: raw\/reg_[^\/]*\.png + required: False + description: Region overviews + example: raw/reg_00.png + - + pattern: raw\/experiment\.json + required: False + description: JSON file produced by the Akoya software which contains the metadata for the experiment, including the software version used, microscope parameters, channel names, pixel dimensions, etc. (required for HuBMAP pipeline) + example: raw/experiment.json + diff --git a/src/ingest_validation_tools/directory-schemas/enhanced-srs-v2.yaml b/src/ingest_validation_tools/directory-schemas/enhanced-srs-v2.yaml index 6cea6f46a..57a6c3add 100644 --- a/src/ingest_validation_tools/directory-schemas/enhanced-srs-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/enhanced-srs-v2.yaml @@ -1,4 +1,103 @@ -draft: true files: - - draft_link: 'https://docs.google.com/spreadsheets/d/1KLY5iXZbbb_5RNR_lZgGSqHiAKBbe34YrtrywSuUC3M' \ No newline at end of file + pattern: extras\/.* + required: True + description: Folder for general lab-specific files related to the dataset. [Exists in all assays] + - + pattern: extras\/microscope_hardware\.json + required: True + description: A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: extras\/microscope_settings\.json + required: True + description: A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: raw\/.* + required: True + description: Raw data files for the experiment. + - + pattern: raw\/channel_layout\.tsv + required: True + description: Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. + is_qa_qc: False + - + pattern: raw\/lightpath_configuration\.tsv + required: False + description: This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. + - + pattern: raw\/fingerprint_layout\.tsv + required: False + description: Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. + is_qa_qc: False + - + pattern: raw\/images\/.* + required: True + description: Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] + - + pattern: raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) + required: True + description: Raw microscope file for the experiment + is_qa_qc: False + - + pattern: lab_processed\/.* + required: True + description: Experiment files that were processed by the lab generating the data. + - + pattern: lab_processed\/images\/.* + required: True + description: Processed image files + - + pattern: lab_processed\/images\/[^\/]+\.ome\.tiff + required: True + description: OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. + is_qa_qc: False + example: lab_processed/images/HBM892.MDXS.293.ome.tiff + - + pattern: lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv + required: True + description: This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed + is_qa_qc: False + - + pattern: lab_processed\/transformations\/.* + required: False + description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). + - + pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + required: False + description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). + is_qa_qc: False + - + pattern: qa_qc\/.* + required: True + description: Directory containing QA and/or QC information. + - + pattern: qa_qc\/resolution_report\/.* + required: True + description: Directory containing the results of resolution tests and/or vendor preventative maintenance reports. + - + pattern: qa_qc\/resolution_report\/resolution\.txt + required: False + description: This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. + - + pattern: qa_qc\/resolution_report\/[^\/]+\.pdf + required: False + description: This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. + - + pattern: qa_qc\/illumination_report\/.* + required: True + description: Directory containing the results of illumination tests and/or vendor preventative maintenance reports. + - + pattern: qa_qc\/illumination_report\/illumination.txt + required: False + description: This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. + - + pattern: qa_qc\/illumination_report\/[^\/]+\.pdf + required: False + description: This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. + - + pattern: lab_processed\/annotations\/.* + required: False + description: Directory containing segmentation masks. + dependency: segmentation-masks-v2 diff --git a/src/ingest_validation_tools/directory-schemas/mxif-v2.yaml b/src/ingest_validation_tools/directory-schemas/mxif-v2.yaml new file mode 100644 index 000000000..57a6c3add --- /dev/null +++ b/src/ingest_validation_tools/directory-schemas/mxif-v2.yaml @@ -0,0 +1,103 @@ +files: + - + pattern: extras\/.* + required: True + description: Folder for general lab-specific files related to the dataset. [Exists in all assays] + - + pattern: extras\/microscope_hardware\.json + required: True + description: A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: extras\/microscope_settings\.json + required: True + description: A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: raw\/.* + required: True + description: Raw data files for the experiment. + - + pattern: raw\/channel_layout\.tsv + required: True + description: Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. + is_qa_qc: False + - + pattern: raw\/lightpath_configuration\.tsv + required: False + description: This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. + - + pattern: raw\/fingerprint_layout\.tsv + required: False + description: Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. + is_qa_qc: False + - + pattern: raw\/images\/.* + required: True + description: Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] + - + pattern: raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) + required: True + description: Raw microscope file for the experiment + is_qa_qc: False + - + pattern: lab_processed\/.* + required: True + description: Experiment files that were processed by the lab generating the data. + - + pattern: lab_processed\/images\/.* + required: True + description: Processed image files + - + pattern: lab_processed\/images\/[^\/]+\.ome\.tiff + required: True + description: OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. + is_qa_qc: False + example: lab_processed/images/HBM892.MDXS.293.ome.tiff + - + pattern: lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv + required: True + description: This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed + is_qa_qc: False + - + pattern: lab_processed\/transformations\/.* + required: False + description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). + - + pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + required: False + description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). + is_qa_qc: False + - + pattern: qa_qc\/.* + required: True + description: Directory containing QA and/or QC information. + - + pattern: qa_qc\/resolution_report\/.* + required: True + description: Directory containing the results of resolution tests and/or vendor preventative maintenance reports. + - + pattern: qa_qc\/resolution_report\/resolution\.txt + required: False + description: This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. + - + pattern: qa_qc\/resolution_report\/[^\/]+\.pdf + required: False + description: This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. + - + pattern: qa_qc\/illumination_report\/.* + required: True + description: Directory containing the results of illumination tests and/or vendor preventative maintenance reports. + - + pattern: qa_qc\/illumination_report\/illumination.txt + required: False + description: This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. + - + pattern: qa_qc\/illumination_report\/[^\/]+\.pdf + required: False + description: This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. + - + pattern: lab_processed\/annotations\/.* + required: False + description: Directory containing segmentation masks. + dependency: segmentation-masks-v2 diff --git a/src/ingest_validation_tools/directory-schemas/second-harmonic-generation-v2.yaml b/src/ingest_validation_tools/directory-schemas/second-harmonic-generation-v2.yaml index 6cea6f46a..57a6c3add 100644 --- a/src/ingest_validation_tools/directory-schemas/second-harmonic-generation-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/second-harmonic-generation-v2.yaml @@ -1,4 +1,103 @@ -draft: true files: - - draft_link: 'https://docs.google.com/spreadsheets/d/1KLY5iXZbbb_5RNR_lZgGSqHiAKBbe34YrtrywSuUC3M' \ No newline at end of file + pattern: extras\/.* + required: True + description: Folder for general lab-specific files related to the dataset. [Exists in all assays] + - + pattern: extras\/microscope_hardware\.json + required: True + description: A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: extras\/microscope_settings\.json + required: True + description: A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: raw\/.* + required: True + description: Raw data files for the experiment. + - + pattern: raw\/channel_layout\.tsv + required: True + description: Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. + is_qa_qc: False + - + pattern: raw\/lightpath_configuration\.tsv + required: False + description: This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. + - + pattern: raw\/fingerprint_layout\.tsv + required: False + description: Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. + is_qa_qc: False + - + pattern: raw\/images\/.* + required: True + description: Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] + - + pattern: raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) + required: True + description: Raw microscope file for the experiment + is_qa_qc: False + - + pattern: lab_processed\/.* + required: True + description: Experiment files that were processed by the lab generating the data. + - + pattern: lab_processed\/images\/.* + required: True + description: Processed image files + - + pattern: lab_processed\/images\/[^\/]+\.ome\.tiff + required: True + description: OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. + is_qa_qc: False + example: lab_processed/images/HBM892.MDXS.293.ome.tiff + - + pattern: lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv + required: True + description: This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed + is_qa_qc: False + - + pattern: lab_processed\/transformations\/.* + required: False + description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). + - + pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + required: False + description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). + is_qa_qc: False + - + pattern: qa_qc\/.* + required: True + description: Directory containing QA and/or QC information. + - + pattern: qa_qc\/resolution_report\/.* + required: True + description: Directory containing the results of resolution tests and/or vendor preventative maintenance reports. + - + pattern: qa_qc\/resolution_report\/resolution\.txt + required: False + description: This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. + - + pattern: qa_qc\/resolution_report\/[^\/]+\.pdf + required: False + description: This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. + - + pattern: qa_qc\/illumination_report\/.* + required: True + description: Directory containing the results of illumination tests and/or vendor preventative maintenance reports. + - + pattern: qa_qc\/illumination_report\/illumination.txt + required: False + description: This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. + - + pattern: qa_qc\/illumination_report\/[^\/]+\.pdf + required: False + description: This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. + - + pattern: lab_processed\/annotations\/.* + required: False + description: Directory containing segmentation masks. + dependency: segmentation-masks-v2 From e1c94446de02db65c13d90bdba931b36c7fa93b8 Mon Sep 17 00:00:00 2001 From: j-uranic <117292295+j-uranic@users.noreply.github.com> Date: Tue, 5 Dec 2023 15:40:39 -0500 Subject: [PATCH 02/11] Juranic/fix mxif (#1269) * Update CHANGELOG.md * Update thick-section-multiphoton-mxif-v2.yaml Update to next-gen directory schema * Docs: Update docs * Docs: Remove unused schemas * Docs: Update docs --------- Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/field-assays.yaml | 2 - docs/field-schemas.xlsx | Bin 33299 -> 33293 bytes docs/field-schemas.yaml | 2 - docs/mxif/current/README.md | 1 - docs/mxif/current/index.md | 64 ----------- .../current/index.md | 35 +++++- .../directory-schemas/mxif-v2.yaml | 103 ------------------ .../thick-section-multiphoton-mxif-v2.yaml | 103 +++++++++++++++++- .../table-schemas/assays/mxif-v2.yaml | 21 ---- 10 files changed, 136 insertions(+), 196 deletions(-) delete mode 100644 docs/mxif/current/README.md delete mode 100644 docs/mxif/current/index.md delete mode 100644 src/ingest_validation_tools/directory-schemas/mxif-v2.yaml delete mode 100644 src/ingest_validation_tools/table-schemas/assays/mxif-v2.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 53bbeaf09..dd593f706 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,7 @@ - Update MALDI, SIMS, DESI, Visium no probes, and HiFi-Slide directory schemas - Fix paths in Histology, MIBI, IMC2D, AF, Confocal, Light Sheet, and Visium with probes directory schemas - Add CODEX, Thick section Multiphoton MxIF, Second Harmonic Generation, and Enhanced Stimulated Raman Spectroscopy (SRS) next-gen directory schemas +- Move Thick section Multiphoton MxIF next-gen directory schema to placeholder file ## v0.0.15 - 2023-04-04 diff --git a/docs/field-assays.yaml b/docs/field-assays.yaml index 904839d04..0f9894221 100644 --- a/docs/field-assays.yaml +++ b/docs/field-assays.yaml @@ -837,7 +837,6 @@ is_cedar: - Micro CT - Molecular Cartography - Multiplex Ion Beam Imaging -- MxIF - OCT - Organ - PAS microscopy @@ -1585,7 +1584,6 @@ parent_id: - Micro CT - Molecular Cartography - Multiplex Ion Beam Imaging -- MxIF - OCT - PhenoCycler - Publication diff --git a/docs/field-schemas.xlsx b/docs/field-schemas.xlsx index e4639602dcf04532c025828a0f2d8503afc14dbb..8ec5c4ecaf53f272fbfa0edec9f7f32516ee6c91 100644 GIT binary patch delta 7403 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 LMA@(L^hoeO>rT+7 diff --git a/docs/field-schemas.yaml b/docs/field-schemas.yaml index 5cd1784d4..6fd57f094 100644 --- a/docs/field-schemas.yaml +++ b/docs/field-schemas.yaml @@ -575,7 +575,6 @@ is_cedar: - mibi - microct - mri -- mxif - nano-splits - oct - organ @@ -985,7 +984,6 @@ parent_id: - mibi - microct - mri -- mxif - oct - phenocycler - publication diff --git a/docs/mxif/current/README.md b/docs/mxif/current/README.md deleted file mode 100644 index 522c0f7e4..000000000 --- a/docs/mxif/current/README.md +++ /dev/null @@ -1 +0,0 @@ -Moved to [github pages](https://hubmapconsortium.github.io/ingest-validation-tools/mxif/). \ No newline at end of file diff --git a/docs/mxif/current/index.md b/docs/mxif/current/index.md deleted file mode 100644 index 968d9f78d..000000000 --- a/docs/mxif/current/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: MxIF -schema_name: mxif -category: Multiplex Fluorescence Based Experiment (MxFBE) -all_versions_deprecated: True -exclude_from_index: False -layout: default - ---- - -Related files: - - - -This schema has been incorporated into the cycif schema which can be accessed [here](https://hubmapconsortium.github.io/ingest-validation-tools/cycif/). - -## Metadata schema - - -
Version 2 (current) (deprecated) -We do not expect to receive any new data of this assay type. -If you are planning to submit new data of this assay type, reach out to help@hubmapconsortium.org. -
- - - -
- -## Directory schemas -Version 2 (use this one) - -| pattern | required? | description | dependent on | -| --- | --- | --- | --- | -| extras\/.* | ✓ | Folder for general lab-specific files related to the dataset. [Exists in all assays] | | -| extras\/microscope_hardware\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | -| extras\/microscope_settings\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | -| raw\/.* | ✓ | Raw data files for the experiment. | | -| raw\/channel_layout\.tsv | ✓ | Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. | | -| raw\/lightpath_configuration\.tsv | | This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. | | -| raw\/fingerprint_layout\.tsv | | Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. | | -| raw\/images\/.* | ✓ | Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] | | -| raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) | ✓ | Raw microscope file for the experiment | | -| lab_processed\/.* | ✓ | Experiment files that were processed by the lab generating the data. | | -| lab_processed\/images\/.* | ✓ | Processed image files | | -| lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | -| lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | -| lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | -| qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | -| qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | -| qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | -| qa_qc\/resolution_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. | | -| qa_qc\/illumination_report\/.* | ✓ | Directory containing the results of illumination tests and/or vendor preventative maintenance reports. | | -| qa_qc\/illumination_report\/illumination.txt | | This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. | | -| qa_qc\/illumination_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. | | -| lab_processed\/annotations\/.* | | Directory containing segmentation masks. | | -| lab_processed\/annotations\/[^\/]+\.segmentations\.ome\.tiff | | The segmentation masks should be stored as multi-channel pyramidal OME TIFF bitmasks with one channel per mask, where a single mask contains all instances of a type of object (e.g., all cells, a class of FTUs, etc). The class of objects contained in the mask is documented in the segmentation-masks.csv file. Each individual object in a mask should be represented by a unique integer pixel value starting at 1, with 0 meaning background (e.g., all pixels belonging to the first instance of a T-cell have a value of 1, the pixels for the second instance of a T-cell have a value of 2, etc). The pixel values should be unique within a mask. FTUs and other structural elements should be captured the same way as cells with segmentation masks and the appropriate channel feature definitions. | lab_processed\/annotations\/.* | -| lab_processed\/annotations\/segmentation-masks\.csv | | This file contains details about each mask, with one row per mask. Each column in this file contains details describing the mask (e.g., channel number, mask name, ontological ID, etc). Each mask is stored as a channel in the segmentations.ome.tiff file and the mask name should be ontologically based and linked to the ASCT+B table where possible. The number of rows in this file should equal the number of channels in the segmentations.ome.tiff. For example, one row in this file would ontologically describe cells, if the segmentations.ome.tiff file contained a mask of all cells. A minimum set of fields (required and optional) is included below. If multiple segmentations.ome.tiff files are used, this segmentation-masks.csv file should document the masks across all of the OME TIFF files. | lab_processed\/annotations\/.* | -| lab_processed\/annotations\/[^\/]+-objects\.csv | | This is a matrix where each row describes an individual object (e.g., one row per cell in the case where a mask contains all cells) and columns are features (i.e., object type, marker intensity, classification strategies, etc). One file should be created per mask with the name of the mask prepended to the file name. For example, if there’s a cell segmentation map called “cells” then you would include a file called “cells-objects.csv” and that file would contain one row per cell in the “cells” mask and one column per feature, such as marker intensity and/or cell type. A minimum set of fields (required and optional) is included below. | lab_processed\/annotations\/.* | -| lab_processed\/annotations\/[^\/]+\.geojson | | A GeoJSON file(s) containing the geometries of each object within a mask. For example, if the mask contains multiple FTUs, multiple cells, etc, each of the objects in the mask would be independently documented in the GeoJSON file. There would be a single GeoJSON file per mask and the name of the file should be the name of the mask. If this file is generated by QuPath, the coordinates will be in pixel units with the origin (0, 0) as the top left corner of the full-resolution image. | lab_processed\/annotations\/.* | -| lab_processed\/annotations\/tissue-boundary\.geojson | | **[QA/QC]** If the boundaries of the tissue have been identified (e.g., by manual efforts), then the boundary geometry can be included as a GeoJSON file named “tissue-boundary.geojson”. | lab_processed\/annotations\/.* | -| lab_processed\/annotations\/regions-of-concern\.csv | | This file and the associated GeoJSON file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain one row per region and include documentation about the region and why it's being flagged. | lab_processed\/annotations\/.* | -| lab_processed\/annotations\/regions-of-concern\.geojson | | This file and the associated CSV file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain the geometric coordinates of each region being flagged. | lab_processed\/annotations\/.* | - diff --git a/docs/thick-section-multiphoton-mxif/current/index.md b/docs/thick-section-multiphoton-mxif/current/index.md index 7f7bdd233..b86af0c7c 100644 --- a/docs/thick-section-multiphoton-mxif/current/index.md +++ b/docs/thick-section-multiphoton-mxif/current/index.md @@ -28,5 +28,38 @@ Related files:
## Directory schemas -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) +Version 2 (use this one) + +| pattern | required? | description | dependent on | +| --- | --- | --- | --- | +| extras\/.* | ✓ | Folder for general lab-specific files related to the dataset. [Exists in all assays] | | +| extras\/microscope_hardware\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| extras\/microscope_settings\.json | ✓ | **[QA/QC]** A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. | | +| raw\/.* | ✓ | Raw data files for the experiment. | | +| raw\/channel_layout\.tsv | ✓ | Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. | | +| raw\/lightpath_configuration\.tsv | | This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. | | +| raw\/fingerprint_layout\.tsv | | Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. | | +| raw\/images\/.* | ✓ | Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] | | +| raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) | ✓ | Raw microscope file for the experiment | | +| lab_processed\/.* | ✓ | Experiment files that were processed by the lab generating the data. | | +| lab_processed\/images\/.* | ✓ | Processed image files | | +| lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | +| lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | +| lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | +| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | +| qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | +| qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | +| qa_qc\/resolution_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. | | +| qa_qc\/illumination_report\/.* | ✓ | Directory containing the results of illumination tests and/or vendor preventative maintenance reports. | | +| qa_qc\/illumination_report\/illumination.txt | | This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. | | +| qa_qc\/illumination_report\/[^\/]+\.pdf | | This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. | | +| lab_processed\/annotations\/.* | | Directory containing segmentation masks. | | +| lab_processed\/annotations\/[^\/]+\.segmentations\.ome\.tiff | | The segmentation masks should be stored as multi-channel pyramidal OME TIFF bitmasks with one channel per mask, where a single mask contains all instances of a type of object (e.g., all cells, a class of FTUs, etc). The class of objects contained in the mask is documented in the segmentation-masks.csv file. Each individual object in a mask should be represented by a unique integer pixel value starting at 1, with 0 meaning background (e.g., all pixels belonging to the first instance of a T-cell have a value of 1, the pixels for the second instance of a T-cell have a value of 2, etc). The pixel values should be unique within a mask. FTUs and other structural elements should be captured the same way as cells with segmentation masks and the appropriate channel feature definitions. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/segmentation-masks\.csv | | This file contains details about each mask, with one row per mask. Each column in this file contains details describing the mask (e.g., channel number, mask name, ontological ID, etc). Each mask is stored as a channel in the segmentations.ome.tiff file and the mask name should be ontologically based and linked to the ASCT+B table where possible. The number of rows in this file should equal the number of channels in the segmentations.ome.tiff. For example, one row in this file would ontologically describe cells, if the segmentations.ome.tiff file contained a mask of all cells. A minimum set of fields (required and optional) is included below. If multiple segmentations.ome.tiff files are used, this segmentation-masks.csv file should document the masks across all of the OME TIFF files. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+-objects\.csv | | This is a matrix where each row describes an individual object (e.g., one row per cell in the case where a mask contains all cells) and columns are features (i.e., object type, marker intensity, classification strategies, etc). One file should be created per mask with the name of the mask prepended to the file name. For example, if there’s a cell segmentation map called “cells” then you would include a file called “cells-objects.csv” and that file would contain one row per cell in the “cells” mask and one column per feature, such as marker intensity and/or cell type. A minimum set of fields (required and optional) is included below. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/[^\/]+\.geojson | | A GeoJSON file(s) containing the geometries of each object within a mask. For example, if the mask contains multiple FTUs, multiple cells, etc, each of the objects in the mask would be independently documented in the GeoJSON file. There would be a single GeoJSON file per mask and the name of the file should be the name of the mask. If this file is generated by QuPath, the coordinates will be in pixel units with the origin (0, 0) as the top left corner of the full-resolution image. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/tissue-boundary\.geojson | | **[QA/QC]** If the boundaries of the tissue have been identified (e.g., by manual efforts), then the boundary geometry can be included as a GeoJSON file named “tissue-boundary.geojson”. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.csv | | This file and the associated GeoJSON file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain one row per region and include documentation about the region and why it's being flagged. | lab_processed\/annotations\/.* | +| lab_processed\/annotations\/regions-of-concern\.geojson | | This file and the associated CSV file can be used to denote any regions in the image that may contain QA/QC concerns. For example, if there are folds in the tissue, the region of the fold can be highlighted. This file should contain the geometric coordinates of each region being flagged. | lab_processed\/annotations\/.* | diff --git a/src/ingest_validation_tools/directory-schemas/mxif-v2.yaml b/src/ingest_validation_tools/directory-schemas/mxif-v2.yaml deleted file mode 100644 index 57a6c3add..000000000 --- a/src/ingest_validation_tools/directory-schemas/mxif-v2.yaml +++ /dev/null @@ -1,103 +0,0 @@ -files: - - - pattern: extras\/.* - required: True - description: Folder for general lab-specific files related to the dataset. [Exists in all assays] - - - pattern: extras\/microscope_hardware\.json - required: True - description: A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. - is_qa_qc: True - - - pattern: extras\/microscope_settings\.json - required: True - description: A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. - is_qa_qc: True - - - pattern: raw\/.* - required: True - description: Raw data files for the experiment. - - - pattern: raw\/channel_layout\.tsv - required: True - description: Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. - is_qa_qc: False - - - pattern: raw\/lightpath_configuration\.tsv - required: False - description: This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. - - - pattern: raw\/fingerprint_layout\.tsv - required: False - description: Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. - is_qa_qc: False - - - pattern: raw\/images\/.* - required: True - description: Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] - - - pattern: raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) - required: True - description: Raw microscope file for the experiment - is_qa_qc: False - - - pattern: lab_processed\/.* - required: True - description: Experiment files that were processed by the lab generating the data. - - - pattern: lab_processed\/images\/.* - required: True - description: Processed image files - - - pattern: lab_processed\/images\/[^\/]+\.ome\.tiff - required: True - description: OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. - is_qa_qc: False - example: lab_processed/images/HBM892.MDXS.293.ome.tiff - - - pattern: lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv - required: True - description: This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed - is_qa_qc: False - - - pattern: lab_processed\/transformations\/.* - required: False - description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt - required: False - description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). - is_qa_qc: False - - - pattern: qa_qc\/.* - required: True - description: Directory containing QA and/or QC information. - - - pattern: qa_qc\/resolution_report\/.* - required: True - description: Directory containing the results of resolution tests and/or vendor preventative maintenance reports. - - - pattern: qa_qc\/resolution_report\/resolution\.txt - required: False - description: This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. - - - pattern: qa_qc\/resolution_report\/[^\/]+\.pdf - required: False - description: This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. - - - pattern: qa_qc\/illumination_report\/.* - required: True - description: Directory containing the results of illumination tests and/or vendor preventative maintenance reports. - - - pattern: qa_qc\/illumination_report\/illumination.txt - required: False - description: This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. - - - pattern: qa_qc\/illumination_report\/[^\/]+\.pdf - required: False - description: This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. - - - pattern: lab_processed\/annotations\/.* - required: False - description: Directory containing segmentation masks. - dependency: segmentation-masks-v2 diff --git a/src/ingest_validation_tools/directory-schemas/thick-section-multiphoton-mxif-v2.yaml b/src/ingest_validation_tools/directory-schemas/thick-section-multiphoton-mxif-v2.yaml index 6cea6f46a..57a6c3add 100644 --- a/src/ingest_validation_tools/directory-schemas/thick-section-multiphoton-mxif-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/thick-section-multiphoton-mxif-v2.yaml @@ -1,4 +1,103 @@ -draft: true files: - - draft_link: 'https://docs.google.com/spreadsheets/d/1KLY5iXZbbb_5RNR_lZgGSqHiAKBbe34YrtrywSuUC3M' \ No newline at end of file + pattern: extras\/.* + required: True + description: Folder for general lab-specific files related to the dataset. [Exists in all assays] + - + pattern: extras\/microscope_hardware\.json + required: True + description: A file generated by the micro-meta app that contains a description of the hardware components of the microscope. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: extras\/microscope_settings\.json + required: True + description: A file generated by the micro-meta app that contains a description of the settings that were used to acquire the image data. Email HuBMAP Consortium Help Desk if help is required in generating this document. + is_qa_qc: True + - + pattern: raw\/.* + required: True + description: Raw data files for the experiment. + - + pattern: raw\/channel_layout\.tsv + required: True + description: Table that includes a dictionary for channel to moiety, which may be a protein given in an OMAP panel or captured in the ASCT+B table. + is_qa_qc: False + - + pattern: raw\/lightpath_configuration\.tsv + required: False + description: This file documents the light path setttings not captured in the OME-TIFF - will be deprecated upon the implementation of MicroMeta. + - + pattern: raw\/fingerprint_layout\.tsv + required: False + description: Table that includes a dictionary for channel to moiety which is determined from spectral clustering and may include lipids, protein, etc. This file is specific to hyper-spectral imaging. + is_qa_qc: False + - + pattern: raw\/images\/.* + required: True + description: Raw image files. Using this subdirectory allows for harmonization with other imaging assays. [This directory must include at least one raw file.] + - + pattern: raw\/images\/[^\/]+\.(?:xml|nd2|oir|lif|czi|tiff) + required: True + description: Raw microscope file for the experiment + is_qa_qc: False + - + pattern: lab_processed\/.* + required: True + description: Experiment files that were processed by the lab generating the data. + - + pattern: lab_processed\/images\/.* + required: True + description: Processed image files + - + pattern: lab_processed\/images\/[^\/]+\.ome\.tiff + required: True + description: OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. + is_qa_qc: False + example: lab_processed/images/HBM892.MDXS.293.ome.tiff + - + pattern: lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv + required: True + description: This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed + is_qa_qc: False + - + pattern: lab_processed\/transformations\/.* + required: False + description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). + - + pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + required: False + description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). + is_qa_qc: False + - + pattern: qa_qc\/.* + required: True + description: Directory containing QA and/or QC information. + - + pattern: qa_qc\/resolution_report\/.* + required: True + description: Directory containing the results of resolution tests and/or vendor preventative maintenance reports. + - + pattern: qa_qc\/resolution_report\/resolution\.txt + required: False + description: This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. + - + pattern: qa_qc\/resolution_report\/[^\/]+\.pdf + required: False + description: This file is a pdf from a vendor preventative maintenance visit or resolution check tool demonstrating resolution. This file may include illumination test results. + - + pattern: qa_qc\/illumination_report\/.* + required: True + description: Directory containing the results of illumination tests and/or vendor preventative maintenance reports. + - + pattern: qa_qc\/illumination_report\/illumination.txt + required: False + description: This file summarizes the results of illumination tests or vendor reports from preventative maintenance visits. + - + pattern: qa_qc\/illumination_report\/[^\/]+\.pdf + required: False + description: This file is a pdf from a vendor preventative maintenance visit or illumination check tool demonstrating illumination intensity. + - + pattern: lab_processed\/annotations\/.* + required: False + description: Directory containing segmentation masks. + dependency: segmentation-masks-v2 diff --git a/src/ingest_validation_tools/table-schemas/assays/mxif-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/mxif-v2.yaml deleted file mode 100644 index 194dfc0d9..000000000 --- a/src/ingest_validation_tools/table-schemas/assays/mxif-v2.yaml +++ /dev/null @@ -1,21 +0,0 @@ -deprecated: True -description_md: This schema has been incorporated into the cycif schema which can be - accessed [here](https://hubmapconsortium.github.io/ingest-validation-tools/cycif/). -fields: -- name: is_cedar - description: 'Identifies whether the version is hosted by CEDAR' - example: '' -- name: assay_category - constraints: - enum: - - mxfbe -- name: assay_type - constraints: - enum: - - MxIF -- name: parent_id - description: "UUID or HuBMAP ID of parent" - example: "ec2ccf5a3436b11d0c7186b74ad4673d" - custom_constraints: - url: - prefix: "https://entity.api.hubmapconsortium.org/entities/" \ No newline at end of file From 210a0efc06097bc891ae594ab705f22e4ad107eb Mon Sep 17 00:00:00 2001 From: j-uranic <117292295+j-uranic@users.noreply.github.com> Date: Thu, 7 Dec 2023 13:49:37 -0500 Subject: [PATCH 03/11] Juranic/dirschema filepath update (#1270) * Update visium-no-probes-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update histology-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update af-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update thick-section-multiphoton-mxif-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update second-harmonic-generation-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update enhanced-srs-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update confocal-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update lightsheet-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update maldi-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update sims-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update desi-v2.yaml Update lab_processed/transformations/transformations.txt to lab_processed/transformations/*.txt * Update CHANGELOG.md Update file path in 11 directory schemas. * Docs: Update docs --------- Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/af/current/index.md | 2 +- docs/confocal/current/index.md | 2 +- docs/desi/current/index.md | 2 +- docs/enhanced-srs/current/index.md | 2 +- docs/histology/current/index.md | 2 +- docs/lightsheet/current/index.md | 2 +- docs/maldi/current/index.md | 2 +- docs/second-harmonic-generation/current/index.md | 2 +- docs/sims/current/index.md | 2 +- docs/thick-section-multiphoton-mxif/current/index.md | 2 +- docs/visium-no-probes/current/index.md | 2 +- src/ingest_validation_tools/directory-schemas/af-v2.yaml | 2 +- src/ingest_validation_tools/directory-schemas/confocal-v2.yaml | 2 +- src/ingest_validation_tools/directory-schemas/desi-v2.yaml | 2 +- .../directory-schemas/enhanced-srs-v2.yaml | 2 +- .../directory-schemas/histology-v2.yaml | 2 +- .../directory-schemas/lightsheet-v2.yaml | 2 +- src/ingest_validation_tools/directory-schemas/maldi-v2.yaml | 3 ++- .../directory-schemas/second-harmonic-generation-v2.yaml | 2 +- src/ingest_validation_tools/directory-schemas/sims-v2.yaml | 2 +- .../directory-schemas/thick-section-multiphoton-mxif-v2.yaml | 2 +- .../directory-schemas/visium-no-probes-v2.yaml | 3 +-- 23 files changed, 24 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd593f706..83af2652c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,6 +61,7 @@ - Fix paths in Histology, MIBI, IMC2D, AF, Confocal, Light Sheet, and Visium with probes directory schemas - Add CODEX, Thick section Multiphoton MxIF, Second Harmonic Generation, and Enhanced Stimulated Raman Spectroscopy (SRS) next-gen directory schemas - Move Thick section Multiphoton MxIF next-gen directory schema to placeholder file +- Update file path in Visium no probes, Histology, AF, MxIF, SHG, SRS, Confocal, Light Sheet, MALDI, SIMS, DESI ## v0.0.15 - 2023-04-04 diff --git a/docs/af/current/index.md b/docs/af/current/index.md index 53fdb9b38..0984f22cd 100644 --- a/docs/af/current/index.md +++ b/docs/af/current/index.md @@ -44,7 +44,7 @@ This schema is for autofluorescence (AF). For an example of an AF dataset & dire | lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | | lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | | qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | | qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | | qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | diff --git a/docs/confocal/current/index.md b/docs/confocal/current/index.md index 6294cb534..85d80a57e 100644 --- a/docs/confocal/current/index.md +++ b/docs/confocal/current/index.md @@ -44,7 +44,7 @@ Related files: | lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | | lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | | qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | | qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | | qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | diff --git a/docs/desi/current/index.md b/docs/desi/current/index.md index 6d7732684..f5d43dc5e 100644 --- a/docs/desi/current/index.md +++ b/docs/desi/current/index.md @@ -43,7 +43,7 @@ See the following link for the set of fields that are required in the OME TIFF f | lab_processed\/images\/[^\/]+\.ome\.tiff | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | lab_processed\/transformations\/.* | | Directory containing image transformations. | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformations/map back to autofluorescence microscopy (related) data | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformations/map back to autofluorescence microscopy (related) data | | lab_processed\/annotations\/.* | ✓ | Directory containing annotations | | lab_processed\/annotations\/[^\/]+_MolecularAssignments\.tsv | ✓ | TSV file containing the m/z, molecular assignment, etc. | diff --git a/docs/enhanced-srs/current/index.md b/docs/enhanced-srs/current/index.md index 868a5ba3c..240a06a1b 100644 --- a/docs/enhanced-srs/current/index.md +++ b/docs/enhanced-srs/current/index.md @@ -46,7 +46,7 @@ See the following link for the set of fields that are required in the OME TIFF f | lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | | lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | | qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | | qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | | qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | diff --git a/docs/histology/current/index.md b/docs/histology/current/index.md index 1aeb4e071..b4321f384 100644 --- a/docs/histology/current/index.md +++ b/docs/histology/current/index.md @@ -43,7 +43,7 @@ See the following link for the set of fields that are required in the OME TIFF f | lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed here | | | lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | | lab_processed\/probabilities\/.* | | Directory containing probabilities pertaining to lab processed data (e.g., from Ilastik pixel classification). | | | lab_processed\/probabilities\/[^\/]+\.tiff | | **[QA/QC]** A TIFF file that contains pixel probabilities. | | | lab_processed\/annotations\/.* | | Directory containing segmentation masks. | | diff --git a/docs/lightsheet/current/index.md b/docs/lightsheet/current/index.md index a112e9a7a..472f2c7e7 100644 --- a/docs/lightsheet/current/index.md +++ b/docs/lightsheet/current/index.md @@ -45,7 +45,7 @@ See the following link for the set of fields that are required in the OME TIFF f | lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | | lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | | qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | | qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | | qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | diff --git a/docs/maldi/current/index.md b/docs/maldi/current/index.md index f88d8431a..dd7f0275f 100644 --- a/docs/maldi/current/index.md +++ b/docs/maldi/current/index.md @@ -43,7 +43,7 @@ See the following link for the set of fields that are required in the OME TIFF f | lab_processed\/images\/[^\/]+\.ome\.tiff | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | lab_processed\/transformations\/.* | | Directory containing image transformations. | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformations/map back to autofluorescence microscopy (related) data | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformations/map back to autofluorescence microscopy (related) data | | lab_processed\/annotations\/.* | ✓ | Directory containing annotations | | lab_processed\/annotations\/[^\/]+_MolecularAssignments\.tsv | ✓ | TSV file containing the m/z, molecular assignment, etc. | diff --git a/docs/second-harmonic-generation/current/index.md b/docs/second-harmonic-generation/current/index.md index 35ae3bc3f..20a5a784a 100644 --- a/docs/second-harmonic-generation/current/index.md +++ b/docs/second-harmonic-generation/current/index.md @@ -46,7 +46,7 @@ Related files: | lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | | lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | | qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | | qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | | qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | diff --git a/docs/sims/current/index.md b/docs/sims/current/index.md index 8613ea8a9..94bd189e1 100644 --- a/docs/sims/current/index.md +++ b/docs/sims/current/index.md @@ -43,7 +43,7 @@ See the following link for the set of fields that are required in the OME TIFF f | lab_processed\/images\/[^\/]+\.ome\.tiff | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | lab_processed\/transformations\/.* | | Directory containing image transformations. | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformations/map back to autofluorescence microscopy (related) data | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformations/map back to autofluorescence microscopy (related) data | | lab_processed\/annotations\/.* | ✓ | Directory containing annotations | | lab_processed\/annotations\/[^\/]+_MolecularAssignments\.tsv | ✓ | TSV file containing the m/z, molecular assignment, etc. | diff --git a/docs/thick-section-multiphoton-mxif/current/index.md b/docs/thick-section-multiphoton-mxif/current/index.md index b86af0c7c..13da46541 100644 --- a/docs/thick-section-multiphoton-mxif/current/index.md +++ b/docs/thick-section-multiphoton-mxif/current/index.md @@ -46,7 +46,7 @@ Related files: | lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. See the following link for the set of fields that are required in the OME TIFF file XML header. | | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | | lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | | qa_qc\/.* | ✓ | Directory containing QA and/or QC information. | | | qa_qc\/resolution_report\/.* | ✓ | Directory containing the results of resolution tests and/or vendor preventative maintenance reports. | | | qa_qc\/resolution_report\/resolution\.txt | | This file summarizes the results of resolution tests or vendor reports from preventative maintenance visits. | | diff --git a/docs/visium-no-probes/current/index.md b/docs/visium-no-probes/current/index.md index e4d147e9f..7c87d3081 100644 --- a/docs/visium-no-probes/current/index.md +++ b/docs/visium-no-probes/current/index.md @@ -49,7 +49,7 @@ REQUIRED - For this assay, you must also prepare and submit two additional metad | lab_processed\/images\/[^\/]+\.ome\.tiff (example: lab_processed/images/HBM892.MDXS.293.ome.tiff) | ✓ | OME-TIFF files (multichannel, multi-layered) produced by the microscopy experiment. If compressed, must use loss-less compression algorithm. For Visium this stitched file should only include the single capture area relevant to the current dataset. For GeoMx there will be one OME TIFF file per slide, with each slide including multiple AOIs. See the following link for the set of fields that are required in the OME TIFF file XML header. | | | lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv | ✓ | This file provides essential documentation pertaining to each channel of the accommpanying OME TIFF. The file should contain one row per OME TIFF channel. The required fields are detailed | | | lab_processed\/transformations\/.* | | This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). | | -| lab_processed\/transformations\/[^\/]*transformations\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | +| lab_processed\/transformations\/[^\/]+\.txt | | Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). | | | lab_processed\/annotations\/.* | | Directory containing segmentation masks. | | | lab_processed\/annotations\/[^\/]+\.segmentations\.ome\.tiff | | The segmentation masks should be stored as multi-channel pyramidal OME TIFF bitmasks with one channel per mask, where a single mask contains all instances of a type of object (e.g., all cells, a class of FTUs, etc). The class of objects contained in the mask is documented in the segmentation-masks.csv file. Each individual object in a mask should be represented by a unique integer pixel value starting at 1, with 0 meaning background (e.g., all pixels belonging to the first instance of a T-cell have a value of 1, the pixels for the second instance of a T-cell have a value of 2, etc). The pixel values should be unique within a mask. FTUs and other structural elements should be captured the same way as cells with segmentation masks and the appropriate channel feature definitions. | lab_processed\/annotations\/.* | | lab_processed\/annotations\/segmentation-masks\.csv | | This file contains details about each mask, with one row per mask. Each column in this file contains details describing the mask (e.g., channel number, mask name, ontological ID, etc). Each mask is stored as a channel in the segmentations.ome.tiff file and the mask name should be ontologically based and linked to the ASCT+B table where possible. The number of rows in this file should equal the number of channels in the segmentations.ome.tiff. For example, one row in this file would ontologically describe cells, if the segmentations.ome.tiff file contained a mask of all cells. A minimum set of fields (required and optional) is included below. If multiple segmentations.ome.tiff files are used, this segmentation-masks.csv file should document the masks across all of the OME TIFF files. | lab_processed\/annotations\/.* | diff --git a/src/ingest_validation_tools/directory-schemas/af-v2.yaml b/src/ingest_validation_tools/directory-schemas/af-v2.yaml index 30b917f15..0b34117bf 100644 --- a/src/ingest_validation_tools/directory-schemas/af-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/af-v2.yaml @@ -55,7 +55,7 @@ files: required: False description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). is_qa_qc: False diff --git a/src/ingest_validation_tools/directory-schemas/confocal-v2.yaml b/src/ingest_validation_tools/directory-schemas/confocal-v2.yaml index 44d4c9cd6..24c6ef057 100644 --- a/src/ingest_validation_tools/directory-schemas/confocal-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/confocal-v2.yaml @@ -55,7 +55,7 @@ files: required: False description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). is_qa_qc: False diff --git a/src/ingest_validation_tools/directory-schemas/desi-v2.yaml b/src/ingest_validation_tools/directory-schemas/desi-v2.yaml index 10ef5b573..85afe980c 100644 --- a/src/ingest_validation_tools/directory-schemas/desi-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/desi-v2.yaml @@ -45,7 +45,7 @@ files: required: False description: Directory containing image transformations. - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformations/map back to autofluorescence microscopy (related) data - diff --git a/src/ingest_validation_tools/directory-schemas/enhanced-srs-v2.yaml b/src/ingest_validation_tools/directory-schemas/enhanced-srs-v2.yaml index 57a6c3add..40e374130 100644 --- a/src/ingest_validation_tools/directory-schemas/enhanced-srs-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/enhanced-srs-v2.yaml @@ -64,7 +64,7 @@ files: required: False description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). is_qa_qc: False diff --git a/src/ingest_validation_tools/directory-schemas/histology-v2.yaml b/src/ingest_validation_tools/directory-schemas/histology-v2.yaml index c6f2a88ca..222fdfa97 100644 --- a/src/ingest_validation_tools/directory-schemas/histology-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/histology-v2.yaml @@ -49,7 +49,7 @@ files: required: False description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). is_qa_qc: False diff --git a/src/ingest_validation_tools/directory-schemas/lightsheet-v2.yaml b/src/ingest_validation_tools/directory-schemas/lightsheet-v2.yaml index 3639072e9..eef40f4bb 100644 --- a/src/ingest_validation_tools/directory-schemas/lightsheet-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/lightsheet-v2.yaml @@ -59,7 +59,7 @@ files: required: False description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). is_qa_qc: False diff --git a/src/ingest_validation_tools/directory-schemas/maldi-v2.yaml b/src/ingest_validation_tools/directory-schemas/maldi-v2.yaml index 10ef5b573..37799ccab 100644 --- a/src/ingest_validation_tools/directory-schemas/maldi-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/maldi-v2.yaml @@ -45,7 +45,7 @@ files: required: False description: Directory containing image transformations. - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformations/map back to autofluorescence microscopy (related) data - @@ -57,3 +57,4 @@ files: required: True description: TSV file containing the m/z, molecular assignment, etc. + diff --git a/src/ingest_validation_tools/directory-schemas/second-harmonic-generation-v2.yaml b/src/ingest_validation_tools/directory-schemas/second-harmonic-generation-v2.yaml index 57a6c3add..40e374130 100644 --- a/src/ingest_validation_tools/directory-schemas/second-harmonic-generation-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/second-harmonic-generation-v2.yaml @@ -64,7 +64,7 @@ files: required: False description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). is_qa_qc: False diff --git a/src/ingest_validation_tools/directory-schemas/sims-v2.yaml b/src/ingest_validation_tools/directory-schemas/sims-v2.yaml index 10ef5b573..85afe980c 100644 --- a/src/ingest_validation_tools/directory-schemas/sims-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/sims-v2.yaml @@ -45,7 +45,7 @@ files: required: False description: Directory containing image transformations. - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformations/map back to autofluorescence microscopy (related) data - diff --git a/src/ingest_validation_tools/directory-schemas/thick-section-multiphoton-mxif-v2.yaml b/src/ingest_validation_tools/directory-schemas/thick-section-multiphoton-mxif-v2.yaml index 57a6c3add..40e374130 100644 --- a/src/ingest_validation_tools/directory-schemas/thick-section-multiphoton-mxif-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/thick-section-multiphoton-mxif-v2.yaml @@ -64,7 +64,7 @@ files: required: False description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). is_qa_qc: False diff --git a/src/ingest_validation_tools/directory-schemas/visium-no-probes-v2.yaml b/src/ingest_validation_tools/directory-schemas/visium-no-probes-v2.yaml index e81280ff9..828ad2784 100644 --- a/src/ingest_validation_tools/directory-schemas/visium-no-probes-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/visium-no-probes-v2.yaml @@ -68,7 +68,7 @@ files: required: False description: This directory contains transformation matrices that capture how each modality is aligned with the other and can be used to visualize overlays of multimodal data. This is needed to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). In these cases data type may have different pixel sizes and slightly different orientations (i.e., one may be rotated relative to another). - - pattern: lab_processed\/transformations\/[^\/]*transformations\.txt + pattern: lab_processed\/transformations\/[^\/]+\.txt required: False description: Transformation matrices used to overlay images from the exact same tissue section (e.g., MALDI imaging mass spec, autofluorescence microscopy, MxIF, histological stains). is_qa_qc: False @@ -77,4 +77,3 @@ files: required: False description: Directory containing segmentation masks. dependency: segmentation-masks-v2 - From baaf03400085f5ffd909b92ab9cac68ea1f1902a Mon Sep 17 00:00:00 2001 From: jpuerto-psc <68066250+jpuerto-psc@users.noreply.github.com> Date: Thu, 7 Dec 2023 16:16:41 -0500 Subject: [PATCH 04/11] Jpuerto/remove cedar organ (#1271) * General: Remove CEDAR organ page * General: Remove CEDAR organ page --------- Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/field-assays.yaml | 5 --- docs/field-descriptions.yaml | 3 +- docs/field-entities.yaml | 3 -- docs/field-schemas.xlsx | Bin 33293 -> 33329 bytes docs/field-schemas.yaml | 3 -- docs/organ/current/README.md | 1 - docs/organ/current/index.md | 29 ------------------ .../table-schemas/others/organ-v3.yaml | 20 ------------ 9 files changed, 3 insertions(+), 62 deletions(-) delete mode 100644 docs/organ/current/README.md delete mode 100644 docs/organ/current/index.md delete mode 100644 src/ingest_validation_tools/table-schemas/others/organ-v3.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 83af2652c..cead8c3c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,7 @@ - Add CODEX, Thick section Multiphoton MxIF, Second Harmonic Generation, and Enhanced Stimulated Raman Spectroscopy (SRS) next-gen directory schemas - Move Thick section Multiphoton MxIF next-gen directory schema to placeholder file - Update file path in Visium no probes, Histology, AF, MxIF, SHG, SRS, Confocal, Light Sheet, MALDI, SIMS, DESI +- Remove Organ CEDAR page ## v0.0.15 - 2023-04-04 diff --git a/docs/field-assays.yaml b/docs/field-assays.yaml index 0f9894221..faadd87a7 100644 --- a/docs/field-assays.yaml +++ b/docs/field-assays.yaml @@ -233,7 +233,6 @@ assay_category: - NanoDESI - NanoPOTS - OCT -- Organ - PAS microscopy - PhenoCycler - RNAseq @@ -319,7 +318,6 @@ assay_type: - NanoDESI - NanoPOTS - OCT -- Organ - PAS microscopy - PhenoCycler - Publication @@ -838,7 +836,6 @@ is_cedar: - Molecular Cartography - Multiplex Ion Beam Imaging - OCT -- Organ - PAS microscopy - PhenoCycler - Publication @@ -1534,8 +1531,6 @@ operator_email: - snRNAseq - snRNAseq-10xGenomics-v2 - snRNAseq-10xGenomics-v3 -organ_id: -- Organ overall_protocols_io_doi: - AF - CE-MS diff --git a/docs/field-descriptions.yaml b/docs/field-descriptions.yaml index 70164f270..c0d1798e4 100644 --- a/docs/field-descriptions.yaml +++ b/docs/field-descriptions.yaml @@ -268,7 +268,8 @@ orcid_id: ORCID ID of contributor organ_condition: Health status of the organ at the time of sample recovery. organ_height_unit: Height unit. organ_height_value: The height value of the organ. -organ_id: UUID or HuBMAP ID of organ +organ_id: Unique HuBMAP identifier for the organ. This can be found in the Submission + ID section of a registered donor on the Ingest UI. organ_length_unit: Length unit. organ_length_value: The length value of the organ. organ_volume_unit: Volume unit. diff --git a/docs/field-entities.yaml b/docs/field-entities.yaml index c246b3bcf..81484128b 100644 --- a/docs/field-entities.yaml +++ b/docs/field-entities.yaml @@ -38,11 +38,9 @@ area_value: - sample assay_category: - dataset -- organ - sample assay_type: - dataset -- organ - sample bead_barcode_offset: - dataset @@ -200,7 +198,6 @@ is_cedar: - antibodies - contributors - dataset -- organ - sample is_contact: - contributors diff --git a/docs/field-schemas.xlsx b/docs/field-schemas.xlsx index 8ec5c4ecaf53f272fbfa0edec9f7f32516ee6c91..cb08542b4b0adc81bc90412c745d812f15619412 100644 GIT binary patch delta 19825 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 delta 19822 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 diff --git a/docs/field-schemas.yaml b/docs/field-schemas.yaml index 6fd57f094..b90d9d9fd 100644 --- a/docs/field-schemas.yaml +++ b/docs/field-schemas.yaml @@ -161,7 +161,6 @@ assay_category: - nano - nano-splits - oct -- organ - phenocycler - rnaseq - rnaseq-with-probes @@ -221,7 +220,6 @@ assay_type: - nano - nano-splits - oct -- organ - phenocycler - publication - rnaseq @@ -577,7 +575,6 @@ is_cedar: - mri - nano-splits - oct -- organ - phenocycler - publication - rnaseq diff --git a/docs/organ/current/README.md b/docs/organ/current/README.md deleted file mode 100644 index 55821499e..000000000 --- a/docs/organ/current/README.md +++ /dev/null @@ -1 +0,0 @@ -Moved to [github pages](https://hubmapconsortium.github.io/ingest-validation-tools/organ/). \ No newline at end of file diff --git a/docs/organ/current/index.md b/docs/organ/current/index.md deleted file mode 100644 index eb6da9749..000000000 --- a/docs/organ/current/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Organ -schema_name: organ -category: Organ -all_versions_deprecated: False -exclude_from_index: False -layout: default - ---- -Prepare your metadata based on the latest metadata schema using one of the template files below. See the instructions in the [Metadata Validation Workflow](https://docs.google.com/document/d/1lfgiDGbyO4K4Hz1FMsJjmJd9RdwjShtJqFYNwKpbcZY) document for more information on preparing and validating your metadata.tsv file prior to submission. - -Related files: - - -- [📝 Excel template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/organ/latest/organ.xlsx): For metadata entry. -- [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/organ/latest/organ.tsv): Alternative for metadata entry. - - - - -## Metadata schema - - -Version 3 (use this one) - - - -
- diff --git a/src/ingest_validation_tools/table-schemas/others/organ-v3.yaml b/src/ingest_validation_tools/table-schemas/others/organ-v3.yaml deleted file mode 100644 index f73a32d4c..000000000 --- a/src/ingest_validation_tools/table-schemas/others/organ-v3.yaml +++ /dev/null @@ -1,20 +0,0 @@ -fields: -- name: is_cedar - description: "Identifies whether the version is hosted by CEDAR" - example: "https://openview.metadatacenter.org/templates/https:%2F%2Frepo.metadatacenter.org%2Ftemplates%2F8377b9ba-97bb-4b26-a2ac-2b88d756450f" -- name: assay_category - description: "Each assay is placed into one of the following 4 general categories: generation of images of microscopic entities, identification & quantitation of molecules by mass spectrometry, imaging mass spectrometry, and determination of nucleotide sequence." - constraints: - enum: - - organ -- name: assay_type - description: "The specific type of assay being executed." - constraints: - enum: - - Organ -- name: organ_id - description: "UUID or HuBMAP ID of organ" - example: "ec2ccf5a3436b11d0c7186b74ad4673d" - custom_constraints: - url: - prefix: "https://entity.api.hubmapconsortium.org/entities/" From d99fa564d1faca3cdd2abc78aa76adbf983ad2a0 Mon Sep 17 00:00:00 2001 From: j-uranic <117292295+j-uranic@users.noreply.github.com> Date: Fri, 8 Dec 2023 13:55:12 -0500 Subject: [PATCH 05/11] Juranic/snareseq2 dirschema (#1272) * Create snareseq2-v2.yaml draft Add link to drafted next-gen directory schema for SNARE-seq2 * Update CHANGELOG.md * General: Add SNARE-seq2 docs --------- Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/field-assays.yaml | 1 + docs/field-schemas.xlsx | Bin 33329 -> 33347 bytes docs/field-schemas.yaml | 3 ++ docs/snareseq2/current/README.md | 1 + docs/snareseq2/current/index.md | 28 ++++++++++++++++++ .../directory-schemas/snareseq2-v2.yaml | 5 ++++ .../table-schemas/assays/snareseq2-v2.yaml | 13 ++++++++ 8 files changed, 52 insertions(+) create mode 100644 docs/snareseq2/current/README.md create mode 100644 docs/snareseq2/current/index.md create mode 100644 src/ingest_validation_tools/directory-schemas/snareseq2-v2.yaml create mode 100644 src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index cead8c3c2..2697c27b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -63,6 +63,7 @@ - Move Thick section Multiphoton MxIF next-gen directory schema to placeholder file - Update file path in Visium no probes, Histology, AF, MxIF, SHG, SRS, Confocal, Light Sheet, MALDI, SIMS, DESI - Remove Organ CEDAR page +- Draft next-gen directory schema for SNARE-seq2 ## v0.0.15 - 2023-04-04 diff --git a/docs/field-assays.yaml b/docs/field-assays.yaml index faadd87a7..8e51cedc9 100644 --- a/docs/field-assays.yaml +++ b/docs/field-assays.yaml @@ -842,6 +842,7 @@ is_cedar: - RNAseq - RNAseq (with probes) - SIMS +- SNARE-seq2 - Sample - Sample Block - Sample Section diff --git a/docs/field-schemas.xlsx b/docs/field-schemas.xlsx index cb08542b4b0adc81bc90412c745d812f15619412..2e87a9046d4eed036b8bad27749775d7789d2c54 100644 GIT binary patch delta 10008 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 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) + + + +
+ +## Directory schemas +Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) + diff --git a/src/ingest_validation_tools/directory-schemas/snareseq2-v2.yaml b/src/ingest_validation_tools/directory-schemas/snareseq2-v2.yaml new file mode 100644 index 000000000..1b0016d97 --- /dev/null +++ b/src/ingest_validation_tools/directory-schemas/snareseq2-v2.yaml @@ -0,0 +1,5 @@ +#SNARE-seq2 Directory Schema +draft: true +files: + - + draft_link: 'https://docs.google.com/spreadsheets/d/10Om2iinTwfLn1ySWtovmcm35cQnyg0Pm-rRd0a-eMjc/edit#gid=37240204' diff --git a/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml new file mode 100644 index 000000000..e47c3bab7 --- /dev/null +++ b/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml @@ -0,0 +1,13 @@ +draft: true +fields: +- name: is_cedar + description: 'Identifies whether the version is hosted by CEDAR' + example: 'https://docs.google.com/spreadsheets/d/1YNyMWvDTZzuj8m4fgdwLI6Wht1C3zb_s2kTONEVkZmo' +- name: assay_category + constraints: + enum: + - sequence +- name: assay_type + constraints: + enum: + - SNARE-seq2 \ No newline at end of file From 7143a16661e56b8890a09b3a5b6331d715bf1a3c Mon Sep 17 00:00:00 2001 From: gesinaphillips <117199180+gesinaphillips@users.noreply.github.com> Date: Fri, 8 Dec 2023 16:03:56 -0500 Subject: [PATCH 06/11] Multi-assay support (#1267) * integrating soft assay types endpoint for retrieving assay name and dir structure; changed SchemaVersion to dataclass * added testing * soft assay types integrated to fetch assay name and dir schema; tests updated to work in offline mode and manual online mode * forgot to uncomment lines to run in offline mode * proving out that we don't need YAML files for is_cedar templates in table-schema dir * removing mistakenly committed files * tests broken; sending row to assayclassifier rather than cherry-picking from TSV * fixing a few mistakes, tests still broken because canonical assay names still require translation for local validation * updated additional mock responses to send row data; tests still broken due to scrnaseq-hca, scatacseq, and maldiims examples * updating based on changes to return value of assayclassifier; tests broken because mock responses not yet regenerated * fixing path mistake * updating tests * cleanup * removed code to support extras dir, removed codex-v0 example dir because it is outdated; further cleanup * REDO: removed code to support extras dir, removed codex-v0 example dir because it is outdated; further cleanup * passing version as int for metadata.tsv files containing a version number gets around issue in assayclassifier; re-added good-maldiims and good-scatacseq-metadata-v1 examples because version issue is fixed * added TODO regarding mock responses * updating plugin checking per Joel's suggestion; this still does not use canonical assay name * added a guard against bad sample types based on conversation with Max * fixing syntax mistake * basic proof of concept * updated testing to accommodate multi-assay * testing multi-assay, adding examples; test will fail because no dir schema for test data * adding tests, won't pass because visium-no-probes dir schema needs to be synced * committing good test data * slight refactor * aesthetic changes * updates based on changes to assayclassifier * updates to histology * update to address comment about this logic being confusing * removed repeated logic --- CHANGELOG.md | 2 +- .../MOCK_RESPONSE.json | 2 +- .../bad-cedar-assay-histology/README.md | 25 +- .../README_ONLINE.md | 12 +- .../upload/contributors.tsv | 4 +- .../{ => extras}/microscope_hardware.json | 0 .../{ => extras}/microscope_settings.json | 0 .../{ => extras}/microscope_hardware.json | 0 .../{ => extras}/microscope_settings.json | 0 .../extras/empty-file => unreferenced_file} | 0 .../MOCK_RESPONSE.json | 2 +- .../bad-cedar-dir-histology/README_ONLINE.md | 4 +- .../MOCK_RESPONSE.json | 1 + .../README.md | 9 + .../README_ONLINE.md | 19 + .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff} | 0 .../Visium_9OLC_A4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_A4_S2/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S2/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_I4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_I4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../upload/bad-visium-rnaseq-metadata.tsv | 4 + .../upload/contributors.tsv | 2 + .../upload/good-visium-assay-metadata.tsv | 4 + .../upload/good-visium-histology-metadata.tsv | 4 + .../upload/unreferenced_file | 0 .../MOCK_RESPONSE.json | 1 + .../README.md | 15 + .../README_ONLINE.md | 15 + .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../Visium_9OLC_A4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_A4_S2/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S2/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_I4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_I4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../upload/contributors.tsv | 2 + .../upload/good-visium-assay-metadata.tsv | 4 + .../upload/good-visium-histology-metadata.tsv | 4 + .../upload/good-visium-rnaseq-metadata.tsv | 4 + .../MOCK_RESPONSE.json | 1 + .../README.md | 7 + .../README_ONLINE.md | 7 + .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_A4_S1/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_A4_S2/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_I4_S1/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../upload/bad-visium-assay-metadata.tsv | 4 + .../upload/bad-visium-histology-metadata.tsv | 4 + .../upload/contributors.tsv | 2 + .../MOCK_RESPONSE.json | 1 + .../README.md | 8 + .../README_ONLINE.md | 8 + .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_A4_S1/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_A4_S2/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_I4_S1/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_I4_S3/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../bad-visium-extra-paths-assay-metadata.tsv | 5 + .../upload/contributors.tsv | 2 + .../upload/good-visium-histology-metadata.tsv | 4 + .../upload/good-visium-rnaseq-metadata.tsv | 4 + .../MOCK_RESPONSE.json | 1 + .../README.md | 15 + .../README_ONLINE.md | 15 + .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_A4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_A4_S2/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S2/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_I4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_I4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../upload/contributors.tsv | 2 + .../dataset-1/extras/microscope_hardware.json | 0 .../annotations/segmentation-masks.csv | 0 .../annotations/test-objects.csv | 0 .../annotations/test.segmentations.ome.tiff | 0 .../upload/dataset-1/lab_processed/empty-file | 0 .../dataset-1/lab_processed/images/empty-file | 0 .../images/empty-file.ome-tiff.channels.csv | 0 .../lab_processed/images/empty-file.ome.tiff | 0 .../upload/good-visium-assay-metadata.tsv | 4 + .../upload/good-visium-histology-metadata.tsv | 5 + .../upload/good-visium-rnaseq-metadata.tsv | 4 + .../MOCK_RESPONSE.json | 1 + .../README.md | 8 + .../README_ONLINE.md | 8 + .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_A4_S1/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_A4_S2/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../upload/Visium_9OLC_I4_S1/raw/emptyfile | 0 .../raw/images/faketiff.tiff | 0 ...wrong-type-rnaseq-with-probes-metadata.tsv | 2 + .../upload/contributors.tsv | 2 + .../upload/good-visium-assay-metadata.tsv | 4 + .../upload/good-visium-histology-metadata.tsv | 4 + .../MOCK_RESPONSE.json | 2 +- .../bad-codex-data/MOCK_RESPONSE.json | 2 +- .../bad-missing-data/MOCK_RESPONSE.json | 2 +- .../bad-mixed/MOCK_RESPONSE.json | 1 + examples/dataset-examples/bad-mixed/README.md | 47 ++ .../bad-mixed/README_ONLINE.md | 49 ++ .../not-good-for-either-type.txt | 0 .../bad-mixed/upload/codex-metadata.tsv | 2 + .../bad-mixed/upload/contributors.tsv | 1 + .../bad-mixed/upload/scatacseq-metadata.tsv | 2 + .../bad-no-assay-type/MOCK_RESPONSE.json | 2 +- .../bad-no-assay-type/README.md | 4 +- .../bad-no-assay-type/README_ONLINE.md | 4 +- .../bad-no-such-type/MOCK_RESPONSE.json | 2 +- .../bad-no-such-type/README.md | 2 +- .../bad-no-such-type/README_ONLINE.md | 2 +- .../bad-repeated/MOCK_RESPONSE.json | 2 +- .../dataset-examples/bad-repeated/README.md | 2 +- .../bad-repeated/README_ONLINE.md | 2 +- .../bad-scatacseq-data/MOCK_RESPONSE.json | 2 +- .../bad-scrnaseq-v0/MOCK_RESPONSE.json | 2 +- .../bad-tsv-formats/MOCK_RESPONSE.json | 2 +- .../good-cedar-histology/MOCK_RESPONSE.json | 2 +- .../good-cedar-histology/README.md | 2 +- .../good-cedar-histology/README_ONLINE.md | 2 +- .../upload/contributors.tsv | 4 +- .../MOCK_RESPONSE.json | 1 + .../README.md | 20 + .../README_ONLINE.md | 20 + .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_A4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_A4_S2/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S2/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_I4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_I4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../upload/contributors.tsv | 2 + .../dataset-1/extras/microscope_hardware.json | 0 .../dataset-1/extras/microscope_settings.json | 0 .../annotations/segmentation-masks.csv | 0 .../annotations/test-objects.csv | 0 .../annotations/test.segmentations.ome.tiff | 0 .../upload/dataset-1/lab_processed/empty-file | 0 .../dataset-1/lab_processed/images/empty-file | 0 .../images/empty-file.ome-tiff.channels.csv | 0 .../lab_processed/images/empty-file.ome.tiff | 0 .../upload/dataset-1/raw/images/empty-file | 0 .../dataset-1/raw/images/empty-file.tiff | 0 .../dataset-1/raw/images/empty-file.xml | 0 .../upload/good-visium-assay-metadata.tsv | 4 + .../upload/good-visium-histology-metadata.tsv | 5 + .../upload/good-visium-rnaseq-metadata.tsv | 4 + .../MOCK_RESPONSE.json | 1 + .../good-cedar-multi-assay-visium/README.md | 20 + .../README_ONLINE.md | 20 + .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_A4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_A4_S2/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_A4_S2/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../extras/microscope_hardware.json | 760 ++++++++++++++++++ .../images/Visium.ome-tiff.channels.csv | 3 + .../images/Visium_90LC_A4_S1.ome.tiff | 0 .../Visium_9OLC_I4_S1/raw/empty_file.gpr | 0 .../raw/fastq/RNA/empty_R_file.fastq.gz | 0 .../Visium_9OLC_I4_S1/raw/fastq/empty_file | 0 .../raw/images/faketiff.tiff | 0 .../upload/contributors.tsv | 2 + .../upload/good-visium-assay-metadata.tsv | 4 + .../upload/good-visium-histology-metadata.tsv | 4 + .../upload/good-visium-rnaseq-metadata.tsv | 4 + .../MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../good-maldiims/MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../bad-example/MOCK_RESPONSE.json | 2 +- .../good-example/MOCK_RESPONSE.json | 2 +- .../metadata/bad-metadata/MOCK_RESPONSE.json | 2 +- .../metadata/bad-metadata/README.md | 2 +- .../metadata/good-metadata/MOCK_RESPONSE.json | 2 +- src/ingest_validation_tools/schema_loader.py | 15 +- .../test_validation_utils.py | 38 +- src/ingest_validation_tools/upload.py | 320 +++++--- .../validation_utils.py | 17 +- tests-manual/test-dataset-examples-cedar.sh | 2 +- 282 files changed, 19789 insertions(+), 223 deletions(-) rename examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/{ => extras}/microscope_hardware.json (100%) rename examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/{ => extras}/microscope_settings.json (100%) rename examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/{ => extras}/microscope_hardware.json (100%) rename examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/{ => extras}/microscope_settings.json (100%) rename examples/dataset-examples/bad-cedar-assay-histology/upload/{dataset-1/extras/empty-file => unreferenced_file} (100%) create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/README.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/README_ONLINE.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv rename examples/dataset-examples/{bad-cedar-assay-histology/upload/dataset-2/extras/empty-file => bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff} (100%) create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/bad-visium-rnaseq-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/contributors.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/good-visium-assay-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/good-visium-histology-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/unreferenced_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/README.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/README_ONLINE.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/contributors.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-assay-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-histology-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-rnaseq-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/README.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/README_ONLINE.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/bad-visium-assay-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/bad-visium-histology-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/contributors.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/README.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/README_ONLINE.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/bad-visium-extra-paths-assay-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/contributors.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/good-visium-histology-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/good-visium-rnaseq-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/README.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/README_ONLINE.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/contributors.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/segmentation-masks.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/test-objects.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/test.segmentations.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/empty-file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-assay-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-histology-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-rnaseq-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/README.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/README_ONLINE.md create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/raw/emptyfile create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/bad-wrong-type-rnaseq-with-probes-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/contributors.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/good-visium-assay-metadata.tsv create mode 100644 examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/good-visium-histology-metadata.tsv create mode 100644 examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/bad-mixed/README.md create mode 100644 examples/dataset-examples/bad-mixed/README_ONLINE.md create mode 100644 examples/dataset-examples/bad-mixed/upload/bad-shared-dataset/not-good-for-either-type.txt create mode 100644 examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv create mode 100644 examples/dataset-examples/bad-mixed/upload/contributors.tsv create mode 100644 examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/README.md create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/README_ONLINE.md create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/contributors.tsv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/extras/microscope_settings.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/segmentation-masks.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/test-objects.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/test.segmentations.ome.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/empty-file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file.ome.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file.xml create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-assay-metadata.tsv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-histology-metadata.tsv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-rnaseq-metadata.tsv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/MOCK_RESPONSE.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/README.md create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/README_ONLINE.md create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/contributors.tsv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-assay-metadata.tsv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-histology-metadata.tsv create mode 100644 examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-rnaseq-metadata.tsv diff --git a/CHANGELOG.md b/CHANGELOG.md index 2697c27b8..f59f4a25b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,7 @@ - Update file path in Visium no probes, Histology, AF, MxIF, SHG, SRS, Confocal, Light Sheet, MALDI, SIMS, DESI - Remove Organ CEDAR page - Draft next-gen directory schema for SNARE-seq2 +- Added multi-assay support ## v0.0.15 - 2023-04-04 @@ -103,7 +104,6 @@ - Update DESI and remove NanoDESI - Support for conditional directory validation - ## v0.0.14 - 2022-06-23 - bump tzingo -> 1.2.10 (dependabot) diff --git a/examples/dataset-examples/bad-cedar-assay-histology/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-assay-histology/MOCK_RESPONSE.json index b5f6a3b3f..8ae252fe6 100644 --- a/examples/dataset-examples/bad-cedar-assay-histology/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-assay-histology/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["wrong", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "histology", "description": "Histology", "dir_schema": "histology-v2", "vitessce_hints": []}} \ No newline at end of file +{"Histology": {"args": ["wrong", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-assay-histology/README.md b/examples/dataset-examples/bad-cedar-assay-histology/README.md index 66c438d48..f66d6e0c7 100644 --- a/examples/dataset-examples/bad-cedar-assay-histology/README.md +++ b/examples/dataset-examples/bad-cedar-assay-histology/README.md @@ -1,25 +1,8 @@ ``` -Upload Errors: - TSV Errors: - examples/dataset-examples/bad-cedar-assay-histology/upload/bad-histology-metadata.tsv row 2, column 'contributors_path': - Local Validation Errors: - examples/dataset-examples/bad-cedar-assay-histology/upload/contributors.tsv (as contributors-v1): - - 'Missing fields: ["is_contact"].' - Directory Errors: - examples/dataset-examples/bad-cedar-assay-histology/upload/bad-histology-metadata.tsv, row 2, column data_path: - examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1 (as histology-v2): - Not allowed: - - microscope_hardware.json. - - microscope_settings.json. - Required but missing: - - extras\/microscope_hardware\.json. - examples/dataset-examples/bad-cedar-assay-histology/upload/bad-histology-metadata.tsv, row 3, column data_path: - examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2 (as histology-v2): - Not allowed: - - microscope_hardware.json. - - microscope_settings.json. - Required but missing: - - extras\/microscope_hardware\.json. +Reference Errors: + No References: + Files: + - unreferenced_file. Hint: 'If validation fails because of extra whitespace in the TSV, try: src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' diff --git a/examples/dataset-examples/bad-cedar-assay-histology/README_ONLINE.md b/examples/dataset-examples/bad-cedar-assay-histology/README_ONLINE.md index f29ea0113..555b6ab62 100644 --- a/examples/dataset-examples/bad-cedar-assay-histology/README_ONLINE.md +++ b/examples/dataset-examples/bad-cedar-assay-histology/README_ONLINE.md @@ -2,9 +2,11 @@ Upload Errors: TSV Errors: examples/dataset-examples/bad-cedar-assay-histology/upload/bad-histology-metadata.tsv row 2, column 'contributors_path': - Local Validation Errors: - examples/dataset-examples/bad-cedar-assay-histology/upload/contributors.tsv (as contributors-v1): - - 'Missing fields: ["is_contact"].' + CEDAR Validation Errors: + examples/dataset-examples/bad-cedar-assay-histology/upload/contributors.tsv: + Validation Errors: + - On row 0, column "orcid", value "0000-0002-8928-abcd" fails because of + error "invalidValueFormat". Metadata TSV Validation Errors: CEDAR Validation Errors: examples/dataset-examples/bad-cedar-assay-histology/upload/bad-histology-metadata.tsv: @@ -16,6 +18,10 @@ Metadata TSV Validation Errors: - On row 0, column "parent_sample_id", value "wrong" fails because of error "invalidValueFormat". - On row 1, column "contributors_path", value "" fails because of error "missingRequired". +Reference Errors: + No References: + Files: + - unreferenced_file. Hint: 'If validation fails because of extra whitespace in the TSV, try: src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' diff --git a/examples/dataset-examples/bad-cedar-assay-histology/upload/contributors.tsv b/examples/dataset-examples/bad-cedar-assay-histology/upload/contributors.tsv index f95f3eebf..32175da8b 100644 --- a/examples/dataset-examples/bad-cedar-assay-histology/upload/contributors.tsv +++ b/examples/dataset-examples/bad-cedar-assay-histology/upload/contributors.tsv @@ -1,2 +1,2 @@ -version affiliation first_name last_name middle_name_or_initial name orcid_id -1 will_not_detect_missing Firstname Lastname M. Firstname M. Lastname 0000-0002-8928-741X +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname wrong 0000-0002-8928-abcd test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/microscope_hardware.json b/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/extras/microscope_hardware.json similarity index 100% rename from examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/microscope_hardware.json rename to examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/extras/microscope_hardware.json diff --git a/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/microscope_settings.json b/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/extras/microscope_settings.json similarity index 100% rename from examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/microscope_settings.json rename to examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/extras/microscope_settings.json diff --git a/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/microscope_hardware.json b/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/extras/microscope_hardware.json similarity index 100% rename from examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/microscope_hardware.json rename to examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/extras/microscope_hardware.json diff --git a/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/microscope_settings.json b/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/extras/microscope_settings.json similarity index 100% rename from examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/microscope_settings.json rename to examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/extras/microscope_settings.json diff --git a/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/extras/empty-file b/examples/dataset-examples/bad-cedar-assay-histology/upload/unreferenced_file similarity index 100% rename from examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-1/extras/empty-file rename to examples/dataset-examples/bad-cedar-assay-histology/upload/unreferenced_file diff --git a/examples/dataset-examples/bad-cedar-dir-histology/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-dir-histology/MOCK_RESPONSE.json index c9cc959b2..8aedb836a 100644 --- a/examples/dataset-examples/bad-cedar-dir-histology/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-dir-histology/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "histology", "description": "Histology", "dir_schema": "histology-v2", "vitessce_hints": []}} \ No newline at end of file +{"Histology": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-dir-histology/README_ONLINE.md b/examples/dataset-examples/bad-cedar-dir-histology/README_ONLINE.md index 4322dabcc..3b876f092 100644 --- a/examples/dataset-examples/bad-cedar-dir-histology/README_ONLINE.md +++ b/examples/dataset-examples/bad-cedar-dir-histology/README_ONLINE.md @@ -10,11 +10,11 @@ Upload Errors: - not-allowed. Required but missing: - extras\/.*. + - extras\/microscope_hardware\.json. - lab_processed\/.*. - lab_processed\/images\/.*. - - lab_processed\/images\/[^\/]+\.ome-tiff\.channels\.csv. + - lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv. - lab_processed\/images\/[^\/]+\.ome\.tiff. - - microscope_hardware\.json. - raw\/.*. - raw\/images\/.*. - raw\/images\/[^\/]+\.(?:xml|scn|vsi|ndpi|svs|czi|tiff). diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/MOCK_RESPONSE.json new file mode 100644 index 000000000..24075bb7e --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/README.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/README.md new file mode 100644 index 000000000..f66d6e0c7 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/README.md @@ -0,0 +1,9 @@ +``` +Reference Errors: + No References: + Files: + - unreferenced_file. +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/README_ONLINE.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/README_ONLINE.md new file mode 100644 index 000000000..a73841127 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/README_ONLINE.md @@ -0,0 +1,19 @@ +``` +Metadata TSV Validation Errors: + CEDAR Validation Errors: + examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/bad-visium-rnaseq-metadata.tsv: + URL Errors: + - 'Row 3, field "parent_sample_id" with value "": 404 Client Error: Not Found + for url: https://entity.api.hubmapconsortium.org/entities/.' + Validation Errors: + - On row 1, column "parent_sample_id", value "" fails because of error "missingRequired". + - On row 2, column "preparation_protocol_doi", value "wrong" fails because of + error "invalidUrl". +Reference Errors: + No References: + Files: + - unreferenced_file. +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/extras/empty-file b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff similarity index 100% rename from examples/dataset-examples/bad-cedar-assay-histology/upload/dataset-2/extras/empty-file rename to examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/bad-visium-rnaseq-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/bad-visium-rnaseq-metadata.tsv new file mode 100644 index 000000000..be3b798e9 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/bad-visium-rnaseq-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path barcode_offset barcode_read barcode_size umi_offset umi_read umi_size assay_input_entity number_of_input_cells_or_nuclei amount_of_input_analyte_value amount_of_input_analyte_unit library_adapter_sequence library_average_fragment_size library_input_amount_value library_input_amount_unit library_output_amount_value library_output_amount_unit library_concentration_value library_concentration_unit library_layout number_of_iterations_of_cdna_amplification number_of_pcr_cycles_for_indexing library_preparation_kit sample_indexing_kit sample_indexing_set is_technical_replicate expected_entity_capture_count sequencing_reagent_kit sequencing_read_format sequencing_batch_id capture_batch_id preparation_instrument_vendor preparation_instrument_model preparation_instrument_kit +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 517 176.834 ng 735.479 ng 61.584 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D1 No 1448 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 461 247.861 ng 815.816 ng 76.6089 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D2 No 1382 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM327.XDJP.776 Visium_9OLC_I4_S1 wrong RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 502 507.522 ng 1031.018 ng 88.91 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D3 No 2062 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/contributors.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/contributors.tsv new file mode 100644 index 000000000..387e13c11 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/contributors.tsv @@ -0,0 +1,2 @@ +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/good-visium-assay-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/good-visium-assay-metadata.tsv new file mode 100644 index 000000000..abc3831a6 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/good-visium-assay-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type contributors_path data_path mapped_area_value mapped_area_unit spot_size_value spot_size_unit number_of_spots spot_spacing_value spot_spacing_unit capture_area_id permeabilization_time_value permeabilization_time_unit +babf1e69-f0eb-479a-bdc5-b70199669675 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S1 42.25 mm^2 2375.9 um^2 4992 100 um A1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S2 42.25 mm^2 2375.9 um^2 4992 100 um B1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S1 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/good-visium-histology-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/good-visium-histology-metadata.tsv new file mode 100644 index 000000000..ed68b77bf --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/good-visium-histology-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path is_image_preprocessing_required stain_name stain_technique is_batch_staining_done is_staining_automated preparation_instrument_vendor preparation_instrument_model slide_id tile_configuration scan_direction tiled_image_columns tiled_image_count intended_tile_overlap_percentage +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/unreferenced_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/upload/unreferenced_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/MOCK_RESPONSE.json new file mode 100644 index 000000000..24075bb7e --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/README.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/README.md new file mode 100644 index 000000000..332ef34b4 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/README.md @@ -0,0 +1,15 @@ +``` +Upload Errors: + Directory Errors: + ? examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-assay-metadata.tsv, + column 'data_path', value ./Visium_9OLC_A4_S1 + : examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1 (as visium-no-probes-v2): + Required but missing: + - lab_processed\/.*. + - lab_processed\/images\/.*. + - lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv. + - lab_processed\/images\/[^\/]+\.ome\.tiff. +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/README_ONLINE.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/README_ONLINE.md new file mode 100644 index 000000000..332ef34b4 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/README_ONLINE.md @@ -0,0 +1,15 @@ +``` +Upload Errors: + Directory Errors: + ? examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-assay-metadata.tsv, + column 'data_path', value ./Visium_9OLC_A4_S1 + : examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1 (as visium-no-probes-v2): + Required but missing: + - lab_processed\/.*. + - lab_processed\/images\/.*. + - lab_processed\/images\/[^\/]*ome-tiff\.channels\.csv. + - lab_processed\/images\/[^\/]+\.ome\.tiff. +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/contributors.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/contributors.tsv new file mode 100644 index 000000000..387e13c11 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/contributors.tsv @@ -0,0 +1,2 @@ +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-assay-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-assay-metadata.tsv new file mode 100644 index 000000000..abc3831a6 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-assay-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type contributors_path data_path mapped_area_value mapped_area_unit spot_size_value spot_size_unit number_of_spots spot_spacing_value spot_spacing_unit capture_area_id permeabilization_time_value permeabilization_time_unit +babf1e69-f0eb-479a-bdc5-b70199669675 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S1 42.25 mm^2 2375.9 um^2 4992 100 um A1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S2 42.25 mm^2 2375.9 um^2 4992 100 um B1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S1 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-histology-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-histology-metadata.tsv new file mode 100644 index 000000000..ed68b77bf --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-histology-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path is_image_preprocessing_required stain_name stain_technique is_batch_staining_done is_staining_automated preparation_instrument_vendor preparation_instrument_model slide_id tile_configuration scan_direction tiled_image_columns tiled_image_count intended_tile_overlap_percentage +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-rnaseq-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-rnaseq-metadata.tsv new file mode 100644 index 000000000..554eff0fe --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/upload/good-visium-rnaseq-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path barcode_offset barcode_read barcode_size umi_offset umi_read umi_size assay_input_entity number_of_input_cells_or_nuclei amount_of_input_analyte_value amount_of_input_analyte_unit library_adapter_sequence library_average_fragment_size library_input_amount_value library_input_amount_unit library_output_amount_value library_output_amount_unit library_concentration_value library_concentration_unit library_layout number_of_iterations_of_cdna_amplification number_of_pcr_cycles_for_indexing library_preparation_kit sample_indexing_kit sample_indexing_set is_technical_replicate expected_entity_capture_count sequencing_reagent_kit sequencing_read_format sequencing_batch_id capture_batch_id preparation_instrument_vendor preparation_instrument_model preparation_instrument_kit +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 517 176.834 ng 735.479 ng 61.584 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D1 No 1448 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 461 247.861 ng 815.816 ng 76.6089 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D2 No 1382 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 502 507.522 ng 1031.018 ng 88.91 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D3 No 2062 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/MOCK_RESPONSE.json new file mode 100644 index 000000000..b592f06e8 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "snRNAseq-10xGenomics-v3", "description": "snRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/README.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/README.md new file mode 100644 index 000000000..4155ce71a --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/README.md @@ -0,0 +1,7 @@ +``` +Preflight: Multi-assay parent type Visium (no probes) missing required component(s) + ["rnaseq"]. +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/README_ONLINE.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/README_ONLINE.md new file mode 100644 index 000000000..4155ce71a --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/README_ONLINE.md @@ -0,0 +1,7 @@ +``` +Preflight: Multi-assay parent type Visium (no probes) missing required component(s) + ["rnaseq"]. +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/bad-visium-assay-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/bad-visium-assay-metadata.tsv new file mode 100644 index 000000000..abc3831a6 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/bad-visium-assay-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type contributors_path data_path mapped_area_value mapped_area_unit spot_size_value spot_size_unit number_of_spots spot_spacing_value spot_spacing_unit capture_area_id permeabilization_time_value permeabilization_time_unit +babf1e69-f0eb-479a-bdc5-b70199669675 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S1 42.25 mm^2 2375.9 um^2 4992 100 um A1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S2 42.25 mm^2 2375.9 um^2 4992 100 um B1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S1 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/bad-visium-histology-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/bad-visium-histology-metadata.tsv new file mode 100644 index 000000000..ed68b77bf --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/bad-visium-histology-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path is_image_preprocessing_required stain_name stain_technique is_batch_staining_done is_staining_automated preparation_instrument_vendor preparation_instrument_model slide_id tile_configuration scan_direction tiled_image_columns tiled_image_count intended_tile_overlap_percentage +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/contributors.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/contributors.tsv new file mode 100644 index 000000000..387e13c11 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/upload/contributors.tsv @@ -0,0 +1,2 @@ +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/MOCK_RESPONSE.json new file mode 100644 index 000000000..24075bb7e --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/README.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/README.md new file mode 100644 index 000000000..0ba8dc0b7 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/README.md @@ -0,0 +1,8 @@ +``` +Preflight: 'Multi-assay TSV examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/bad-visium-extra-paths-assay-metadata.tsv + contains data paths that are not present in child assay TSVs. Data paths unique + to parent: ["./Visium_9OLC_I4_S3"].' +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/README_ONLINE.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/README_ONLINE.md new file mode 100644 index 000000000..0ba8dc0b7 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/README_ONLINE.md @@ -0,0 +1,8 @@ +``` +Preflight: 'Multi-assay TSV examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/bad-visium-extra-paths-assay-metadata.tsv + contains data paths that are not present in child assay TSVs. Data paths unique + to parent: ["./Visium_9OLC_I4_S3"].' +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/Visium_9OLC_I4_S3/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/bad-visium-extra-paths-assay-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/bad-visium-extra-paths-assay-metadata.tsv new file mode 100644 index 000000000..4b9835349 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/bad-visium-extra-paths-assay-metadata.tsv @@ -0,0 +1,5 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type contributors_path data_path mapped_area_value mapped_area_unit spot_size_value spot_size_unit number_of_spots spot_spacing_value spot_spacing_unit capture_area_id permeabilization_time_value permeabilization_time_unit +babf1e69-f0eb-479a-bdc5-b70199669675 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S1 42.25 mm^2 2375.9 um^2 4992 100 um A1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S2 42.25 mm^2 2375.9 um^2 4992 100 um B1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S1 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S3 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S3 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/contributors.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/contributors.tsv new file mode 100644 index 000000000..387e13c11 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/contributors.tsv @@ -0,0 +1,2 @@ +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/good-visium-histology-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/good-visium-histology-metadata.tsv new file mode 100644 index 000000000..ed68b77bf --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/good-visium-histology-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path is_image_preprocessing_required stain_name stain_technique is_batch_staining_done is_staining_automated preparation_instrument_vendor preparation_instrument_model slide_id tile_configuration scan_direction tiled_image_columns tiled_image_count intended_tile_overlap_percentage +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/good-visium-rnaseq-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/good-visium-rnaseq-metadata.tsv new file mode 100644 index 000000000..554eff0fe --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/upload/good-visium-rnaseq-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path barcode_offset barcode_read barcode_size umi_offset umi_read umi_size assay_input_entity number_of_input_cells_or_nuclei amount_of_input_analyte_value amount_of_input_analyte_unit library_adapter_sequence library_average_fragment_size library_input_amount_value library_input_amount_unit library_output_amount_value library_output_amount_unit library_concentration_value library_concentration_unit library_layout number_of_iterations_of_cdna_amplification number_of_pcr_cycles_for_indexing library_preparation_kit sample_indexing_kit sample_indexing_set is_technical_replicate expected_entity_capture_count sequencing_reagent_kit sequencing_read_format sequencing_batch_id capture_batch_id preparation_instrument_vendor preparation_instrument_model preparation_instrument_kit +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 517 176.834 ng 735.479 ng 61.584 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D1 No 1448 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 461 247.861 ng 815.816 ng 76.6089 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D2 No 1382 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 502 507.522 ng 1031.018 ng 88.91 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D3 No 2062 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/MOCK_RESPONSE.json new file mode 100644 index 000000000..24075bb7e --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/README.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/README.md new file mode 100644 index 000000000..0f344b224 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/README.md @@ -0,0 +1,15 @@ +``` +Upload Errors: + Directory Errors: + ? examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-histology-metadata.tsv, + column 'data_path', value ./dataset-1 + : ? examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1 + (as histology-v2) + : Required but missing: + - raw\/.*. + - raw\/images\/.*. + - raw\/images\/[^\/]+\.(?:xml|scn|vsi|ndpi|svs|czi|tiff). +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/README_ONLINE.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/README_ONLINE.md new file mode 100644 index 000000000..0f344b224 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/README_ONLINE.md @@ -0,0 +1,15 @@ +``` +Upload Errors: + Directory Errors: + ? examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-histology-metadata.tsv, + column 'data_path', value ./dataset-1 + : ? examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1 + (as histology-v2) + : Required but missing: + - raw\/.*. + - raw\/images\/.*. + - raw\/images\/[^\/]+\.(?:xml|scn|vsi|ndpi|svs|czi|tiff). +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/contributors.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/contributors.tsv new file mode 100644 index 000000000..387e13c11 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/contributors.tsv @@ -0,0 +1,2 @@ +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/extras/microscope_hardware.json new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/segmentation-masks.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/segmentation-masks.csv new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/test-objects.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/test-objects.csv new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/test.segmentations.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/annotations/test.segmentations.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/empty-file b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/empty-file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file.ome-tiff.channels.csv new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/dataset-1/lab_processed/images/empty-file.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-assay-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-assay-metadata.tsv new file mode 100644 index 000000000..abc3831a6 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-assay-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type contributors_path data_path mapped_area_value mapped_area_unit spot_size_value spot_size_unit number_of_spots spot_spacing_value spot_spacing_unit capture_area_id permeabilization_time_value permeabilization_time_unit +babf1e69-f0eb-479a-bdc5-b70199669675 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S1 42.25 mm^2 2375.9 um^2 4992 100 um A1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S2 42.25 mm^2 2375.9 um^2 4992 100 um B1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S1 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-histology-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-histology-metadata.tsv new file mode 100644 index 000000000..be8345679 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-histology-metadata.tsv @@ -0,0 +1,5 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path is_image_preprocessing_required stain_name stain_technique is_batch_staining_done is_staining_automated preparation_instrument_vendor preparation_instrument_model slide_id tile_configuration scan_direction tiled_image_columns tiled_image_count intended_tile_overlap_percentage +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology DNA No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./dataset-1 Yes H&E Progressive staining Yes No HTX Technologies SunCollect Sprayer V11A19-078 Snake-by-rows Right-and-down 10 120 30 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-rnaseq-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-rnaseq-metadata.tsv new file mode 100644 index 000000000..554eff0fe --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/upload/good-visium-rnaseq-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path barcode_offset barcode_read barcode_size umi_offset umi_read umi_size assay_input_entity number_of_input_cells_or_nuclei amount_of_input_analyte_value amount_of_input_analyte_unit library_adapter_sequence library_average_fragment_size library_input_amount_value library_input_amount_unit library_output_amount_value library_output_amount_unit library_concentration_value library_concentration_unit library_layout number_of_iterations_of_cdna_amplification number_of_pcr_cycles_for_indexing library_preparation_kit sample_indexing_kit sample_indexing_set is_technical_replicate expected_entity_capture_count sequencing_reagent_kit sequencing_read_format sequencing_batch_id capture_batch_id preparation_instrument_vendor preparation_instrument_model preparation_instrument_kit +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 517 176.834 ng 735.479 ng 61.584 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D1 No 1448 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 461 247.861 ng 815.816 ng 76.6089 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D2 No 1382 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 502 507.522 ng 1031.018 ng 88.91 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D3 No 2062 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/MOCK_RESPONSE.json new file mode 100644 index 000000000..9356dfd43 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", "", "", "", "", "yes", "0d9626de-5f14-4249-9c6a-98c717fa3309"], "response": {"assaytype": "snRNAseq-10xGenomics-v3", "description": "snRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}, "RNAseq (with probes)": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq (with probes)", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", "", "minute", "2", "10x Genomics; Visium Human Transcriptome Probe Kit v2 - Small; PN 1000466", "yes", "0d9626de-5f14-4249-9c6a-98c717fa3309"], "response": {"assaytype": "scRNAseq-visium-with-probes", "description": "Visium RNAseq with probes", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/README.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/README.md new file mode 100644 index 000000000..48e927c5f --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/README.md @@ -0,0 +1,8 @@ +``` +Preflight: 'Multi-assay parent type Visium (no probes) missing required component(s) + ["rnaseq"]. Invalid child assay type(s) for parent type Visium (no probes): ["RNAseq + (with probes)"].' +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/README_ONLINE.md b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/README_ONLINE.md new file mode 100644 index 000000000..48e927c5f --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/README_ONLINE.md @@ -0,0 +1,8 @@ +``` +Preflight: 'Multi-assay parent type Visium (no probes) missing required component(s) + ["rnaseq"]. Invalid child assay type(s) for parent type Visium (no probes): ["RNAseq + (with probes)"].' +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/raw/emptyfile b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/raw/emptyfile new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/bad-wrong-type-rnaseq-with-probes-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/bad-wrong-type-rnaseq-with-probes-metadata.tsv new file mode 100644 index 000000000..f61aee2ae --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/bad-wrong-type-rnaseq-with-probes-metadata.tsv @@ -0,0 +1,2 @@ +parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path barcode_offset barcode_read barcode_size umi_offset umi_read umi_size assay_input_entity number_of_input_cells_or_nuclei amount_of_input_analyte_value amount_of_input_analyte_unit library_adapter_sequence library_average_fragment_size library_input_amount_value library_input_amount_unit library_output_amount_value library_output_amount_unit library_concentration_value library_concentration_unit library_layout number_of_iterations_of_cdna_amplification number_of_pcr_cycles_for_indexing library_preparation_kit sample_indexing_kit sample_indexing_set is_technical_replicate expected_entity_capture_count sequencing_reagent_kit sequencing_read_format sequencing_batch_id capture_batch_id preparation_instrument_vendor preparation_instrument_model preparation_instrument_kit probe_hybridization_time_value probe_hybridization_time_unit oligo_probe_panel is_custom_probes_used metadata_schema_id +HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq (with probes) RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 517 176.834 ng 735.479 ng 61.584 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D1 No 1448 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 minute 2 10x Genomics; Visium Human Transcriptome Probe Kit v2 - Small; PN 1000466 yes 0d9626de-5f14-4249-9c6a-98c717fa3309 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/contributors.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/contributors.tsv new file mode 100644 index 000000000..387e13c11 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/contributors.tsv @@ -0,0 +1,2 @@ +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/good-visium-assay-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/good-visium-assay-metadata.tsv new file mode 100644 index 000000000..abc3831a6 --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/good-visium-assay-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type contributors_path data_path mapped_area_value mapped_area_unit spot_size_value spot_size_unit number_of_spots spot_spacing_value spot_spacing_unit capture_area_id permeabilization_time_value permeabilization_time_unit +babf1e69-f0eb-479a-bdc5-b70199669675 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S1 42.25 mm^2 2375.9 um^2 4992 100 um A1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S2 42.25 mm^2 2375.9 um^2 4992 100 um B1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S1 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/good-visium-histology-metadata.tsv b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/good-visium-histology-metadata.tsv new file mode 100644 index 000000000..ed68b77bf --- /dev/null +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/upload/good-visium-histology-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path is_image_preprocessing_required stain_name stain_technique is_batch_staining_done is_staining_automated preparation_instrument_vendor preparation_instrument_model slide_id tile_configuration scan_direction tiled_image_columns tiled_image_count intended_tile_overlap_percentage +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 diff --git a/examples/dataset-examples/bad-codex-akoya-directory-v1-missing-dataset.json/MOCK_RESPONSE.json b/examples/dataset-examples/bad-codex-akoya-directory-v1-missing-dataset.json/MOCK_RESPONSE.json index eb7790f2d..892619ce2 100644 --- a/examples/dataset-examples/bad-codex-akoya-directory-v1-missing-dataset.json/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-codex-akoya-directory-v1-missing-dataset.json/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": [1, "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-codex-data/MOCK_RESPONSE.json b/examples/dataset-examples/bad-codex-data/MOCK_RESPONSE.json index 07e26d958..d34da911d 100644 --- a/examples/dataset-examples/bad-codex-data/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-codex-data/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10\\.17504/protocols.io.menc3de", "operator", "no-at.example.com", "pi", "extra-period-not-caught@example.com.", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10\\.17504/protocols.io.menc3de", "operator", "no-at.example.com", "pi", "extra-period-not-caught@example.com.", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-missing-data/MOCK_RESPONSE.json b/examples/dataset-examples/bad-missing-data/MOCK_RESPONSE.json index 4f614454c..59b1581d7 100644 --- a/examples/dataset-examples/bad-missing-data/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-missing-data/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "n/a", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies-missing.tsv", "contributors-missing.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "n/a", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies-missing.tsv", "contributors-missing.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json b/examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json new file mode 100644 index 000000000..b67581a2e --- /dev/null +++ b/examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"SNARE-seq2": {"args": ["-INVALID-", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "bad-shared-dataset"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}, "CODEX": {"args": ["-INVALID-", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "bad-shared-dataset"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-mixed/README.md b/examples/dataset-examples/bad-mixed/README.md new file mode 100644 index 000000000..7b8f8ec1f --- /dev/null +++ b/examples/dataset-examples/bad-mixed/README.md @@ -0,0 +1,47 @@ +``` +Upload Errors: + TSV Errors: + examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv, row 2, column 'contributors_path': + - 'File has no data rows: examples/dataset-examples/bad-mixed/upload/contributors.tsv.' + examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv, row 2, column 'antibodies_path': + - 'File does not exist: examples/dataset-examples/bad-mixed/upload/antibodies.tsv.' + examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv, row 2, column 'contributors_path': + - 'File has no data rows: examples/dataset-examples/bad-mixed/upload/contributors.tsv.' + Directory Errors: + examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv, row 2, column data_path: + examples/dataset-examples/bad-mixed/upload/bad-shared-dataset (as codex-v1-with-dataset-json): + Not allowed: + - not-good-for-either-type.txt. + Required but missing: + - (processed|drv_[^/]*)/.*. + - (raw|src_.*)/.*. + - (raw|src_.*)/[cC]yc.*_reg.*/.*_Z.*_CH.*\.tif. + - (raw|src_[^/]*)/dataset\.json. + - extras/dir-schema-v1-with-dataset-json. + examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv, row 2, column data_path: + examples/dataset-examples/bad-mixed/upload/bad-shared-dataset (as scatacseq-v0): + Not allowed: + - not-good-for-either-type.txt. + Required but missing: + - '[^/]+\.fastq\.gz.' +Metadata TSV Validation Errors: + Local Validation Errors: + examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv (as codex-v0): + - 'On row 2, column "donor_id", value "-INVALID-" fails because it does not match + the expected pattern. Example: ABC123' + examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv (as scatacseq-v0): + - 'On row 2, column "donor_id", value "-INVALID-" fails because it does not match + the expected pattern. Example: ABC123' + - On row 2, column "sc_isolation_protocols_io_doi", value "" fails because it + must be filled out. + - On row 2, column "library_construction_protocols_io_doi", value "" fails because + it must be filled out. +Reference Errors: + Multiple References: + bad-shared-dataset: + - examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv (row 2). + - examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv (row 2). +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-mixed/README_ONLINE.md b/examples/dataset-examples/bad-mixed/README_ONLINE.md new file mode 100644 index 000000000..53058b0ae --- /dev/null +++ b/examples/dataset-examples/bad-mixed/README_ONLINE.md @@ -0,0 +1,49 @@ +``` +Upload Errors: + TSV Errors: + examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv, row 2, column 'contributors_path': + - 'File has no data rows: examples/dataset-examples/bad-mixed/upload/contributors.tsv.' + examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv, row 2, column 'antibodies_path': + - 'File does not exist: examples/dataset-examples/bad-mixed/upload/antibodies.tsv.' + examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv, row 2, column 'contributors_path': + - 'File has no data rows: examples/dataset-examples/bad-mixed/upload/contributors.tsv.' + Directory Errors: + examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv, row 2, column data_path: + examples/dataset-examples/bad-mixed/upload/bad-shared-dataset (as codex-v1-with-dataset-json): + Not allowed: + - not-good-for-either-type.txt. + Required but missing: + - (processed|drv_[^/]*)/.*. + - (raw|src_.*)/.*. + - (raw|src_.*)/[cC]yc.*_reg.*/.*_Z.*_CH.*\.tif. + - (raw|src_[^/]*)/dataset\.json. + - extras/dir-schema-v1-with-dataset-json. + examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv, row 2, column data_path: + examples/dataset-examples/bad-mixed/upload/bad-shared-dataset (as scatacseq-v0): + Not allowed: + - not-good-for-either-type.txt. + Required but missing: + - '[^/]+\.fastq\.gz.' +Metadata TSV Validation Errors: + Local Validation Errors: + examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv (as codex-v0): + - 'On row 2, column "donor_id", value "-INVALID-" fails because it does not match + the expected pattern. Example: ABC123' + examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv (as scatacseq-v0): + - 'On row 2, column "donor_id", value "-INVALID-" fails because it does not match + the expected pattern. Example: ABC123' + - On row 2, column "sc_isolation_protocols_io_doi", value "" fails because it + must be filled out. + - On row 2, column "library_construction_protocols_io_doi", value "" fails because + it must be filled out. + - On row 2, column "protocols_io_doi", value "10.17504/fake" fails because it + is an invalid DOI. +Reference Errors: + Multiple References: + bad-shared-dataset: + - examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv (row 2). + - examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv (row 2). +Hint: 'If validation fails because of extra whitespace in the TSV, try: + + src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' +``` diff --git a/examples/dataset-examples/bad-mixed/upload/bad-shared-dataset/not-good-for-either-type.txt b/examples/dataset-examples/bad-mixed/upload/bad-shared-dataset/not-good-for-either-type.txt new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv b/examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv new file mode 100644 index 000000000..8140f8785 --- /dev/null +++ b/examples/dataset-examples/bad-mixed/upload/codex-metadata.tsv @@ -0,0 +1,2 @@ +donor_id tissue_id execution_datetime protocols_io_doi operator operator_email pi pi_email assay_category assay_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model resolution_x_value resolution_x_unit resolution_y_value resolution_y_unit resolution_z_value resolution_z_unit preparation_instrument_vendor preparation_instrument_model number_of_antibodies number_of_channels number_of_cycles section_prep_protocols_io_doi reagent_prep_protocols_io_doi antibodies_path contributors_path data_path +-INVALID- ABC123-RK-1_1 2020-01-01 12:00 10.17504/protocols.io.menc3de operator operator_email@example.com pi pi_email@example.com imaging CODEX protein TRUE Keyence BZ-X800 42 nm 42 nm 42 nm CODEX version 1 robot 42 42 42 10.17504/protocols.io.menc3de 10.17504/protocols.io.menc3de antibodies.tsv contributors.tsv bad-shared-dataset \ No newline at end of file diff --git a/examples/dataset-examples/bad-mixed/upload/contributors.tsv b/examples/dataset-examples/bad-mixed/upload/contributors.tsv new file mode 100644 index 000000000..ff51cb411 --- /dev/null +++ b/examples/dataset-examples/bad-mixed/upload/contributors.tsv @@ -0,0 +1 @@ +affiliation first_name last_name middle_name_or_initial name orcid_id diff --git a/examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv b/examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv new file mode 100644 index 000000000..562e21920 --- /dev/null +++ b/examples/dataset-examples/bad-mixed/upload/scatacseq-metadata.tsv @@ -0,0 +1,2 @@ +donor_id tissue_id execution_datetime protocols_io_doi operator operator_email pi pi_email assay_category assay_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model is_technical_replicate library_id sc_isolation_protocols_io_doi sc_isolation_entity sc_isolation_tissue_dissociation sc_isolation_enrichment sc_isolation_quality_metric sc_isolation_cell_number transposition_input transposition_method transposition_transposase_source transposition_kit_number library_construction_protocols_io_doi library_layout library_adapter_sequence cell_barcode_read cell_barcode_offset cell_barcode_size library_pcr_cycles library_pcr_cycles_for_sample_index library_final_yield library_final_yield_unit library_average_fragment_size sequencing_reagent_kit sequencing_read_format sequencing_read_percent_q30 sequencing_phix_percent contributors_path data_path +-INVALID- UCSD0002-RK-1-1-1 2019-05-29 11:00 10.17504/fake Nongluk Plongthongkum nplongth@eng.ucsd.edu Kun Zhang kzhang@eng.ucsd.edu sequence SNARE-seq2 DNA FALSE Illumina NovaSeq TRUE KC9 nucleus dounce none low clump 425000 4000 SNARE-Seq2-AC In-house paired-end CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG R2 0,38,76 8,8,8 9 9 2868 ng 650 NovaSeq 6000 S4 Reagent 75/94/8/75 91.05 20 contributors.tsv bad-shared-dataset diff --git a/examples/dataset-examples/bad-no-assay-type/MOCK_RESPONSE.json b/examples/dataset-examples/bad-no-assay-type/MOCK_RESPONSE.json index 87cd500dd..ea9249383 100644 --- a/examples/dataset-examples/bad-no-assay-type/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-no-assay-type/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["and it won't work!", "wrong field name"], "response": {}} \ No newline at end of file +{"null": {"args": ["and it won't work!", "wrong field name"], "response": {}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-no-assay-type/README.md b/examples/dataset-examples/bad-no-assay-type/README.md index 1ae6bf2b3..061f99358 100644 --- a/examples/dataset-examples/bad-no-assay-type/README.md +++ b/examples/dataset-examples/bad-no-assay-type/README.md @@ -1,7 +1,5 @@ ``` -Preflight: 'No assay data retrieved for examples/dataset-examples/bad-no-assay-type/upload/bad-metadata.tsv. - Does not contain "assay_type" or "dataset_type". Column headers in TSV: this_does_not_have_data_type, - assay.' +Preflight: No assay_type or dataset_type in examples/dataset-examples/bad-no-assay-type/upload/bad-metadata.tsv. Hint: 'If validation fails because of extra whitespace in the TSV, try: src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' diff --git a/examples/dataset-examples/bad-no-assay-type/README_ONLINE.md b/examples/dataset-examples/bad-no-assay-type/README_ONLINE.md index 1ae6bf2b3..061f99358 100644 --- a/examples/dataset-examples/bad-no-assay-type/README_ONLINE.md +++ b/examples/dataset-examples/bad-no-assay-type/README_ONLINE.md @@ -1,7 +1,5 @@ ``` -Preflight: 'No assay data retrieved for examples/dataset-examples/bad-no-assay-type/upload/bad-metadata.tsv. - Does not contain "assay_type" or "dataset_type". Column headers in TSV: this_does_not_have_data_type, - assay.' +Preflight: No assay_type or dataset_type in examples/dataset-examples/bad-no-assay-type/upload/bad-metadata.tsv. Hint: 'If validation fails because of extra whitespace in the TSV, try: src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' diff --git a/examples/dataset-examples/bad-no-such-type/MOCK_RESPONSE.json b/examples/dataset-examples/bad-no-such-type/MOCK_RESPONSE.json index 9742e66b6..091563808 100644 --- a/examples/dataset-examples/bad-no-such-type/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-no-such-type/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["fake"], "response": {}} \ No newline at end of file +{"fake": {"args": ["fake"], "response": {}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-no-such-type/README.md b/examples/dataset-examples/bad-no-such-type/README.md index 0eed2624b..eab926d98 100644 --- a/examples/dataset-examples/bad-no-such-type/README.md +++ b/examples/dataset-examples/bad-no-such-type/README.md @@ -1,5 +1,5 @@ ``` -Preflight: 'No assay data retrieved for examples/dataset-examples/bad-no-such-type/upload/fake-metadata.tsv. +Preflight: 'Assay data not retrieved from assayclassifier endpoint for TSV examples/dataset-examples/bad-no-such-type/upload/fake-metadata.tsv. Assay type: fake. Column headers in TSV: assay_type.' Hint: 'If validation fails because of extra whitespace in the TSV, try: diff --git a/examples/dataset-examples/bad-no-such-type/README_ONLINE.md b/examples/dataset-examples/bad-no-such-type/README_ONLINE.md index 0eed2624b..eab926d98 100644 --- a/examples/dataset-examples/bad-no-such-type/README_ONLINE.md +++ b/examples/dataset-examples/bad-no-such-type/README_ONLINE.md @@ -1,5 +1,5 @@ ``` -Preflight: 'No assay data retrieved for examples/dataset-examples/bad-no-such-type/upload/fake-metadata.tsv. +Preflight: 'Assay data not retrieved from assayclassifier endpoint for TSV examples/dataset-examples/bad-no-such-type/upload/fake-metadata.tsv. Assay type: fake. Column headers in TSV: assay_type.' Hint: 'If validation fails because of extra whitespace in the TSV, try: diff --git a/examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json b/examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json index 152d3c1a6..88c48e26a 100644 --- a/examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["CODEX", "."], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["CODEX", "."], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-repeated/README.md b/examples/dataset-examples/bad-repeated/README.md index 7338b76da..08b14f36c 100644 --- a/examples/dataset-examples/bad-repeated/README.md +++ b/examples/dataset-examples/bad-repeated/README.md @@ -1,6 +1,6 @@ ``` Fatal Exception: - Repeated: 'There is more than one TSV for this type: codex.' + Repeated: 'There is more than one TSV for this type: CODEX.' Hint: 'If validation fails because of extra whitespace in the TSV, try: src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' diff --git a/examples/dataset-examples/bad-repeated/README_ONLINE.md b/examples/dataset-examples/bad-repeated/README_ONLINE.md index 7338b76da..08b14f36c 100644 --- a/examples/dataset-examples/bad-repeated/README_ONLINE.md +++ b/examples/dataset-examples/bad-repeated/README_ONLINE.md @@ -1,6 +1,6 @@ ``` Fatal Exception: - Repeated: 'There is more than one TSV for this type: codex.' + Repeated: 'There is more than one TSV for this type: CODEX.' Hint: 'If validation fails because of extra whitespace in the TSV, try: src/cleanup_whitespace.py --tsv_in original.tsv --tsv_out clean.tsv.' diff --git a/examples/dataset-examples/bad-scatacseq-data/MOCK_RESPONSE.json b/examples/dataset-examples/bad-scatacseq-data/MOCK_RESPONSE.json index e98907b7b..4644f7b6f 100644 --- a/examples/dataset-examples/bad-scatacseq-data/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-scatacseq-data/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", ".", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}} \ No newline at end of file +{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", ".", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json b/examples/dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json index 3c3b23392..08b14cd82 100644 --- a/examples/dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["AZ123", "AZ123-AZ-123", "2020-01-01 01:01", "10.17504/123", "123", "fake@example.com", "123", "fake@example.com", "sequence", "scRNAseq-10xGenomics", "RNA", "true", "123", "123", "10.17504/123", "whole cell", "123", "123", "123", "123", "123", "123", "10.17504/123", "single-end", "123", "123", "false", "123", "123", "123", "123", "123", "123", "ng", "123", "123", "12/34/56", "50", "50", "contrib.tsv", "data"], "response": {"assaytype": "scRNAseq-10xGenomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v0", "tbl_schema": "scrnaseq-v0", "vitessce_hints": []}} \ No newline at end of file +{"scRNAseq-10xGenomics": {"args": ["AZ123", "AZ123-AZ-123", "2020-01-01 01:01", "10.17504/123", "123", "fake@example.com", "123", "fake@example.com", "sequence", "scRNAseq-10xGenomics", "RNA", "true", "123", "123", "10.17504/123", "whole cell", "123", "123", "123", "123", "123", "123", "10.17504/123", "single-end", "123", "123", "false", "123", "123", "123", "123", "123", "123", "ng", "123", "123", "12/34/56", "50", "50", "contrib.tsv", "data"], "response": {"assaytype": "scRNAseq-10xGenomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v0", "tbl_schema": "scrnaseq-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json b/examples/dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json index 57fbef9bb..d28d202e6 100644 --- a/examples/dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["not-uuid", "not-uuid", "not-time", "10\\.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "analyte_class", "is_targeted", "acquisition_instrument_vendor", "acquisition_instrument_model", "forty-two", "inches", "forty-two", "inches", "forty-two", "inches", "preparation_instrument_vendor", "preparation_instrument_model", "0.5", "0.5", "0.5", "not-doi", "not-doi", "antibodies.tsv", "contributors.tsv", "dataset-1/"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["not-uuid", "not-uuid", "not-time", "10\\.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "analyte_class", "is_targeted", "acquisition_instrument_vendor", "acquisition_instrument_model", "forty-two", "inches", "forty-two", "inches", "forty-two", "inches", "preparation_instrument_vendor", "preparation_instrument_model", "0.5", "0.5", "0.5", "not-doi", "not-doi", "antibodies.tsv", "contributors.tsv", "dataset-1/"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-cedar-histology/MOCK_RESPONSE.json b/examples/dataset-examples/good-cedar-histology/MOCK_RESPONSE.json index c9cc959b2..8aedb836a 100644 --- a/examples/dataset-examples/good-cedar-histology/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-cedar-histology/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "histology", "description": "Histology", "dir_schema": "histology-v2", "vitessce_hints": []}} \ No newline at end of file +{"Histology": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-cedar-histology/README.md b/examples/dataset-examples/good-cedar-histology/README.md index b5f996097..159f110bc 100644 --- a/examples/dataset-examples/good-cedar-histology/README.md +++ b/examples/dataset-examples/good-cedar-histology/README.md @@ -5,7 +5,7 @@ Git version: WILL_CHANGE Directory: examples/dataset-examples/good-cedar-histology/upload TSVs: validated-histology-metadata.tsv: - Schema: histology-v2 + Schema: h-and-e-v2 Metadata schema version: '2' Directory schema versions: histology-v2 diff --git a/examples/dataset-examples/good-cedar-histology/README_ONLINE.md b/examples/dataset-examples/good-cedar-histology/README_ONLINE.md index b5f996097..159f110bc 100644 --- a/examples/dataset-examples/good-cedar-histology/README_ONLINE.md +++ b/examples/dataset-examples/good-cedar-histology/README_ONLINE.md @@ -5,7 +5,7 @@ Git version: WILL_CHANGE Directory: examples/dataset-examples/good-cedar-histology/upload TSVs: validated-histology-metadata.tsv: - Schema: histology-v2 + Schema: h-and-e-v2 Metadata schema version: '2' Directory schema versions: histology-v2 diff --git a/examples/dataset-examples/good-cedar-histology/upload/contributors.tsv b/examples/dataset-examples/good-cedar-histology/upload/contributors.tsv index 75d874a7a..387e13c11 100644 --- a/examples/dataset-examples/good-cedar-histology/upload/contributors.tsv +++ b/examples/dataset-examples/good-cedar-histology/upload/contributors.tsv @@ -1,2 +1,2 @@ -version affiliation first_name last_name middle_name_or_initial name orcid_id is_contact -1 Carnegie Mellon University Firstname Lastname M. Firstname M. Lastname 0000-0002-8928-741X TRUE +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/MOCK_RESPONSE.json b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/MOCK_RESPONSE.json new file mode 100644 index 000000000..24075bb7e --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/README.md b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/README.md new file mode 100644 index 000000000..debd2a803 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/README.md @@ -0,0 +1,20 @@ +``` +No errors! +Time: WILL_CHANGE +Git version: WILL_CHANGE +Directory: examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload +TSVs: + good-visium-assay-metadata.tsv: + Schema: visium-no-probes-v2 + Metadata schema version: '2' + Directory schema versions: visium-no-probes-v2 + good-visium-histology-metadata.tsv: + Schema: h-and-e-v2 + Metadata schema version: '2' + Directory schema versions: histology-v2 + good-visium-rnaseq-metadata.tsv: + Schema: scRNAseq-10Genomics-v3-v2 + Metadata schema version: '2' + Directory schema versions: scrnaseq-v2 + +``` diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/README_ONLINE.md b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/README_ONLINE.md new file mode 100644 index 000000000..debd2a803 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/README_ONLINE.md @@ -0,0 +1,20 @@ +``` +No errors! +Time: WILL_CHANGE +Git version: WILL_CHANGE +Directory: examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload +TSVs: + good-visium-assay-metadata.tsv: + Schema: visium-no-probes-v2 + Metadata schema version: '2' + Directory schema versions: visium-no-probes-v2 + good-visium-histology-metadata.tsv: + Schema: h-and-e-v2 + Metadata schema version: '2' + Directory schema versions: histology-v2 + good-visium-rnaseq-metadata.tsv: + Schema: scRNAseq-10Genomics-v3-v2 + Metadata schema version: '2' + Directory schema versions: scrnaseq-v2 + +``` diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/contributors.tsv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/contributors.tsv new file mode 100644 index 000000000..387e13c11 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/contributors.tsv @@ -0,0 +1,2 @@ +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/extras/microscope_hardware.json b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/extras/microscope_hardware.json new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/extras/microscope_settings.json b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/extras/microscope_settings.json new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/segmentation-masks.csv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/segmentation-masks.csv new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/test-objects.csv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/test-objects.csv new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/test.segmentations.ome.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/annotations/test.segmentations.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/empty-file b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/empty-file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file.ome-tiff.channels.csv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file.ome-tiff.channels.csv new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file.ome.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/lab_processed/images/empty-file.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file.xml b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/dataset-1/raw/images/empty-file.xml new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-assay-metadata.tsv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-assay-metadata.tsv new file mode 100644 index 000000000..abc3831a6 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-assay-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type contributors_path data_path mapped_area_value mapped_area_unit spot_size_value spot_size_unit number_of_spots spot_spacing_value spot_spacing_unit capture_area_id permeabilization_time_value permeabilization_time_unit +babf1e69-f0eb-479a-bdc5-b70199669675 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S1 42.25 mm^2 2375.9 um^2 4992 100 um A1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S2 42.25 mm^2 2375.9 um^2 4992 100 um B1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S1 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-histology-metadata.tsv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-histology-metadata.tsv new file mode 100644 index 000000000..be8345679 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-histology-metadata.tsv @@ -0,0 +1,5 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path is_image_preprocessing_required stain_name stain_technique is_batch_staining_done is_staining_automated preparation_instrument_vendor preparation_instrument_model slide_id tile_configuration scan_direction tiled_image_columns tiled_image_count intended_tile_overlap_percentage +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology DNA No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./dataset-1 Yes H&E Progressive staining Yes No HTX Technologies SunCollect Sprayer V11A19-078 Snake-by-rows Right-and-down 10 120 30 diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-rnaseq-metadata.tsv b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-rnaseq-metadata.tsv new file mode 100644 index 000000000..554eff0fe --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/upload/good-visium-rnaseq-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path barcode_offset barcode_read barcode_size umi_offset umi_read umi_size assay_input_entity number_of_input_cells_or_nuclei amount_of_input_analyte_value amount_of_input_analyte_unit library_adapter_sequence library_average_fragment_size library_input_amount_value library_input_amount_unit library_output_amount_value library_output_amount_unit library_concentration_value library_concentration_unit library_layout number_of_iterations_of_cdna_amplification number_of_pcr_cycles_for_indexing library_preparation_kit sample_indexing_kit sample_indexing_set is_technical_replicate expected_entity_capture_count sequencing_reagent_kit sequencing_read_format sequencing_batch_id capture_batch_id preparation_instrument_vendor preparation_instrument_model preparation_instrument_kit +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 517 176.834 ng 735.479 ng 61.584 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D1 No 1448 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 461 247.861 ng 815.816 ng 76.6089 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D2 No 1382 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 502 507.522 ng 1031.018 ng 88.91 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D3 No 2062 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/MOCK_RESPONSE.json b/examples/dataset-examples/good-cedar-multi-assay-visium/MOCK_RESPONSE.json new file mode 100644 index 000000000..24075bb7e --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/MOCK_RESPONSE.json @@ -0,0 +1 @@ +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/README.md b/examples/dataset-examples/good-cedar-multi-assay-visium/README.md new file mode 100644 index 000000000..e1f18c944 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/README.md @@ -0,0 +1,20 @@ +``` +No errors! +Time: WILL_CHANGE +Git version: WILL_CHANGE +Directory: examples/dataset-examples/good-cedar-multi-assay-visium/upload +TSVs: + good-visium-assay-metadata.tsv: + Schema: visium-no-probes-v2 + Metadata schema version: '2' + Directory schema versions: visium-no-probes-v2 + good-visium-histology-metadata.tsv: + Schema: h-and-e-v2 + Metadata schema version: '2' + Directory schema versions: histology-v2 + good-visium-rnaseq-metadata.tsv: + Schema: scRNAseq-10Genomics-v3-v2 + Metadata schema version: '2' + Directory schema versions: scrnaseq-v2 + +``` diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/README_ONLINE.md b/examples/dataset-examples/good-cedar-multi-assay-visium/README_ONLINE.md new file mode 100644 index 000000000..e1f18c944 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/README_ONLINE.md @@ -0,0 +1,20 @@ +``` +No errors! +Time: WILL_CHANGE +Git version: WILL_CHANGE +Directory: examples/dataset-examples/good-cedar-multi-assay-visium/upload +TSVs: + good-visium-assay-metadata.tsv: + Schema: visium-no-probes-v2 + Metadata schema version: '2' + Directory schema versions: visium-no-probes-v2 + good-visium-histology-metadata.tsv: + Schema: h-and-e-v2 + Metadata schema version: '2' + Directory schema versions: histology-v2 + good-visium-rnaseq-metadata.tsv: + Schema: scRNAseq-10Genomics-v3-v2 + Metadata schema version: '2' + Directory schema versions: scrnaseq-v2 + +``` diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_A4_S2/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json new file mode 100644 index 000000000..c4d4e475b --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/extras/microscope_hardware.json @@ -0,0 +1,760 @@ +{ + "Name": "UPenn_Kim_lab_Visium_Observer7-Chamber_Config1_v01", + "Schema_ID": "Instrument.json", + "ID": "19ebf498-b0d6-4cd6-920c-1f9dd3658c0c", + "Tier": 1, + "ValidationTier": 1, + "ModelVersion": "2.01.1", + "AppVersion": "1.7.25-b1", + "ScalingFactor": 1, + "MicroscopeStand": { + "Name": "Axio Observer 7 Visium stand", + "Schema_ID": "InvertedMicroscopeStand.json", + "ID": "12902021-1bd0-47d4-8e24-673df39c9e73", + "Tier": 1, + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopeStand", + "Manufacturer": "Zeiss", + "Model": "Axio Observer 7", + "CatalogNumber": "431007-9904-000", + "LotNumber": "3858002101", + "Type": "Compound", + "Origin": "Commercial-custom modified", + "EyePieceFieldNumber": 23 + }, + "Description": "Fully automated Zeiss Observer 7 with Colibri 5 illumination and Oko Lab environmental chamber", + "components": [ + { + "Name": "MetaMorph", + "ID": "d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a", + "Tier": 1, + "Schema_ID": "AcquisitionSoftware.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeSpecifications", + "Category": "Software", + "PositionX": 2173.3446, + "PositionY": 749.26265, + "PositionZ": 0, + "Width": 281.0426, + "Height": 246.6847, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "Software.AcquisitionSoftware_1", + "Developer": "Molecular Devices", + "WebsiteURL": "https://www.moleculardevices.com/products/cellular-imaging-systems/acquisition-and-analysis-software/metamorph-microscopy", + "Version": "7.10.5.476", + "Macro": true, + "Build": "7.10.5.476", + "SoftwareModule": [ + + ] + }, + { + "Name": "Kim lab - MicroPublisher Color", + "ID": "be101359-87c3-4e1a-b968-9a7039b2eac9", + "Tier": 1, + "Schema_ID": "CCD.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Detector.Camera", + "PositionX": 187.9088, + "PositionY": 873.6111000000001, + "PositionZ": 0, + "Width": 121.83, + "Height": 122.085, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "Detector.Camera_1", + "Current_Number_Of_WavelengthRange": 0, + "Min_Number_Of_WavelengthRange": 0, + "Max_Number_Of_WavelengthRange": -1, + "Description": "Micropubisher 6 Color CCD", + "Manufacturer": "Teledyne Photometrics", + "Model": "Micropubisher 6cat", + "CatalogNumber": "01-MP6-R-CLR-14-C-OC", + "LotNumber": "Q52084", + "SpecsFile": "https://www.photometrics.com/wp-content/uploads/2019/10/Micropublisher6-Specifications_Rev_A2.pdf", + "Mount": "C-mount", + "ReadNoiseUnit": "e- rms", + "DarkCurrentRateUnit": "e-/Pixel/sec", + "DynamicRangeUnit": "decibel (dB)", + "AmbientOperatingTemperatureUnit": "°C", + "MaxBitDepth": "14bit", + "QuantumEfficiency": 75, + "ElectronicConversionFactor": 1.3, + "ReadOutNoise": 6, + "DetectorNoiseModel": "Poisson", + "DarkCurrentRate": 0.0007, + "AmbientOperatingTemperature": -12, + "PixelWidthUnit": "µm", + "PixelHeightUnit": "µm", + "PixelWellCapacityUnit": "e-", + "MaximumFrameRateUnit": "fps", + "MaximumReadoutRateUnit": "MHz", + "VerticalClockSpeedUnit": "µs", + "ArrayWidth": 2688, + "ArrayHeight": 2200, + "PixelWidth": 4.54, + "PixelHeight": 4.54, + "Illumination": "Front", + "Color": "3-Sensor", + "PixelWellCapacity": 9000, + "MaximumFrameRate": 7, + "MaximumReadoutRate": 49, + "VerticalClockSpeed": -1, + "RegisterWellCapacityUnit": "e-", + "Type": "Conventional", + "CCDArchitecture": "Full-frame", + "RegisterWellCapacity": 9000, + "RelayLens": "na" + }, + { + "Name": "Observer 7 motorized condenser", + "ID": "8a585a22-1981-4689-a7de-88d48fb70425", + "Tier": 1, + "Schema_ID": "Condenser.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 880.8297, + "PositionY": 260.0675, + "PositionZ": 0, + "Width": 174.5964, + "Height": 130.605, + "OffsetX": 527, + "OffsetY": 239, + "OccupiedSpot": "OpticalAssembly.Condenser_1", + "Description": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, mot. with motorized aperture diaphragm and turret disk, WD=26mm For objective magnifications 4.0x-100x", + "Manufacturer": "Zeiss", + "Model": "LD condenser 0.55 H, Ph1, Ph2, Ph3, DIC, DIC; 6 positions, motorized", + "CatalogNumber": "424244-0000-000", + "Correction": "Spherical", + "Type": "Universal", + "Aperture": [ + "Aperture/90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + { + "Name": "Colibri 5 EM filter QBS", + "ID": "a549b6dc-2b63-4cd6-af8c-60c95bf995d5", + "Tier": 1, + "Schema_ID": "EmissionFilter.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1074.9202, + "PositionY": 813.1740000000001, + "PositionZ": 1, + "Width": 45.1842, + "Height": 25, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.EmissionFilter_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "occupiedSpot": null, + "Description": "emission filter QBP 425/30 + 514/30 + 592/30 + 709/100. For use with Colibri5/7", + "Manufacturer": "Zeiss", + "Model": "Filter set 90 HE LED (E)", + "CatalogNumber": "489090-9110-000", + "Type": "BandPass", + "CoatingMethod": "HardCoated", + "LightPathLocation": "Infinity space", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 514, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 592, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 709, + "FWHMBandwidth": 100 + } + ] + }, + { + "Name": "Kim lab Oko lab chamber", + "ID": "d88de579-e4ac-445c-881f-44085f73fa99", + "Tier": 1, + "Schema_ID": "EnvironmentalControlDevice.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "MicroscopyAccessories", + "PositionX": 2037.9273, + "PositionY": 867.8644, + "PositionZ": 0, + "Width": 110.9688, + "Height": 50.778, + "OffsetX": 1402, + "OffsetY": 300, + "OccupiedSpot": "MicroscopyAccessories.EnvironmentalControlDevice_1", + "Description": "CO2, Humidity, and light control chamber", + "Manufacturer": "Oko Labs", + "Model": "H201-ENCLOSURE", + "CatalogNumber": "H201-ENCLOSURE, H201-T-UNIT-BL, OKO-TOUCH, CO2-UNIT-BL, HM-ACTIVE, OKO-AIR-PUMP-BL,H201-UP, UP-1xGS-M, H201-OBSUCRING PANNELS", + "MaxTemperatureUnit": "°C", + "MinTemperatureUnit": "°C", + "TemperatureAccuracyUnit": "°C", + "TemperatureControl": "Cage-incubator enclosure", + "HumidityControl": "Active", + "CO2Control": "Gas mixer", + "VibrationControl": false, + "StandCompatibility": "Inverted", + "MinTemberature": 25, + "MaxTemperature": 55, + "O2Control": false, + "Perfusion": false + }, + { + "Name": "Reflector module FL EC P&C", + "ID": "caf63f8d-7529-4d9d-8b61-5b2d13321f66", + "Tier": 1, + "Schema_ID": "FilterCube.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1061.9700500000001, + "PositionY": 757.1305000000001, + "PositionZ": 0, + "Width": 70.4543, + "Height": 69.9062, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "FluorescenceLightPath.FilterCube_5", + "Description": "Reflector module FL EC P&C Reflection avoided through tilted mount for emission filters, max. filter thickness: 5 mm", + "Manufacturer": "Zeiss", + "Model": "Reflector module FL EC P&C", + "CatalogNumber": "424931-0000-000", + "ExcitationFilter": "na", + "StandardDichroic": "na", + "EmissionFilter": "na", + "SpecsFile": "https://www.micro-shop.zeiss.com/en/de/system/upright+microscopes/axio+lab.a1/axio+lab.a1/424931-0000-000" + }, + { + "Name": "Observer 7 motorized turret", + "ID": "7d64df45-cc32-4d8e-8018-03b2ce5a1f98", + "Tier": 1, + "Schema_ID": "FilterCubeTurret.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticsHolder", + "PositionX": 623.1933000000001, + "PositionY": 832.9093, + "PositionZ": 0, + "Width": 527.3666, + "Height": 25, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticsHolder.FilterCubeTurret_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "424947-0000-000", + "Model": "6-position reflector turret mot. for P&C modules", + "FilterCube": [ + "FilterCube/caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + }, + { + "Name": "Colibri 5", + "ID": "0767cd18-9089-4be5-8c62-eac9b4316947", + "Tier": 1, + "Schema_ID": "Fluorescence_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Fluorescence_LightSource", + "PositionX": 1428.8062, + "PositionY": 899.63205, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 124, + "OffsetY": 339, + "OccupiedSpot": "Fluorescence_LightSource_0", + "Current_Number_Of_LEDModule": 4, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Description": "Colibri 5", + "Manufacturer": "Zeiss", + "Model": "Light Source Colibri 5 Type RGB-UV", + "CatalogNumber": "423052-9640-000", + "PurchaseDate": "03/29/2019", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 43, + "PeakWavelength": 385, + "CutOn": 370, + "CutOff": 400 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 60, + "PeakWavelength": 475, + "CutOn": 450, + "CutOff": 488 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 8, + "PeakWavelength": 555, + "CutOn": 540, + "CutOff": 570 + }, + { + "IlluminationPowerUnit": "%", + "PeakWavelengthUnit": "nm", + "CutOnUnit": "nm", + "CutOffUnit": "nm", + "IlluminationPower": 32, + "PeakWavelength": 630, + "CutOn": 615, + "CutOff": 648 + } + ] + }, + { + "Name": "Observer 7 motorized Z-drive", + "ID": "0dd3a479-3d6a-42a6-827b-681cbf9aecc5", + "Tier": 1, + "Schema_ID": "MechanicalStage.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.2159, + "PositionY": 538.7879, + "PositionZ": 0, + "Width": 309, + "Height": 25, + "OffsetX": 0, + "OffsetY": 300, + "OccupiedSpot": "SamplePositioning.Stage.MechanicalStage_1", + "Manufacturer": "Zeiss", + "CatalogNumber": "431018-0000-000", + "Model": "Z Drive Mot Extended Travel 13mm", + "ZMaxVelocityUnit": "nm/s", + "ZRepeatabilityUnit": "nm", + "ZTravelRangeUnit": "mm", + "ZSettlingTimeUnit": "ms", + "ZResolutionUnit": "nm", + "RotationAngleUnit": "deg", + "Motorized": true, + "Encoded": "Rotary", + "ZMaxVelocity": 4, + "ZRepeatability": 0.1, + "ZTravelRange": 13, + "MovementAxes": "Z", + "BuiltIn": true, + "ZReproducibility": 1, + "XYMaxVelocityUnit": "nm/s", + "XYRepeatabilityUnit": "µm", + "XTravelRangeUnit": "µm", + "YTravelRangeUnit": "µm", + "XYSettlingTimeUnit": "ms", + "XYZResolutionUnit": "µm", + "XYRepeatability": 5, + "XYReproducibility": 1, + "XYReproducibilityUnit": "µm", + "XYResolution": 0.1, + "XTravelRange": -1, + "YTravelRange": -1 + }, + { + "Name": "Observer 7 Reflected-light illuminator FL", + "ID": "70968bb5-8dd2-4afa-9bd2-b42c816406d1", + "Tier": 2, + "Schema_ID": "MicroscopeTube.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "OpticalAssembly", + "PositionX": 632.7334000000001, + "PositionY": 861.2615499999999, + "PositionZ": 0, + "Width": 509.7976, + "Height": 130.8837, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "OpticalAssembly.MicroscopeTube_1", + "Manufacturer": "Zeiss", + "Model": "Reflected-light illuminator FL", + "CatalogNumber": "423606-9901-000", + "Type": "Body", + "Aperture": [ + "Aperture/ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + { + "Name": "Plan Apo 10X/0.45 DICII", + "ID": "b490294f-ddd1-4507-bae3-6e4037dd15b7", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 834.31595, + "PositionY": 578.8061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Magnification.Objective_0", + "Description": "Plan Apochromatic Zeiss objective, air, 10x", + "Manufacturer": "Zeiss", + "Model": "Objective Plan-Apochromat 10x/0.45 M27", + "CatalogNumber": "420640-9900-000", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 10, + "LensNA": 0.45, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 2, + "PhaseContrastDesignation": "Phase", + "ImageDistance": 2, + "ParfocalizingDistance": 45.06, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "20X Plan Apo", + "ID": "4202829e-643d-44bc-8df7-2a14f704d93c", + "Tier": 1, + "Schema_ID": "Objective.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Magnification", + "PositionX": 902.31595, + "PositionY": 607.3061000000001, + "PositionZ": 0, + "Width": 38.1097, + "Height": 83.033, + "OffsetX": 0, + "OffsetY": 139, + "OccupiedSpot": "Magnification.Objective_1", + "Description": "Zeiss Plan Apo objective 20x", + "Manufacturer": "Zeiss", + "CatalogNumber": "420650-9902-000", + "Model": "Objective Plan-Apochromat 20x/0.8 M27", + "LightType": "Visible", + "WorkingDistanceUnit": "mm", + "ImageDistanceUnit": "mm", + "FrontFocalLengthUnit": "mm", + "BackFocalLengthUnit": "mm", + "ParfocalizingDistanceUnit": "mm", + "Magnification": 20, + "LensNA": 0.8, + "Correction": "PlanApochromat", + "ImmersionType": "Air", + "InfinityCorrected": true, + "ContrastModulation": "None", + "DIC": true, + "WorkingDistance": 0.55, + "ImageDistance": 0.55, + "FrontFocalLength": -1, + "ObjectiveViewField": 25, + "CorrectionCollar": false + }, + { + "Name": "Internal stand shutter for FL", + "ID": "ea2bcdfa-f2b1-448f-9395-03071d46b7c0", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 1047.1093, + "PositionY": 899.68755, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 278.0239562988281, + "OccupiedSpot": "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1_Aperture_1", + "Description": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1 for reflected-light illumination switching time < 60 ms switching frequency max. 5 Hz", + "CatalogNumber": "423625-0000-000", + "Manufacturer": "Zeiss", + "Model": "Shutter FL, internal for stands Axio Observer 3 / 5 / 7 / D1 / Z1", + "ResponseTimeUnit": "ms", + "ResponseTime": 60, + "occupiedSpot": null + }, + { + "Name": "Carrier transmitted-light illumination with Shutter", + "ID": "90a8b900-bb45-41c9-a033-72e784d275b9", + "Tier": 1, + "Schema_ID": "Shutter.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Aperture", + "PositionX": 882.8919, + "PositionY": 296.01035, + "PositionZ": 1, + "Width": 33.2588, + "Height": 60.7821, + "OffsetX": 0, + "OffsetY": 0, + "OccupiedSpot": "Condenser_8a585a22-1981-4689-a7de-88d48fb70425_Aperture_0", + "Description": "Carrier transmitted-light illumination with Shutter - for Axio Observer 7/Z1 - manual luminous-field diaphragm - shutter, switching time <(><<)> 80ms - condenser mount - interface for LD condenser 0.55 mot. - 3-position filter changer, d=32 mm - carrier tiltable", + "Manufacturer": "Zeiss", + "CatalogNumber": "423926-9000-000", + "Model": "Carrier transmitted-light illumination with Shutter", + "ResponseTime": 80, + "ResponseTimeUnit": "ms", + "OuterDiameterUnit": "mm" + }, + { + "Name": "Universal mounting frame K", + "ID": "e70c1040-b900-4956-ae5e-c957ac033445", + "Tier": 1, + "Schema_ID": "StageInsert.json", + "ModelVersion": "2.01.1", + "Extension": "Basic", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "SamplePositioning.Stage", + "PositionX": 819.5173500000001, + "PositionY": 421.35699999999997, + "PositionZ": 0, + "Width": 308.3971, + "Height": 76.1638, + "OffsetX": 0, + "OffsetY": 339, + "OccupiedSpot": "SamplePositioning.Stage.StageInsert_1", + "Description": "Observer 7 mounting frame; Universal mounting frame K for: - Petri dishes dia. 24...68 mm - slides (max. length 120 mm) frame size 160 x 110 mm", + "Manufacturer": "Zeiss", + "Model": "Universal mounting frame K", + "CatalogNumber": "451352-0000-000", + "SampleHolderType": "Petri Dish", + "TemperatureControlled": false, + "NumberOfSlots": 1 + }, + { + "Name": "Colibri5 Beamsplitter", + "ID": "b8a92df7-d889-4993-a7c4-7950fa38b0c4", + "Tier": 1, + "Schema_ID": "StandardDichroic.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "FluorescenceLightPath", + "PositionX": 1079.6469, + "PositionY": 774.0288, + "PositionZ": 1, + "Width": 37.0594, + "Height": 38.2954, + "OffsetX": 99.60000610351562, + "OffsetY": 275.3999938964844, + "OccupiedSpot": "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66_FluorescenceLightPath.StandardDichroic_1", + "Current_Number_Of_TransmittanceRange": 4, + "Min_Number_Of_TransmittanceRange": 1, + "Max_Number_Of_TransmittanceRange": -1, + "Current_Number_Of_ReflectanceRange": 0, + "Min_Number_Of_ReflectanceRange": 0, + "Max_Number_Of_ReflectanceRange": -1, + "Manufacturer": "Zeiss", + "Model": "QBS 405 + 493 + 575 + 653", + "CatalogNumber": "489090-9110-000", + "AngleOfIncidenceUnit": "deg", + "MirrorType": "Planar", + "Diameter": 24.2, + "DiameterUnit": "mm", + "Type": "Notch", + "LightPathLocation": "Illumination port", + "Thickness": 1.1, + "ThicknessUnit": "mm", + "CoatingMethod": "HardCoated", + "TransmittanceRange": [ + { + "WavelengthUnit": "nm", + "Wavelength": 425, + "FWHMBandwidth": 20 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 515, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 595, + "FWHMBandwidth": 30 + }, + { + "WavelengthUnit": "nm", + "Wavelength": 730, + "FWHMBandwidth": 50 + } + ], + "occupiedSpot": null, + "AttenuationMethod": "Reflection" + }, + { + "Name": "Zeiss Illuminator MicroLED2", + "ID": "786e6c7b-9692-4de6-8517-d77908d70f4f", + "Tier": 1, + "Schema_ID": "Transmitted_LightSource_LightEmittingDiode.json", + "ModelVersion": "2.01.1", + "Extension": "Core", + "Domain": "MicroscopeHardwareSpecifications", + "Category": "Transmitted_LightSource", + "PositionX": 1194.3958, + "PositionY": 32.856249999999996, + "PositionZ": 0, + "Width": 65.0108, + "Height": 69.3319, + "OffsetX": 204, + "OffsetY": 0, + "OccupiedSpot": "Transmitted_LightSource_1", + "Current_Number_Of_LEDModule": 1, + "Min_Number_Of_LEDModule": 1, + "Max_Number_Of_LEDModule": -1, + "Manufacturer": "Zeiss", + "Model": "Zeiss Illuminator MicroLED2", + "CatalogNumber": "423053-9072-000", + "Type": "Mounted", + "LEDModule": [ + { + "IlluminationPowerUnit": "mW", + "IlluminationPower": -1 + } + ] + } + ], + "linkedFields": { + "CCD_be101359-87c3-4e1a-b968-9a7039b2eac9": { + "RelayLens": { + "schemaType": "CCD", + "value": "na" + } + }, + "AcquisitionSoftware_d6ad51b1-28c5-47ed-b1d8-e0f8a5f48c4a": { + "SoftwareModule": { + "schemaType": "AcquisitionSoftware", + "value": [ + + ] + } + }, + "FilterCube_caf63f8d-7529-4d9d-8b61-5b2d13321f66": { + "ExcitationFilter": { + "schemaType": "FilterCube", + "value": "na" + }, + "StandardDichroic": { + "schemaType": "FilterCube", + "value": "na" + }, + "EmissionFilter": { + "schemaType": "FilterCube", + "value": "na" + } + }, + "FilterCubeTurret_7d64df45-cc32-4d8e-8018-03b2ce5a1f98": { + "FilterCube": { + "schemaType": "FilterCubeTurret", + "value": [ + "caf63f8d-7529-4d9d-8b61-5b2d13321f66" + ] + } + }, + "MicroscopeTube_70968bb5-8dd2-4afa-9bd2-b42c816406d1": { + "Filter": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "MicroscopeTube", + "value": [ + "ea2bcdfa-f2b1-448f-9395-03071d46b7c0" + ] + }, + "PolarizationOptics": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "MicroscopeTube", + "value": "Not assigned" + } + }, + "Condenser_8a585a22-1981-4689-a7de-88d48fb70425": { + "Filter": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Lens": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "MirroringDevice": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Aperture": { + "schemaType": "Condenser", + "value": [ + "90a8b900-bb45-41c9-a033-72e784d275b9" + ] + }, + "PolarizationOptics": { + "schemaType": "Condenser", + "value": "Not assigned" + }, + "Prism": { + "schemaType": "Condenser", + "value": "Not assigned" + } + } + } +} diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv new file mode 100644 index 000000000..410f92698 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium.ome-tiff.channels.csv @@ -0,0 +1,3 @@ +Channel:0:0,No,No,No +Channel:0:1,No,No,No +Channel:0:2,No,No,No diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/lab_processed/images/Visium_90LC_A4_S1.ome.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/empty_file.gpr new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/fastq/RNA/empty_R_file.fastq.gz new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/fastq/empty_file new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/Visium_9OLC_I4_S1/raw/images/faketiff.tiff new file mode 100644 index 000000000..e69de29bb diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/contributors.tsv b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/contributors.tsv new file mode 100644 index 000000000..387e13c11 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/contributors.tsv @@ -0,0 +1,2 @@ +first_name last_name middle_name_or_initial display_name affiliation orcid email is_contact is_principal_investigator is_operator metadata_schema_id +Firstname Lastname M. Firstname M. Lastname Carnegie Mellon University 0000-0002-8928-741X test@test.com Yes Yes Yes 94dae6f8-0756-4ab0-a47b-138e446a9501 diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-assay-metadata.tsv b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-assay-metadata.tsv new file mode 100644 index 000000000..abc3831a6 --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-assay-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type contributors_path data_path mapped_area_value mapped_area_unit spot_size_value spot_size_unit number_of_spots spot_spacing_value spot_spacing_unit capture_area_id permeabilization_time_value permeabilization_time_unit +babf1e69-f0eb-479a-bdc5-b70199669675 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S1 42.25 mm^2 2375.9 um^2 4992 100 um A1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_A4_S2 42.25 mm^2 2375.9 um^2 4992 100 um B1 24 minute +babf1e69-f0eb-479a-bdc5-b70199669675 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Visium (no probes) ./contributors.tsv ./Visium_9OLC_I4_S1 42.25 mm^2 2375.9 um^2 4992 100 um C1 24 minute diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-histology-metadata.tsv b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-histology-metadata.tsv new file mode 100644 index 000000000..ed68b77bf --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-histology-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path is_image_preprocessing_required stain_name stain_technique is_batch_staining_done is_staining_automated preparation_instrument_vendor preparation_instrument_model slide_id tile_configuration scan_direction tiled_image_columns tiled_image_count intended_tile_overlap_percentage +e7475329-9a60-4088-8e34-19a3828e0b3b HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 +e7475329-9a60-4088-8e34-19a3828e0b3b HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 Histology nucleic acid and protein No Zeiss Microscopy Axio Observer 7 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 Yes H&E progressive staining Yes No Not applicable Not applicable V11A19-078 Snake-by-rows Right-and-down 10 120 0.3 diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-rnaseq-metadata.tsv b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-rnaseq-metadata.tsv new file mode 100644 index 000000000..554eff0fe --- /dev/null +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/upload/good-visium-rnaseq-metadata.tsv @@ -0,0 +1,4 @@ +metadata_schema_id parent_sample_id lab_id preparation_protocol_doi dataset_type analyte_class is_targeted acquisition_instrument_vendor acquisition_instrument_model source_storage_duration_value source_storage_duration_unit time_since_acquisition_instrument_calibration_value time_since_acquisition_instrument_calibration_unit contributors_path data_path barcode_offset barcode_read barcode_size umi_offset umi_read umi_size assay_input_entity number_of_input_cells_or_nuclei amount_of_input_analyte_value amount_of_input_analyte_unit library_adapter_sequence library_average_fragment_size library_input_amount_value library_input_amount_unit library_output_amount_value library_output_amount_unit library_concentration_value library_concentration_unit library_layout number_of_iterations_of_cdna_amplification number_of_pcr_cycles_for_indexing library_preparation_kit sample_indexing_kit sample_indexing_set is_technical_replicate expected_entity_capture_count sequencing_reagent_kit sequencing_read_format sequencing_batch_id capture_batch_id preparation_instrument_vendor preparation_instrument_model preparation_instrument_kit +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM233.CGGG.482 Visium_9OLC_A4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 517 176.834 ng 735.479 ng 61.584 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D1 No 1448 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM854.FXDQ.783 Visium_9OLC_A4_S2 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_A4_S2 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 461 247.861 ng 815.816 ng 76.6089 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D2 No 1382 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 +944e5fa0-f68b-4bdd-8664-74a3909429a9 HBM327.XDJP.776 Visium_9OLC_I4_S1 https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1 RNAseq RNA No Illumina NovaSeq 6000 24 day ./contributors.tsv ./Visium_9OLC_I4_S1 0 Read 1 (R1) 16 16 Read 1 (R1) 12 spot TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG 502 507.522 ng 1031.018 ng 88.91 nM single-end 16 16 10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184 10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215 SI-TT-D3 No 2062 Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319 28,10,10,90 Penn-E.768 diff --git a/examples/dataset-examples/good-codex-akoya-directory-v1-with-dataset.json/MOCK_RESPONSE.json b/examples/dataset-examples/good-codex-akoya-directory-v1-with-dataset.json/MOCK_RESPONSE.json index eb7790f2d..892619ce2 100644 --- a/examples/dataset-examples/good-codex-akoya-directory-v1-with-dataset.json/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-codex-akoya-directory-v1-with-dataset.json/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": [1, "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-codex-akoya-metadata-v1/MOCK_RESPONSE.json b/examples/dataset-examples/good-codex-akoya-metadata-v1/MOCK_RESPONSE.json index eb7790f2d..892619ce2 100644 --- a/examples/dataset-examples/good-codex-akoya-metadata-v1/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-codex-akoya-metadata-v1/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": [1, "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-maldiims/MOCK_RESPONSE.json b/examples/dataset-examples/good-maldiims/MOCK_RESPONSE.json index 988aa4dee..dc6998fcb 100644 --- a/examples/dataset-examples/good-maldiims/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-maldiims/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["VAN0001", "VAN0001-LK-1-1", "2021-01-04 17:45", "10.17504/protocols.io.7gdhjs6", "Elizabeth K. Neumann", "elizabeth.neumann@vanderbilt.edu", "Jeffrey M. Spraggins", "jeff.spraggins@vanderbilt.edu", "mass_spectrometry_imaging", "MALDI-IMS", "lipids", "False", "Bruker Daltonics", "MALDI timsTOF Flex", "MALDI", "positive ion mode", "150.0", "2000.0", "10.0", "um", "10.0", "um", "Sprayed", "HTX Imaging", "M3 TM-Sprayer", "1,5-Diaminonaphthalene", "10.17504/protocols.io.bt8hnrt6", "10.17504/protocols.io.bfskjncw", "contributors.tsv", "dataset-1"], "response": {"assaytype": "MALDI-IMS", "description": "MALDI IMS", "dir_schema": "ims-v0", "tbl_schema": "ims-v0", "vitessce_hints": ["maldi"]}} \ No newline at end of file +{"MALDI-IMS": {"args": ["VAN0001", "VAN0001-LK-1-1", "2021-01-04 17:45", "10.17504/protocols.io.7gdhjs6", "Elizabeth K. Neumann", "elizabeth.neumann@vanderbilt.edu", "Jeffrey M. Spraggins", "jeff.spraggins@vanderbilt.edu", "mass_spectrometry_imaging", "MALDI-IMS", "lipids", "False", "Bruker Daltonics", "MALDI timsTOF Flex", "MALDI", "positive ion mode", "150.0", "2000.0", "10.0", "um", "10.0", "um", "Sprayed", "HTX Imaging", "M3 TM-Sprayer", "1,5-Diaminonaphthalene", "10.17504/protocols.io.bt8hnrt6", "10.17504/protocols.io.bfskjncw", "contributors.tsv", "dataset-1"], "response": {"assaytype": "MALDI-IMS", "description": "MALDI IMS", "dir_schema": "ims-v0", "tbl_schema": "ims-v0", "vitessce_hints": ["maldi"]}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-scatacseq-metadata-v0/MOCK_RESPONSE.json b/examples/dataset-examples/good-scatacseq-metadata-v0/MOCK_RESPONSE.json index a07ef17bd..1aac7f340 100644 --- a/examples/dataset-examples/good-scatacseq-metadata-v0/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-scatacseq-metadata-v0/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}} \ No newline at end of file +{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-scatacseq-metadata-v1/MOCK_RESPONSE.json b/examples/dataset-examples/good-scatacseq-metadata-v1/MOCK_RESPONSE.json index 4773e35a0..2b99caf1e 100644 --- a/examples/dataset-examples/good-scatacseq-metadata-v1/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-scatacseq-metadata-v1/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": [1, "lorem ipsum", "UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v1", "vitessce_hints": []}} \ No newline at end of file +{"SNARE-seq2": {"args": ["1", "lorem ipsum", "UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v1", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-iec-examples/bad-example/MOCK_RESPONSE.json b/examples/dataset-iec-examples/bad-example/MOCK_RESPONSE.json index efa93c8e2..313f41302 100644 --- a/examples/dataset-iec-examples/bad-example/MOCK_RESPONSE.json +++ b/examples/dataset-iec-examples/bad-example/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["bad-donor-id", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/fake", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/fake", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "extras/contributors.tsv", "."], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}} \ No newline at end of file +{"SNARE-seq2": {"args": ["bad-donor-id", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/fake", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/fake", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "extras/contributors.tsv", "."], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/dataset-iec-examples/good-example/MOCK_RESPONSE.json b/examples/dataset-iec-examples/good-example/MOCK_RESPONSE.json index b1cf926c4..c915db6ab 100644 --- a/examples/dataset-iec-examples/good-example/MOCK_RESPONSE.json +++ b/examples/dataset-iec-examples/good-example/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "extras/contributors.tsv", "."], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}} \ No newline at end of file +{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "extras/contributors.tsv", "."], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json b/examples/tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json index 1602bde91..cde12d62c 100644 --- a/examples/tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json +++ b/examples/tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["BAD", "BAD", "BAD", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v0", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["BAD", "BAD", "BAD", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/examples/tsv-examples/metadata/bad-metadata/README.md b/examples/tsv-examples/metadata/bad-metadata/README.md index 969a804e7..3eb66ee9a 100644 --- a/examples/tsv-examples/metadata/bad-metadata/README.md +++ b/examples/tsv-examples/metadata/bad-metadata/README.md @@ -1,5 +1,5 @@ ``` -codex-v0 TSV errors: +CODEX-vcodex-v0 TSV errors: Local Validation Errors: examples/tsv-examples/metadata/bad-metadata/upload/metadata.tsv (as codex-v0): - 'On row 2, column "donor_id", value "BAD" fails because it does not match the diff --git a/examples/tsv-examples/metadata/good-metadata/MOCK_RESPONSE.json b/examples/tsv-examples/metadata/good-metadata/MOCK_RESPONSE.json index 95abd7206..c3c6cab99 100644 --- a/examples/tsv-examples/metadata/good-metadata/MOCK_RESPONSE.json +++ b/examples/tsv-examples/metadata/good-metadata/MOCK_RESPONSE.json @@ -1 +1 @@ -{"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v0", "vitessce_hints": []}} \ No newline at end of file +{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file diff --git a/src/ingest_validation_tools/schema_loader.py b/src/ingest_validation_tools/schema_loader.py index 32bc41283..49bd45ab8 100644 --- a/src/ingest_validation_tools/schema_loader.py +++ b/src/ingest_validation_tools/schema_loader.py @@ -49,11 +49,7 @@ class SchemaVersion: vitessce_hints: List = field(default_factory=list) dir_schema: str = "" metadata_type: str = "assays" - # TODO: this is not thought out yet - # multi_type: str = "" - # must_contain: List = field(default_factory=list) - # can_contain: List = field(default_factory=list) - # part_of_multi: bool = False + contains: List = field(default_factory=list) def __post_init__(self): if type(self.path) is str: @@ -81,10 +77,6 @@ def __post_init__(self): self.version = "0" if not self.table_schema: self.table_schema = f"{self.schema_name}-v{self.version}" - # if self.must_contain: - # self.multi_type = "must" - # elif self.can_contain: - # self.multi_type = "can" def get_row_data(self): if self.rows[0].get("metadata_schema_id"): @@ -100,7 +92,6 @@ def get_row_data(self): ) else: self.dataset_type = assay_type if assay_type else dataset_type - # self.create_row_data() def get_assayclassifier_data(self): self.vitessce_hints = self.soft_assay_data.get("vitessce_hints", []) @@ -109,8 +100,8 @@ def get_assayclassifier_data(self): match = re.match(r".+-v(\d+)", self.table_schema) if match: self.version = match[0] - # self.must_contain = self.soft_assay_data.get("must_contain", []) - # self.can_contain = self.soft_assay_data.get("can_contain", []) + contains = self.soft_assay_data.get("must_contain", []) + self.contains = [schema.lower() for schema in contains] @dataclass diff --git a/src/ingest_validation_tools/test_validation_utils.py b/src/ingest_validation_tools/test_validation_utils.py index 2a97ae1a3..c520ec86f 100644 --- a/src/ingest_validation_tools/test_validation_utils.py +++ b/src/ingest_validation_tools/test_validation_utils.py @@ -1,6 +1,6 @@ import json from pathlib import Path -from typing import Dict, List +from typing import Dict class MockException(Exception): @@ -17,16 +17,18 @@ def mock_response(path: Path, row: Dict) -> Dict: ./tests-manual/test-dataset-examples-cedar.sh """ ) - diff = set(row.values()).difference(response_dict.get("args", [])) + dataset_type = _get_dataset_type_from_row(row) + response_args = response_dict.get(dataset_type, {}).get("args", []) + diff = set(row.values()).difference(response_args) if not diff: - return response_dict["response"] + return response_dict[dataset_type]["response"] else: raise MockException( f""" Not all expected args were passed for path {path}. Diff: {diff} Args passed: {row} - Expected args: {response_dict.get("args", [])} + Expected args: {response_args} """ ) @@ -45,13 +47,27 @@ def compare_mock_with_response(row: Dict, response: Dict, path: Path): # Messy method of creating mock response file if missing or outdated; # would be nicer for this to throw exception during testing and have # user create manually - if not row.values() == mock_file.get("args") or not response == mock_file.get( - "response" - ): - update_mock_file(list(row.values()), path, response) + dataset_type = _get_dataset_type_from_row(row) + for dataset_type_key, mock in mock_file.items(): + if dataset_type == dataset_type_key: + if row.values() == mock.get("args") and response == mock.get(response): + return + update_mock_file(row, path, response) -def update_mock_file(row: List, path: Path, response: Dict, method: str = "w"): +def update_mock_file(row: Dict, path: Path, response: Dict): metadata_dir = path.parents[1] - with open(metadata_dir / "MOCK_RESPONSE.json", method) as mock_file: - json.dump({"args": row, "response": response}, mock_file) + try: + with open(metadata_dir / "MOCK_RESPONSE.json", "r") as mock_file: + existing = json.load(mock_file) + except Exception: + existing = {} + # TODO: this will break if Other types get added to soft assay endpoint + dataset_type = _get_dataset_type_from_row(row) + existing[dataset_type] = {"args": list(row.values()), "response": response} + with open(metadata_dir / "MOCK_RESPONSE.json", "w") as f: + json.dump(existing, f) + + +def _get_dataset_type_from_row(row: Dict): + return row.get("dataset_type") if row.get("dataset_type") else row.get("assay_type") diff --git a/src/ingest_validation_tools/upload.py b/src/ingest_validation_tools/upload.py index 535bda696..b492a064b 100644 --- a/src/ingest_validation_tools/upload.py +++ b/src/ingest_validation_tools/upload.py @@ -21,11 +21,10 @@ ) from ingest_validation_tools.table_validator import ReportType, get_table_errors from ingest_validation_tools.validation_utils import ( - dict_reader_wrapper, - get_context_of_decode_error, get_data_dir_errors, get_json, get_schema_version, + read_rows, ) TSV_SUFFIX = "metadata.tsv" @@ -70,7 +69,6 @@ def __init__( self.effective_tsv_paths = {} self.extra_parameters = extra_parameters if extra_parameters else {} self.globus_token = globus_token - # TODO: soft assay type endpoint calls happen here to weed out any bad multi-assay uploads self.run_plugins = run_plugins try: @@ -91,48 +89,14 @@ def __init__( for k in sorted(unsorted_effective_tsv_paths.keys()) } + self._check_multi_assay() + except PreflightError as e: self.errors["Preflight"] = e - # def _check_multi_assay(self): - # # This is not recursive, so if there are nested requirements it will not work - # shared_data_paths = defaultdict(lambda: {"name": "", "components": []}) - # multi = [sv for sv in self.effective_tsv_paths.values() if sv.multi_type] - # if len(multi) == 0: - # return - # elif len(multi) == 1: - # MultiAssaySchema = namedtuple( - # "MultiAssaySchema", - # ["schema_name", "multi_type", "contains", "data_path"], - # ) - # self.multi_assay_schema = MultiAssaySchema( - # multi[0].schema_name, - # multi[0].multi_type, - # multi[0].must_contain + multi[0].can_contain, - # multi[0].data_path, - # ) - # shared_data_paths[multi[0].data_path]["name"] = multi[0].schema_name - # else: - # raise Exception - # for sv in self.effective_tsv_paths.values(): - # if ( - # # TODO: is it the case that there will be a - # # multi-assay type and multiple data paths? - # sv.data_path == self.multi_assay_schema.data_path - # and sv.schema_name in self.multi_assay_schema.contains - # ): - # shared_data_paths[sv.data_path]["contains"] = sv.schema_name - # else: - # raise Exception - # if self.multi_assay_schema.multi_type == "must": - # assert ( - # self.multi_assay_schema.contains - # == shared_data_paths[self.multi_assay_schema.data_path] - # ), "" - ##################### # - # Two public methods: + # Public methods: # ##################### @@ -179,15 +143,7 @@ def get_errors(self, **kwargs) -> dict: errors = {} try: - # other_errors = self.check_other_schemas() - # if other_errors and not self.effective_tsv_paths: - # return other_errors - # elif self.effective_tsv_paths: - # errors.update(other_errors) - # else: - # return {} - - upload_errors = self.check_upload() + upload_errors = self._check_upload() if upload_errors: errors["Upload Errors"] = upload_errors @@ -212,29 +168,50 @@ def get_errors(self, **kwargs) -> dict: return errors + def validation_routine( + self, + report_type: ReportType = ReportType.STR, + tsv_paths: Dict[str, SchemaVersion] = {}, + ) -> dict: + errors: DefaultDict[str, dict] = defaultdict(dict) + tsvs_to_evaluate = tsv_paths if tsv_paths else self.effective_tsv_paths + for tsv_path, schema_version in tsvs_to_evaluate.items(): + path_errors = self._validate(tsv_path, schema_version, report_type) + if not path_errors: + continue + for key, value in path_errors.items(): + if type(value) is dict: + errors[key].update(value) + else: + errors.update({key: value}) + return dict(errors) + ################################### # # Top-level private methods: # ################################### - # def check_other_schemas(self): - # # Antibodies and contributors are handled elsewhere - # errors = {} - # others = ["organ", "sample"] - # for tsv_path, schema_version in self.effective_tsv_paths.items(): - # if schema_version.schema_name in others: - # error = self._validate(tsv_path, schema_version) - # if error: - # errors[f"{tsv_path} (as {schema_version.schema_name})"] = error - # self.effective_tsv_paths = { - # k: v - # for k, v in self.effective_tsv_paths.items() - # if v.schema_name not in others - # } - # return errors - - def check_upload(self) -> dict: + def _check_multi_assay(self): + # This is not recursive, so if there are nested multi-assay types it will not work + self.multi_assay_data_paths: DefaultDict[ + str, DefaultDict[str, List[SchemaVersion]] + ] = defaultdict(lambda: defaultdict(list)) + multi_assay_parents = [ + sv for sv in self.effective_tsv_paths.values() if sv.contains + ] + if len(multi_assay_parents) == 0: + return {} + if len(multi_assay_parents) > 1: + raise PreflightError( + f"Upload contains multiple parent multi-assay types: {multi_assay_parents}" + ) + components = [sv for sv in self.effective_tsv_paths.values() if not sv.contains] + self._check_multi_assay_children(multi_assay_parents[0], components) + self._check_data_paths_shared_with_parent(multi_assay_parents[0]) + logging.info(f"Multi-assay data: {self._print_multi_assay_data()}") + + def _check_upload(self) -> dict: upload_errors = {} tsv_errors = self._get_local_tsv_errors() if tsv_errors: @@ -278,38 +255,56 @@ def _get_local_tsv_errors(self) -> Optional[Dict]: def _get_directory_errors(self) -> dict: errors = {} - for path, schema in self.effective_tsv_paths.items(): - dir_errors = self._get_ref_errors("data", schema, path) - if dir_errors: - """ - TODO: there's an issue here (and any other places setting a key - that might be long) where the YAML dumper converts this to a - complex key and adds a ? at the front and inserts a line break - at the next instance of whitespace (in this case, leading - (as x) to be on a following line) - Wrote validation_utils > print_path to try to address this - issue, but needed to deprioritize. - """ - errors.update(dir_errors) + if self.multi_assay_data_paths: + for path, dataset_types in self.multi_assay_data_paths.items(): + dir_errors = self._get_multi_assay_dir_errors(path, dataset_types) + if dir_errors: + errors.update(dir_errors) + else: + for path, schema in self.effective_tsv_paths.items(): + dir_errors = self._get_ref_errors("data", schema, path) + if dir_errors: + """ + TODO: there's an issue here (and any other places setting a key + that might be long) where the YAML dumper converts this to a + complex key and adds a ? at the front and inserts a line break + at the next instance of whitespace (in this case, leading + (as x) to be on a following line) + Wrote validation_utils > print_path to try to address this + issue, but needed to deprioritize. + """ + errors.update(dir_errors) return errors - def validation_routine( - self, - report_type: ReportType = ReportType.STR, - tsv_paths: Dict[str, SchemaVersion] = {}, - ) -> dict: - errors: DefaultDict[str, dict] = defaultdict(dict) - tsvs_to_evaluate = tsv_paths if tsv_paths else self.effective_tsv_paths - for tsv_path, schema_version in tsvs_to_evaluate.items(): - path_errors = self._validate(tsv_path, schema_version, report_type) - if not path_errors: - return {} - for key, value in path_errors.items(): - if type(value) is dict: - errors[key].update(value) - else: - errors.update({key: value}) - return dict(errors) + def _get_multi_assay_dir_errors( + self, path: str, dataset_types: Dict + ) -> Optional[Dict]: + parent = dataset_types.get("parent") + # Validate against parent multi-assay type if data_path is in parent TSV + if parent: + return self._multi_assay_dir_check(parent[0], path) + # Validate against component structure otherwise + elif dataset_types.get("components"): + errors = {} + for component in dataset_types["components"]: + errors.update(self._multi_assay_dir_check(component, path)) + return errors + + def _multi_assay_dir_check(self, schema: SchemaVersion, data_path: str) -> Dict: + errors = {} + abs_data_path = self.directory_path / data_path + if not schema.dir_schema: + raise Exception( + f"No directory schema found for data_path {abs_data_path} in {schema.path}!" + ) + ref_errors = get_data_dir_errors( + schema.dir_schema, + abs_data_path, + dataset_ignore_globs=self.dataset_ignore_globs, + ) + if ref_errors: + errors[f"{schema.path}, column 'data_path', value {data_path}"] = ref_errors + return errors def _validate( self, @@ -358,7 +353,7 @@ def _validate( return errors else: url_errors = self._cedar_url_checks(tsv_path, schema_version) - api_errors = self.api_validation(Path(tsv_path), report_type) + api_errors = self._api_validation(Path(tsv_path), report_type) if url_errors or api_errors: api_validated[f"{tsv_path}"] = url_errors | api_errors if local_validated: @@ -370,14 +365,11 @@ def _validate( def _get_reference_errors(self) -> dict: errors: Dict[str, Any] = {} no_ref_errors = self.__get_no_ref_errors() - try: - multi_ref_errors = self.__get_multi_ref_errors() - if no_ref_errors: - errors["No References"] = no_ref_errors - if multi_ref_errors: - errors["Multiple References"] = multi_ref_errors - except UnicodeDecodeError as e: - errors["Decode Error"] = get_context_of_decode_error(e) + multi_ref_errors = self.__get_multi_ref_errors() + if no_ref_errors: + errors["No References"] = no_ref_errors + if multi_ref_errors: + errors["Multiple References"] = multi_ref_errors return errors def _get_plugin_errors(self, **kwargs) -> dict: @@ -398,7 +390,7 @@ def _get_plugin_errors(self, **kwargs) -> dict: errors["Unexpected Plugin Error"] = [e] return dict(errors) # get rid of defaultdict - def api_validation( + def _api_validation( self, tsv_path: Path, report_type: ReportType, @@ -422,6 +414,88 @@ def api_validation( # ############################## + def _print_multi_assay_data(self): + """ + Print only dataset types of multi_assay_data_paths + """ + print_dict = {} + for path, multi_components in self.multi_assay_data_paths.items(): + print_multi_components = {} + for key, value in multi_components.items(): + if key == "parent": + print_multi_components["parent"] = value[0].dataset_type + elif key == "components": + print_components = [] + for component in value: + print_components.append(component.dataset_type) + print_multi_components["components"] = print_components + print_dict[path] = print_multi_components + return print_dict + + def _check_multi_assay_children( + self, parent: SchemaVersion, components: List[SchemaVersion] + ): + """ + Iterate through child dataset types, check that they are valid + components of parent multi-assay type and that no components are missing + """ + not_allowed = [] + necessary = parent.contains + for sv in components: + if sv.dataset_type.lower() not in parent.contains: + not_allowed.append(sv.dataset_type) + else: + for row in sv.rows: + if row.get("data_path"): + self.multi_assay_data_paths[row["data_path"]][ + "components" + ].append(sv) + necessary.remove(sv.dataset_type.lower()) + message = "" + if necessary: + message += f"Multi-assay parent type {parent.dataset_type} missing required component(s) {necessary}." # noqa: E501 + if not_allowed: + message += f" Invalid child assay type(s) for parent type {parent.dataset_type}: {not_allowed}" # noqa: E501 + if message: + raise PreflightError(message) + + def _check_data_paths_shared_with_parent(self, parent: SchemaVersion): + """ + Check parent multi-assay TSV data_path values against data_paths in child TSVs + Any data_paths with components but no parent are assumed to be standalone + datasets and left alone + """ + # Add "parent" data to any data_paths in multi_assay_data_paths + # that appear in the parent TSV + multi_data_paths = [row.get("data_path") for row in parent.rows] + for path in multi_data_paths: + self.multi_assay_data_paths[path]["parent"] = [parent] + missing_components = defaultdict(list) + for path, related_svs in self.multi_assay_data_paths.items(): + if related_svs.get("parent"): + # If there is a parent but no components, continue without + # removing from multi_data_paths to trigger error downstream + if not related_svs.get("components"): + continue + existing_components = { + sv.dataset_type.lower() for sv in related_svs["components"] + } + # If there is a parent and all required components are not present, + # add to missing_components to trigger error downstream + diff = set(parent.contains).difference(existing_components) + if diff: + missing_components[path] = [*missing_components[path], *list(diff)] + else: + multi_data_paths.remove(path) + if missing_components: + raise PreflightError( + f"Multi-assay type '{parent.dataset_type}' requires {parent.contains}. Data paths missing components: {list(missing_components.keys())}" # noqa: E501 + ) + if multi_data_paths: + raise PreflightError( + f"Multi-assay TSV {parent.path} contains data paths that are not present in child assay TSVs. Data paths unique to parent: {multi_data_paths}" # noqa: E501 + ) + def _cedar_api_call(self, tsv_path: Union[str, Path]) -> requests.models.Response: file = {"input_file": open(tsv_path, "rb")} headers = {"content_type": "multipart/form-data"} @@ -472,7 +546,7 @@ def _cedar_url_checks(self, tsv_path: str, schema_version: SchemaVersion): return errors def _check_matching_urls(self, tsv_path: str, constrained_fields: dict): - rows = self._get_rows_from_tsv(tsv_path) + rows = read_rows(Path(tsv_path), "ascii") fields = rows[0].keys() missing_fields = [ k for k in constrained_fields.keys() if k not in fields @@ -542,19 +616,6 @@ def _get_message( return msg if return_str else get_json(msg, error["row"], error["column"]) return error - def _get_rows_from_tsv(self, path: Union[str, Path]) -> List: - errors: Dict[str, Any] = {} - try: - rows = dict_reader_wrapper(path, self.encoding) - if type(rows) is list: - return rows - errors["TSV Row Errors"] = rows - except UnicodeDecodeError as e: - errors["Decode Errors"] = get_context_of_decode_error(e) - except IsADirectoryError: - errors["Path Errors"] = f"Expected a TSV, found a directory at {path}." - raise ErrorDictException(errors) - def _check_path( self, i: int, @@ -616,6 +677,9 @@ def _get_ref_errors( if not row.get(field): continue ref_path = self.directory_path / row[field] + # TODO: _check_path is really slamming the Metadata Validator API with the + # contributors.tsv; gather unique values from contributors/antibodies + # and validate once per? ref_error = self._check_path(i, ref_path, ref, schema, metadata_path) if ref_error: ref_errors.update(ref_error) @@ -651,14 +715,19 @@ def __get_no_ref_errors(self) -> dict: return errors def __get_multi_ref_errors(self) -> dict: - # TODO: This needs to be updated to include multi-assay logic # If - multi-assay dataset (and only that dataset is referenced) don't fail # Else - fail errors = {} data_references = self.__get_data_references() + multi_references = [ + path + for path, value in self.multi_assay_data_paths.items() + if value.get("parent") + ] for path, references in data_references.items(): - if len(references) > 1: - errors[path] = references + if path not in multi_references: + if len(references) > 1: + errors[path] = references return errors def __get_data_references(self) -> dict: @@ -672,9 +741,8 @@ def __get_contributors_references(self) -> dict: def __get_references(self, col_name) -> dict: references = defaultdict(list) - # TODO: refactor - for tsv_path in self.effective_tsv_paths.keys(): - for i, row in enumerate(dict_reader_wrapper(tsv_path, self.encoding)): + for tsv_path, schema in self.effective_tsv_paths.items(): + for i, row in enumerate(schema.rows): if col_name in row: reference = f"{tsv_path} (row {i+2})" references[row[col_name]].append(reference) diff --git a/src/ingest_validation_tools/validation_utils.py b/src/ingest_validation_tools/validation_utils.py index 391980a39..8fc1fab24 100644 --- a/src/ingest_validation_tools/validation_utils.py +++ b/src/ingest_validation_tools/validation_utils.py @@ -55,6 +55,8 @@ def get_schema_version( rows=rows, ) return sv + if not (rows[0].get("dataset_type") or rows[0].get("assay_type")): + raise PreflightError(f"No assay_type or dataset_type in {path}.") assay_type_data = get_assaytype_data( rows[0], globus_token, @@ -62,12 +64,12 @@ def get_schema_version( offline=offline, ) if not assay_type_data: - message = f"No assay data retrieved for {path}." - if "assay_type" not in rows[0].keys() and "dataset_type" not in rows[0].keys(): - message += ' Does not contain "assay_type" or "dataset_type".' - elif "assay_type" in rows[0].keys(): + message = ( + f"Assay data not retrieved from assayclassifier endpoint for TSV {path}." + ) + if "assay_type" in rows[0]: message += f' Assay type: {rows[0].get("assay_type")}.' - elif "dataset_type" in rows[0].keys(): + elif "dataset_type" in rows[0]: message += f' Dataset type: {rows[0].get("dataset_type")}.' if "channel_id" in rows[0]: message += ( @@ -81,7 +83,7 @@ def get_schema_version( message += f' Column headers in TSV: {", ".join(rows[0].keys())}' raise PreflightError(message) return SchemaVersion( - assay_type_data["assaytype"].lower(), + assay_type_data["assaytype"], directory_path=directory_path, path=path, rows=rows, @@ -129,6 +131,7 @@ def get_other_schema_name(rows: List, path: str) -> Optional[str]: def get_ingest_api_env(env: str) -> str: + # TODO: this should be obtained in another way if env in ["dev", "test", "stage"]: return f"https://ingest-api.{env}.hubmapconsortium.org/assaytype" elif env == "prod": @@ -146,8 +149,6 @@ def get_assaytype_data( env: str = "dev", offline: bool = False, ) -> Dict: - if "version" in row.keys(): - row["version"] = int(row["version"]) if offline or not globus_token: # TODO: separate testing path from live code return mock_response(path, row) diff --git a/tests-manual/test-dataset-examples-cedar.sh b/tests-manual/test-dataset-examples-cedar.sh index 94a4e96b0..0fe1d0882 100755 --- a/tests-manual/test-dataset-examples-cedar.sh +++ b/tests-manual/test-dataset-examples-cedar.sh @@ -11,7 +11,7 @@ for SUITE in examples/dataset-examples examples/dataset-iec-examples; do case ${SUITE} in examples/dataset-iec-examples) - OPTS="--dataset_ignore_globs 'metadata.tsv' --upload_ignore_globs '*' --run_plugins" + OPTS="--dataset_ignore_globs 'metadata.tsv' --globus_token ${GLOBUS_TOKEN} --upload_ignore_globs '*' --run_plugins" ;; examples/dataset-examples) OPTS="--dataset_ignore_globs 'ignore-*.tsv' '.*' --run_plugins --globus_token ${GLOBUS_TOKEN} --upload_ignore_globs 'drv_ignore_*' --output as_md" From 0a7fc7ef79c6c595e25d4f85760922156743f0ac Mon Sep 17 00:00:00 2001 From: jpuerto-psc <68066250+jpuerto-psc@users.noreply.github.com> Date: Mon, 11 Dec 2023 16:11:31 -0500 Subject: [PATCH 07/11] General: Remove GeoMx (#1273) * General: Remove GeoMx * General: Update docs --------- Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/field-assays.yaml | 12 -------- docs/field-schemas.xlsx | Bin 33347 -> 33306 bytes docs/field-schemas.yaml | 4 --- docs/geomx/current/README.md | 1 - docs/geomx/current/index.md | 28 ------------------ .../directory-schemas/geomx-v2.yaml | 4 --- .../table-schemas/assays/geomx-v2.yaml | 22 -------------- 8 files changed, 1 insertion(+), 71 deletions(-) delete mode 100644 docs/geomx/current/README.md delete mode 100644 docs/geomx/current/index.md delete mode 100644 src/ingest_validation_tools/directory-schemas/geomx-v2.yaml delete mode 100644 src/ingest_validation_tools/table-schemas/assays/geomx-v2.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index f59f4a25b..1cbba526a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ - Remove Organ CEDAR page - Draft next-gen directory schema for SNARE-seq2 - Added multi-assay support +- Delete GeoMX ## v0.0.15 - 2023-04-04 diff --git a/docs/field-assays.yaml b/docs/field-assays.yaml index 8e51cedc9..62a78a32c 100644 --- a/docs/field-assays.yaml +++ b/docs/field-assays.yaml @@ -202,11 +202,8 @@ assay_category: - DESI - Enhanced Stimulated Raman Spectroscopy (SRS) - GC-MS -- GeoMx - GeoMx (NGS) -- GeoMx (RNA) - GeoMx (nCounter) -- GeoMx (protein) - HiFi-Slide - Histology - IMS @@ -287,11 +284,8 @@ assay_type: - DESI - Enhanced Stimulated Raman Spectroscopy (SRS) - GC-MS -- GeoMx - GeoMx (NGS) -- GeoMx (RNA) - GeoMx (nCounter) -- GeoMx (protein) - HiFi-Slide - Histology - IMS @@ -819,11 +813,8 @@ is_cedar: - DBiT - DESI - Enhanced Stimulated Raman Spectroscopy (SRS) -- GeoMx - GeoMx (NGS) -- GeoMx (RNA) - GeoMx (nCounter) -- GeoMx (protein) - HiFi-Slide - Histology - IMS @@ -1569,9 +1560,6 @@ parent_id: - DBiT - DESI - Enhanced Stimulated Raman Spectroscopy (SRS) -- GeoMx -- GeoMx (RNA) -- GeoMx (protein) - LC-MS - Light Sheet - MALDI diff --git a/docs/field-schemas.xlsx b/docs/field-schemas.xlsx index 2e87a9046d4eed036b8bad27749775d7789d2c54..4bffe37031f1ef2720c55ddc2da21ae3e9eb7e64 100644 GIT binary patch delta 10460 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 fLg35$1<2g_n_oKbST|$*X;iQ;1#kb delta 10533 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 N9r&|gPx$_^{$CD1=*$2B diff --git a/docs/field-schemas.yaml b/docs/field-schemas.yaml index cfa244e5b..6cbfe24e5 100644 --- a/docs/field-schemas.yaml +++ b/docs/field-schemas.yaml @@ -140,7 +140,6 @@ assay_category: - desi - enhanced-srs - gcms -- geomx - geomx-ncounter - geomx-ngs - hifi-slide @@ -200,7 +199,6 @@ assay_type: - desi - enhanced-srs - gcms -- geomx - geomx-ncounter - geomx-ngs - hifi-slide @@ -559,7 +557,6 @@ is_cedar: - dbit - desi - enhanced-srs -- geomx - geomx-ncounter - geomx-ngs - hifi-slide @@ -974,7 +971,6 @@ parent_id: - dbit - desi - enhanced-srs -- geomx - imc-2d - lcms - lightsheet diff --git a/docs/geomx/current/README.md b/docs/geomx/current/README.md deleted file mode 100644 index aca3f1702..000000000 --- a/docs/geomx/current/README.md +++ /dev/null @@ -1 +0,0 @@ -Moved to [github pages](https://hubmapconsortium.github.io/ingest-validation-tools/geomx/). \ No newline at end of file diff --git a/docs/geomx/current/index.md b/docs/geomx/current/index.md deleted file mode 100644 index f9a368712..000000000 --- a/docs/geomx/current/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: GeoMx (RNA) / GeoMx (protein) / GeoMx -schema_name: geomx -category: Spatial Transcriptomics -all_versions_deprecated: False -exclude_from_index: False -layout: default - ---- - -Related files: - -Excel and TSV templates for this schema will be available when the draft next-generation schema, to be used in all future submissions, is finalized (no later than Sept. 30). - -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 - -## Metadata schema - - -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) - - - -
- -## Directory schemas -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) - diff --git a/src/ingest_validation_tools/directory-schemas/geomx-v2.yaml b/src/ingest_validation_tools/directory-schemas/geomx-v2.yaml deleted file mode 100644 index affbb91d8..000000000 --- a/src/ingest_validation_tools/directory-schemas/geomx-v2.yaml +++ /dev/null @@ -1,4 +0,0 @@ -draft: true -files: - - - draft_link: 'https://docs.google.com/spreadsheets/d/1LE-iyY2E6eP4E8jhgP6rhsvjESrdHXWYrMwKTvNkI5Y' \ No newline at end of file diff --git a/src/ingest_validation_tools/table-schemas/assays/geomx-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/geomx-v2.yaml deleted file mode 100644 index 653449f45..000000000 --- a/src/ingest_validation_tools/table-schemas/assays/geomx-v2.yaml +++ /dev/null @@ -1,22 +0,0 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' -draft: true -fields: -- name: is_cedar - description: 'Identifies whether the version is hosted by CEDAR' - example: 'https://docs.google.com/spreadsheets/d/1kd1UQ2il-eW-MTM4iEotyAxa8M_hcwn8yQJTU_II-F8' -- name: assay_category - constraints: - enum: - - spatial_transcriptomics -- name: assay_type - constraints: - enum: - - GeoMx (RNA) - - GeoMx (protein) - - GeoMx -- name: parent_id - description: "UUID or HuBMAP ID of parent" - example: "ec2ccf5a3436b11d0c7186b74ad4673d" - custom_constraints: - url: - prefix: "https://entity.api.hubmapconsortium.org/entities/" \ No newline at end of file From 18653712c50317641c5231e6b8827fc4848e0f78 Mon Sep 17 00:00:00 2001 From: jpuerto-psc <68066250+jpuerto-psc@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:09:39 -0500 Subject: [PATCH 08/11] Jpuerto/remove geomx rna (#1274) * General: Remove GeoMx * General: Update docs * General: Update soft types to use hyphen not underscore * General: Also update the OME Tiff link to use a hyperlink. --------- Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/celldive/current/index.md | 2 +- docs/codex/current/index.md | 2 +- docs/cosmx/current/index.md | 2 +- docs/cycif/current/index.md | 2 +- docs/dbit/current/index.md | 2 +- docs/desi/current/index.md | 2 +- docs/enhanced-srs/current/index.md | 2 +- docs/hifi-slide/current/index.md | 2 +- docs/histology/current/index.md | 2 +- docs/imc-2d/current/index.md | 2 +- docs/lightsheet/current/index.md | 2 +- docs/maldi/current/index.md | 2 +- docs/merfish/current/index.md | 2 +- docs/mibi/current/index.md | 2 +- docs/phenocycler/current/index.md | 2 +- docs/sims/current/index.md | 2 +- docs/visium-no-probes/current/index.md | 2 +- docs/visium-with-probes/current/index.md | 2 +- docs/xenium/current/index.md | 2 +- .../bad-cedar-assay-histology/MOCK_RESPONSE.json | 2 +- .../bad-cedar-dir-histology/MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../dataset-examples/bad-codex-data/MOCK_RESPONSE.json | 2 +- .../dataset-examples/bad-missing-data/MOCK_RESPONSE.json | 2 +- examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json | 2 +- examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json | 2 +- .../bad-scatacseq-data/MOCK_RESPONSE.json | 2 +- .../dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json | 2 +- .../dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json | 2 +- .../good-cedar-histology/MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../good-cedar-multi-assay-visium/MOCK_RESPONSE.json | 2 +- .../MOCK_RESPONSE.json | 2 +- .../good-codex-akoya-metadata-v1/MOCK_RESPONSE.json | 2 +- .../dataset-examples/good-maldiims/MOCK_RESPONSE.json | 2 +- .../good-scatacseq-metadata-v0/MOCK_RESPONSE.json | 2 +- .../good-scatacseq-metadata-v1/MOCK_RESPONSE.json | 2 +- .../dataset-iec-examples/bad-example/MOCK_RESPONSE.json | 2 +- .../dataset-iec-examples/good-example/MOCK_RESPONSE.json | 2 +- .../tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json | 2 +- .../metadata/good-metadata/MOCK_RESPONSE.json | 2 +- src/ingest_validation_tools/schema_loader.py | 8 ++++---- .../table-schemas/assays/celldive-v2.yaml | 2 +- .../table-schemas/assays/codex-v2.yaml | 2 +- .../table-schemas/assays/cosmx-v2.yaml | 2 +- .../table-schemas/assays/cycif-v2.yaml | 2 +- .../table-schemas/assays/dbit-v2.yaml | 2 +- .../table-schemas/assays/desi-v2.yaml | 2 +- .../table-schemas/assays/enhanced-srs-v2.yaml | 2 +- .../table-schemas/assays/hifi-slide-v2.yaml | 2 +- .../table-schemas/assays/histology-v2.yaml | 2 +- .../table-schemas/assays/imc-2d-v2.yaml | 2 +- .../table-schemas/assays/lightsheet-v3.yaml | 2 +- .../table-schemas/assays/maldi-v2.yaml | 2 +- .../table-schemas/assays/merfish-v2.yaml | 2 +- .../table-schemas/assays/mibi-v2.yaml | 2 +- .../table-schemas/assays/phenocycler-v2.yaml | 2 +- .../table-schemas/assays/sims-v2.yaml | 2 +- .../table-schemas/assays/visium-no-probes-v2.yaml | 2 +- .../table-schemas/assays/visium-no-probes-v3.yaml | 2 +- .../table-schemas/assays/visium-with-probes-v2.yaml | 2 +- .../table-schemas/assays/xenium-v2.yaml | 2 +- 69 files changed, 72 insertions(+), 71 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cbba526a..796e014d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,6 +66,7 @@ - Draft next-gen directory schema for SNARE-seq2 - Added multi-assay support - Delete GeoMX +- Update soft typing to use hyphen, not underscore ## v0.0.15 - 2023-04-04 diff --git a/docs/celldive/current/index.md b/docs/celldive/current/index.md index 2276bca23..b98d737fa 100644 --- a/docs/celldive/current/index.md +++ b/docs/celldive/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/celldive/latest/celldive.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/codex/current/index.md b/docs/codex/current/index.md index 01f84f92e..a9a415ff3 100644 --- a/docs/codex/current/index.md +++ b/docs/codex/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/codex/latest/codex.tsv): Alternative for metadata entry. -**For the PhenoCycler specification, please click [here](https://hubmapconsortium.github.io/ingest-validation-tools/phenocycler/current/).** See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +**For the PhenoCycler specification, please click [here](https://hubmapconsortium.github.io/ingest-validation-tools/phenocycler/current/).** [This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/cosmx/current/index.md b/docs/cosmx/current/index.md index 33ca6aa1b..44f129334 100644 --- a/docs/cosmx/current/index.md +++ b/docs/cosmx/current/index.md @@ -12,7 +12,7 @@ Related files: Excel and TSV templates for this schema will be available when the draft next-generation schema, to be used in all future submissions, is finalized (no later than Sept. 30). -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/cycif/current/index.md b/docs/cycif/current/index.md index be99ab10a..13afe9a33 100644 --- a/docs/cycif/current/index.md +++ b/docs/cycif/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/cycif/latest/cycif.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/dbit/current/index.md b/docs/dbit/current/index.md index d0354d581..ac5f5b547 100644 --- a/docs/dbit/current/index.md +++ b/docs/dbit/current/index.md @@ -12,7 +12,7 @@ Related files: Excel and TSV templates for this schema will be available when the draft next-generation schema, to be used in all future submissions, is finalized (no later than Sept. 30). -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/desi/current/index.md b/docs/desi/current/index.md index f5d43dc5e..8cd478fd3 100644 --- a/docs/desi/current/index.md +++ b/docs/desi/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/desi/latest/desi.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/enhanced-srs/current/index.md b/docs/enhanced-srs/current/index.md index 240a06a1b..fd018fde1 100644 --- a/docs/enhanced-srs/current/index.md +++ b/docs/enhanced-srs/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/enhanced-srs/latest/enhanced-srs.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/hifi-slide/current/index.md b/docs/hifi-slide/current/index.md index a3b77ef69..2c96fb3a4 100644 --- a/docs/hifi-slide/current/index.md +++ b/docs/hifi-slide/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/hifi-slide/latest/hifi-slide.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/histology/current/index.md b/docs/histology/current/index.md index b4321f384..0884955a9 100644 --- a/docs/histology/current/index.md +++ b/docs/histology/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/histology/latest/histology.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/imc-2d/current/index.md b/docs/imc-2d/current/index.md index e220761bc..80f208c8b 100644 --- a/docs/imc-2d/current/index.md +++ b/docs/imc-2d/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/imc-2d/latest/imc-2d.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/lightsheet/current/index.md b/docs/lightsheet/current/index.md index 472f2c7e7..5529a9678 100644 --- a/docs/lightsheet/current/index.md +++ b/docs/lightsheet/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/lightsheet/latest/lightsheet.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/maldi/current/index.md b/docs/maldi/current/index.md index dd7f0275f..c1d23f1e9 100644 --- a/docs/maldi/current/index.md +++ b/docs/maldi/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/maldi/latest/maldi.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/merfish/current/index.md b/docs/merfish/current/index.md index 76cdcdf9d..03dc359dc 100644 --- a/docs/merfish/current/index.md +++ b/docs/merfish/current/index.md @@ -12,7 +12,7 @@ Related files: Excel and TSV templates for this schema will be available when the draft next-generation schema, to be used in all future submissions, is finalized (no later than Sept. 30). -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/mibi/current/index.md b/docs/mibi/current/index.md index dba5aff7e..9702a4244 100644 --- a/docs/mibi/current/index.md +++ b/docs/mibi/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/mibi/latest/mibi.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/phenocycler/current/index.md b/docs/phenocycler/current/index.md index 368488b03..fa283b8e2 100644 --- a/docs/phenocycler/current/index.md +++ b/docs/phenocycler/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/phenocycler/latest/phenocycler.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/sims/current/index.md b/docs/sims/current/index.md index 94bd189e1..fb3cbefeb 100644 --- a/docs/sims/current/index.md +++ b/docs/sims/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/sims/latest/sims.tsv): Alternative for metadata entry. -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/visium-no-probes/current/index.md b/docs/visium-no-probes/current/index.md index 7c87d3081..c5934aa52 100644 --- a/docs/visium-no-probes/current/index.md +++ b/docs/visium-no-probes/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/visium-no-probes/latest/visium-no-probes.tsv): Alternative for metadata entry. -REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). [This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/visium-with-probes/current/index.md b/docs/visium-with-probes/current/index.md index 056e897a6..dc90c849c 100644 --- a/docs/visium-with-probes/current/index.md +++ b/docs/visium-with-probes/current/index.md @@ -16,7 +16,7 @@ Related files: - [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/visium-with-probes/latest/visium-with-probes.tsv): Alternative for metadata entry. -REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). [This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/docs/xenium/current/index.md b/docs/xenium/current/index.md index 789d137a3..1c00ae458 100644 --- a/docs/xenium/current/index.md +++ b/docs/xenium/current/index.md @@ -12,7 +12,7 @@ Related files: Excel and TSV templates for this schema will be available when the draft next-generation schema, to be used in all future submissions, is finalized (no later than Sept. 30). -See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0 +[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header. ## Metadata schema diff --git a/examples/dataset-examples/bad-cedar-assay-histology/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-assay-histology/MOCK_RESPONSE.json index 8ae252fe6..8983f0a6f 100644 --- a/examples/dataset-examples/bad-cedar-assay-histology/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-assay-histology/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Histology": {"args": ["wrong", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Histology": {"args": ["wrong", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-dir-histology/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-dir-histology/MOCK_RESPONSE.json index 8aedb836a..38ea40018 100644 --- a/examples/dataset-examples/bad-cedar-dir-histology/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-dir-histology/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Histology": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Histology": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/MOCK_RESPONSE.json index 24075bb7e..cdef9d8b3 100644 --- a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-child-metadata/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir-schema": "visium-no-probes-v2", "must-contain": ["Histology", "RNAseq"], "vitessce-hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/MOCK_RESPONSE.json index 24075bb7e..cdef9d8b3 100644 --- a/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-bad-dir-structure/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir-schema": "visium-no-probes-v2", "must-contain": ["Histology", "RNAseq"], "vitessce-hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/MOCK_RESPONSE.json index b592f06e8..33146bb3a 100644 --- a/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-missing-child/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "snRNAseq-10xGenomics-v3", "description": "snRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir-schema": "visium-no-probes-v2", "must-contain": ["Histology", "RNAseq"], "vitessce-hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "snRNAseq-10xGenomics-v3", "description": "snRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/MOCK_RESPONSE.json index 24075bb7e..cdef9d8b3 100644 --- a/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-unreferenced-parent-path/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir-schema": "visium-no-probes-v2", "must-contain": ["Histology", "RNAseq"], "vitessce-hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/MOCK_RESPONSE.json index 24075bb7e..cdef9d8b3 100644 --- a/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-with-standalone-histology-bad-dir-schema/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir-schema": "visium-no-probes-v2", "must-contain": ["Histology", "RNAseq"], "vitessce-hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/MOCK_RESPONSE.json b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/MOCK_RESPONSE.json index 9356dfd43..55d7b50f2 100644 --- a/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-cedar-multi-assay-visium-wrong-child/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", "", "", "", "", "yes", "0d9626de-5f14-4249-9c6a-98c717fa3309"], "response": {"assaytype": "snRNAseq-10xGenomics-v3", "description": "snRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}, "RNAseq (with probes)": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq (with probes)", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", "", "minute", "2", "10x Genomics; Visium Human Transcriptome Probe Kit v2 - Small; PN 1000466", "yes", "0d9626de-5f14-4249-9c6a-98c717fa3309"], "response": {"assaytype": "scRNAseq-visium-with-probes", "description": "Visium RNAseq with probes", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir-schema": "visium-no-probes-v2", "must-contain": ["Histology", "RNAseq"], "vitessce-hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}, "RNAseq": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", "", "", "", "", "yes", "0d9626de-5f14-4249-9c6a-98c717fa3309"], "response": {"assaytype": "snRNAseq-10xGenomics-v3", "description": "snRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}, "RNAseq (with probes)": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq (with probes)", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", "", "minute", "2", "10x Genomics; Visium Human Transcriptome Probe Kit v2 - Small; PN 1000466", "yes", "0d9626de-5f14-4249-9c6a-98c717fa3309"], "response": {"assaytype": "scRNAseq-visium-with-probes", "description": "Visium RNAseq with probes", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-codex-akoya-directory-v1-missing-dataset.json/MOCK_RESPONSE.json b/examples/dataset-examples/bad-codex-akoya-directory-v1-missing-dataset.json/MOCK_RESPONSE.json index 892619ce2..a287b3c54 100644 --- a/examples/dataset-examples/bad-codex-akoya-directory-v1-missing-dataset.json/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-codex-akoya-directory-v1-missing-dataset.json/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v1", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-codex-data/MOCK_RESPONSE.json b/examples/dataset-examples/bad-codex-data/MOCK_RESPONSE.json index d34da911d..61a0d4d7a 100644 --- a/examples/dataset-examples/bad-codex-data/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-codex-data/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10\\.17504/protocols.io.menc3de", "operator", "no-at.example.com", "pi", "extra-period-not-caught@example.com.", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10\\.17504/protocols.io.menc3de", "operator", "no-at.example.com", "pi", "extra-period-not-caught@example.com.", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-missing-data/MOCK_RESPONSE.json b/examples/dataset-examples/bad-missing-data/MOCK_RESPONSE.json index 59b1581d7..6a7814f7b 100644 --- a/examples/dataset-examples/bad-missing-data/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-missing-data/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "n/a", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies-missing.tsv", "contributors-missing.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "n/a", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies-missing.tsv", "contributors-missing.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json b/examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json index b67581a2e..a095e93ba 100644 --- a/examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-mixed/MOCK_RESPONSE.json @@ -1 +1 @@ -{"SNARE-seq2": {"args": ["-INVALID-", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "bad-shared-dataset"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}, "CODEX": {"args": ["-INVALID-", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "bad-shared-dataset"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file +{"SNARE-seq2": {"args": ["-INVALID-", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "bad-shared-dataset"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir-schema": "scatacseq-v0", "tbl-schema": "scatacseq-v0", "vitessce-hints": []}}, "CODEX": {"args": ["-INVALID-", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "bad-shared-dataset"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json b/examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json index 88c48e26a..6991eeeaa 100644 --- a/examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-repeated/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["CODEX", "."], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["CODEX", "."], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-scatacseq-data/MOCK_RESPONSE.json b/examples/dataset-examples/bad-scatacseq-data/MOCK_RESPONSE.json index 4644f7b6f..fe8b52fc5 100644 --- a/examples/dataset-examples/bad-scatacseq-data/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-scatacseq-data/MOCK_RESPONSE.json @@ -1 +1 @@ -{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", ".", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}} \ No newline at end of file +{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", ".", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir-schema": "scatacseq-v0", "tbl-schema": "scatacseq-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json b/examples/dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json index 08b14cd82..efd80519a 100644 --- a/examples/dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-scrnaseq-v0/MOCK_RESPONSE.json @@ -1 +1 @@ -{"scRNAseq-10xGenomics": {"args": ["AZ123", "AZ123-AZ-123", "2020-01-01 01:01", "10.17504/123", "123", "fake@example.com", "123", "fake@example.com", "sequence", "scRNAseq-10xGenomics", "RNA", "true", "123", "123", "10.17504/123", "whole cell", "123", "123", "123", "123", "123", "123", "10.17504/123", "single-end", "123", "123", "false", "123", "123", "123", "123", "123", "123", "ng", "123", "123", "12/34/56", "50", "50", "contrib.tsv", "data"], "response": {"assaytype": "scRNAseq-10xGenomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v0", "tbl_schema": "scrnaseq-v0", "vitessce_hints": []}}} \ No newline at end of file +{"scRNAseq-10xGenomics": {"args": ["AZ123", "AZ123-AZ-123", "2020-01-01 01:01", "10.17504/123", "123", "fake@example.com", "123", "fake@example.com", "sequence", "scRNAseq-10xGenomics", "RNA", "true", "123", "123", "10.17504/123", "whole cell", "123", "123", "123", "123", "123", "123", "10.17504/123", "single-end", "123", "123", "false", "123", "123", "123", "123", "123", "123", "ng", "123", "123", "12/34/56", "50", "50", "contrib.tsv", "data"], "response": {"assaytype": "scRNAseq-10xGenomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v0", "tbl-schema": "scrnaseq-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json b/examples/dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json index d28d202e6..5fda4d35d 100644 --- a/examples/dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json +++ b/examples/dataset-examples/bad-tsv-formats/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["not-uuid", "not-uuid", "not-time", "10\\.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "analyte_class", "is_targeted", "acquisition_instrument_vendor", "acquisition_instrument_model", "forty-two", "inches", "forty-two", "inches", "forty-two", "inches", "preparation_instrument_vendor", "preparation_instrument_model", "0.5", "0.5", "0.5", "not-doi", "not-doi", "antibodies.tsv", "contributors.tsv", "dataset-1/"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["not-uuid", "not-uuid", "not-time", "10\\.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "analyte_class", "is_targeted", "acquisition_instrument_vendor", "acquisition_instrument_model", "forty-two", "inches", "forty-two", "inches", "forty-two", "inches", "preparation_instrument_vendor", "preparation_instrument_model", "0.5", "0.5", "0.5", "not-doi", "not-doi", "antibodies.tsv", "contributors.tsv", "dataset-1/"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-cedar-histology/MOCK_RESPONSE.json b/examples/dataset-examples/good-cedar-histology/MOCK_RESPONSE.json index 8aedb836a..38ea40018 100644 --- a/examples/dataset-examples/good-cedar-histology/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-cedar-histology/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Histology": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Histology": {"args": ["HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "DNA", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./dataset-1", "Yes", "H&E", "Progressive staining", "Yes", "No", "HTX Technologies", "SunCollect Sprayer", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "30", "e7475329-9a60-4088-8e34-19a3828e0b3b"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/MOCK_RESPONSE.json b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/MOCK_RESPONSE.json index 24075bb7e..cdef9d8b3 100644 --- a/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-cedar-multi-assay-visium-with-standalone-histology/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir-schema": "visium-no-probes-v2", "must-contain": ["Histology", "RNAseq"], "vitessce-hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-cedar-multi-assay-visium/MOCK_RESPONSE.json b/examples/dataset-examples/good-cedar-multi-assay-visium/MOCK_RESPONSE.json index 24075bb7e..cdef9d8b3 100644 --- a/examples/dataset-examples/good-cedar-multi-assay-visium/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-cedar-multi-assay-visium/MOCK_RESPONSE.json @@ -1 +1 @@ -{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir_schema": "visium-no-probes-v2", "must_contain": ["Histology", "RNAseq"], "vitessce_hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir_schema": "histology-v2", "vitessce_hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir_schema": "scrnaseq-v2", "vitessce_hints": []}}} \ No newline at end of file +{"Visium (no probes)": {"args": ["babf1e69-f0eb-479a-bdc5-b70199669675", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Visium (no probes)", "./contributors.tsv", "./Visium_9OLC_A4_S1", "42.25", "mm^2", "2375.9", "um^2", "4992", "100", "um", "A1", "24", "minute"], "response": {"assaytype": "visium-no-probes", "description": "Visium (No probes)", "dir-schema": "visium-no-probes-v2", "must-contain": ["Histology", "RNAseq"], "vitessce-hints": []}}, "Histology": {"args": ["e7475329-9a60-4088-8e34-19a3828e0b3b", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "Histology", "nucleic acid and protein", "No", "Zeiss Microscopy", "Axio Observer 7", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "Yes", "H&E", "progressive staining", "Yes", "No", "Not applicable", "Not applicable", "V11A19-078", "Snake-by-rows", "Right-and-down", "10", "120", "0.3"], "response": {"assaytype": "h-and-e", "description": "H&E Stained Microscopy", "dir-schema": "histology-v2", "vitessce-hints": []}}, "RNAseq": {"args": ["944e5fa0-f68b-4bdd-8664-74a3909429a9", "HBM233.CGGG.482", "Visium_9OLC_A4_S1", "https://dx.doi.org/10.17504/protocols.io.eq2lyno9qvx9/v1", "RNAseq", "RNA", "No", "Illumina", "NovaSeq 6000", "24", "day", "", "", "./contributors.tsv", "./Visium_9OLC_A4_S1", "0", "Read 1 (R1)", "16", "16", "Read 1 (R1)", "12", "spot", "", "", "", "TSO: AAGCAGTGGTATCAACGCAGAGTACATGGG", "517", "176.834", "ng", "735.479", "ng", "61.584", "nM", "single-end", "16", "16", "10X Genomics; Visium Spatial Gene Expression Slide and Reagent Kit, 4 slides, 16 reactions; PN 1000184", "10X Genomics; Dual Index Kit TT, Set A (96 rxn); PN 1000215", "SI-TT-D1", "No", "1448", "Illumina; NovaSeq 6000 S1 Reagent v1.5 Kit (100 Cycles); PN 20028319", "28,10,10,90", "Penn-E.768", "", "", "", ""], "response": {"assaytype": "scRNAseq-10Genomics-v3", "description": "scRNA-seq (10x Genomics v3)", "dir-schema": "scrnaseq-v2", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-codex-akoya-directory-v1-with-dataset.json/MOCK_RESPONSE.json b/examples/dataset-examples/good-codex-akoya-directory-v1-with-dataset.json/MOCK_RESPONSE.json index 892619ce2..a287b3c54 100644 --- a/examples/dataset-examples/good-codex-akoya-directory-v1-with-dataset.json/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-codex-akoya-directory-v1-with-dataset.json/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v1", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-codex-akoya-metadata-v1/MOCK_RESPONSE.json b/examples/dataset-examples/good-codex-akoya-metadata-v1/MOCK_RESPONSE.json index 892619ce2..a287b3c54 100644 --- a/examples/dataset-examples/good-codex-akoya-metadata-v1/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-codex-akoya-metadata-v1/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v1", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["1", "Lorem ipsum", "ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "42", "nm", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v1", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-maldiims/MOCK_RESPONSE.json b/examples/dataset-examples/good-maldiims/MOCK_RESPONSE.json index dc6998fcb..1e0003231 100644 --- a/examples/dataset-examples/good-maldiims/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-maldiims/MOCK_RESPONSE.json @@ -1 +1 @@ -{"MALDI-IMS": {"args": ["VAN0001", "VAN0001-LK-1-1", "2021-01-04 17:45", "10.17504/protocols.io.7gdhjs6", "Elizabeth K. Neumann", "elizabeth.neumann@vanderbilt.edu", "Jeffrey M. Spraggins", "jeff.spraggins@vanderbilt.edu", "mass_spectrometry_imaging", "MALDI-IMS", "lipids", "False", "Bruker Daltonics", "MALDI timsTOF Flex", "MALDI", "positive ion mode", "150.0", "2000.0", "10.0", "um", "10.0", "um", "Sprayed", "HTX Imaging", "M3 TM-Sprayer", "1,5-Diaminonaphthalene", "10.17504/protocols.io.bt8hnrt6", "10.17504/protocols.io.bfskjncw", "contributors.tsv", "dataset-1"], "response": {"assaytype": "MALDI-IMS", "description": "MALDI IMS", "dir_schema": "ims-v0", "tbl_schema": "ims-v0", "vitessce_hints": ["maldi"]}}} \ No newline at end of file +{"MALDI-IMS": {"args": ["VAN0001", "VAN0001-LK-1-1", "2021-01-04 17:45", "10.17504/protocols.io.7gdhjs6", "Elizabeth K. Neumann", "elizabeth.neumann@vanderbilt.edu", "Jeffrey M. Spraggins", "jeff.spraggins@vanderbilt.edu", "mass_spectrometry_imaging", "MALDI-IMS", "lipids", "False", "Bruker Daltonics", "MALDI timsTOF Flex", "MALDI", "positive ion mode", "150.0", "2000.0", "10.0", "um", "10.0", "um", "Sprayed", "HTX Imaging", "M3 TM-Sprayer", "1,5-Diaminonaphthalene", "10.17504/protocols.io.bt8hnrt6", "10.17504/protocols.io.bfskjncw", "contributors.tsv", "dataset-1"], "response": {"assaytype": "MALDI-IMS", "description": "MALDI IMS", "dir-schema": "ims-v0", "tbl-schema": "ims-v0", "vitessce-hints": ["maldi"]}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-scatacseq-metadata-v0/MOCK_RESPONSE.json b/examples/dataset-examples/good-scatacseq-metadata-v0/MOCK_RESPONSE.json index 1aac7f340..c2ab14532 100644 --- a/examples/dataset-examples/good-scatacseq-metadata-v0/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-scatacseq-metadata-v0/MOCK_RESPONSE.json @@ -1 +1 @@ -{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}} \ No newline at end of file +{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir-schema": "scatacseq-v0", "tbl-schema": "scatacseq-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-examples/good-scatacseq-metadata-v1/MOCK_RESPONSE.json b/examples/dataset-examples/good-scatacseq-metadata-v1/MOCK_RESPONSE.json index 2b99caf1e..62edd2e6b 100644 --- a/examples/dataset-examples/good-scatacseq-metadata-v1/MOCK_RESPONSE.json +++ b/examples/dataset-examples/good-scatacseq-metadata-v1/MOCK_RESPONSE.json @@ -1 +1 @@ -{"SNARE-seq2": {"args": ["1", "lorem ipsum", "UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v1", "vitessce_hints": []}}} \ No newline at end of file +{"SNARE-seq2": {"args": ["1", "lorem ipsum", "UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "contributors.tsv", "dataset-1"], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir-schema": "scatacseq-v0", "tbl-schema": "scatacseq-v1", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-iec-examples/bad-example/MOCK_RESPONSE.json b/examples/dataset-iec-examples/bad-example/MOCK_RESPONSE.json index 313f41302..a786078e7 100644 --- a/examples/dataset-iec-examples/bad-example/MOCK_RESPONSE.json +++ b/examples/dataset-iec-examples/bad-example/MOCK_RESPONSE.json @@ -1 +1 @@ -{"SNARE-seq2": {"args": ["bad-donor-id", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/fake", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/fake", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "extras/contributors.tsv", "."], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}} \ No newline at end of file +{"SNARE-seq2": {"args": ["bad-donor-id", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/fake", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/fake", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/fake", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "extras/contributors.tsv", "."], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir-schema": "scatacseq-v0", "tbl-schema": "scatacseq-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/dataset-iec-examples/good-example/MOCK_RESPONSE.json b/examples/dataset-iec-examples/good-example/MOCK_RESPONSE.json index c915db6ab..20b7affa1 100644 --- a/examples/dataset-iec-examples/good-example/MOCK_RESPONSE.json +++ b/examples/dataset-iec-examples/good-example/MOCK_RESPONSE.json @@ -1 +1 @@ -{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "extras/contributors.tsv", "."], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir_schema": "scatacseq-v0", "tbl_schema": "scatacseq-v0", "vitessce_hints": []}}} \ No newline at end of file +{"SNARE-seq2": {"args": ["UCSD0002", "UCSD0002-RK-1-1-1", "2019-05-29 11:00", "10.17504/protocols.io.menc3de", "Nongluk Plongthongkum", "nplongth@eng.ucsd.edu", "Kun Zhang", "kzhang@eng.ucsd.edu", "sequence", "SNARE-seq2", "DNA", "FALSE", "Illumina", "NovaSeq", "TRUE", "KC9", "10.17504/protocols.io.menc3de", "nucleus", "dounce", "none", "low clump", "425000", "4000", "SNARE-Seq2-AC", "In-house", "", "10.17504/protocols.io.menc3de", "paired-end", "CTGTCTCTTATACACATCT+AGATGTGTATAAGAGACAG", "R2", "0,38,76", "8,8,8", "9", "9", "2868", "ng", "650", "NovaSeq 6000 S4 Reagent", "75/94/8/75", "91.05", "20", "extras/contributors.tsv", "."], "response": {"assaytype": "SNARE-ATACseq2", "description": "snATACseq (SNARE-seq2)", "dir-schema": "scatacseq-v0", "tbl-schema": "scatacseq-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json b/examples/tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json index cde12d62c..f4aaa3433 100644 --- a/examples/tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json +++ b/examples/tsv-examples/metadata/bad-metadata/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["BAD", "BAD", "BAD", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["BAD", "BAD", "BAD", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/examples/tsv-examples/metadata/good-metadata/MOCK_RESPONSE.json b/examples/tsv-examples/metadata/good-metadata/MOCK_RESPONSE.json index c3c6cab99..0480bc20d 100644 --- a/examples/tsv-examples/metadata/good-metadata/MOCK_RESPONSE.json +++ b/examples/tsv-examples/metadata/good-metadata/MOCK_RESPONSE.json @@ -1 +1 @@ -{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir_schema": "codex-v1-with-dataset-json", "tbl_schema": "codex-v0", "vitessce_hints": []}}} \ No newline at end of file +{"CODEX": {"args": ["ABC123", "ABC123-RK-1_1", "2020-01-01 12:00", "10.17504/protocols.io.menc3de", "operator", "operator_email@example.com", "pi", "pi_email@example.com", "imaging", "CODEX", "protein", "TRUE", "Keyence", "BZ-X800", "42", "nm", "42", "nm", "", "", "CODEX", "version 1 robot", "42", "42", "42", "10.17504/protocols.io.menc3de", "10.17504/protocols.io.menc3de", "antibodies.tsv", "contributors.tsv", "dataset-1"], "response": {"assaytype": "CODEX", "description": "CODEX", "dir-schema": "codex-v1-with-dataset-json", "tbl-schema": "codex-v0", "vitessce-hints": []}}} \ No newline at end of file diff --git a/src/ingest_validation_tools/schema_loader.py b/src/ingest_validation_tools/schema_loader.py index 49bd45ab8..936600875 100644 --- a/src/ingest_validation_tools/schema_loader.py +++ b/src/ingest_validation_tools/schema_loader.py @@ -94,13 +94,13 @@ def get_row_data(self): self.dataset_type = assay_type if assay_type else dataset_type def get_assayclassifier_data(self): - self.vitessce_hints = self.soft_assay_data.get("vitessce_hints", []) - self.dir_schema = self.soft_assay_data.get("dir_schema", "") - self.table_schema = self.soft_assay_data.get("tbl_schema", "") + self.vitessce_hints = self.soft_assay_data.get("vitessce-hints", []) + self.dir_schema = self.soft_assay_data.get("dir-schema", "") + self.table_schema = self.soft_assay_data.get("tbl-schema", "") match = re.match(r".+-v(\d+)", self.table_schema) if match: self.version = match[0] - contains = self.soft_assay_data.get("must_contain", []) + contains = self.soft_assay_data.get("must-contain", []) self.contains = [schema.lower() for schema in contains] diff --git a/src/ingest_validation_tools/table-schemas/assays/celldive-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/celldive-v2.yaml index fe881848f..75bac3d2b 100644 --- a/src/ingest_validation_tools/table-schemas/assays/celldive-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/celldive-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/codex-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/codex-v2.yaml index bdcf30dd9..99203ac96 100644 --- a/src/ingest_validation_tools/table-schemas/assays/codex-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/codex-v2.yaml @@ -1,4 +1,4 @@ -description_md: '**For the PhenoCycler specification, please click [here](https://hubmapconsortium.github.io/ingest-validation-tools/phenocycler/current/).** See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '**For the PhenoCycler specification, please click [here](https://hubmapconsortium.github.io/ingest-validation-tools/phenocycler/current/).** [This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/cosmx-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/cosmx-v2.yaml index 72aacd90a..518bc9b2a 100644 --- a/src/ingest_validation_tools/table-schemas/assays/cosmx-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/cosmx-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' draft: true fields: - name: is_cedar diff --git a/src/ingest_validation_tools/table-schemas/assays/cycif-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/cycif-v2.yaml index 25f15a69a..e31e0b96f 100644 --- a/src/ingest_validation_tools/table-schemas/assays/cycif-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/cycif-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/dbit-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/dbit-v2.yaml index 371684d70..6ab602518 100644 --- a/src/ingest_validation_tools/table-schemas/assays/dbit-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/dbit-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' draft: true fields: - name: is_cedar diff --git a/src/ingest_validation_tools/table-schemas/assays/desi-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/desi-v2.yaml index 52d88cfb4..396fb1398 100644 --- a/src/ingest_validation_tools/table-schemas/assays/desi-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/desi-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/enhanced-srs-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/enhanced-srs-v2.yaml index c5575d3cf..12b8c4c76 100644 --- a/src/ingest_validation_tools/table-schemas/assays/enhanced-srs-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/enhanced-srs-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/hifi-slide-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/hifi-slide-v2.yaml index a18c3951e..cbdf5b7d3 100644 --- a/src/ingest_validation_tools/table-schemas/assays/hifi-slide-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/hifi-slide-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: "Identifies whether the version is hosted by CEDAR" diff --git a/src/ingest_validation_tools/table-schemas/assays/histology-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/histology-v2.yaml index bbab85338..64359249d 100644 --- a/src/ingest_validation_tools/table-schemas/assays/histology-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/histology-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: "Identifies whether the version is hosted by CEDAR" diff --git a/src/ingest_validation_tools/table-schemas/assays/imc-2d-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/imc-2d-v2.yaml index a67f44191..466d3bf33 100644 --- a/src/ingest_validation_tools/table-schemas/assays/imc-2d-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/imc-2d-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: "Identifies whether the version is hosted by CEDAR" diff --git a/src/ingest_validation_tools/table-schemas/assays/lightsheet-v3.yaml b/src/ingest_validation_tools/table-schemas/assays/lightsheet-v3.yaml index ff149fdc5..c4c683a14 100644 --- a/src/ingest_validation_tools/table-schemas/assays/lightsheet-v3.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/lightsheet-v3.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/maldi-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/maldi-v2.yaml index 2fba6688a..a5db8ff47 100644 --- a/src/ingest_validation_tools/table-schemas/assays/maldi-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/maldi-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/merfish-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/merfish-v2.yaml index e3f970a8f..329281a40 100644 --- a/src/ingest_validation_tools/table-schemas/assays/merfish-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/merfish-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' draft: true fields: - name: is_cedar diff --git a/src/ingest_validation_tools/table-schemas/assays/mibi-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/mibi-v2.yaml index 9ed52e84e..e40332f00 100644 --- a/src/ingest_validation_tools/table-schemas/assays/mibi-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/mibi-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: "Identifies whether the version is hosted by CEDAR" diff --git a/src/ingest_validation_tools/table-schemas/assays/phenocycler-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/phenocycler-v2.yaml index e329f4011..cfb09cdd3 100644 --- a/src/ingest_validation_tools/table-schemas/assays/phenocycler-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/phenocycler-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/sims-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/sims-v2.yaml index d749eba3e..2ec980e6f 100644 --- a/src/ingest_validation_tools/table-schemas/assays/sims-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/sims-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/visium-no-probes-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/visium-no-probes-v2.yaml index ee231494c..061c04470 100644 --- a/src/ingest_validation_tools/table-schemas/assays/visium-no-probes-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/visium-no-probes-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: 'REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). [This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/visium-no-probes-v3.yaml b/src/ingest_validation_tools/table-schemas/assays/visium-no-probes-v3.yaml index b5660eee3..22d83161c 100644 --- a/src/ingest_validation_tools/table-schemas/assays/visium-no-probes-v3.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/visium-no-probes-v3.yaml @@ -1,4 +1,4 @@ -description_md: 'REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: 'REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). [This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/visium-with-probes-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/visium-with-probes-v2.yaml index 85d75d452..76bec4f7d 100644 --- a/src/ingest_validation_tools/table-schemas/assays/visium-with-probes-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/visium-with-probes-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: 'REQUIRED - For this assay, you must also prepare and submit two additional metadata.tsv files following the metadata schemas linked here for [RNAseq](https://hubmapconsortium.github.io/ingest-validation-tools/rnaseq/current/) and [Histology](https://hubmapconsortium.github.io/ingest-validation-tools/histology/current/). [This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' diff --git a/src/ingest_validation_tools/table-schemas/assays/xenium-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/xenium-v2.yaml index 7d93153c1..3c339f3de 100644 --- a/src/ingest_validation_tools/table-schemas/assays/xenium-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/xenium-v2.yaml @@ -1,4 +1,4 @@ -description_md: 'See the following link for the set of fields that are required in the OME TIFF file XML header. https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0' +description_md: '[This link](https://docs.google.com/spreadsheets/d/1YnmdTAA0Z9MKN3OjR3Sca8pz-LNQll91wdQoRPSP6Q4/edit#gid=0) lists the set of fields that are required in the OME TIFF file XML header.' draft: true fields: - name: is_cedar From cd38925b0ea5a5a910bd3749fe7e2a05bc22093d Mon Sep 17 00:00:00 2001 From: j-uranic <117292295+j-uranic@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:26:37 -0500 Subject: [PATCH 09/11] Juranic/dir schema updates (#1276) * Update rnaseq-with-probes-v2.yaml Update to next-gen directory schema. * Update snareseq2-v2.yaml Update to next-gen directory schema. * Update CHANGELOG.md * General: Update docs --------- Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/rnaseq-with-probes/current/index.md | 14 ++++++- docs/snareseq2/current/index.md | 16 +++++++- .../rnaseq-with-probes-v2.yaml | 39 +++++++++++++++++- .../directory-schemas/snareseq2-v2.yaml | 40 +++++++++++++++++-- .../table-schemas/assays/snareseq2-v2.yaml | 2 +- 6 files changed, 103 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 796e014d7..9084dfce7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,6 +67,7 @@ - Added multi-assay support - Delete GeoMX - Update soft typing to use hyphen, not underscore +- Add SNARE-seq2 and RNAseq with probes next-gen directory schema ## v0.0.15 - 2023-04-04 diff --git a/docs/rnaseq-with-probes/current/index.md b/docs/rnaseq-with-probes/current/index.md index a45253a72..e4ffb7421 100644 --- a/docs/rnaseq-with-probes/current/index.md +++ b/docs/rnaseq-with-probes/current/index.md @@ -28,5 +28,17 @@ Related files:
## Directory schemas -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) +Version 2 (use this one) + +| pattern | required? | description | +| --- | --- | --- | +| extras\/.* | ✓ | Folder for general lab-specific files related to the dataset. | +| extras\/expected_cell_count\.txt | | The expected cell count for the RNA sequencing dataset. This is an optional file that, if present, will be used by the HIVE's RNA sequencing analysis pipeline. With some datasets, knowing the expected cell count has improved the output of the HIVE analysis pipeline. | +| raw\/.* | ✓ | All raw data files for the experiment. | +| raw\/custom_probe_set\.csv | | This file should contain any custom probes used and must be included if the metadata field "is_custom_probes_used" is "Yes". The file should minimally include:target gene id, probe seq, probe id. The contents of this file are modeled after the 10x Genomics probe set file (see ). | +| raw\/additional_panels_used\.csv | | If multiple commercial probe panels were used, then the primary probe panel should be selected in the "oligo_probe_panel" metadata field. The additional panels must be included in this file. Each panel record should include:manufacturer, model/name, product code. | +| raw\/fastq\/.* | ✓ | Raw sequencing files for the experiment. | +| raw\/fastq\/oligo\/.* | ✓ | Directory containing fastq files pertaining to oligo sequencing. | +| raw\/fastq\/oligo\/[^\/]+_R[^\/]+\.fastq\.gz | ✓ | This is a gzip version of the fastq file. This file contains the cell barcode and unique molecular identifier (technical). | +| lab_processed\/.* | | Experiment files that were processed by the lab generating the data. | diff --git a/docs/snareseq2/current/index.md b/docs/snareseq2/current/index.md index 4cbdc28f7..ef419b598 100644 --- a/docs/snareseq2/current/index.md +++ b/docs/snareseq2/current/index.md @@ -17,12 +17,24 @@ Excel and TSV templates for this schema will be available when the draft next-ge ## Metadata schema -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) +Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30)
## Directory schemas -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) +Version 2 (use this one) + +| pattern | required? | description | +| --- | --- | --- | +| extras\/.* | ✓ | Folder for general lab-specific files related to the dataset. | +| extras\/expected_cell_count\.txt | | The expected cell count for the RNA sequencing dataset. This is an optional file that, if present, will be used by the HIVE's RNA sequencing analysis pipeline. With some datasets, knowing the expected cell count has improved the output of the HIVE analysis pipeline. | +| raw\/.* | ✓ | All raw data files for the experiment. | +| raw\/fastq\/.* | ✓ | Raw sequencing files for the experiment. | +| raw\/fastq\/RNA\/.* | ✓ | Directory containing fastq files pertaining to RNAseq sequencing. | +| raw\/fastq\/RNA\/[^\/]+_R[^\/]+\.fastq\.gz | ✓ | This is a GZip'd version of the forward and reverse fastq files from RNAseq sequencing (R1 and R2). | +| raw\/fastq\/ATAC\/.* | ✓ | Directory containing fastq files pertaining to ATACseq sequencing. | +| raw\/fastq\/ATAC\/[^\/]+_R[^\/]+\.fastq\.gz | ✓ | This is a GZip'd version of the fastq files containing the forward, reverse and barcode reads from ATACseq sequencing (R1, R2 and R3). Further, if the barcodes are in R3 (as with 10X) then the metadata field "barcode reads" would be set to "Read 2 (R2)" and the fastq file named "*_R2*fastq.gz" would be expected. | +| lab_processed\/.* | | Experiment files that were processed by the lab generating the data. | diff --git a/src/ingest_validation_tools/directory-schemas/rnaseq-with-probes-v2.yaml b/src/ingest_validation_tools/directory-schemas/rnaseq-with-probes-v2.yaml index 8b2138c8b..ef0024dc6 100644 --- a/src/ingest_validation_tools/directory-schemas/rnaseq-with-probes-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/rnaseq-with-probes-v2.yaml @@ -1,4 +1,39 @@ -draft: true files: - - draft_link: 'https://docs.google.com/spreadsheets/d/10Om2iinTwfLn1ySWtovmcm35cQnyg0Pm-rRd0a-eMjc' \ No newline at end of file + pattern: extras\/.* + required: True + description: Folder for general lab-specific files related to the dataset. + - + pattern: extras\/expected_cell_count\.txt + required: False + description: The expected cell count for the RNA sequencing dataset. This is an optional file that, if present, will be used by the HIVE's RNA sequencing analysis pipeline. With some datasets, knowing the expected cell count has improved the output of the HIVE analysis pipeline. + - + pattern: raw\/.* + required: True + description: All raw data files for the experiment. + - + pattern: raw\/custom_probe_set\.csv + required: False + description: This file should contain any custom probes used and must be included if the metadata field "is_custom_probes_used" is "Yes". The file should minimally include:target gene id, probe seq, probe id. The contents of this file are modeled after the 10x Genomics probe set file (see ). + - + pattern: raw\/additional_panels_used\.csv + required: False + description: If multiple commercial probe panels were used, then the primary probe panel should be selected in the "oligo_probe_panel" metadata field. The additional panels must be included in this file. Each panel record should include:manufacturer, model/name, product code. + - + pattern: raw\/fastq\/.* + required: True + description: Raw sequencing files for the experiment. + - + pattern: raw\/fastq\/oligo\/.* + required: True + description: Directory containing fastq files pertaining to oligo sequencing. + - + pattern: raw\/fastq\/oligo\/[^\/]+_R[^\/]+\.fastq\.gz + required: True + description: This is a gzip version of the fastq file. This file contains the cell barcode and unique molecular identifier (technical). + is_qa_qc: False + - + pattern: lab_processed\/.* + required: False + description: Experiment files that were processed by the lab generating the data. + diff --git a/src/ingest_validation_tools/directory-schemas/snareseq2-v2.yaml b/src/ingest_validation_tools/directory-schemas/snareseq2-v2.yaml index 1b0016d97..e32272190 100644 --- a/src/ingest_validation_tools/directory-schemas/snareseq2-v2.yaml +++ b/src/ingest_validation_tools/directory-schemas/snareseq2-v2.yaml @@ -1,5 +1,39 @@ -#SNARE-seq2 Directory Schema -draft: true files: - - draft_link: 'https://docs.google.com/spreadsheets/d/10Om2iinTwfLn1ySWtovmcm35cQnyg0Pm-rRd0a-eMjc/edit#gid=37240204' + pattern: extras\/.* + required: True + description: Folder for general lab-specific files related to the dataset. + - + pattern: extras\/expected_cell_count\.txt + required: False + description: The expected cell count for the RNA sequencing dataset. This is an optional file that, if present, will be used by the HIVE's RNA sequencing analysis pipeline. With some datasets, knowing the expected cell count has improved the output of the HIVE analysis pipeline. + - + pattern: raw\/.* + required: True + description: All raw data files for the experiment. + - + pattern: raw\/fastq\/.* + required: True + description: Raw sequencing files for the experiment. + - + pattern: raw\/fastq\/RNA\/.* + required: True + description: Directory containing fastq files pertaining to RNAseq sequencing. + - + pattern: raw\/fastq\/RNA\/[^\/]+_R[^\/]+\.fastq\.gz + required: True + description: This is a GZip'd version of the forward and reverse fastq files from RNAseq sequencing (R1 and R2). + is_qa_qc: False + - + pattern: raw\/fastq\/ATAC\/.* + required: True + description: Directory containing fastq files pertaining to ATACseq sequencing. + - + pattern: raw\/fastq\/ATAC\/[^\/]+_R[^\/]+\.fastq\.gz + required: True + description: This is a GZip'd version of the fastq files containing the forward, reverse and barcode reads from ATACseq sequencing (R1, R2 and R3). Further, if the barcodes are in R3 (as with 10X) then the metadata field "barcode reads" would be set to "Read 2 (R2)" and the fastq file named "*_R2*fastq.gz" would be expected. + is_qa_qc: False + - + pattern: lab_processed\/.* + required: False + description: Experiment files that were processed by the lab generating the data. diff --git a/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml index e47c3bab7..403b93e4e 100644 --- a/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml @@ -2,7 +2,7 @@ draft: true fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' - example: 'https://docs.google.com/spreadsheets/d/1YNyMWvDTZzuj8m4fgdwLI6Wht1C3zb_s2kTONEVkZmo' + example: 'https://openview.metadatacenter.org/templates/https:%2F%2Frepo.metadatacenter.org%2Ftemplates%2Fb76e54fe-5352-449b-9188-f250b51fbedc' - name: assay_category constraints: enum: From 9e521bd0321e8b87e135c486622fc3eac028f6af Mon Sep 17 00:00:00 2001 From: jpuerto-psc <68066250+jpuerto-psc@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:40:16 -0500 Subject: [PATCH 10/11] Juranic/dir schema updates (#1277) * Update rnaseq-with-probes-v2.yaml Update to next-gen directory schema. * Update snareseq2-v2.yaml Update to next-gen directory schema. * Update CHANGELOG.md * General: Update docs * General: Remove draft flag from snareseq * General: Remove draft flag from snareseq --------- Co-authored-by: j-uranic <117292295+j-uranic@users.noreply.github.com> Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + .../table-schemas/assays/snareseq2-v2.yaml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9084dfce7..00ee84cf7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,7 @@ - Delete GeoMX - Update soft typing to use hyphen, not underscore - Add SNARE-seq2 and RNAseq with probes next-gen directory schema +- Remove the draft tag from SNARE-seq2 ## v0.0.15 - 2023-04-04 diff --git a/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml b/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml index 403b93e4e..8778dec22 100644 --- a/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml +++ b/src/ingest_validation_tools/table-schemas/assays/snareseq2-v2.yaml @@ -1,4 +1,3 @@ -draft: true fields: - name: is_cedar description: 'Identifies whether the version is hosted by CEDAR' From f8cd68a1ef8a3793db388370441109cb75ac450b Mon Sep 17 00:00:00 2001 From: jpuerto-psc <68066250+jpuerto-psc@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:49:00 -0500 Subject: [PATCH 11/11] Juranic/dir schema updates (#1278) * Update rnaseq-with-probes-v2.yaml Update to next-gen directory schema. * Update snareseq2-v2.yaml Update to next-gen directory schema. * Update CHANGELOG.md * General: Update docs * General: Remove draft flag from snareseq * General: Remove draft flag from snareseq * General: Regenerate docs for SNARE-seq2 --------- Co-authored-by: j-uranic <117292295+j-uranic@users.noreply.github.com> Co-authored-by: Juan Puerto <=> --- CHANGELOG.md | 1 + docs/snareseq2/current/index.md | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00ee84cf7..f807679bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,6 +69,7 @@ - Update soft typing to use hyphen, not underscore - Add SNARE-seq2 and RNAseq with probes next-gen directory schema - Remove the draft tag from SNARE-seq2 +- Regenerate docs for SNARE-seq2 ## v0.0.15 - 2023-04-04 diff --git a/docs/snareseq2/current/index.md b/docs/snareseq2/current/index.md index ef419b598..7544daa70 100644 --- a/docs/snareseq2/current/index.md +++ b/docs/snareseq2/current/index.md @@ -7,17 +7,21 @@ exclude_from_index: False layout: default --- +Prepare your metadata based on the latest metadata schema using one of the template files below. See the instructions in the [Metadata Validation Workflow](https://docs.google.com/document/d/1lfgiDGbyO4K4Hz1FMsJjmJd9RdwjShtJqFYNwKpbcZY) document for more information on preparing and validating your metadata.tsv file prior to submission. Related files: -Excel and TSV templates for this schema will be available when the draft next-generation schema, to be used in all future submissions, is finalized (no later than Sept. 30). + +- [📝 Excel template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/snareseq2/latest/snareseq2.xlsx): For metadata entry. +- [📝 TSV template](https://raw.githubusercontent.com/hubmapconsortium/dataset-metadata-spreadsheet/main/snareseq2/latest/snareseq2.tsv): Alternative for metadata entry. + ## Metadata schema -Version 2 (use this one) (draft - submission of data prepared using this schema will be supported by Sept. 30) +Version 2 (use this one)