From b1ebd0d02e753d83c1fa8fb0e6c9866a867db832 Mon Sep 17 00:00:00 2001 From: David Michaels Date: Mon, 8 Jan 2024 12:26:03 -0500 Subject: [PATCH] minor portal_utils refactor and new tests --- dcicutils/portal_utils.py | 66 +- dcicutils/structured_data.py | 9 +- pyproject.toml | 2 +- test/data_files/sample_schemas.json | 21133 ++++++++++++++++++++++++++ test/test_portal_utils.py | 40 + 5 files changed, 21220 insertions(+), 30 deletions(-) create mode 100644 test/data_files/sample_schemas.json diff --git a/dcicutils/portal_utils.py b/dcicutils/portal_utils.py index 43e3e4885..c9e30d172 100644 --- a/dcicutils/portal_utils.py +++ b/dcicutils/portal_utils.py @@ -1,4 +1,5 @@ from collections import deque +from functools import lru_cache import io import json from pyramid.config import Configurator as PyramidConfigurator @@ -41,7 +42,6 @@ class Portal: or a dcicutils.misc_utils.VirtualApp, or even a pyramid.router.Router. 8. From another Portal object (i.e. copy constructor). """ - FILE_SCHEMA_NAME = "File" KEYS_FILE_DIRECTORY = "~" MIME_TYPE_JSON = "application/json" @@ -166,6 +166,8 @@ def normalize_server(server: str) -> Optional[str]: init_from_env_server_app(env, server, app, unspecified=[arg]) elif raise_exception: raise Exception("Portal init error; insufficient args.") + else: + init() if not self.vapp and not self.key and raise_exception: raise Exception("Portal init error; neither key nor vapp defined.") @@ -277,6 +279,7 @@ def ping(self) -> bool: def get_schema(self, schema_name: str) -> Optional[dict]: return get_schema(self.schema_name(schema_name), portal_vapp=self.vapp, key=self.key) + @lru_cache(maxsize=1) def get_schemas(self) -> dict: return self.get("/profiles/").json() @@ -284,39 +287,50 @@ def get_schemas(self) -> dict: def schema_name(name: str) -> str: return to_camel_case(name.replace(" ", "") if not name.endswith(".json") else name[:-5]) - def is_schema_type(self, value: dict, schema_type: str) -> bool: - """ - Returns True iff the given object isa type of the given schema type. + def is_schema(self, schema_name_or_object: Union[str, dict], target_schema_name: str, + _schemas_super_type_map: Optional[list] = None) -> bool: """ - if isinstance(value, dict) and (value_types := value.get("@type")): - if isinstance(value_types, str): - return self.is_specified_schema(value_types, schema_type) - elif isinstance(value_types, list): - for value_type in value_types: - if self.is_specified_schema(value_type, schema_type): - return True - return False - - def is_specified_schema(self, schema_name: str, schema_type: str) -> bool: + If the given (first) schema_name_or_object argument is a string then returns True iff the + given schema (type) name isa type of the given target schema (type) name, i.e. is the + given schema type is the given target schema type or has an ancestor which is that type. + If the given (first) schema_name_or_object argument is a dictionary then + returns True iff this object value isa type of the given target schema type. """ - Returns True iff the given schema name isa type of the given schema type name, - i.e. has an ancestor which is of type that given type. - """ - schema_name = self.schema_name(schema_name) - schema_type = self.schema_name(schema_type) - if schema_name == schema_type: + if isinstance(schema_name_or_object, dict): + return self.isinstance_schema(schema_name_or_object, target_schema_name) + schema_name = self.schema_name(schema_name_or_object).lower() + target_schema_name = self.schema_name(target_schema_name).lower() + if schema_name == target_schema_name: return True - if super_type_map := self.get_schemas_super_type_map(): - if super_type := super_type_map.get(schema_type): - return self.schema_name(schema_name) in super_type + if super_type_map := (_schemas_super_type_map or self.get_schemas_super_type_map()): + for super_type in super_type_map: + if super_type.lower() == target_schema_name: + for value in super_type_map[super_type]: + if value.lower() == schema_name: + return True return False - def is_file_schema(self, schema_name: str) -> bool: + def isinstance_schema(self, value: dict, target_schema_name: str) -> bool: """ - Returns True iff the given schema name isa File type, i.e. has an ancestor which is of type File. + Returns True iff the given object isa type of the given schema type. """ - return self.is_specified_schema(schema_name, Portal.FILE_SCHEMA_NAME) + if isinstance(value, dict): + if isinstance(value_types := value.get("@type"), str): + value_types = [value_types] + else: + value_types = [] + if isinstance(data_type := value.get("data_type"), list): + value_types.extend(data_type) + elif isinstance(data_type, str): + value_types.append(data_type) + if value_types: + schemas_super_type_map = self.get_schemas_super_type_map() + for value_type in value_types: + if self.is_schema(value_type, target_schema_name, schemas_super_type_map): + return True + return False + @lru_cache(maxsize=1) def get_schemas_super_type_map(self) -> dict: """ Returns the "super type map" for all of the known schemas (via /profiles). diff --git a/dcicutils/structured_data.py b/dcicutils/structured_data.py index a889ee3a3..c7efa6114 100644 --- a/dcicutils/structured_data.py +++ b/dcicutils/structured_data.py @@ -31,6 +31,7 @@ ARRAY_NAME_SUFFIX_CHAR = "#" ARRAY_NAME_SUFFIX_REGEX = re.compile(rf"{ARRAY_NAME_SUFFIX_CHAR}\d+") DOTTED_NAME_DELIMITER_CHAR = "." +FILE_SCHEMA_NAME = "File" FILE_SCHEMA_NAME_PROPERTY = "filename" # Forward type references for type hints. @@ -590,9 +591,11 @@ def get_schemas(self) -> Optional[dict]: schemas[user_specified_schema["title"]] = user_specified_schema return schemas - @lru_cache(maxsize=1) - def get_schemas_super_type_map(self) -> dict: - return super().get_schemas_super_type_map() + def is_file_schema(self, schema_name: str) -> bool: + """ + Returns True iff the given schema name isa File type, i.e. has an ancestor which is of type File. + """ + return self.is_schema(schema_name, FILE_SCHEMA_NAME) def ref_exists(self, type_name: str, value: str) -> List[str]: resolved = [] diff --git a/pyproject.toml b/pyproject.toml index 99ffd968d..641d7a6c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dcicutils" -version = "8.7.0.1b17" # TODO: To become 8.7.1 +version = "8.7.0.1b18" # TODO: To become 8.7.1 description = "Utility package for interacting with the 4DN Data Portal and other 4DN resources" authors = ["4DN-DCIC Team "] license = "MIT" diff --git a/test/data_files/sample_schemas.json b/test/data_files/sample_schemas.json new file mode 100644 index 000000000..d69de800b --- /dev/null +++ b/test/data_files/sample_schemas.json @@ -0,0 +1,21133 @@ +{ + "AccessKey": { + "title": "Access Key", + "$id": "/profiles/access_key.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [], + "identifyingProperties": [ + "access_key_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "access_key_id": { + "title": "Access key ID", + "comment": "Only admins are allowed to set this value.", + "type": "string", + "uniqueKey": true, + "permission": "restricted_fields" + }, + "expiration_date": { + "title": "Expiration Date", + "comment": "Only admins are allowed to set this value.", + "type": "string", + "permission": "restricted_fields" + }, + "secret_access_key_hash": { + "title": "Secret access key Hash", + "type": "string", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "current", + "enum": [ + "current", + "deleted" + ], + "permission": "restricted_fields" + }, + "user": { + "title": "User", + "type": "string", + "linkTo": "User" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/AccessKey", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "AlignedReads": { + "title": "Aligned Reads", + "$id": "/profiles/aligned_reads.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "data_category", + "data_type", + "file_format", + "file_sets", + "filename", + "reference_genome", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/reference_genome" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "file.json#/properties" + }, + { + "$ref": "submitted_file.json#/properties" + } + ], + "properties": { + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "derived_from": { + "title": "Derived From", + "description": "Files used as input to create this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmittedFile" + } + }, + "file_sets": { + "title": "File Sets", + "description": "File collections associated with this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "FileSet" + } + }, + "software": { + "title": "Software", + "description": "Software used to create this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Software" + } + }, + "accession": { + "accessionType": "AR", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "status": { + "title": "Status", + "type": "string", + "default": "uploading", + "enum": [ + "uploading", + "uploaded", + "upload failed", + "to be uploaded by workflow", + "released", + "in review", + "obsolete", + "archived", + "deleted", + "public" + ] + }, + "file_format": { + "ff_flag": "filter:valid_item_types", + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "filename": { + "description": "The local file name used at time of submission. Must be alphanumeric, with the exception of the following special characters: '+=,.@-_'", + "pattern": "^[\\w+=,.@-]*$", + "title": "File Name", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes - presumably this can be a calculated property as well", + "description": "Size of file on disk", + "exclude_from": [ + "FFedit-create" + ], + "permission": "restricted_fields", + "title": "File Size", + "type": "integer" + }, + "md5sum": { + "comment": "This can vary for files of same content gzipped at different times", + "description": "The MD5 checksum of the file being transferred", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "MD5 Checksum", + "type": "string" + }, + "content_md5sum": { + "comment": "This is only relavant for gzipped files", + "description": "The MD5 checksum of the uncompressed file", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "Content MD5 Checksum", + "type": "string", + "uniqueKey": "file:content_md5sum" + }, + "quality_metrics": { + "description": "Associated QC reports", + "items": { + "description": "Associated QC report", + "linkTo": "QualityMetric", + "title": "Quality Metric", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Quality Metrics", + "type": "array", + "uniqueItems": true + }, + "data_category": { + "title": "Data Category", + "description": "Category for information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Sequencing Reads" + ] + } + }, + "data_type": { + "title": "Data Type", + "description": "Detailed type of information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Aligned Reads" + ] + } + }, + "o2_path": { + "title": "O2 Path", + "description": "Path to file on O2", + "type": "string" + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "reference_genome": { + "title": "Reference Genome", + "description": "Reference genome used for alignment", + "type": "string", + "linkTo": "ReferenceGenome" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "href": { + "title": "Download URL", + "type": "string", + "description": "Use this link to download this file", + "calculatedProperty": true + }, + "upload_credentials": { + "type": "object", + "calculatedProperty": true + }, + "upload_key": { + "title": "Upload Key", + "type": "string", + "description": "File object name in S3", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/AlignedReads", + "children": [], + "rdfs:subClassOf": "/profiles/SubmittedFile.json", + "isAbstract": false + }, + "Analyte": { + "title": "Analyte", + "$id": "/profiles/analyte.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "components", + "molecule", + "samples", + "submission_centers", + "submitted_id" + ], + "dependentRequired": { + "rna_integrity_number": [ + "rna_integrity_number_instrument" + ], + "rna_integrity_number_instrument": [ + "rna_integrity_number" + ] + }, + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "AN" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "a260_a280_ratio": { + "title": "A260/A280 Ratio", + "description": "Ratio of nucleic acid absorbance at 260 nm and 280 nm, used to determine a measure of DNA purity", + "type": "number", + "minimum": 0 + }, + "components": { + "title": "Components", + "description": "Biological features included in the analyte", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Total DNA", + "mRNA", + "tRNA", + "rRNA", + "MicroRNA", + "Total RNA" + ] + } + }, + "concentration": { + "title": "Concentration", + "description": "Analyte concentration (mg/mL)", + "type": "number", + "minimum": 0 + }, + "molecule": { + "title": "Molecule", + "description": "Molecule of interest for the analyte", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "DNA", + "RNA" + ] + } + }, + "ribosomal_rna_ratio": { + "title": "Ribosomal RNA Ratio", + "description": "The 28S/18S ribosomal RNA band ratio used to assess the quality of total RNA", + "type": "number", + "minimum": 0 + }, + "rna_integrity_number": { + "title": "RNA Integrity Number", + "description": "Assessment of the integrity of RNA based on electrophoresis", + "type": "number", + "minimum": 1, + "maximum": 10 + }, + "rna_integrity_number_instrument": { + "title": "RIN Instrument", + "description": "Instrument used for RIN assessment", + "type": "string", + "enum": [ + "Agilent Bioanalyzer", + "Caliper Life Sciences LabChip GX" + ] + }, + "sample_quanitity": { + "title": "Sample Quantity", + "description": "The amount of sample used to generate the analyte (mg)", + "type": "number", + "minimum": 0 + }, + "volume": { + "title": "Volume", + "description": "Analyte volume (mL)", + "type": "number", + "minimum": 0 + }, + "weight": { + "title": "Weight", + "description": "Analyte weight (mg)", + "type": "number", + "minimum": 0 + }, + "analyte_preparation": { + "title": "Analyte Preparation", + "description": "Link to associated analyte preparation", + "type": "string", + "linkTo": "AnalytePreparation" + }, + "samples": { + "title": "Samples", + "description": "Link to associated samples", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Sample" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Analyte", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "AnalytePreparation": { + "title": "Analyte Preparation", + "$id": "/profiles/analyte_preparation.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "AP" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "cell_lysis_method": { + "title": "Cell Lysis Method", + "description": "Cell lysis method for analyte extraction", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Chemical", + "Enzymatic", + "Mechanical", + "Thermal" + ] + } + }, + "extraction_method": { + "title": "Extraction Method", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Magnetic Beads", + "Not Applicable", + "Organic Chemicals", + "Silica Column" + ] + } + }, + "preparation_kits": { + "title": "Preparation Kits", + "description": "Links to associated preparation kit", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "PreparationKit" + } + }, + "treatments": { + "title": "Treatments", + "description": "Links to associated treatments", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Treatment" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/AnalytePreparation", + "children": [], + "rdfs:subClassOf": "/profiles/Preparation.json", + "isAbstract": false + }, + "CellCulture": { + "title": "Cell Culture", + "$id": "/profiles/cell_culture.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "cell_line", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "sample_source.json#/properties" + } + ], + "properties": { + "accession": { + "accessionType": "CC", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "sample_count": { + "title": "Sample Count", + "description": "Number of samples produced for this source", + "type": "integer", + "minimum": 1 + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "culture_duration": { + "title": "Culture Duration", + "description": "Total number of culturing days", + "type": "integer", + "minimum": 0 + }, + "culture_harvest_date": { + "title": "Culture Harvest Date", + "description": "YYYY-MM-DD format date for cell culture harvest", + "type": "string", + "format": "date" + }, + "culture_start_date": { + "title": "Culture Start Date", + "description": "YYYY-MM-DD format date for cell culture start date", + "type": "string", + "format": "date" + }, + "doubling_number": { + "title": "Doubling Number", + "description": "Number of times the population has doubled since the time of culture start date until harvest", + "type": "integer", + "minimum": 0 + }, + "doubling_time": { + "title": "Doubling Time", + "description": "Average time from culture start date until harvest it takes for the population to double (hours)", + "type": "number", + "minimum": 0 + }, + "growth_medium": { + "title": "Growth Medium", + "description": "Medium used for cell culture", + "type": "string" + }, + "karyotype": { + "title": "Karyotype", + "description": "Chromosome count and any noted rearrangements or copy number variation", + "type": "string" + }, + "lot_number": { + "title": "Lot Number", + "description": "Lot number of cell line", + "type": "integer", + "minimum": 0 + }, + "passage_number": { + "title": "Passage Number", + "description": "Number of times the cell line has been passaged since the culture start date until harvest", + "type": "integer", + "minimum": 0 + }, + "cell_line": { + "title": "Cell Line", + "description": "Cell line used for the cell culture", + "type": "string", + "linkTo": "CellLine" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/CellCulture", + "children": [], + "rdfs:subClassOf": "/profiles/SampleSource.json", + "isAbstract": false + }, + "CellCultureMixture": { + "title": "Cell Culture Mixture", + "$id": "/profiles/cell_culture_mixture.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "components", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "CM" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "components": { + "title": "Components", + "description": "Cultures in the mixture and their corresponding ratios", + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "ratio", + "cell_culture" + ], + "properties": { + "ratio": { + "title": "Ratio", + "description": "Ratio of the cell culture to the total mixture (percentage)", + "type": "number", + "minimum": 0 + }, + "cell_culture": { + "title": "Cell Culture", + "description": "Link to associated cell culture", + "type": "string", + "linkTo": "CellCulture" + } + } + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/CellCultureMixture", + "children": [], + "rdfs:subClassOf": "/profiles/SampleSource.json", + "isAbstract": false + }, + "CellCultureSample": { + "title": "Cell Culture Sample", + "$id": "/profiles/cell_culture_sample.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "preservation_type", + "sample_sources", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "sample.json#/properties" + } + ], + "properties": { + "accession": { + "accessionType": "CU", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "preservation_medium": { + "title": "Preservation Medium", + "description": "Medium used for sample preservation", + "type": "string", + "enum": [ + "TBD" + ] + }, + "preservation_type": { + "title": "Preservation Type", + "description": "Method of sample preservation", + "type": "string", + "enum": [ + "Fresh", + "Frozen" + ] + }, + "sample_preparation": { + "title": "Sample Preparation", + "description": "Link to associated sample preparation", + "type": "string", + "linkTo": "SamplePreparation" + }, + "sample_sources": { + "title": "Sample Sources", + "description": "Link to associated sample sources", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "CellCulture" + }, + "maxItems": 1 + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/CellCultureSample", + "children": [], + "rdfs:subClassOf": "/profiles/Sample.json", + "isAbstract": false + }, + "CellLine": { + "title": "Cell Line", + "$id": "/profiles/cell_line.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "source", + "submission_centers", + "submitted_id", + "title" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "CL" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "source": { + "title": "Source", + "description": "Source of the cells (vendor or institution)", + "type": "string" + }, + "url": { + "title": "Url", + "description": "URL for vendor information on the cell line", + "type": "string", + "format": "uri" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/CellLine", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "CellSample": { + "title": "Cell Sample", + "$id": "/profiles/cell_sample.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "cell_ontology_id", + "preservation_type", + "sample_sources", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "sample.json#/properties" + } + ], + "properties": { + "accession": { + "accessionType": "CS", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "preservation_medium": { + "title": "Preservation Medium", + "description": "Medium used for sample preservation", + "type": "string", + "enum": [ + "TBD" + ] + }, + "preservation_type": { + "title": "Preservation Type", + "description": "Method of sample preservation", + "type": "string", + "enum": [ + "Fresh", + "Frozen" + ] + }, + "sample_preparation": { + "title": "Sample Preparation", + "description": "Link to associated sample preparation", + "type": "string", + "linkTo": "SamplePreparation" + }, + "sample_sources": { + "title": "Sample Sources", + "description": "Link to associated sample sources", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SampleSource" + } + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "cell_count": { + "title": "Cell Count", + "description": "Number of cells collected", + "type": "integer", + "minimum": 0 + }, + "cell_ontology_id": { + "title": "Cell Ontology ID", + "description": "Cell Ontology identifier for the cell sample", + "type": "string", + "pattern": "^CL:[0-9]{7}$" + }, + "parent_samples": { + "title": "Parent Samples", + "desscription": "Samples from which the cells were isolated", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Sample" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/CellSample", + "children": [], + "rdfs:subClassOf": "/profiles/Sample.json", + "isAbstract": false + }, + "Consortium": { + "title": "Consortium", + "$id": "/profiles/consortium.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "required": [ + "identifier", + "title" + ], + "identifyingProperties": [ + "aliases", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/url" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "type": "object", + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "url": { + "title": "URL", + "description": "An external resource with additional information about the item", + "type": "string", + "format": "uri" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "released", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Consortium", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "DeathCircumstances": { + "title": "Death Circumstances", + "$id": "/profiles/death_circumstances.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "donor", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "DC" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "autopsy_by_official": { + "title": "Autopsy By Official", + "description": "Whether an autopsy was performed by a licensed official", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "blood_transfusion": { + "title": "Blood Transfusion", + "description": "Whether donor received a blood transfusion within 48 hours of death", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "blood_transfusion_products": { + "title": "Blood Transfusion Products", + "description": "Blood transfusion products received by donor within 48 hours", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "Cryoprecipitate", + "Fresh Frozen PlasmaPacked Red Blood Cells", + "Platelets" + ] + } + }, + "brain_death_datetime": { + "title": "Brain Death Datetime", + "description": "Date and time when brain death was determined for the donor", + "type": "string", + "format": "date-time" + }, + "cardiac_cessation_datetime": { + "title": "Cardiac Cessation Datetime", + "description": "Date and time when cardiac activity was determined to have ceased for the donor", + "type": "string", + "format": "date-time" + }, + "cause_of_death_immediate": { + "title": "Cause Of Death Immediate", + "description": "Immediate cause of death", + "type": "string" + }, + "cause_of_death_immediate_interval": { + "title": "Cause Of Death Immediate Interval", + "description": "Interval of time from immediate cause of death to death in minutes", + "type": "number", + "minimum": 0 + }, + "cause_of_death_initial": { + "title": "Cause Of Death Initial", + "description": "Initial cause of death", + "type": "string" + }, + "cause_of_death_initial_interval": { + "title": "Cause Of Death Initial Interval", + "description": "Interval of time from initial cause of death to death in minutes", + "type": "number", + "minimum": 0 + }, + "cause_of_death_last_underlying": { + "title": "Cause Of Death Last Underlying", + "description": "Last underlying cause of death", + "type": "string" + }, + "cause_of_death_last_underlying_interval": { + "title": "Cause Of Death Last Underlying Interval", + "description": "Interval of time from last underlying cause of death to death in minutes", + "type": "number" + }, + "cause_of_death_official": { + "title": "Cause Of Death Official", + "description": "Official cause of death", + "type": "string" + }, + "city_of_death": { + "title": "City Of Death", + "description": "City of death of the donor", + "type": "string" + }, + "country_of_death": { + "title": "Country Of Death", + "description": "Country of death of the donor", + "type": "string" + }, + "death_certificate_available": { + "title": "Death Certificate Available", + "description": "Whether a death certificate is available for the donor", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "death_pronounced_datetime": { + "title": "Death Pronounced Datetime", + "description": "Date and time when death of the donor was pronounced", + "type": "string", + "format": "date-time" + }, + "death_pronounced_interval": { + "title": "Death Pronounced Interval", + "description": "Interval of time from death until death was pronounced in minutes", + "type": "number", + "minimum": 0 + }, + "determiner_of_death": { + "title": "Determiner Of Death", + "description": "If death occurred outside hospital, role of person who determined death of the donor", + "type": "string", + "enum": [ + "TBD" + ] + }, + "hardy_scale": { + "title": "Hardy Scale", + "description": "Death classification based on the 4-point Hardy Scale", + "type": "integer", + "minimum": 1, + "maximum": 4 + }, + "icd_10_category": { + "title": "Icd 10 Category", + "description": "Category of death based on ICD-10 coding", + "type": "string" + }, + "icd_10_cause": { + "title": "Icd 10 Cause", + "description": "Specific cause of death based on ICD-10 coding ", + "type": "string" + }, + "icd_10_classification": { + "title": "Icd 10 Classification", + "description": "Classification of death based on ICD-10 coding ", + "type": "string" + }, + "icd_10_code": { + "title": "Icd 10 Code", + "description": "ICD-10 Code for cause of death", + "type": "string" + }, + "last_seen_alive_datetime": { + "title": "Last Seen Alive Datetime", + "description": "Date and time when the donor was last known to be alive", + "type": "string", + "format": "date-time" + }, + "manner_of_death": { + "title": "Manner Of Death", + "description": "Manner of death of the donor", + "type": "string", + "enum": [ + "TBD" + ] + }, + "place_of_death": { + "title": "Place Of Death", + "description": "Place of death of the donor", + "type": "string", + "enum": [ + "TBD" + ] + }, + "presumed_cardiac_cessation_datetime": { + "title": "Presumed Cardiac Cessation Datetime", + "description": "Date and time when cardiac activity was presumed to have ceased for the donor", + "type": "string", + "format": "date-time" + }, + "ventilator_at_death": { + "title": "Ventilator At Death", + "description": "Whether the donor was on a ventilator immediately prior to death", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "ventilator_time": { + "title": "Ventilator Time", + "description": "Time in minutes the donor was on a ventilator prior to death", + "type": "number", + "minimum": 0 + }, + "witnessed_death": { + "title": "Witnessed Death", + "description": "Whether the death of the donor was witnessed directly", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "donor": { + "title": "Donor", + "description": "Link to the associated donor", + "type": "string", + "linkTo": "Donor" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/DeathCircumstances", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Demographic": { + "title": "Demographic", + "$id": "/profiles/demographic.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "donor", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "DG" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "city_of_birth": { + "title": "City Of Birth", + "description": "The birth city of the donor", + "type": "string" + }, + "country_of_birth": { + "title": "Country Of Birth", + "description": "The birth country of the donor", + "type": "string" + }, + "ethnicity": { + "title": "Ethnicity", + "description": "The ethnicity of the donor", + "type": "string", + "enum": [ + "Hispanic or Latino", + "Not Hispanic or Latino", + "Not Reported" + ] + }, + "occupation": { + "title": "Occupation", + "description": "The primary occupation of the donor", + "type": "string" + }, + "race": { + "title": "Race", + "description": "The race of the donor", + "type": "string", + "enum": [ + "American Indian or Alaska Native", + "Asian", + "Black or African American", + "Hispanic or Latino", + "Native Hawaiian or other Pacific Islander", + "White", + "Not Reported" + ] + }, + "donor": { + "title": "Donor", + "description": "Link to the associated donor", + "type": "string", + "linkTo": "Donor" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Demographic", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Diagnosis": { + "title": "Diagnosis", + "$id": "/profiles/diagnosis.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "disease", + "medical_history", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "DX" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "age_at_diagnosis": { + "title": "Age At Diagnosis", + "description": "Age when the disease was diagnosed", + "type": "integer", + "minimum": 0 + }, + "age_at_resolution": { + "title": "Age At Resolution", + "description": "Age when the disease was determined to have resolved", + "type": "integer", + "minimum": 0 + }, + "comments": { + "title": "Comments", + "description": "Additional information on the diagnosis", + "type": "string" + }, + "disease": { + "title": "Disease", + "description": "Link to associated disease ontology term", + "type": "string", + "linkTo": "OntologyTerm" + }, + "medical_history": { + "title": "Medical History", + "description": "Link to the associated medical history", + "type": "string", + "linkTo": "MedicalHistory" + }, + "therapeutics": { + "title": "Therapeutics", + "description": "Links to associated therapeutics for the disease", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Therapeutic" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Diagnosis", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Document": { + "title": "Document", + "description": "Data content and metadata, typically for simple files (text, pdf, etc.)", + "$id": "/profiles/document.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attachment" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "attachment": { + "title": "Attached File", + "description": "File attached to this Item.", + "type": "object", + "additionalProperties": false, + "formInput": "file", + "attachment": true, + "ff_flag": "clear clone", + "properties": { + "download": { + "title": "File Name", + "description": "File Name of the attachment.", + "type": "string" + }, + "href": { + "internal_comment": "Internal webapp URL for document file", + "title": "href", + "description": "Path to download the file attached to this Item.", + "type": "string" + }, + "type": { + "title": "Media Type", + "type": "string", + "enum": [ + "application/msword", + "application/vnd.ms-excel", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/pdf", + "application/zip", + "application/proband+xml", + "text/plain", + "text/tab-separated-values", + "image/jpeg", + "image/tiff", + "image/gif", + "text/html", + "image/png", + "image/svs", + "text/autosql" + ] + }, + "md5sum": { + "title": "MD5 Checksum", + "description": "Use this to ensure that your file was downloaded without errors or corruption.", + "type": "string", + "format": "md5sum" + }, + "size": { + "title": "Attachment size", + "description": "Size of the attachment on disk", + "type": "integer" + }, + "width": { + "title": "Image width", + "description": "Width of the image attached, in pixels.", + "type": "integer" + }, + "height": { + "title": "Image height", + "description": "Height of the image attached, in pixels.", + "type": "integer" + }, + "blob_id": { + "title": "Blob ID", + "type": "string", + "internal_comment": "blob storage ID. Use to like with s3/rds" + } + } + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Document", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Donor": { + "title": "Donor", + "$id": "/profiles/donor.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "age", + "sex", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "DO" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "age": { + "title": "Age", + "description": "Age of the donor in years", + "type": "integer", + "minimum": 0 + }, + "body_mass_index": { + "title": "Body Mass Index", + "description": "Body mass index of the donor (m/kg^2)", + "type": "number", + "minimum": 0 + }, + "height": { + "title": "Height", + "description": "Height of the donor in meters", + "type": "number", + "minimum": 0 + }, + "sex": { + "title": "Sex", + "description": "Sex of the donor", + "type": "string", + "enum": [ + "Male", + "Female", + "Unknown" + ] + }, + "weight": { + "title": "Weight", + "description": "Weight of the donor in kilograms", + "type": "number", + "minimum": 0 + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Donor", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Exposure": { + "title": "Exposure", + "$id": "/profiles/exposure.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "medical_history", + "submission_centers", + "submitted_id", + "substance" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "EX" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "age_at_exposure_end": { + "title": "Age At Exposure End", + "description": "Age when the exposure resolved in years", + "type": "number", + "minimum": 0 + }, + "age_at_exposure_start": { + "title": "Age At Exposure Start", + "description": "Age when the exposure began in years", + "type": "number", + "minimum": 0 + }, + "comments": { + "title": "Comments", + "description": "Additional information on the exposure", + "type": "string" + }, + "medical_history": { + "title": "Medical History", + "description": "Link to the associated medical history", + "type": "string", + "linkTo": "MedicalHistory" + }, + "substance": { + "title": "Substance", + "description": "Link to the associated ontology term for the substance to which the donor was exposed", + "type": "string", + "linkTo": "OntologyTerm" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Exposure", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "FileFormat": { + "title": "File Format", + "description": "Data format for a file", + "$id": "/profiles/file_format.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "identifier", + "standard_file_extension" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "standard_file_extension": { + "description": "Standard extension added to files for download", + "permission": "restricted_fields", + "title": "Standard File Extension", + "type": "string" + }, + "other_allowed_extensions": { + "description": "Additional allowable extensions for uploading files of this format", + "items": { + "title": "OK Extension", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Allowed Extensions", + "type": "array", + "uniqueItems": true + }, + "extra_file_formats": { + "items": { + "description": "A file format for an extra file", + "linkTo": "FileFormat", + "title": "Format", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Extra File Formats", + "type": "array", + "uniqueItems": true + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/FileFormat", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "FileSet": { + "title": "File Set", + "$id": "/profiles/file_set.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "libraries", + "sequencing", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "FS" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "libraries": { + "title": "Libraries", + "description": "Links to associated libraries", + "type": "array", + "minItems": 1, + "maxItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Library" + } + }, + "sequencing": { + "title": "Sequencing", + "description": "Link to associated sequencing", + "type": "string", + "linkTo": "Sequencing" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/FileSet", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "FilterSet": { + "title": "Filter Set", + "description": "Item for encapsulating multiple queries", + "$id": "/profiles/filter_set.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "title" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "draft", + "permission": "restricted_fields", + "enum": [ + "shared", + "obsolete", + "current", + "inactive", + "in review", + "draft", + "deleted" + ], + "notes": "Unlike the status definition in mixins, this lacks permission:restricted_fields so people may edit FilterSet statuses they've saved." + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "filter_blocks": { + "title": "Filter Blocks", + "description": "Filter queries that will be joined.", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "title": "Filter Block", + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "description": "Name of the filter block" + }, + "query": { + "title": "Single query", + "description": "URL Query string", + "type": "string" + }, + "flags_applied": { + "title": "Flags applied", + "description": "Flag names that will be applied to this filter block", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "title": "Flag", + "type": "string" + } + } + } + } + }, + "flags": { + "title": "Flags", + "description": "Flags that will be applied to filter blocks with name mapping.", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "title": "Flag", + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "description": "Name of the flag" + }, + "query": { + "title": "Single query", + "description": "URL Query string", + "type": "string" + } + } + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/FilterSet", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "HiglassViewConfig": { + "title": "HiGlass View Configuration", + "description": "Configuration details for HiGlass", + "$id": "/profiles/higlass_view_config.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "identifier", + "view_config" + ], + "identifyingProperties": [ + "aliases", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "view_config": { + "additionalProperties": true, + "default": { + "views": [] + }, + "description": "The viewconfig JSON", + "exclude_from": [ + "FFedit-create" + ], + "formInput": "code", + "title": "View Configuration", + "type": "object" + }, + "instance_height": { + "default": 500, + "title": "Instance Height", + "type": "integer" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/HiglassViewConfig", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Histology": { + "title": "Histology", + "$id": "/profiles/histology.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "submission_centers", + "submitted_id", + "tissue" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "HI" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "section_location": { + "title": "Section Location", + "description": "Location in the source material that was prepared for the slide", + "type": "string", + "enum": [ + "TBD" + ] + }, + "images": { + "title": "Images", + "description": "Histology images", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Image" + } + }, + "tissue": { + "title": "Tissue", + "description": "Tissue source for the sample", + "type": "string", + "linkTo": "Tissue" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Histology", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Image": { + "title": "Image", + "$id": "/profiles/image.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attachment" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "mixins.json#/tags" + } + ], + "properties": { + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "attachment": { + "title": "Attached File", + "description": "File attached to this Item.", + "type": "object", + "additionalProperties": false, + "formInput": "file", + "attachment": true, + "ff_flag": "clear clone", + "properties": { + "download": { + "title": "File Name", + "description": "File Name of the attachment.", + "type": "string" + }, + "href": { + "internal_comment": "Internal webapp URL for document file", + "title": "href", + "description": "Path to download the file attached to this Item.", + "type": "string" + }, + "type": { + "title": "Media Type", + "type": "string", + "enum": [ + "application/msword", + "application/vnd.ms-excel", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/pdf", + "application/zip", + "application/proband+xml", + "text/plain", + "text/tab-separated-values", + "image/jpeg", + "image/tiff", + "image/gif", + "text/html", + "image/png", + "image/svs", + "text/autosql" + ] + }, + "md5sum": { + "title": "MD5 Checksum", + "description": "Use this to ensure that your file was downloaded without errors or corruption.", + "type": "string", + "format": "md5sum" + }, + "size": { + "title": "Attachment size", + "description": "Size of the attachment on disk", + "type": "integer" + }, + "width": { + "title": "Image width", + "description": "Width of the image attached, in pixels.", + "type": "integer" + }, + "height": { + "title": "Image height", + "description": "Height of the image attached, in pixels.", + "type": "integer" + }, + "blob_id": { + "title": "Blob ID", + "type": "string", + "internal_comment": "blob storage ID. Use to like with s3/rds" + } + } + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "caption": { + "title": "Caption", + "type": "string", + "formInput": "textarea" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Image", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "IngestionSubmission": { + "title": "Ingestion Submission", + "description": "Schema for metadata related to submitted ingestion requests", + "$id": "/profiles/ingestion_submission.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "ingestion_type" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/documents" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "documents": { + "title": "Documents", + "description": "Documents that provide additional information (not data file).", + "comment": "See Documents sheet or collection for existing items.", + "type": "array", + "uniqueItems": true, + "items": { + "title": "Document", + "description": "A document that provides additional information (not data file).", + "type": "string", + "linkTo": "Document" + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "additional_data": { + "title": "Additional Data", + "description": "Additional structured information resulting from processing, the nature of which may vary by ingestion_type and other factors.", + "type": "object", + "additionalProperties": true + }, + "errors": { + "title": "Errors", + "description": "A list of error messages if processing was aborted before results were obtained.", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "title": "Error Message", + "description": "One of possibly several reasons that processing was not completed.", + "type": "string" + } + }, + "ingestion_type": { + "title": "Ingestion Type", + "description": "The type of processing requested for this submission.", + "type": "string", + "enum": [ + "accessioning", + "data_bundle", + "metadata_bundle", + "simulated_bundle" + ] + }, + "object_bucket": { + "title": "Object Bucket", + "description": "The name of the S3 bucket in which the 'object_name' resides.", + "type": "string" + }, + "object_name": { + "title": "Object Name", + "description": "The name of the S3 object corresponding to the submitted document.", + "type": "string" + }, + "parameters": { + "title": "Parameters", + "description": "A record of explicitly offered form parameters in the submission request.", + "type": "object", + "additionalProperties": true + }, + "processing_status": { + "title": "Processing Status", + "description": "A structured description of what has happened so far as the submission is processed.", + "type": "object", + "additionalProperties": false, + "properties": { + "state": { + "title": "State", + "description": "A state machine description of how processing is progressing (created, submitted, processed, or done).", + "type": "string", + "enum": [ + "created", + "submitted", + "processing", + "done" + ], + "default": "created" + }, + "outcome": { + "title": "Outcome", + "description": "A token describing the nature of the final outcome, if any. Options are unknown, success, failure, or error.", + "type": "string", + "enum": [ + "unknown", + "success", + "failure", + "error" + ], + "default": "unknown" + }, + "progress": { + "title": "Progress", + "description": "An adjectival word or phrase assessing progress, such as 'started', 'awaiting prerequisites', '88% done', or 'unavailable'.", + "type": "string", + "default": "unavailable" + } + } + }, + "result": { + "title": "Result", + "description": "An object representing a result if processing ran to completion, whether the outcome was success or failure.", + "type": "object", + "additionalProperties": true + }, + "submission_id": { + "title": "Submission ID", + "description": "The name of a folder in the S3 bucket that contains all artifacts related to this submission.", + "type": "string" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/IngestionSubmission", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Library": { + "title": "Library", + "$id": "/profiles/library.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "analyte", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "LI" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "a260_a280_ratio": { + "title": "A260 A280 Ratio", + "description": "Ratio of nucleic acid absorbance at 260 nm and 280 nm, used to determine a measure of DNA purity", + "type": "number", + "minimum": 0 + }, + "adapter_name": { + "title": "Adapter Name", + "description": "Name of sequencing adapter", + "type": "string" + }, + "adapter_sequence": { + "title": "Adapter Sequence", + "description": "Base sequence of sequencing adapter", + "type": "string" + }, + "amplification_cycles": { + "title": "Amplification Cycles", + "description": "Number of PCR Cycles used for additional amplification", + "type": "integer", + "minimum": 0 + }, + "amplification_end_mass": { + "title": "Amplification End Mass", + "description": "Weight of analyte after PCR (ng)", + "type": "number", + "minimum": 0 + }, + "amplification_start_mass": { + "title": "Amplification Start Mass", + "description": "Weight of analyte prior to PCR (ng)", + "type": "number", + "minimum": 0 + }, + "analyte_weight": { + "title": "Analyte Weight", + "description": "Weight of analyte used to prepare library (mg)", + "type": "number", + "minimum": 0 + }, + "barcode_sequences": { + "title": "Barcode Sequences", + "description": "Barcode sequence for multiplexed sequencing", + "type": "string" + }, + "fragment_maximum_length": { + "title": "Fragment Maximum Length", + "description": "Maximum length of the sequenced fragments (e.g., as predicted by Agilent Bioanalyzer)", + "type": "integer", + "minimum": 0 + }, + "fragment_mean_length": { + "title": "Fragment Mean Length", + "description": "Mean length of the sequenced fragments (e.g., as predicted by Agilent Bioanalyzer)", + "type": "number", + "minimum": 0 + }, + "fragment_minimum_length": { + "title": "Fragment Minimum Length", + "description": "Minimum length of the sequenced fragments (e.g., as predicted by Agilent Bioanalyzer)", + "type": "integer", + "minimum": 0 + }, + "fragment_standard_deviation_length": { + "title": "Fragment Standard Deviation Length", + "description": "Standard deviation of length of the sequenced fragments (e.g., as predicted by Agilent Bioanalyzer)", + "type": "number", + "minimum": 0 + }, + "insert_maximum_length": { + "title": "Insert Maximum Length", + "description": "Maximum length of the sample molecule in the fragments to be sequenced", + "type": "integer", + "minimum": 0 + }, + "insert_mean_length": { + "title": "Insert Mean Length", + "description": "Mean length of the sample molecule in the fragments to be sequenced", + "type": "number", + "minimum": 0 + }, + "insert_minimum_length": { + "title": "Insert Minimum Length", + "description": "Minimum length of the sample molecule in the fragments to be sequenced", + "type": "integer", + "minimum": 0 + }, + "insert_standard_deviation_length": { + "title": "Insert Standard Deviation Length", + "description": "Standard deviation of the length of the sample molecule in the fragments to be sequenced", + "type": "number", + "minimum": 0 + }, + "preparation_date": { + "title": "Preparation Date", + "description": "Date of library preparation", + "type": "string", + "format": "date" + }, + "analyte": { + "title": "Analyte", + "description": "Link to associated analyte", + "type": "string", + "linkTo": "Analyte" + }, + "library_preparation": { + "title": "Library Preparation", + "description": "Link to associated library preparation", + "type": "string", + "linkTo": "LibraryPreparation" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Library", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "LibraryPreparation": { + "title": "Library Preparation", + "$id": "/profiles/library_preparation.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "assay_name", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "LP" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "adapter_inclusion_method": { + "title": "Adapter Inclusion Method", + "description": "Method of library preparation from an analyte", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "Ligation", + "Tagmentation", + "Not Applicable" + ] + } + }, + "amplification_method": { + "title": "Amplification Method", + "description": "Amplification method used to increase library products", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "PCR", + "MALBAC", + "PTA", + "MDA", + "Not Applicable" + ] + } + }, + "assay_name": { + "title": "Assay Name", + "description": "Name of experimental approach", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "WGS", + "RNA-Seq", + "NanoSeq", + "CODEC", + "Duplex Sequencing", + "FiberSeq", + "ATAC-Seq", + "ScRNA-Seq", + "DLP+", + "MAS-Seq", + "STORM-Seq" + ] + } + }, + "fragmentation_method": { + "title": "Fragmentation Method", + "description": "Method used for nucleotide fragmentation", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "Sonication", + "Restriction Enzyme", + "Transposase", + "Not Applicable" + ] + } + }, + "insert_selection_method": { + "title": "Insert Selection Method", + "description": "Method for selecting inserts included in library", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "Affinity Enrichment", + "Hybrid Selection", + "PCR", + "PolyT Enrichment", + "RRNA Depletion", + "Not applicable" + ] + } + }, + "size_selection_method": { + "title": "Size Selection Method", + "description": "Method for selecting fragment sizes", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "Gel Electrophoresis", + "Magnetic Beads", + "Not Applicable" + ] + } + }, + "strand": { + "title": "Strand", + "description": "Library stranded-ness", + "type": "string", + "enum": [ + "Unstranded", + "First Stranded", + "Second Stranded", + "Not Applicable" + ] + }, + "target_fragment_length": { + "title": "Target Fragment Length", + "description": "Desired fragment length for the library", + "type": "integer" + }, + "target_insert_length": { + "title": "Target Insert Length", + "description": "Desired insert length for the library", + "type": "integer" + }, + "trim_adapter_sequence": { + "title": "Trim Adapter Sequence", + "description": "Whether trimming adapter sequence is recommended", + "type": "boolean" + }, + "preparation_kits": { + "title": "Preparation Kits", + "description": "Links to associated preparation kits", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "PreparationKit" + } + }, + "treatments": { + "title": "Treatments", + "description": "Link to associated treatments performed during library preparation", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Treatment" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/LibraryPreparation", + "children": [], + "rdfs:subClassOf": "/profiles/Preparation.json", + "isAbstract": false + }, + "MedicalHistory": { + "title": "Medical History", + "$id": "/profiles/medical_history.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "MX" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "primary_source_of_information": { + "title": "Primary Source Of Information", + "description": "Source of information for the medical history", + "type": "string", + "enum": [ + "TBD" + ] + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/MedicalHistory", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "MetaWorkflow": { + "title": "Meta Workflow", + "description": "Bioinformatics pipeline to organize workflow steps", + "$id": "/profiles/meta_workflow.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "category", + "name", + "title", + "version", + "workflows" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/name" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "mixins.json#/version" + } + ], + "properties": { + "version": { + "title": "Version", + "description": "Version for the item", + "type": "string", + "pattern": "^([0-9]+.)*[0-9]+$" + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "name": { + "title": "Name", + "description": "Name of the item", + "type": "string", + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 3, + "comment": "Not for identifying name; use 'identifier' for that purpose." + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "MW" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "category": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Alignment", + "Format Conversion", + "Read Manipulation", + "Quality Control", + "Variant Calling", + "Variant Manipulation" + ] + } + }, + "previous_versions": { + "description": "Link to the previous versions of the meta workflow.", + "items": { + "description": "Link to a previous version of the meta workflow.", + "linkTo": "MetaWorkflow", + "title": "Previous version", + "type": "string" + }, + "minItems": 1, + "title": "Previous versions", + "type": "array", + "uniqueItems": true + }, + "version_upgrade_log": { + "description": "Version upgrade log", + "title": "Version upgrade log", + "type": "string" + }, + "workflows": { + "title": "Workflows", + "type": "array", + "minItems": 1, + "items": { + "title": "Workflow", + "type": "object", + "additionalProperties": false, + "required": [ + "name", + "workflow", + "input", + "config" + ], + "properties": { + "config": { + "title": "Tibanna Config", + "description": "Tibanna configuration for execution", + "type": "object", + "additionalProperties": false, + "required": [ + "instance_type", + "run_name" + ], + "properties": { + "behavior_on_capacity_limit": { + "title": "Behavior on Capacity Limit", + "type": "string", + "enum": [ + "wait_and_retry" + ], + "default": "wait_and_retry" + }, + "cpu": { + "title": "CPU", + "type": "integer" + }, + "ebs_iops": { + "title": "EBS IOPS", + "description": "EBS input/output operations per second", + "type": "integer", + "minimum": 0 + }, + "ebs_throughput": { + "title": "EBS Throughput", + "description": "EBS throughput, in MiB/s", + "type": "integer", + "minimum": 0 + }, + "ebs_optimized": { + "title": "EBS Optimized", + "type": "boolean" + }, + "ebs_size": { + "title": "EBS Size", + "type": [ + "string", + "integer" + ], + "pattern": "^([0-9]+[.])?[0-9]+[x]$", + "minimum": 0 + }, + "instance_type": { + "title": "Instance Type", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[a-z][a-z0-9-]+[.][0-9]*[a-z-*]+$" + } + }, + "memory": { + "title": "Memory", + "type": "number" + }, + "run_name": { + "title": "Run Name", + "type": "string" + }, + "spot_instance": { + "title": "Spot Instance", + "type": "boolean" + } + } + }, + "custom_pf_fields": { + "title": "Custom PF fields", + "description": "Custom fields to be added to specified processed file items through Tibanna", + "type": "object", + "additionalProperties": { + "type": "object", + "comment": "ToDo: Make these properties sharable directly without needing to update here and in OutputFile schema", + "additional_properties": false, + "properties": { + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "variant_type": { + "title": "Variant Type", + "description": "Variant types included in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Copy Number Variant", + "Insertion-deletion", + "Mobile Element Insertion", + "Single Nucleotide Variant", + "Structural Variant" + ] + } + }, + "data_category": { + "title": "Data Category", + "description": "Category for information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Genome Region", + "Quality Control", + "Reference Genome", + "Sequencing Reads", + "Variant Calls" + ] + } + }, + "data_type": { + "title": "Data Type", + "description": "Detailed type of information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Aligned Reads", + "Germline Variant Calls", + "Image", + "Index", + "Reference Sequence", + "Sequence Interval", + "Somatic Variant Calls", + "Statistics", + "Unaligned Reads" + ] + } + } + } + } + }, + "dependencies": { + "title": "Dependencies", + "description": "forced dependencies (other than deduced from input-output connections)", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "title": "Dependency", + "description": "One of the forced dependencies", + "type": "string" + } + }, + "input": { + "title": "Workflow Inputs", + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "argument_name", + "argument_type" + ], + "if": { + "properties": { + "argument_type": { + "const": "QC ruleset" + } + } + }, + "then": { + "properties": { + "value": { + "type": "object", + "required": [ + "overall_quality_status_rule", + "qc_thresholds" + ], + "additionalProperties": false, + "properties": { + "overall_quality_status_rule": { + "title": "Overall Quality Status Rule", + "type": "string" + }, + "qc_thresholds": { + "title": "QC Thresholds", + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "id", + "metric", + "operator" + ], + "anyOf": [ + { + "required": [ + "pass_target" + ] + }, + { + "required": [ + "warn_target" + ] + }, + { + "required": [ + "fail_target" + ] + } + ], + "properties": { + "id": { + "title": "ID", + "type": "string" + }, + "metric": { + "title": "Metric", + "type": "string" + }, + "operator": { + "title": "Operator", + "type": "string", + "enum": [ + "==", + ">", + ">=", + "<", + "<=", + "!=" + ] + }, + "pass_target": { + "title": "Pass Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "fail_target": { + "title": "Fail Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "warn_target": { + "title": "Warn Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "use_as_qc_flag": { + "title": "Use as QC Flag", + "type": "boolean" + } + } + } + } + } + }, + "value_type": { + "type": "string", + "enum": [ + "object" + ] + } + } + }, + "properties": { + "argument_name": { + "title": "Input Argument Name", + "type": "string" + }, + "argument_type": { + "title": "Input Argument Type", + "type": "string", + "enum": [ + "file", + "parameter", + "QC ruleset" + ] + }, + "value": { + "title": "Value", + "description": "a specific input parameter value", + "type": [ + "string", + "integer", + "number", + "boolean", + "array", + "object" + ] + }, + "value_type": { + "title": "Expected Value Type", + "description": "Expected type of the specific input parameter value", + "type": "string", + "enum": [ + "string", + "integer", + "float", + "boolean", + "array", + "object" + ] + }, + "source": { + "title": "Source Workflow", + "description": "Where this input file came from (source workflow name). If this field is null or undefined, the input is global and not from another workflow's output.", + "type": "string" + }, + "source_argument_name": { + "title": "Argument name in the Source Workflow", + "description": "Output argument name in the source workflow", + "type": "string" + }, + "scatter": { + "title": "Scatter", + "description": "The input dimension decrease if scattered into mutiple runs (default: not set)", + "type": "integer" + }, + "gather": { + "title": "Gather", + "description": "The input dimension increase from multiple runs of the source workflow (default: not set)", + "type": "integer" + }, + "gather_input": { + "title": "Gather Input", + "type": "integer", + "minimum": 0 + }, + "input_dimension": { + "title": "Input Dimension", + "description": "Extra input dimension other than that defined by scatter", + "type": "integer", + "minimum": 0 + }, + "extra_dimension": { + "title": "Extra Dimension", + "description": "The extra input dimension increase other than that defined by gather (default: not set)", + "type": "integer" + }, + "mount": { + "title": "Mount", + "description": "Whether the input is mounted", + "type": "boolean" + }, + "rename": { + "title": "Rename", + "description": "What the input should be renamed to when downloaded to EC2 for execution", + "type": "string" + }, + "unzip": { + "title": "Unzip", + "description": "How the input should be decompressed when downloaded to EC2 for execution", + "type": "string", + "enum": [ + "gz", + "bz2" + ] + } + } + } + }, + "name": { + "title": "Name", + "description": "Name of the workflow, unique within the meta workflow", + "type": "string" + }, + "shards": { + "title": "Shards", + "type": "array", + "minItems": 1, + "items": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "workflow": { + "title": "Workflow", + "description": "Link to Workflow", + "type": "string", + "linkTo": "Workflow" + } + } + } + }, + "input": { + "title": "Input Arguments", + "description": "Global input arguments of the meta-workflow", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "title": "Input Argument", + "description": "Individual global input argument of the MetaWorkflow", + "type": "object", + "additionalProperties": false, + "required": [ + "argument_name", + "argument_type" + ], + "if": { + "properties": { + "argument_type": { + "const": "QC ruleset" + } + } + }, + "then": { + "required": [ + "value" + ], + "properties": { + "value": { + "type": "object", + "required": [ + "overall_quality_status_rule", + "qc_thresholds" + ], + "additionalProperties": false, + "properties": { + "overall_quality_status_rule": { + "title": "Overall Quality Status Rule", + "type": "string" + }, + "qc_thresholds": { + "title": "QC Thresholds", + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "id", + "metric", + "operator" + ], + "anyOf": [ + { + "required": [ + "pass_target" + ] + }, + { + "required": [ + "warn_target" + ] + }, + { + "required": [ + "fail_target" + ] + } + ], + "properties": { + "id": { + "title": "ID", + "type": "string" + }, + "metric": { + "title": "Metric", + "type": "string" + }, + "operator": { + "title": "Operator", + "type": "string", + "enum": [ + "==", + ">", + ">=", + "<", + "<=", + "!=" + ] + }, + "pass_target": { + "title": "Pass Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "fail_target": { + "title": "Fail Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "warn_target": { + "title": "Warn Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "use_as_qc_flag": { + "title": "Use as QC Flag", + "type": "boolean" + } + } + } + } + } + }, + "value_type": { + "type": "string", + "enum": [ + "object" + ] + } + } + }, + "anyOf": [ + { + "required": [ + "value" + ] + }, + { + "required": [ + "value_type" + ] + }, + { + "required": [ + "files" + ] + }, + { + "required": [ + "dimensionality" + ] + } + ], + "properties": { + "argument_name": { + "title": "Input Argument Name", + "type": "string" + }, + "argument_type": { + "title": "Input Argument Type", + "type": "string", + "enum": [ + "file", + "parameter", + "QC ruleset" + ] + }, + "value": { + "title": "Value", + "description": "a specific input parameter value", + "type": [ + "string", + "integer", + "number", + "boolean", + "array", + "object" + ] + }, + "value_type": { + "title": "Expected Value Type", + "description": "Expected type of the specific input parameter value", + "type": "string", + "enum": [ + "string", + "integer", + "float", + "boolean", + "array", + "object" + ] + }, + "files": { + "title": "Default files", + "description": "Default file item(s) of the file argument", + "type": "array", + "minItems": 1, + "items": { + "title": "Default Files", + "description": "A list of objects describing default input file items", + "type": "object", + "additionalProperties": false, + "required": [ + "file" + ], + "properties": { + "file": { + "title": "File", + "type": "string", + "linkTo": "File" + }, + "dimension": { + "title": "Dimension", + "description": "Dimension of file in the input argument (unset for a singleton, '0', '1', '2'.. for a list, '0,0', '0,1' ... for a nested list)", + "type": "string" + } + } + } + }, + "dimensionality": { + "title": "Dimensionality", + "description": "The number of dimensions of input files", + "type": "integer", + "enum": [ + 1, + 2 + ] + } + } + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/MetaWorkflow", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "MetaWorkflowRun": { + "title": "Meta Workflow Run", + "description": "Run of a bioinformatics pipeline", + "$id": "/profiles/meta_workflow_run.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "meta_workflow" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "MR" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "meta_workflow": { + "title": "Meta Workflow", + "description": "The meta workflow associated with the meta-workflow run.", + "type": "string", + "linkTo": "MetaWorkflow" + }, + "final_status": { + "title": "Final Status", + "type": "string", + "default": "pending", + "enum": [ + "pending", + "running", + "completed", + "failed", + "inactive", + "stopped", + "quality metric failed" + ] + }, + "failed_jobs": { + "title": "Failed Jobs", + "description": "List of failed Tibanna job ids for this meta workflow run", + "type": "array", + "items": { + "title": "Failed Job Id", + "description": "Failed Tibanna job in this meta workflow run", + "type": "string" + } + }, + "cost": { + "title": "Cost", + "description": "Total cost of the meta workflow run (includes failed jobs)", + "type": "number" + }, + "workflow_runs": { + "title": "Workflow Runs", + "description": "The list of workflow runs with their status and output files", + "type": "array", + "items": { + "title": "Workflow Run", + "description": "Individual workflow run the meta workflow run.", + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "title": "Name", + "description": "Name of the corresponding workflow defined in the meta-workflow", + "type": "string" + }, + "status": { + "title": "Status", + "description": "Status of the current workflow run", + "type": "string", + "enum": [ + "pending", + "running", + "completed", + "failed" + ] + }, + "shard": { + "title": "Shard", + "description": "Shard of the current workflow run in the format of x (1D) | x:x (2D) | x:x:x (3D)", + "type": "string" + }, + "dependencies": { + "title": "Dependencies", + "description": "Dependencies of the current workflow run", + "type": "array", + "items": { + "title": "Dependency", + "description": "A dependency of the current workflow run, in the format of name:shard.", + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + }, + "output": { + "title": "Output", + "description": "Output of the current workflow run", + "type": "array", + "minItems": 1, + "items": { + "title": "Output", + "description": "An output of the current workflow run.", + "type": "object", + "additionalProperties": false, + "properties": { + "argument_name": { + "title": "Argument Name", + "description": "Name of the output argument", + "type": "string" + }, + "file": { + "title": "File", + "description": "the actual output file (link to a file item)", + "type": "string", + "linkTo": "File" + } + }, + "required": [ + "argument_name", + "file" + ] + } + }, + "workflow_run": { + "title": "Workflow Run", + "description": "Link to the corresponding workflow run item", + "type": "string", + "linkTo": "WorkflowRun" + }, + "job_id": { + "title": "Job ID", + "description": "Job ID of the current workflow run", + "type": "string" + } + } + } + }, + "input": { + "title": "Input", + "description": "The input files and parameters used for the meta workflow run.", + "type": "array", + "minItems": 1, + "items": { + "title": "Input", + "description": "Input files or parameters associated with an input argument of the meta workflow run.", + "type": "object", + "additionalProperties": false, + "required": [ + "argument_name", + "argument_type" + ], + "oneOf": [ + { + "required": [ + "value" + ] + }, + { + "required": [ + "files" + ] + } + ], + "if": { + "properties": { + "argument_type": { + "const": "QC ruleset" + } + } + }, + "then": { + "required": [ + "value" + ], + "properties": { + "value": { + "type": "object", + "required": [ + "overall_quality_status_rule", + "qc_thresholds" + ], + "additionalProperties": false, + "properties": { + "overall_quality_status_rule": { + "title": "Overall Quality Status Rule", + "type": "string" + }, + "qc_thresholds": { + "title": "QC Thresholds", + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "id", + "metric", + "operator" + ], + "anyOf": [ + { + "required": [ + "pass_target" + ] + }, + { + "required": [ + "warn_target" + ] + }, + { + "required": [ + "fail_target" + ] + } + ], + "properties": { + "id": { + "title": "ID", + "type": "string" + }, + "metric": { + "title": "Metric", + "type": "string" + }, + "operator": { + "title": "Operator", + "type": "string", + "enum": [ + "==", + ">", + ">=", + "<", + "<=", + "!=" + ] + }, + "pass_target": { + "title": "Pass Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "fail_target": { + "title": "Fail Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "warn_target": { + "title": "Warn Target", + "type": [ + "string", + "number", + "boolean" + ] + }, + "use_as_qc_flag": { + "title": "Use as QC Flag", + "type": "boolean" + } + } + } + } + } + }, + "value_type": { + "type": "string", + "enum": [ + "object" + ] + } + } + }, + "properties": { + "argument_name": { + "title": "Input Argument Name", + "type": "string" + }, + "argument_type": { + "title": "Input Argument Type", + "type": "string", + "enum": [ + "file", + "parameter", + "QC ruleset" + ] + }, + "value": { + "title": "Value", + "description": "a specific input parameter value", + "type": [ + "string", + "integer", + "number", + "boolean", + "array", + "object" + ] + }, + "files": { + "title": "Default files", + "description": "Default file item(s) of the file argument", + "type": "array", + "minItems": 1, + "items": { + "title": "Default Files", + "description": "A list of objects describing default input file items", + "type": "object", + "additionalProperties": false, + "required": [ + "file" + ], + "properties": { + "file": { + "title": "File", + "type": "string", + "linkTo": "File" + }, + "dimension": { + "title": "Dimension", + "description": "Dimension of file in the input argument (unset for a singleton, '0', '1', '2'.. for a list, '0,0', '0,1' ... for a nested list)", + "type": "string" + } + } + } + } + } + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/MetaWorkflowRun", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "MolecularTest": { + "title": "Molecular Test", + "$id": "/profiles/molecular_test.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "medical_history", + "result_classification", + "submission_centers", + "submitted_id", + "title" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3, + "enum": [ + "CMV Total Ab", + "EBV IgG Ab", + "EBV IgM Ab", + "HBcAb IgM", + "HBcAb Total", + "HCV Ab", + "HBsAb", + "HBsAg", + "HCV 1 NAT", + "HIV 1 NAT", + "HIV I II Ab", + "HIV I II Plus O Antibody", + "RPR VDRL", + "RPR" + ] + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "MT" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "result": { + "title": "Result", + "description": "Result of the molecular test", + "type": "number", + "minimum": 0 + }, + "result_classification": { + "title": "Result Classification", + "description": "Categorical classification of the result value", + "type": "string", + "enum": [ + "Within Normal Range", + "Outside Normal Range", + "Inconclusive" + ] + }, + "medical_history": { + "title": "Medical History", + "description": "Link to the associated medical history", + "type": "string", + "linkTo": "MedicalHistory" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/MolecularTest", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "OntologyTerm": { + "title": "Ontology Term", + "$id": "/profiles/ontology_term.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "identifier", + "title" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/url" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "url": { + "title": "URL", + "description": "An external resource with additional information about the item", + "type": "string", + "format": "uri" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^[A-Z]+:[0-9]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/OntologyTerm", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "OutputFile": { + "title": "Output File", + "description": "File produced by bioinformatics pipeline", + "$id": "/profiles/output_file.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "data_category", + "data_type", + "file_format" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinFacets": [ + { + "$ref": "file.json#/facets" + } + ], + "mixinColumns": [ + { + "$ref": "file.json#/columns" + } + ], + "properties": { + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "FI" + }, + "status": { + "title": "Status", + "type": "string", + "default": "uploading", + "enum": [ + "uploading", + "uploaded", + "upload failed", + "to be uploaded by workflow", + "released", + "in review", + "obsolete", + "archived", + "deleted", + "public" + ] + }, + "file_format": { + "ff_flag": "filter:valid_item_types", + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "filename": { + "description": "The local file name used at time of submission. Must be alphanumeric, with the exception of the following special characters: '+=,.@-_'", + "pattern": "^[\\w+=,.@-]*$", + "title": "File Name", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes - presumably this can be a calculated property as well", + "description": "Size of file on disk", + "exclude_from": [ + "FFedit-create" + ], + "permission": "restricted_fields", + "title": "File Size", + "type": "integer" + }, + "md5sum": { + "comment": "This can vary for files of same content gzipped at different times", + "description": "The MD5 checksum of the file being transferred", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "MD5 Checksum", + "type": "string" + }, + "content_md5sum": { + "comment": "This is only relavant for gzipped files", + "description": "The MD5 checksum of the uncompressed file", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "Content MD5 Checksum", + "type": "string", + "uniqueKey": "file:content_md5sum" + }, + "quality_metrics": { + "description": "Associated QC reports", + "items": { + "description": "Associated QC report", + "linkTo": "QualityMetric", + "title": "Quality Metric", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Quality Metrics", + "type": "array", + "uniqueItems": true + }, + "data_category": { + "title": "Data Category", + "description": "Category for information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Genome Region", + "Quality Control", + "Reference Genome", + "Sequencing Reads", + "Variant Calls" + ] + } + }, + "data_type": { + "title": "Data Type", + "description": "Detailed type of information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Aligned Reads", + "Germline Variant Calls", + "Image", + "Index", + "Reference Sequence", + "Sequence Interval", + "Somatic Variant Calls", + "Statistics", + "Unaligned Reads" + ] + } + }, + "o2_path": { + "title": "O2 Path", + "description": "Path to file on O2", + "type": "string" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "extra_files": { + "description": "Links to extra files on s3 that don't have associated metadata", + "exclude_from": [ + "FFedit-create" + ], + "items": { + "additionalProperties": true, + "properties": { + "file_format": { + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes", + "title": "File Size", + "type": "integer" + }, + "filename": { + "title": "File Name", + "type": "string" + }, + "href": { + "title": "Download URL", + "type": "string" + }, + "md5sum": { + "format": "hex", + "title": "MD5sum", + "type": "string" + }, + "status": { + "default": "uploading", + "enum": [ + "archived", + "current", + "deleted", + "in review", + "inactive", + "obsolete", + "replaced", + "shared", + "to be uploaded by workflow", + "upload failed", + "uploaded", + "uploading" + ], + "title": "Status", + "type": "string" + } + }, + "required": [ + "file_format" + ], + "title": "Extra File", + "type": "object" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Extra Files", + "type": "array" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "read_pair_number": { + "description": "Read pair number, if paired-end", + "type": "string", + "enum": [ + "R1", + "R2", + "Not Applicable" + ] + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "variant_type": { + "title": "Variant Type", + "description": "Variant types included in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Copy Number Variant", + "Insertion-deletion", + "Mobile Element Insertion", + "Single Nucleotide Variant", + "Structural Variant" + ] + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "href": { + "title": "Download URL", + "type": "string", + "description": "Use this link to download this file", + "calculatedProperty": true + }, + "upload_credentials": { + "type": "object", + "calculatedProperty": true + }, + "upload_key": { + "title": "Upload Key", + "type": "string", + "description": "File object name in S3", + "calculatedProperty": true + } + }, + "facets": {}, + "columns": {}, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/OutputFile", + "children": [], + "rdfs:subClassOf": "/profiles/File.json", + "isAbstract": false + }, + "Page": { + "title": "Page", + "$id": "/profiles/page.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "identifier" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "current", + "deleted", + "inactive", + "in review", + "public", + "shared" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^([A-Za-z0-9_-]+/)*[A-Za-z0-9_-]+$", + "minLength": 2, + "permission": "restricted_fields", + "comment": "Used as the path for the page's URL" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "children": { + "title": "Child Pages", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Page" + } + }, + "content": { + "title": "Content Sections", + "description": "Sections used to compose the static page", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "UserContent" + } + }, + "redirect": { + "title": "Redirect", + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "title": "Response Code", + "description": "Code returned by response.", + "comment": "See https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection", + "type": "integer", + "default": 307, + "enum": [ + 301, + 302, + 303, + 307 + ] + }, + "enabled": { + "title": "Redirect Enabled", + "type": "boolean", + "default": false + }, + "target": { + "title": "Target", + "description": "URL or path to redirect to.", + "type": "string" + } + } + }, + "table-of-contents": { + "title": "Table of Contents", + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "title": "Enabled", + "description": "Enable the table of contents or not. Defaults to false.", + "type": "boolean", + "default": false + }, + "header-depth": { + "title": "Header Depth", + "description": "Maximum depth for table of contents titles, 1-6", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 4 + }, + "skip-depth": { + "title": "Skip Depth", + "description": "TODO", + "type": "integer", + "default": 1 + }, + "list-styles": { + "title": "List Styles", + "description": "CSS list styles used for
  • elements.", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "decimal", + "lower-alpha", + "lower-roman", + "none" + ] + } + }, + "include-top-link": { + "title": "Inlude Top Link", + "description": "TODO", + "type": "boolean", + "default": false + } + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Page", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "PreparationKit": { + "title": "Preparation Kit", + "$id": "/profiles/preparation_kit.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "submission_centers", + "submitted_id", + "title", + "vendor" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "mixins.json#/version" + } + ], + "properties": { + "version": { + "title": "Version", + "description": "Version for the item", + "type": "string", + "pattern": "^([0-9]+.)*[0-9]+$" + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "PK" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "catalog_number": { + "title": "Catalog Number", + "description": "Catalog number of preparation kit", + "type": "string" + }, + "vendor": { + "title": "Vendor", + "description": "Vendor of preparation kit", + "type": "string" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/PreparationKit", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Protocol": { + "title": "Protocol", + "$id": "/profiles/protocol.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "identifier", + "submission_centers", + "version" + ], + "identifyingProperties": [ + "accession", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attachment" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "mixins.json#/version" + } + ], + "properties": { + "version": { + "title": "Version", + "description": "Version for the item", + "type": "string", + "pattern": "^([0-9]+.)*[0-9]+$" + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "attachment": { + "title": "Attached File", + "description": "File attached to this Item.", + "type": "object", + "additionalProperties": false, + "formInput": "file", + "attachment": true, + "ff_flag": "clear clone", + "properties": { + "download": { + "title": "File Name", + "description": "File Name of the attachment.", + "type": "string" + }, + "href": { + "internal_comment": "Internal webapp URL for document file", + "title": "href", + "description": "Path to download the file attached to this Item.", + "type": "string" + }, + "type": { + "title": "Media Type", + "type": "string", + "enum": [ + "application/msword", + "application/vnd.ms-excel", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/pdf", + "application/zip", + "application/proband+xml", + "text/plain", + "text/tab-separated-values", + "image/jpeg", + "image/tiff", + "image/gif", + "text/html", + "image/png", + "image/svs", + "text/autosql" + ] + }, + "md5sum": { + "title": "MD5 Checksum", + "description": "Use this to ensure that your file was downloaded without errors or corruption.", + "type": "string", + "format": "md5sum" + }, + "size": { + "title": "Attachment size", + "description": "Size of the attachment on disk", + "type": "integer" + }, + "width": { + "title": "Image width", + "description": "Width of the image attached, in pixels.", + "type": "integer" + }, + "height": { + "title": "Image height", + "description": "Height of the image attached, in pixels.", + "type": "integer" + }, + "blob_id": { + "title": "Blob ID", + "type": "string", + "internal_comment": "blob storage ID. Use to like with s3/rds" + } + } + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "PR" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Protocol", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "QualityMetric": { + "title": "QualityMetric", + "description": "Schema for quality control data for a file.", + "$id": "/profiles/quality_metric.json", + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "required": [ + "qc_values" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/category" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "category": { + "title": "Category", + "comment": "Intended for primary classification of an item, i.e. as a property to use instead of file_type for File", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Testing" + ] + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "QM" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "overall_quality_status": { + "type": "string", + "title": "Overall Quality", + "description": "Overall QC decision", + "enum": [ + "Fail", + "Pass", + "Warn" + ] + }, + "url": { + "type": "string", + "title": "Link to Report", + "description": "Location of the main html file", + "format": "uri" + }, + "qc_values": { + "type": "array", + "title": "QC Values", + "description": "QC values and their associated metadata", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "key", + "value" + ], + "properties": { + "key": { + "type": "string", + "title": "QC Name" + }, + "value": { + "type": [ + "array", + "boolean", + "integer", + "number", + "string" + ], + "title": "QC value" + }, + "visible": { + "type": "boolean", + "title": "QC to display" + }, + "flag": { + "type": "string", + "title": "QC flag", + "enum": [ + "Fail", + "Pass", + "Warn" + ] + }, + "derived_from": { + "type": "string", + "title": "Identifier for the QC value" + }, + "tooltip": { + "type": "string", + "title": "Tooltip" + } + } + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/QualityMetric", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "ReferenceFile": { + "title": "Reference File", + "description": "Reference file for bioinformatics pipelines", + "$id": "/profiles/reference_file.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "data_category", + "data_type", + "file_format" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "mixins.json#/variant_type" + }, + { + "$ref": "file.json#/properties" + } + ], + "mixinFacets": [ + { + "$ref": "file.json#/facets" + } + ], + "mixinColumns": [ + { + "$ref": "file.json#/columns" + } + ], + "properties": { + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "accession": { + "accessionType": "FI", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "status": { + "title": "Status", + "type": "string", + "default": "uploading", + "enum": [ + "uploading", + "uploaded", + "upload failed", + "to be uploaded by workflow", + "released", + "in review", + "obsolete", + "archived", + "deleted", + "public" + ] + }, + "file_format": { + "ff_flag": "filter:valid_item_types", + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "filename": { + "description": "The local file name used at time of submission. Must be alphanumeric, with the exception of the following special characters: '+=,.@-_'", + "pattern": "^[\\w+=,.@-]*$", + "title": "File Name", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes - presumably this can be a calculated property as well", + "description": "Size of file on disk", + "exclude_from": [ + "FFedit-create" + ], + "permission": "restricted_fields", + "title": "File Size", + "type": "integer" + }, + "md5sum": { + "comment": "This can vary for files of same content gzipped at different times", + "description": "The MD5 checksum of the file being transferred", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "MD5 Checksum", + "type": "string" + }, + "content_md5sum": { + "comment": "This is only relavant for gzipped files", + "description": "The MD5 checksum of the uncompressed file", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "Content MD5 Checksum", + "type": "string", + "uniqueKey": "file:content_md5sum" + }, + "quality_metrics": { + "description": "Associated QC reports", + "items": { + "description": "Associated QC report", + "linkTo": "QualityMetric", + "title": "Quality Metric", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Quality Metrics", + "type": "array", + "uniqueItems": true + }, + "data_category": { + "title": "Data Category", + "description": "Category for information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Genome Region", + "Quality Control", + "Reference Genome", + "Sequencing Reads", + "Variant Calls" + ] + } + }, + "data_type": { + "title": "Data Type", + "description": "Detailed type of information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Aligned Reads", + "Germline Variant Calls", + "Image", + "Index", + "Reference Sequence", + "Sequence Interval", + "Somatic Variant Calls", + "Statistics", + "Unaligned Reads" + ] + } + }, + "o2_path": { + "title": "O2 Path", + "description": "Path to file on O2", + "type": "string" + }, + "variant_type": { + "title": "Variant Type", + "description": "Variant types included in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Copy Number Variant", + "Insertion-deletion", + "Mobile Element Insertion", + "Single Nucleotide Variant", + "Structural Variant" + ] + } + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "extra_files": { + "description": "Links to extra files on s3 that don't have associated metadata", + "exclude_from": [ + "FFedit-create" + ], + "items": { + "additionalProperties": true, + "properties": { + "file_format": { + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes", + "title": "File Size", + "type": "integer" + }, + "filename": { + "title": "File Name", + "type": "string" + }, + "href": { + "title": "Download URL", + "type": "string" + }, + "md5sum": { + "format": "hex", + "title": "MD5sum", + "type": "string" + }, + "status": { + "default": "uploading", + "enum": [ + "archived", + "current", + "deleted", + "in review", + "inactive", + "obsolete", + "replaced", + "shared", + "to be uploaded by workflow", + "upload failed", + "uploaded", + "uploading" + ], + "title": "Status", + "type": "string" + } + }, + "required": [ + "file_format" + ], + "title": "Extra File", + "type": "object" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Extra Files", + "type": "array" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "href": { + "title": "Download URL", + "type": "string", + "description": "Use this link to download this file", + "calculatedProperty": true + }, + "upload_credentials": { + "type": "object", + "calculatedProperty": true + }, + "upload_key": { + "title": "Upload Key", + "type": "string", + "description": "File object name in S3", + "calculatedProperty": true + } + }, + "facets": {}, + "columns": {}, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/ReferenceFile", + "children": [], + "rdfs:subClassOf": "/profiles/File.json", + "isAbstract": false + }, + "ReferenceGenome": { + "title": "Reference Genome", + "$id": "/profiles/reference_genome.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "identifier", + "title" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/url" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "url": { + "title": "URL", + "description": "An external resource with additional information about the item", + "type": "string", + "format": "uri" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "RG" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "files": { + "title": "Files", + "description": "Files associated with the reference genome", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "File" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/ReferenceGenome", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "SamplePreparation": { + "title": "Sample Preparation", + "$id": "/profiles/sample_preparation.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "preparation.json#/properties" + } + ], + "properties": { + "accession": { + "accessionType": "SP", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "homogenization_method": { + "title": "Homogenization method", + "description": "Method of sample homogenization, if applicable", + "type": "string", + "enum": [ + "TBD" + ] + }, + "preservation_method": { + "title": "Preservation Method", + "description": "Preservation method for subsequent analysis", + "type": "array", + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "Fresh", + "Cryopreservation", + "Chemical Fixation" + ] + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/SamplePreparation", + "children": [], + "rdfs:subClassOf": "/profiles/Preparation.json", + "isAbstract": false + }, + "Sequencing": { + "title": "Sequencing", + "$id": "/profiles/sequencing.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "instrument_model", + "platform", + "read_type", + "submission_centers", + "submitted_id", + "target_read_length" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "SQ" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "instrument_model": { + "title": "Instrument Model", + "description": "Model of instrument used to obtain data", + "type": "string", + "enum": [ + "NovaSeq", + "NovaSeq X", + "NovaSeq X Plus", + "NovaSeq 6000", + "Revio", + "PromethION", + "UG100", + "Xenium", + "Ultralong Promethion R10" + ] + }, + "platform": { + "title": "Platform", + "description": "Name of the platform used to obtain data", + "type": "string", + "enum": [ + "Illumina", + "PacBio", + "Ultima", + "ONT", + "10X Genomics" + ] + }, + "read_type": { + "title": "Read Type", + "description": "Type of reads obtained from sequencing", + "type": "string", + "enum": [ + "Not Applicable", + "Paired-end", + "Single-end" + ] + }, + "target_coverage": { + "title": "Target Coverage", + "description": "Expected coverage for the sequencing", + "type": "number", + "minimum": 0 + }, + "target_read_count": { + "title": "Target Read Count", + "description": "Expected read count for the sequencing", + "type": "integer", + "minimum": 0 + }, + "target_read_length": { + "title": "Target Read Length", + "description": "Expected read length for the sequencing", + "type": "integer", + "minimum": 0 + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Sequencing", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Software": { + "title": "Software", + "$id": "/profiles/software.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "category", + "name", + "title", + "version" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "oneOf": [ + { + "required": [ + "aliases" + ] + }, + { + "required": [ + "submitted_id" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/category" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/name" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "mixins.json#/version" + } + ], + "properties": { + "version": { + "title": "Version", + "description": "Version for the item", + "type": "string", + "pattern": ".+", + "comment": "TODO: Replace with a proper version pattern" + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "name": { + "title": "Name", + "description": "Name of the item", + "type": "string", + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 3, + "comment": "Not for identifying name; use 'identifier' for that purpose." + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "category": { + "title": "Category", + "comment": "Intended for primary classification of an item, i.e. as a property to use instead of file_type for File", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Alignment", + "Alignment Manipulation", + "Assembly", + "Data Compression", + "Feature Annotation", + "Format Conversion", + "Quality Control", + "Read Manipulation", + "Variant Annotation", + "Variant Calling", + "Variant Manipulation" + ] + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "SW" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "binary_url": { + "title": "Binary URL", + "description": "An external resource to a compiled download of the software.", + "type": "string", + "format": "uri" + }, + "commit": { + "title": "Commit", + "description": "The software commit hash.", + "type": "string" + }, + "source_url": { + "title": "Source URL", + "description": "An external resource to the code base.", + "type": "string", + "format": "uri" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Software", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "StaticSection": { + "title": "Static Section", + "$id": "/profiles/static_section.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "identifier" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "oneOf": [ + { + "allOf": [ + { + "not": { + "required": [ + "body" + ] + } + }, + { + "not": { + "required": [ + "file" + ] + } + } + ] + }, + { + "required": [ + "body" + ], + "not": { + "required": [ + "file" + ] + } + }, + { + "required": [ + "file" + ], + "not": { + "required": [ + "body" + ] + } + } + ], + "identifyingProperties": [ + "aliases", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "user_content.json#/properties" + } + ], + "properties": { + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "status": { + "default": "in review", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ], + "title": "Status", + "type": "string", + "permission": "restricted_fields" + }, + "options": { + "title": "Options", + "type": "object", + "description": "Options for section display.", + "additionalProperties": false, + "properties": { + "filetype": { + "title": "File Type", + "description": "What type of file or content is contained. If not set, HTML or format of file (if any) is used.", + "type": "string", + "enum": [ + "md", + "html", + "txt", + "csv", + "jsx", + "rst" + ] + }, + "collapsible": { + "title": "Is Collapsible", + "type": "boolean", + "description": "Whether this StaticSection should be collapsible (wherever collapsibility is an option). This property is ignored in some places, e.g. lists where all sections are explicitly collapsible.", + "default": false + }, + "default_open": { + "title": "Is Expanded by Default", + "type": "boolean", + "description": "Whether this StaticSection should appear as expanded by default (in places where it may be collapsible). Does not necessarily depend on 'collapsible' being true, e.g. in lists where all sections are explicitly collapsible.", + "default": true + }, + "title_icon": { + "title": "Title Icon", + "description": "Icon to be showed next to title in selected places.", + "type": "string" + }, + "link": { + "title": "Link/URI", + "description": "Another link with which this resource is associated with or should redirect to.", + "type": "string" + }, + "image": { + "title": "Preview Image", + "description": "Image or screenshot URL for this Item to use as a preview.", + "type": "string" + } + } + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^([A-Za-z0-9-_]+[.])*[A-Za-z0-9-_]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "body": { + "title": "Raw Body", + "type": "string", + "comment": "There should be no 'file' if this is set.", + "description": "Plain html or text content of this section.", + "formInput": "code" + }, + "file": { + "title": "Source File Location", + "type": "string", + "comment": "There should be no 'body' if this is set.", + "description": "Source file to use for populating content. Is superceded by contents of 'body', if one present." + }, + "section_type": { + "title": "Section Type", + "type": "string", + "description": "What this section is used for. Defaults to 'Page Section'.", + "default": "Page Section", + "enum": [ + "Page Section", + "Announcement", + "Search Info Header", + "Item Page Header", + "Home Page Slide" + ] + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "content_as_html": { + "title": "Content as HTML", + "description": "Convert RST, HTML and MD content into HTML", + "type": "string", + "calculatedProperty": true + }, + "content": { + "title": "Content", + "description": "Content for the page", + "type": "string", + "calculatedProperty": true + }, + "filetype": { + "title": "File Type", + "description": "Type of file used for content", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/StaticSection", + "children": [], + "rdfs:subClassOf": "/profiles/UserContent.json", + "isAbstract": false + }, + "SubmissionCenter": { + "title": "SubmissionCenter", + "$id": "/profiles/submission_center.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "required": [ + "identifier", + "title" + ], + "identifyingProperties": [ + "aliases", + "identifier", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/static_embeds" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/url" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "type": "object", + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "url": { + "title": "URL", + "description": "An external resource with additional information about the item", + "type": "string", + "format": "uri" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "static_headers": { + "title": "Static Headers", + "description": "Array of linkTos for static sections to be displayed at the top of an item page", + "type": "array", + "uniqueItems": true, + "permission": "restricted_fields", + "items": { + "title": "Static Header", + "description": "Static section displayed at the top of an item page", + "type": "string", + "linkTo": "UserContent" + } + }, + "static_content": { + "title": "Static Content", + "description": "Array of objects containing linkTo UserContent and 'position' to be placed on Item view(s).", + "type": "array", + "uniqueItems": true, + "permission": "restricted_fields", + "items": { + "title": "Static Content Definition", + "description": "Link to UserContent Item plus location.", + "type": "object", + "required": [ + "location", + "content" + ], + "properties": { + "content": { + "type": "string", + "linkTo": "UserContent", + "title": "Link to Content", + "description": "A UserContent Item." + }, + "location": { + "type": "string", + "title": "Location of Content", + "description": "Where this content should be displayed. Item schemas could potentially define an enum to contrain values.", + "default": "header" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description or note about this content. Might be displayed as a footnote or caption, if applicable for view." + } + } + } + }, + "status": { + "title": "Status", + "type": "string", + "default": "released", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "leader": { + "title": "Leader", + "description": "The leader of the submission center", + "type": "string", + "linkTo": "User" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/SubmissionCenter", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Therapeutic": { + "title": "Therapeutic", + "$id": "/profiles/therapeutic.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "agent", + "medical_history", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "dependentRequired": { + "dose": [ + "dose_units" + ], + "dose_units": [ + "dose" + ] + }, + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "TX" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "dose": { + "title": "Dose", + "description": "Dose of the therapeutic used by the individual", + "type": "number", + "minimum": 0 + }, + "dose_units": { + "title": "Dose Units", + "description": "Units for the dose of the therapeutic", + "type": "string", + "enum": [ + "mg", + "mL" + ] + }, + "frequency": { + "title": "Frequency", + "description": "Frequency of administration of the therapeutic", + "type": "string", + "enum": [ + "Once Per Day", + "Twice Per Day" + ] + }, + "agent": { + "title": "Agent", + "description": "Link to the associated ontology term for the therapeutic agent", + "type": "string", + "linkTo": "OntologyTerm" + }, + "diagnosis": { + "title": "Diagnosis", + "description": "Link to the associated diagnosis", + "type": "string", + "linkTo": "Diagnosis" + }, + "medical_history": { + "title": "Medical History", + "description": "Link to the associated medical history", + "type": "string", + "linkTo": "MedicalHistory" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Therapeutic", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Tissue": { + "title": "Tissue", + "$id": "/profiles/tissue.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "donor", + "submission_centers", + "submitted_id", + "uberon_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "sample_source.json#/properties" + } + ], + "properties": { + "accession": { + "accessionType": "TI", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "sample_count": { + "title": "Sample Count", + "description": "Number of samples produced for this source", + "type": "integer", + "minimum": 1 + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "ischemic_time": { + "title": "Ischemic Time", + "description": "Time interval of ischemia in minutes", + "type": "integer", + "minimum": 0 + }, + "pathology_notes": { + "title": "Pathology Notes", + "description": "Notes from pathologist report on the tissue", + "type": "string" + }, + "ph": { + "title": "pH", + "description": "pH of the tissue", + "type": "number", + "minimum": 0, + "maximum": 14 + }, + "preservation_time_interval": { + "title": "Preservation Time Interval", + "description": "Time interval from beginning of tissue recovery until placed in preservation media in minutes", + "type": "integer", + "minimum": 0 + }, + "prosector_notes": { + "title": "Prosector Notes", + "description": "Notes from prosector report on the tissue recovery", + "type": "string" + }, + "recovery_datetime": { + "title": "Recovery Datetime", + "description": "Date and time of tissue recovery", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ] + }, + "recovery_interval": { + "title": "Recovery Interval", + "description": "Total time interval of tissue recovery in minutes", + "type": "integer", + "minimum": 0 + }, + "size": { + "title": "Size", + "description": "Size of the tissue in cubic centimeters", + "type": "number", + "minimum": 0 + }, + "uberon_id": { + "title": "Uberon Id", + "description": "Uberon identifier for the tissue", + "type": "string", + "pattern": "^UBERON:[0-9]{7}$" + }, + "volume": { + "title": "Volume", + "description": "Volume of the tissue in milliliters", + "type": "number", + "minimum": 0 + }, + "weight": { + "title": "Weight", + "description": "Weight of the tissue in grams", + "type": "number", + "minimum": 0 + }, + "donor": { + "title": "Donor", + "description": "Link to the associated donor", + "type": "string", + "linkTo": "Donor" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Tissue", + "children": [], + "rdfs:subClassOf": "/profiles/SampleSource.json", + "isAbstract": false + }, + "TissueCollection": { + "title": "Tissue Collection", + "$id": "/profiles/tissue_collection.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "donor", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "TC" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "blood_cultures_available": { + "title": "Blood Cultures Available", + "description": "Whether blood cultures were drawn during tissue collection", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "chest_incision_datetime": { + "title": "Chest Incision Time", + "description": "Date and time of chest incision for tissue collection", + "type": "string", + "format": "date-time" + }, + "collection_site": { + "title": "Collection Site", + "description": "Site of tissue collection", + "type": "string", + "enum": [ + "TBD" + ] + }, + "core_body_temperature": { + "title": "Core Body Temperature", + "description": "Body temperature of the donor during tissue collection in degrees Celsius", + "type": "number", + "minimum": 0 + }, + "core_body_temperature_location": { + "title": "Core Body Temperature Location", + "description": "Location of body temperature measurement for the donor during tissue collection", + "type": "string", + "enum": [ + "Axilla", + "Anus" + ] + }, + "cross_clamp_applied_datetime": { + "title": "Cross Clamp Applied Time", + "description": "Date and time when cross clamp was applied during tissue collection", + "type": "string", + "format": "date-time" + }, + "donor_type": { + "title": "Donor Type", + "type": "string", + "enum": [ + "TBD" + ] + }, + "ischemic_time": { + "title": "Ischemic Time", + "description": "Time interval in minutes of ischemia for tissue collection", + "type": "number", + "minimum": 0 + }, + "organ_transplant": { + "title": "Organ Transplant", + "description": "Whether the donor had organs removed for transplant", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "organs_transplanted": { + "title": "Organs Transplanted", + "description": "The organs of the donor that were transplanted", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Cornea", + "Heart", + "Intestine", + "Kidney", + "Liver", + "Lung", + "Pancreas", + "Skin" + ] + } + }, + "recovery_kit_id": { + "title": "Recovery Kit Id", + "description": "Identifier of the tissue recovery kit", + "type": "string" + }, + "refrigeration_prior_to_procurement": { + "title": "Refrigeration Prior To Procurement", + "description": "Whether the donor was refrigerated prior to tissue collection", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "refrigeration_prior_to_procurement_time": { + "title": "Refrigeration Prior To Procurement Time", + "description": "Interval of time in hours the donor was refrigerated prior to tissue collection", + "type": "number", + "minimum": 0 + }, + "ventilator_less_than_24_hours": { + "title": "Ventilator Less Than 24 Hours", + "description": "Whether donor was on a ventilator less than 24 hours prior to tissue collection", + "type": "string", + "enum": [ + "Yes", + "No", + "Unknown" + ] + }, + "donor": { + "title": "Donor", + "description": "Link to the associated donor", + "type": "string", + "linkTo": "Donor" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/TissueCollection", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "TissueSample": { + "title": "Tissue Sample", + "$id": "/profiles/tissue_sample.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "sample_sources", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "sample.json#/properties" + } + ], + "properties": { + "accession": { + "accessionType": "TS", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "preservation_medium": { + "title": "Preservation Medium", + "description": "Medium used for sample preservation", + "type": "string", + "enum": [ + "TBD" + ] + }, + "preservation_type": { + "title": "Preservation Type", + "description": "Method of sample preservation", + "type": "string", + "enum": [ + "Fresh", + "Frozen" + ] + }, + "sample_preparation": { + "title": "Sample Preparation", + "description": "Link to associated sample preparation", + "type": "string", + "linkTo": "SamplePreparation" + }, + "sample_sources": { + "title": "Sample Sources", + "description": "Link to associated sample sources", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Tissue" + } + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "tissue_location": { + "title": "Tissue Location", + "description": "Original location of sample within source tissue", + "type": "string", + "enum": [ + "TBD" + ] + }, + "weight": { + "title": "Weight", + "description": "Weight of the sample (mg)", + "type": "number", + "minimum": 0 + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/TissueSample", + "children": [], + "rdfs:subClassOf": "/profiles/Sample.json", + "isAbstract": false + }, + "Treatment": { + "title": "Treatment", + "$id": "/profiles/treatment.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "agent", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "TX" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "agent": { + "title": "Agent", + "description": "Agent in the treatment", + "type": "string", + "linkTo": "OntologyTerm" + }, + "concentration": { + "title": "Concentration", + "description": "Concentration of the treatment", + "type": "number", + "minimum": 0 + }, + "concentration_units": { + "title": "Concentration Units", + "description": "Units for the concentration of the treatment", + "type": "string", + "enum": [ + "mg/mL" + ] + }, + "duration": { + "title": "Duration", + "description": "Duration of the treatment (minutes)", + "type": "number", + "minimum": 0 + }, + "temperature": { + "title": "Temperature", + "description": "Temperature of the treatment (Celsius)", + "type": "number" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Treatment", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "UnalignedReads": { + "title": "Unaligned Reads", + "$id": "/profiles/unaligned_reads.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "data_category", + "data_type", + "file_format", + "file_sets", + "filename", + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "file.json#/properties" + }, + { + "$ref": "submitted_file.json#/properties" + } + ], + "properties": { + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "derived_from": { + "title": "Derived From", + "description": "Files used as input to create this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmittedFile" + } + }, + "file_sets": { + "title": "File Sets", + "description": "File collections associated with this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "FileSet" + } + }, + "software": { + "title": "Software", + "description": "Software used to create this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Software" + } + }, + "accession": { + "accessionType": "UR", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "status": { + "title": "Status", + "type": "string", + "default": "uploading", + "enum": [ + "uploading", + "uploaded", + "upload failed", + "to be uploaded by workflow", + "released", + "in review", + "obsolete", + "archived", + "deleted", + "public" + ] + }, + "file_format": { + "ff_flag": "filter:valid_item_types", + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "filename": { + "description": "The local file name used at time of submission. Must be alphanumeric, with the exception of the following special characters: '+=,.@-_'", + "pattern": "^[\\w+=,.@-]*$", + "title": "File Name", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes - presumably this can be a calculated property as well", + "description": "Size of file on disk", + "exclude_from": [ + "FFedit-create" + ], + "permission": "restricted_fields", + "title": "File Size", + "type": "integer" + }, + "md5sum": { + "comment": "This can vary for files of same content gzipped at different times", + "description": "The MD5 checksum of the file being transferred", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "MD5 Checksum", + "type": "string" + }, + "content_md5sum": { + "comment": "This is only relavant for gzipped files", + "description": "The MD5 checksum of the uncompressed file", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "Content MD5 Checksum", + "type": "string", + "uniqueKey": "file:content_md5sum" + }, + "quality_metrics": { + "description": "Associated QC reports", + "items": { + "description": "Associated QC report", + "linkTo": "QualityMetric", + "title": "Quality Metric", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Quality Metrics", + "type": "array", + "uniqueItems": true + }, + "data_category": { + "title": "Data Category", + "description": "Category for information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Sequencing Reads" + ] + } + }, + "data_type": { + "title": "Data Type", + "description": "Detailed type of information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Unaligned Reads" + ] + } + }, + "o2_path": { + "title": "O2 Path", + "description": "Path to file on O2", + "type": "string" + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "paired_with": { + "description": "Link to associated paired-end file, if applicable", + "type": "string", + "linkTo": "UnalignedReads" + }, + "read_pair_number": { + "description": "Read pair number, if paired-end", + "type": "string", + "enum": [ + "R1", + "R2", + "Not Applicable" + ] + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "href": { + "title": "Download URL", + "type": "string", + "description": "Use this link to download this file", + "calculatedProperty": true + }, + "upload_credentials": { + "type": "object", + "calculatedProperty": true + }, + "upload_key": { + "title": "Upload Key", + "type": "string", + "description": "File object name in S3", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/UnalignedReads", + "children": [], + "rdfs:subClassOf": "/profiles/SubmittedFile.json", + "isAbstract": false + }, + "User": { + "title": "User", + "$id": "/profiles/user.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "email", + "first_name", + "last_name" + ], + "identifyingProperties": [ + "email", + "aliases", + "email", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "first_name": { + "title": "First name", + "description": "The user's first (given) name", + "type": "string", + "lookup": 30 + }, + "email": { + "title": "Account Email", + "description": "Email used to log in to the portal", + "type": "string", + "format": "email", + "uniqueKey": true + }, + "groups": { + "title": "Groups", + "description": "Additional access control groups", + "note": "USE WITH CAUTION - currently how we add admin access to a user", + "type": "array", + "uniqueItems": true, + "permission": "restricted_fields", + "items": { + "type": "string", + "enum": [ + "admin" + ] + } + }, + "last_name": { + "title": "Last name", + "description": "The user's last (family) name", + "type": "string", + "lookup": 40 + }, + "preferred_email": { + "title": "Preferred Contact Email", + "description": "Email to contact by, if different from account/sign-in e-mail address", + "type": "string", + "format": "email" + }, + "status": { + "title": "Status", + "type": "string", + "default": "current", + "permission": "restricted_fields", + "enum": [ + "current", + "deleted", + "inactive", + "revoked" + ] + }, + "time_zone": { + "title": "Timezone", + "description": "The timezone the user is associated with", + "type": "string", + "default": "US/Eastern", + "enum": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montreal", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santa_Isabel", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Shiprock", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/South_Pole", + "Antarctica/Syowa", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Choibalsan", + "Asia/Chongqing", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Gaza", + "Asia/Harbin", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kashgar", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qyzylorda", + "Asia/Rangoon", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Canada/Atlantic", + "Canada/Central", + "Canada/Eastern", + "Canada/Mountain", + "Canada/Newfoundland", + "Canada/Pacific", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "GMT", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Johnston", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "US/Alaska", + "US/Arizona", + "US/Central", + "US/Eastern", + "US/Hawaii", + "US/Mountain", + "US/Pacific", + "UTC" + ] + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "title": { + "title": "Title", + "type": "string", + "calculatedProperty": true + }, + "contact_email": { + "title": "Contact Email", + "type": "string", + "format": "email", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/User", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "VariantCalls": { + "title": "Variant Calls", + "$id": "/profiles/variant_calls.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "data_category", + "data_type", + "file_format", + "file_sets", + "filename", + "reference_genome", + "submission_centers", + "submitted_id", + "variant_type" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/reference_genome" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "mixins.json#/variant_type" + }, + { + "$ref": "file.json#/properties" + }, + { + "$ref": "submitted_file.json#/properties" + } + ], + "properties": { + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "derived_from": { + "title": "Derived From", + "description": "Files used as input to create this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmittedFile" + } + }, + "file_sets": { + "title": "File Sets", + "description": "File collections associated with this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "FileSet" + } + }, + "software": { + "title": "Software", + "description": "Software used to create this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Software" + } + }, + "accession": { + "accessionType": "VC", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "status": { + "title": "Status", + "type": "string", + "default": "uploading", + "enum": [ + "uploading", + "uploaded", + "upload failed", + "to be uploaded by workflow", + "released", + "in review", + "obsolete", + "archived", + "deleted", + "public" + ] + }, + "file_format": { + "ff_flag": "filter:valid_item_types", + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "filename": { + "description": "The local file name used at time of submission. Must be alphanumeric, with the exception of the following special characters: '+=,.@-_'", + "pattern": "^[\\w+=,.@-]*$", + "title": "File Name", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes - presumably this can be a calculated property as well", + "description": "Size of file on disk", + "exclude_from": [ + "FFedit-create" + ], + "permission": "restricted_fields", + "title": "File Size", + "type": "integer" + }, + "md5sum": { + "comment": "This can vary for files of same content gzipped at different times", + "description": "The MD5 checksum of the file being transferred", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "MD5 Checksum", + "type": "string" + }, + "content_md5sum": { + "comment": "This is only relavant for gzipped files", + "description": "The MD5 checksum of the uncompressed file", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "Content MD5 Checksum", + "type": "string", + "uniqueKey": "file:content_md5sum" + }, + "quality_metrics": { + "description": "Associated QC reports", + "items": { + "description": "Associated QC report", + "linkTo": "QualityMetric", + "title": "Quality Metric", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Quality Metrics", + "type": "array", + "uniqueItems": true + }, + "data_category": { + "title": "Data Category", + "description": "Category for information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Variant Calls" + ] + } + }, + "data_type": { + "title": "Data Type", + "description": "Detailed type of information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Germline Variants", + "Somatic Variants" + ] + } + }, + "o2_path": { + "title": "O2 Path", + "description": "Path to file on O2", + "type": "string" + }, + "variant_type": { + "title": "Variant Type", + "description": "Variant types included in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Copy Number Variant", + "Insertion-deletion", + "Mobile Element Insertion", + "Single Nucleotide Variant", + "Structural Variant" + ] + } + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "reference_genome": { + "title": "Reference Genome", + "description": "Reference genome used for alignment", + "type": "string", + "linkTo": "ReferenceGenome" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "href": { + "title": "Download URL", + "type": "string", + "description": "Use this link to download this file", + "calculatedProperty": true + }, + "upload_credentials": { + "type": "object", + "calculatedProperty": true + }, + "upload_key": { + "title": "Upload Key", + "type": "string", + "description": "File object name in S3", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/VariantCalls", + "children": [], + "rdfs:subClassOf": "/profiles/SubmittedFile.json", + "isAbstract": false + }, + "Workflow": { + "title": "Workflow", + "$id": "/profiles/workflow.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "category", + "name", + "title" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/category" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/name" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "mixins.json#/version" + } + ], + "properties": { + "version": { + "title": "Version", + "description": "Version for the item", + "type": "string", + "pattern": "^([0-9]+.)*[0-9]+$" + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "name": { + "title": "Name", + "description": "Name of the item", + "type": "string", + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 3, + "comment": "Not for identifying name; use 'identifier' for that purpose." + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "category": { + "title": "Category", + "comment": "Intended for primary classification of an item, i.e. as a property to use instead of file_type for File", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Alignment", + "Alignment Manipulation", + "Annotation", + "Format Conversion", + "Quality Control", + "Read Manipulation", + "Testing", + "Variant Calling", + "Variant Manipulation" + ] + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "WF" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "previous_versions": { + "title": "Previous versions", + "description": "Link to the previous versions of the workflow.", + "type": "array", + "items": { + "title": "Previous version", + "description": "Link to a previous version of the workflow.", + "type": "string", + "linkTo": "Workflow" + } + }, + "software": { + "title": "Software", + "description": "List of software items used in the workflow", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "title": "Software", + "description": "Software used in the workflow", + "linkTo": "Software" + } + }, + "version_upgrade_log": { + "title": "Version upgrade log", + "description": "Version upgrade log", + "type": "string" + }, + "arguments": { + "title": "Workflow Arguments", + "description": "Arguments of the workflow", + "type": "array", + "minItems": 1, + "items": { + "title": "Argument", + "description": "An argument of the workflow", + "type": "object", + "required": [ + "argument_type", + "workflow_argument_name" + ], + "additionalProperties": false, + "properties": { + "argument_format": { + "title": "Format", + "description": "Argument Format", + "type": "string", + "linkTo": "FileFormat" + }, + "argument_to_be_attached_to": { + "title": "Argument To Be Attached To", + "description": "Argument to be attached to, for qc files and input extra files", + "type": "string" + }, + "argument_type": { + "title": "Type", + "description": "Argument Type", + "type": "string", + "enum": [ + "Input file", + "Output processed file", + "Generic QC file", + "Output report file", + "Output to-be-extra-input file", + "parameter", + "QC ruleset", + "NA" + ] + }, + "mount": { + "title": "Mount", + "description": "Whether the input file should be mounted instead of downlaoded to EC2", + "type": "boolean" + }, + "qc_json": { + "title": "QC Json", + "description": "Name of QC file if in .json format, either as it is or in the zipped file", + "type": "boolean" + }, + "qc_zipped": { + "title": "QC Zipped", + "description": "Name of QC file if in .zip format", + "type": "boolean" + }, + "secondary_file_formats": { + "title": "secondary file formats", + "description": "formats for secondary files", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "title": "secondary_file_format", + "description": "formats for secondary file", + "type": "string", + "linkTo": "FileFormat" + } + }, + "workflow_argument_name": { + "title": "Name", + "description": "Name of the argument of the workflow.", + "type": "string" + } + } + } + }, + "child_file_names": { + "title": "Child File Names", + "description": "Names of the other files used by the main file for the workflow", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "directory_url": { + "title": "Directory URL", + "description": "URL of the directory that contains main and associated files", + "type": "string" + }, + "language": { + "title": "Workflow Language", + "type": "string", + "enum": [ + "CWL", + "WDL" + ] + }, + "main_file_name": { + "title": "Main File Name", + "description": "Name of the main file for the workflow", + "type": "string" + }, + "tibanna_config": { + "title": "Tibanna Config", + "description": "Tibanna configuration for execution", + "type": "object", + "additionalProperties": false, + "required": [ + "instance_type", + "run_name" + ], + "properties": { + "behavior_on_capacity_limit": { + "title": "Behavior on Capacity Limit", + "type": "string", + "enum": [ + "wait_and_retry" + ], + "default": "wait_and_retry" + }, + "cpu": { + "title": "CPU", + "type": "integer" + }, + "ebs_iops": { + "title": "EBS IOPS", + "description": "EBS input/output operations per second", + "type": "integer", + "minimum": 0 + }, + "ebs_throughput": { + "title": "EBS Throughput", + "description": "EBS throughput, in MiB/s", + "type": "integer", + "minimum": 0 + }, + "ebs_optimized": { + "title": "EBS Optimized", + "type": "boolean" + }, + "ebs_size": { + "title": "EBS Size", + "type": [ + "string", + "integer" + ], + "pattern": "^([0-9]+[.])?[0-9]+[x]$", + "minimum": 0 + }, + "instance_type": { + "title": "Instance Type", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[a-z][a-z0-9-]+[.][0-9]*[a-z-*]+$" + } + }, + "memory": { + "title": "Memory", + "type": "number" + }, + "run_name": { + "title": "Run Name", + "type": "string" + }, + "spot_instance": { + "title": "Spot Instance", + "type": "boolean" + } + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Workflow", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "WorkflowRun": { + "title": "Workflow Run", + "$id": "/profiles/workflow_run.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "workflow" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "input_files": { + "title": "Input files", + "description": "The files used as initial input for the workflow.", + "type": "array", + "minItems": 1, + "items": { + "title": "Input file mapping", + "description": "Info on file used as input and mapping to CWL argument for the workflow.", + "type": "object", + "additionalProperties": false, + "properties": { + "workflow_argument_name": { + "title": "Workflow argument name", + "description": "the name of the argument of the workflow that corresponds to the input file", + "type": "string" + }, + "value": { + "title": "Input file", + "description": "a specified input file", + "type": "string", + "linkTo": "File" + }, + "ordinal": { + "title": "Ordinal", + "description": "Ordinal of the file in the argument", + "type": "number", + "default": 1 + }, + "dimension": { + "title": "Dimension", + "description": "Dimension of the file in the argument, in format of e.g. \"0\" (singlet or 1D array), \"1-2\" (2D array), or \"2-0-1\" (3D array)", + "type": "string", + "default": "0" + }, + "format_if_extra": { + "title": "Format of extra file", + "description": "the file format if the input file is an extra file of a file object", + "type": "string", + "linkTo": "FileFormat" + }, + "notes": { + "description": "internal notes", + "type": "string" + } + } + } + }, + "output_files": { + "title": "Output files", + "description": "All files that are saved as output of the workflow", + "type": "array", + "minItems": 1, + "items": { + "title": "Output file mapping", + "description": "Info on file output by the workflow and how it is mapped to CWL arguments.", + "type": "object", + "additionalProperties": false, + "properties": { + "workflow_argument_name": { + "title": "Workflow argument name", + "description": "Argument name of node in workflow that corresponds to the output file", + "type": "string" + }, + "value": { + "title": "Output file", + "description": "a specified output file", + "type": "string", + "linkTo": "File" + }, + "value_qc": { + "title": "Output Quality Control", + "description": "a specified output report", + "type": "string", + "linkTo": "QualityMetric" + } + } + } + }, + "parameters": { + "title": "parameters", + "description": "Parameters of the workflow run", + "type": "array", + "minItems": 1, + "items": { + "title": "Parameter", + "type": "object", + "additionalProperties": false, + "properties": { + "workflow_argument_name": { + "title": "Workflow argument name", + "description": "the name of the argument of the workflow that corresponds to the parameter", + "type": "string" + }, + "value": { + "title": "Value", + "description": "a specified value for the specified parameter as used in a task", + "type": "string" + }, + "software_parameter": { + "title": "Parameter name", + "description": "the name or flag of the parameter as passed to the software", + "type": "string" + }, + "ordinal": { + "title": "Ordinal", + "description": "Ordinal of the parameter in the argument", + "type": "number", + "default": 1 + }, + "dimension": { + "title": "Dimension", + "description": "Dimension of the parameter in the argument, in format of e.g. \"0\" (singlet or 1D array), \"1-2\" (2D array), or \"2-0-1\" (3D array)", + "type": "string", + "default": "0" + } + } + } + }, + "postrun_json": { + "type": "string", + "title": "Link to Postrun Json", + "description": "Location of the AWSEM postrun json file", + "format": "uri" + }, + "run_status": { + "title": "Run Status", + "type": "string", + "default": "started", + "enum": [ + "started", + "running", + "output_files_transferring", + "output_file_transfer_finished", + "complete", + "error" + ] + }, + "run_url": { + "type": "string", + "description": "Url to AWS run info", + "format": "uri" + }, + "workflow": { + "title": "Workflow", + "description": "The workflow that was run.", + "type": "string", + "linkTo": "Workflow" + }, + "job_id": { + "title": "Job ID", + "type": "string" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "facets": {}, + "columns": {}, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/WorkflowRun", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "TestingLinkedSchemaField": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "type": "string", + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "access_key_id": { + "$merge": "snovault:schemas/access_key.json#/properties/access_key_id" + }, + "file_format": { + "$merge": "encoded_core:schemas/file.json#/properties/file_format" + }, + "title": { + "$merge": "encoded:schemas/consortium.json#/properties/title" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/TestingLinkedSchemaField", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "TestingPostPutPatch": { + "required": [ + "required" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "type": "string", + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "uuid": { + "title": "UUID", + "description": "", + "type": "string", + "format": "uuid", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "required": { + "type": "string" + }, + "simple1": { + "type": "string", + "default": "simple1 default" + }, + "simple2": { + "type": "string", + "default": "simple2 default" + }, + "protected": { + "type": "string", + "default": "protected default", + "permission": "restricted_fields" + }, + "protected_link": { + "type": "string", + "linkTo": "TestingLinkTarget", + "permission": "restricted_fields" + }, + "field_no_default": { + "type": "string" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/TestingPostPutPatch", + "children": [], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": false + }, + "Item": { + "type": "object", + "properties": { + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Item", + "children": [ + "/profiles/AccessKey.json", + "/profiles/Analyte.json", + "/profiles/CellLine.json", + "/profiles/Consortium.json", + "/profiles/DeathCircumstances.json", + "/profiles/Demographic.json", + "/profiles/Diagnosis.json", + "/profiles/Document.json", + "/profiles/Donor.json", + "/profiles/Exposure.json", + "/profiles/FileFormat.json", + "/profiles/FileSet.json", + "/profiles/FilterSet.json", + "/profiles/HiglassViewConfig.json", + "/profiles/Histology.json", + "/profiles/Image.json", + "/profiles/IngestionSubmission.json", + "/profiles/Library.json", + "/profiles/MedicalHistory.json", + "/profiles/MetaWorkflow.json", + "/profiles/MetaWorkflowRun.json", + "/profiles/MolecularTest.json", + "/profiles/OntologyTerm.json", + "/profiles/Page.json", + "/profiles/PreparationKit.json", + "/profiles/Protocol.json", + "/profiles/QualityMetric.json", + "/profiles/ReferenceGenome.json", + "/profiles/Sequencing.json", + "/profiles/Software.json", + "/profiles/SubmissionCenter.json", + "/profiles/Therapeutic.json", + "/profiles/TissueCollection.json", + "/profiles/Treatment.json", + "/profiles/User.json", + "/profiles/Workflow.json", + "/profiles/WorkflowRun.json", + "/profiles/TestingLinkedSchemaField.json", + "/profiles/TestingPostPutPatch.json", + "/profiles/File.json", + "/profiles/Preparation.json", + "/profiles/Sample.json", + "/profiles/SampleSource.json", + "/profiles/SubmittedFile.json", + "/profiles/UserContent.json" + ], + "isAbstract": true + }, + "File": { + "title": "File", + "description": "Generic file", + "$id": "/profiles/file.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "data_category", + "data_type", + "file_format" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "FI" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "status": { + "title": "Status", + "type": "string", + "default": "uploading", + "enum": [ + "uploading", + "uploaded", + "upload failed", + "to be uploaded by workflow", + "released", + "in review", + "obsolete", + "archived", + "deleted", + "public" + ] + }, + "file_format": { + "ff_flag": "filter:valid_item_types", + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "filename": { + "description": "The local file name used at time of submission. Must be alphanumeric, with the exception of the following special characters: '+=,.@-_'", + "pattern": "^[\\w+=,.@-]*$", + "title": "File Name", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes - presumably this can be a calculated property as well", + "description": "Size of file on disk", + "exclude_from": [ + "FFedit-create" + ], + "permission": "restricted_fields", + "title": "File Size", + "type": "integer" + }, + "md5sum": { + "comment": "This can vary for files of same content gzipped at different times", + "description": "The MD5 checksum of the file being transferred", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "MD5 Checksum", + "type": "string" + }, + "content_md5sum": { + "comment": "This is only relavant for gzipped files", + "description": "The MD5 checksum of the uncompressed file", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "Content MD5 Checksum", + "type": "string", + "uniqueKey": "file:content_md5sum" + }, + "quality_metrics": { + "description": "Associated QC reports", + "items": { + "description": "Associated QC report", + "linkTo": "QualityMetric", + "title": "Quality Metric", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Quality Metrics", + "type": "array", + "uniqueItems": true + }, + "data_category": { + "title": "Data Category", + "description": "Category for information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Genome Region", + "Quality Control", + "Reference Genome", + "Sequencing Reads", + "Variant Calls" + ] + } + }, + "data_type": { + "title": "Data Type", + "description": "Detailed type of information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Aligned Reads", + "Germline Variant Calls", + "Image", + "Index", + "Reference Sequence", + "Sequence Interval", + "Somatic Variant Calls", + "Statistics", + "Unaligned Reads" + ] + } + }, + "o2_path": { + "title": "O2 Path", + "description": "Path to file on O2", + "type": "string" + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "href": { + "title": "Download URL", + "type": "string", + "description": "Use this link to download this file", + "calculatedProperty": true + }, + "upload_credentials": { + "type": "object", + "calculatedProperty": true + }, + "upload_key": { + "title": "Upload Key", + "type": "string", + "description": "File object name in S3", + "calculatedProperty": true + } + }, + "facets": {}, + "columns": {}, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/File", + "children": [ + "/profiles/OutputFile.json", + "/profiles/ReferenceFile.json", + "/profiles/SubmittedFile.json" + ], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": true + }, + "Preparation": { + "title": "Preparation", + "$id": "/profiles/preparation.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "PR" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Preparation", + "children": [ + "/profiles/AnalytePreparation.json", + "/profiles/LibraryPreparation.json", + "/profiles/SamplePreparation.json" + ], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": true + }, + "Sample": { + "title": "Sample", + "$id": "/profiles/sample.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "SA" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "preservation_medium": { + "title": "Preservation Medium", + "description": "Medium used for sample preservation", + "type": "string", + "enum": [ + "TBD" + ] + }, + "preservation_type": { + "title": "Preservation Type", + "description": "Method of sample preservation", + "type": "string", + "enum": [ + "Fresh", + "Frozen" + ] + }, + "sample_preparation": { + "title": "Sample Preparation", + "description": "Link to associated sample preparation", + "type": "string", + "linkTo": "SamplePreparation" + }, + "sample_sources": { + "title": "Sample Sources", + "description": "Link to associated sample sources", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SampleSource" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/Sample", + "children": [ + "/profiles/CellCultureSample.json", + "/profiles/CellSample.json", + "/profiles/TissueSample.json" + ], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": true + }, + "SampleSource": { + "title": "Sample Source", + "$id": "/profiles/sample_source.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "submission_centers", + "submitted_id" + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/protocols" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "in review", + "permission": "restricted_fields", + "enum": [ + "public", + "draft", + "released", + "in review", + "obsolete", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "protocols": { + "title": "Protocols", + "description": "Protocols providing experimental details", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Protocol" + } + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "accession": { + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession", + "accessionType": "SS" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "sample_count": { + "title": "Sample Count", + "description": "Number of samples produced for this source", + "type": "integer", + "minimum": 1 + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/SampleSource", + "children": [ + "/profiles/CellCulture.json", + "/profiles/CellCultureMixture.json", + "/profiles/Tissue.json" + ], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": true + }, + "SubmittedFile": { + "title": "Submitted File", + "description": "Generic file submitted by external user", + "$id": "/profiles/submitted_file.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "data_category", + "data_type", + "file_format", + "file_sets", + "filename", + "submitted_id" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "accession", + "submitted_id", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/accession" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/submitted_id" + }, + { + "$ref": "mixins.json#/tags" + }, + { + "$ref": "mixins.json#/uuid" + }, + { + "$ref": "file.json#/properties" + } + ], + "mixinFacets": [ + { + "$ref": "file.json#/facets" + } + ], + "mixinColumns": [ + { + "$ref": "file.json#/columns" + } + ], + "properties": { + "schema_version": { + "default": "1", + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [] + }, + "accession": { + "accessionType": "FI", + "title": "Accession", + "description": "A unique identifier to be used to reference the object.", + "internal_comment": "Only admins are allowed to set or update this value.", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "format": "accession", + "permission": "restricted_fields", + "serverDefault": "accession" + }, + "status": { + "title": "Status", + "type": "string", + "default": "uploading", + "enum": [ + "uploading", + "uploaded", + "upload failed", + "to be uploaded by workflow", + "released", + "in review", + "obsolete", + "archived", + "deleted", + "public" + ] + }, + "file_format": { + "ff_flag": "filter:valid_item_types", + "linkTo": "FileFormat", + "title": "File Format", + "type": "string" + }, + "filename": { + "description": "The local file name used at time of submission. Must be alphanumeric, with the exception of the following special characters: '+=,.@-_'", + "pattern": "^[\\w+=,.@-]*$", + "title": "File Name", + "type": "string" + }, + "file_size": { + "comment": "File size is specified in bytes - presumably this can be a calculated property as well", + "description": "Size of file on disk", + "exclude_from": [ + "FFedit-create" + ], + "permission": "restricted_fields", + "title": "File Size", + "type": "integer" + }, + "md5sum": { + "comment": "This can vary for files of same content gzipped at different times", + "description": "The MD5 checksum of the file being transferred", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "MD5 Checksum", + "type": "string" + }, + "content_md5sum": { + "comment": "This is only relavant for gzipped files", + "description": "The MD5 checksum of the uncompressed file", + "exclude_from": [ + "FFedit-create" + ], + "format": "hex", + "permission": "restricted_fields", + "title": "Content MD5 Checksum", + "type": "string", + "uniqueKey": "file:content_md5sum" + }, + "quality_metrics": { + "description": "Associated QC reports", + "items": { + "description": "Associated QC report", + "linkTo": "QualityMetric", + "title": "Quality Metric", + "type": "string" + }, + "minItems": 1, + "permission": "restricted_fields", + "title": "Quality Metrics", + "type": "array", + "uniqueItems": true + }, + "data_category": { + "title": "Data Category", + "description": "Category for information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Genome Region", + "Quality Control", + "Reference Genome", + "Sequencing Reads", + "Variant Calls" + ] + } + }, + "data_type": { + "title": "Data Type", + "description": "Detailed type of information in the file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "Aligned Reads", + "Germline Variant Calls", + "Image", + "Index", + "Reference Sequence", + "Sequence Interval", + "Somatic Variant Calls", + "Statistics", + "Unaligned Reads" + ] + } + }, + "o2_path": { + "title": "O2 Path", + "description": "Path to file on O2", + "type": "string" + }, + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "tags": { + "title": "Tags", + "description": "Key words that can tag an item - useful for filtering.", + "type": "array", + "uniqueItems": true, + "ff_flag": "clear clone", + "items": { + "title": "Tag", + "description": "A tag for the item.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "submitted_id": { + "title": "Submitter ID", + "description": "Identifier on submission", + "type": "string", + "uniqueKey": "submitted_id" + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "alternate_accessions": { + "title": "Alternate Accessions", + "description": "Accessions previously assigned to objects that have been merged with this object.", + "type": "array", + "internal_comment": "Only admins are allowed to set or update this value.", + "items": { + "title": "Alternate Accession", + "description": "An accession previously assigned to an object that has been merged with this object.", + "type": "string", + "permission": "restricted_fields", + "format": "accession" + } + }, + "derived_from": { + "title": "Derived From", + "description": "Files used as input to create this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmittedFile" + } + }, + "file_sets": { + "title": "File Sets", + "description": "File collections associated with this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "FileSet" + } + }, + "software": { + "title": "Software", + "description": "Software used to create this file", + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Software" + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "href": { + "title": "Download URL", + "type": "string", + "description": "Use this link to download this file", + "calculatedProperty": true + }, + "upload_credentials": { + "type": "object", + "calculatedProperty": true + }, + "upload_key": { + "title": "Upload Key", + "type": "string", + "description": "File object name in S3", + "calculatedProperty": true + } + }, + "facets": {}, + "columns": {}, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/SubmittedFile", + "children": [ + "/profiles/AlignedReads.json", + "/profiles/UnalignedReads.json", + "/profiles/VariantCalls.json" + ], + "rdfs:subClassOf": "/profiles/File.json", + "isAbstract": true + }, + "UserContent": { + "title": "User Content", + "$id": "/profiles/user_content.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "required": [ + "identifier" + ], + "anyOf": [ + { + "required": [ + "submission_centers" + ] + }, + { + "required": [ + "consortia" + ] + } + ], + "identifyingProperties": [ + "aliases", + "uuid" + ], + "additionalProperties": false, + "mixinProperties": [ + { + "$ref": "mixins.json#/aliases" + }, + { + "$ref": "mixins.json#/attribution" + }, + { + "$ref": "mixins.json#/description" + }, + { + "$ref": "mixins.json#/identifier" + }, + { + "$ref": "mixins.json#/modified" + }, + { + "$ref": "mixins.json#/schema_version" + }, + { + "$ref": "mixins.json#/status" + }, + { + "$ref": "mixins.json#/submitted" + }, + { + "$ref": "mixins.json#/title" + }, + { + "$ref": "mixins.json#/uuid" + } + ], + "properties": { + "uuid": { + "title": "UUID", + "type": "string", + "format": "uuid", + "exclude_from": [ + "FFedit-create" + ], + "serverDefault": "uuid4", + "permission": "restricted_fields", + "requestMethod": "POST" + }, + "title": { + "title": "Title", + "description": "Title for the item", + "type": "string", + "minLength": 3 + }, + "date_created": { + "rdfs:subPropertyOf": "dc:created", + "title": "Date Created", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "serverDefault": "now", + "permission": "restricted_fields" + }, + "submitted_by": { + "rdfs:subPropertyOf": "dc:creator", + "title": "Submitted By", + "exclude_from": [ + "FFedit-create" + ], + "type": "string", + "linkTo": "User", + "serverDefault": "userid", + "permission": "restricted_fields" + }, + "status": { + "title": "Status", + "type": "string", + "default": "current", + "permission": "restricted_fields", + "enum": [ + "public", + "shared", + "current", + "inactive", + "in review", + "deleted" + ] + }, + "schema_version": { + "title": "Schema Version", + "internal_comment": "Do not submit, value is assigned by the server. The version of the JSON schema that the server uses to validate the object. Schema version indicates generation of schema used to save version to to enable upgrade steps to work. Individual schemas should set the default.", + "type": "string", + "exclude_from": [ + "FFedit-create" + ], + "pattern": "^\\d+(\\.\\d+)*$", + "requestMethod": [], + "default": "1" + }, + "last_modified": { + "title": "Last Modified", + "exclude_from": [ + "FFedit-create" + ], + "type": "object", + "additionalProperties": false, + "properties": { + "date_modified": { + "title": "Date Modified", + "description": "Do not submit, value is assigned by the server. The date the object is modified.", + "type": "string", + "anyOf": [ + { + "format": "date-time" + }, + { + "format": "date" + } + ], + "permission": "restricted_fields" + }, + "modified_by": { + "title": "Modified By", + "description": "Do not submit, value is assigned by the server. The user that modfied the object.", + "type": "string", + "linkTo": "User", + "permission": "restricted_fields" + } + } + }, + "identifier": { + "title": "Identifier", + "description": "Unique, identifying name for the item", + "type": "string", + "uniqueKey": true, + "pattern": "^[A-Za-z0-9-_]+$", + "minLength": 2, + "permission": "restricted_fields" + }, + "description": { + "title": "Description", + "description": "Plain text description of the item", + "type": "string", + "formInput": "textarea" + }, + "submission_centers": { + "title": "Submission Centers", + "description": "Submission Centers associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "SubmissionCenter" + }, + "serverDefault": "user_submission_centers" + }, + "consortia": { + "title": "Consortia", + "description": "Consortia associated with this item.", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "linkTo": "Consortium" + }, + "permission": "restricted_fields" + }, + "aliases": { + "title": "Aliases", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "array", + "comment": "Colon separated lab name and lab identifier, no slash. (e.g. dcic-lab:42).", + "uniqueItems": true, + "ff_flag": "clear clone", + "permission": "restricted_fields", + "items": { + "uniqueKey": "alias", + "title": "ID Alias", + "description": "Institution-specific ID (e.g. bgm:cohort-1234-a).", + "type": "string", + "pattern": "^[^\\s\\\\\\/]+:[^\\s\\\\\\/]+$" + } + }, + "options": { + "title": "Options", + "type": "object", + "description": "Options for section display.", + "additionalProperties": false, + "properties": { + "collapsible": { + "title": "Is Collapsible", + "type": "boolean", + "description": "Whether this StaticSection should be collapsible (wherever collapsibility is an option). This property is ignored in some places, e.g. lists where all sections are explicitly collapsible.", + "default": false + }, + "default_open": { + "title": "Is Expanded by Default", + "type": "boolean", + "description": "Whether this StaticSection should appear as expanded by default (in places where it may be collapsible). Does not necessarily depend on 'collapsible' being true, e.g. in lists where all sections are explicitly collapsible.", + "default": true + }, + "title_icon": { + "title": "Title Icon", + "description": "Icon to be showed next to title in selected places.", + "type": "string" + }, + "image": { + "title": "Preview Image", + "description": "Image or screenshot URL for this Item to use as a preview.", + "type": "string" + } + } + }, + "@id": { + "title": "ID", + "type": "string", + "calculatedProperty": true + }, + "@type": { + "title": "Type", + "type": "array", + "items": { + "type": "string" + }, + "calculatedProperty": true + }, + "principals_allowed": { + "title": "principals_allowed", + "description": "Calculated permissions used for ES filtering", + "type": "object", + "properties": { + "view": { + "type": "string" + }, + "edit": { + "type": "string" + } + }, + "calculatedProperty": true + }, + "display_title": { + "title": "Display Title", + "description": "A calculated title for every object", + "type": "string", + "calculatedProperty": true + }, + "content_as_html": { + "title": "Content as HTML", + "description": "Convert RST, HTML and MD content into HTML", + "type": "string", + "calculatedProperty": true + } + }, + "@type": [ + "JSONSchema" + ], + "rdfs:seeAlso": "/terms/UserContent", + "children": [ + "/profiles/StaticSection.json" + ], + "rdfs:subClassOf": "/profiles/Item.json", + "isAbstract": true + } +} diff --git a/test/test_portal_utils.py b/test/test_portal_utils.py index caf33c343..665155fe9 100644 --- a/test/test_portal_utils.py +++ b/test/test_portal_utils.py @@ -2,6 +2,8 @@ import os from dcicutils.portal_utils import Portal from dcicutils.zip_utils import temporary_file +from unittest import mock +from .conftest_settings import TEST_DIR _TEST_KEY_ID = "TTVJOW2A" @@ -135,3 +137,41 @@ def test_portal_constructor_c(): assert portal.app == portal_copy.app assert portal.vapp == portal_copy.vapp assert portal.secret == portal_copy.secret + + +def test_portal_schemas_super_type_map(): + + with open(f"{TEST_DIR}/data_files/sample_schemas.json") as f: + mocked_portal_schemas = json.load(f) + + with mock.patch("dcicutils.portal_utils.Portal.get_schemas", return_value=mocked_portal_schemas): + + portal = Portal(raise_exception=False) + + assert portal.is_schema("UnalignedReads", "UnalignedReads") is True + assert portal.is_schema("UnalignedReads", "unalignedreads") is True + assert portal.is_schema("UnalignedReads", "unaligned_reads") is True + assert portal.is_schema("UnalignedReads", "SubmittedFile") is True + assert portal.is_schema("UnalignedReads", "SUBMITTEDfILE") is True + assert portal.is_schema("UnalignedReads", "File") is True + assert portal.is_schema("UnalignedReads", "file") is True + + assert portal.isinstance_schema({"@type": "UnalignedReads"}, "UnalignedReads") is True + assert portal.isinstance_schema({"@type": "UnalignedReads"}, "UNALIGNEDREADS") is True + assert portal.isinstance_schema({"@type": "UnalignedReads"}, "Unaligned_Reads") is True + assert portal.isinstance_schema({"@type": "UnalignedReads"}, "SubmittedFile") is True + assert portal.isinstance_schema({"@type": "UnalignedReads"}, "SUBMITTEDFILE") is True + assert portal.isinstance_schema({"@type": "UnalignedReads"}, "SUBMITTED_FILE") is True + assert portal.isinstance_schema({"@type": "SubmittedFile"}, "SUBMITTED_FILE") is True + assert portal.isinstance_schema({"@type": "SubmittedFile"}, "File") is True + assert portal.isinstance_schema({"@type": "foo", "data_type": "UnalignedReads"}, "UnalignedReads") is True + + assert portal.is_schema({"@type": "UnalignedReads"}, "UnalignedReads") is True + assert portal.is_schema({"@type": "UnalignedReads"}, "UNALIGNEDREADS") is True + assert portal.is_schema({"@type": "UnalignedReads"}, "Unaligned_Reads") is True + assert portal.is_schema({"@type": "UnalignedReads"}, "SubmittedFile") is True + assert portal.is_schema({"@type": "UnalignedReads"}, "SUBMITTEDFILE") is True + assert portal.is_schema({"@type": "UnalignedReads"}, "SUBMITTED_FILE") is True + assert portal.is_schema({"@type": "SubmittedFile"}, "SUBMITTED_FILE") is True + assert portal.is_schema({"@type": "SubmittedFile"}, "File") is True + assert portal.is_schema({"@type": "foo", "data_type": "UnalignedReads"}, "UnalignedReads") is True