From f6527f1b250fdd5dce906cbff730c9858ad01f98 Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Mon, 16 Mar 2026 19:36:40 -0400 Subject: [PATCH 01/20] =?UTF-8?q?=F0=9F=9A=A7=20Add=20files=20model=20idea?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schema/include_access_model.yaml | 179 +++++++++++++++++- 1 file changed, 169 insertions(+), 10 deletions(-) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 99145db..0d5d3b2 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -310,32 +310,148 @@ classes: identifier: true File: title: File - description: File + description: An object and its metadata that exists in s3. is_a: Record slots: - - file_id - - subject_id + - file_id + - subject_id # do we need both a subject and sample id in this table? - sample_id - - filename - - format - - data_category - - data_type + - file_name - format + # - data_category - might be better suited for an assay model + # - data_type - same as ^ + # below are the file fields d3b use from automatic file inventorying in aws; many fields decscibe object metadata + - file_category + description: a high level classfication of the file (e.g., omics file, imaging file) - size + - s3_file_path # can name this url if more appropriate + description: full s3 url of an file's location in aws + - s3_key + - file_extension + - data_transfer_id + description: jira ticket number associated with a file transfer request to production bucket + - aws_account_id + - account_name + - account_alias + - bucket_study_id + description: global study ID used to create the bucket + - bucket + - s3_created_at + - s3_modified_at + - intelligent_tiering_access + - is_delete_marker + description: notes whether a file has been deleted from s3 + - is_latest + - storage_class + - hash + - manifest_hash_value + - file_hash_validation_status + - file_type + - access_url + - drs_uri + + # not sure if these are actual useful - but are in the d3b model + - encryption_status + - is_multipart_uploaded + - object_lock_leval_hold_status + - object_lock_mode + - object_lock_retain_until_date + - replication_status + - version_id + + + #TODO: I'm not convinced this is the right strategy- access model vs operations +# this might be good to have in a separate model for drs management - staging_url - release_url - - drs_uri - - hash + # - drs_uri + # - hash slot_usage: file_id: range: string required: true identifier: true subject_id: - multivalued: true + multivalued: true sample_id: multivalued: true + file_name: + range: string + required: true + format: + range: string + required: true + file_category: + range: string + required: true + size: + range: integer + required: true + s3_file_path: + range: string + required: true + s3_key: + range: string + required: true + file_extension: + range: string + required: true + data_transfer_id: + range: string + required: false + aws_account_id: + range: string + required: true + account_name: + range: string + required: true + account_alias: + range: string + required: true + bucket_study_id: + range: string + required: false + bucket: + range: string + required: false + s3_created_at: + range: date + required: true + s3_modified_at: + range: date + required: true + intelligent_tiering_access: + range: string + required: true + is_delete_marker: + range: boolean + required: true + is_latest: + range: boolean + required: true + storage_class: + range: string + required: true + hash: + range: + required: true + manifest_hash_value: + range: + required: false + file_hash_validation_status: + range: string + required: false + file_type: + range: string + required: true + access_url: + range: string + required: false + drs_uri: + range: string + required: false + FileHash: title: File Hash description: Type and value of a file content hash. @@ -343,6 +459,49 @@ classes: - hash_type - hash_value + FileDrs: + title: File DRS + description: Access control information for files accessed through a DRS service. + slots: + - file_id + description: unique file identifier assigned to a file + - staging_url + description: s3 location of a file before its made public + - release_url + description: production location of a publically available file + - hash + - access_type + description: notes wheter a file is controlled, open, or registered-tier access + - access_url + - drs_uri + - acl + description: access control list for the file + + slot_usage: + file_id: + range: string + required: true + identifier: true + staging_url: + range: string + required: true + release_url: + range: string + required: true + hash: + range: + required: true + access_type: + range: string + required: true + access_url: + range: string + requried: true + acl: + range: string + required: true + multivalued: true + slots: From 038d9b7e97001c011b23f911e3c399e8f73421bc Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Mon, 16 Mar 2026 19:42:49 -0400 Subject: [PATCH 02/20] =?UTF-8?q?=F0=9F=9A=A7=20Adding=20stuff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schema/include_access_model.yaml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 0d5d3b2..4b3a8dc 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -318,8 +318,9 @@ classes: - sample_id - file_name - format - # - data_category - might be better suited for an assay model - # - data_type - same as ^ + - data_category # might be better suited for the assay model + - data_type # same as ^ + # below are the file fields d3b use from automatic file inventorying in aws; many fields decscibe object metadata - file_category description: a high level classfication of the file (e.g., omics file, imaging file) @@ -359,12 +360,18 @@ classes: - replication_status - version_id + # new proposed fields + - is_released + description: notes whether a file has been released to the public + - is_registered + description: notes whether a file has been registered to a drs service + #TODO: I'm not convinced this is the right strategy- access model vs operations # this might be good to have in a separate model for drs management - - staging_url - - release_url + # - staging_url + # - release_url # - drs_uri # - hash slot_usage: @@ -470,9 +477,11 @@ classes: - release_url description: production location of a publically available file - hash + description: file hash value - access_type description: notes wheter a file is controlled, open, or registered-tier access - access_url + description: - drs_uri - acl description: access control list for the file From b8a58ed9eef0517c8ec92f960b5c3e9a2ed21fce Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Thu, 26 Mar 2026 10:35:03 -0400 Subject: [PATCH 03/20] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Update=20files=20mod?= =?UTF-8?q?el?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/schema/include_access_model.yaml | 2651 ----------------- .../schema/include_access_model.yaml | 232 +- 2 files changed, 147 insertions(+), 2736 deletions(-) diff --git a/docs/schema/include_access_model.yaml b/docs/schema/include_access_model.yaml index b0a4b4e..e69de29 100644 --- a/docs/schema/include_access_model.yaml +++ b/docs/schema/include_access_model.yaml @@ -1,2651 +0,0 @@ -name: include-access-model -description: LinkML Schema for the internal INCLUDE DCC Access Model -title: INCLUDE DCC Access Model -see_also: -- https://includedcc.github.io/include-access-model -id: https://includedcc.org/include-access-model -imports: -- linkml:types -license: MIT -prefixes: - includedcc: - prefix_prefix: includedcc - prefix_reference: https://includedcc.org/include-access-model/ - linkml: - prefix_prefix: linkml - prefix_reference: https://w3id.org/linkml/ - schema: - prefix_prefix: schema - prefix_reference: http://schema.org/ - cdc_race_eth: - prefix_prefix: cdc_race_eth - prefix_reference: urn:oid:2.16.840.1.113883.6.238/ - hl7_null: - prefix_prefix: hl7_null - prefix_reference: http://terminology.hl7.org/CodeSystem/v3-NullFlavor/ - ig_dob_method: - prefix_prefix: ig_dob_method - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-date-of-birth-method/ - igcondtype: - prefix_prefix: igcondtype - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/condition-type/ - ig2dac: - prefix_prefix: ig2dac - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-code/ - ig2dat: - prefix_prefix: ig2dat - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-type/ - ig2_biospecimen_availability: - prefix_prefix: ig2_biospecimen_availability - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/biospecimen-availability/ - snomed_ct: - prefix_prefix: snomed_ct - prefix_reference: http://snomed.info/id/ - MONDO: - prefix_prefix: MONDO - prefix_reference: http://purl.obolibrary.org/obo/MONDO_ - HP: - prefix_prefix: HP - prefix_reference: http://purl.obolibrary.org/obo/HP_ - mesh: - prefix_prefix: mesh - prefix_reference: http://id.nlm.nih.gov/mesh/ - NCIT: - prefix_prefix: NCIT - prefix_reference: http://purl.obolibrary.org/obo/NCIT_ - PATO: - prefix_prefix: PATO - prefix_reference: http://purl.obolibrary.org/obo/PATO_ -default_prefix: includedcc -default_range: string -types: - string: - name: string - definition_uri: https://w3id.org/linkml/String - description: A character string - notes: - - In RDF serializations, a slot with range of string is treated as a literal or - type xsd:string. If you are authoring schemas in LinkML YAML, the type is - referenced with the lower case "string". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Text - base: str - uri: xsd:string - integer: - name: integer - definition_uri: https://w3id.org/linkml/Integer - description: An integer - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "integer". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Integer - base: int - uri: xsd:integer - boolean: - name: boolean - definition_uri: https://w3id.org/linkml/Boolean - description: A binary (true or false) value - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "boolean". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Boolean - base: Bool - uri: xsd:boolean - repr: bool - float: - name: float - definition_uri: https://w3id.org/linkml/Float - description: A real number that conforms to the xsd:float specification - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "float". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Float - base: float - uri: xsd:float - double: - name: double - definition_uri: https://w3id.org/linkml/Double - description: A real number that conforms to the xsd:double specification - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "double". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - close_mappings: - - schema:Float - base: float - uri: xsd:double - decimal: - name: decimal - definition_uri: https://w3id.org/linkml/Decimal - description: A real number with arbitrary precision that conforms to the xsd:decimal - specification - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "decimal". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - broad_mappings: - - schema:Number - base: Decimal - uri: xsd:decimal - time: - name: time - definition_uri: https://w3id.org/linkml/Time - description: A time object represents a (local) time of day, independent of any - particular day - notes: - - URI is dateTime because OWL reasoners do not work with straight date or time - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "time". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Time - base: XSDTime - uri: xsd:time - repr: str - date: - name: date - definition_uri: https://w3id.org/linkml/Date - description: a date (year, month and day) in an idealized calendar - notes: - - URI is dateTime because OWL reasoners don't work with straight date or time - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "date". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Date - base: XSDDate - uri: xsd:date - repr: str - datetime: - name: datetime - definition_uri: https://w3id.org/linkml/Datetime - description: The combination of a date and time - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "datetime". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:DateTime - base: XSDDateTime - uri: xsd:dateTime - repr: str - date_or_datetime: - name: date_or_datetime - definition_uri: https://w3id.org/linkml/DateOrDatetime - description: Either a date or a datetime - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "date_or_datetime". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: str - uri: linkml:DateOrDatetime - repr: str - uriorcurie: - name: uriorcurie - definition_uri: https://w3id.org/linkml/Uriorcurie - description: a URI or a CURIE - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "uriorcurie". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: URIorCURIE - uri: xsd:anyURI - repr: str - curie: - name: curie - definition_uri: https://w3id.org/linkml/Curie - conforms_to: https://www.w3.org/TR/curie/ - description: a compact URI - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "curie". - comments: - - in RDF serializations this MUST be expanded to a URI - - in non-RDF serializations MAY be serialized as the compact representation - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: Curie - uri: xsd:string - repr: str - uri: - name: uri - definition_uri: https://w3id.org/linkml/Uri - conforms_to: https://www.ietf.org/rfc/rfc3987.txt - description: a complete URI - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "uri". - comments: - - in RDF serializations a slot with range of uri is treated as a literal or type - xsd:anyURI unless it is an identifier or a reference to an identifier, in which - case it is translated directly to a node - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - close_mappings: - - schema:URL - base: URI - uri: xsd:anyURI - repr: str - ncname: - name: ncname - definition_uri: https://w3id.org/linkml/Ncname - description: Prefix part of CURIE - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "ncname". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: NCName - uri: xsd:string - repr: str - objectidentifier: - name: objectidentifier - definition_uri: https://w3id.org/linkml/Objectidentifier - description: A URI or CURIE that represents an object in the model. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "objectidentifier". - comments: - - Used for inheritance and type checking - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: ElementIdentifier - uri: shex:iri - repr: str - nodeidentifier: - name: nodeidentifier - definition_uri: https://w3id.org/linkml/Nodeidentifier - description: A URI, CURIE or BNODE that represents a node in a model. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "nodeidentifier". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: NodeIdentifier - uri: shex:nonLiteral - repr: str - jsonpointer: - name: jsonpointer - definition_uri: https://w3id.org/linkml/Jsonpointer - conforms_to: https://datatracker.ietf.org/doc/html/rfc6901 - description: A string encoding a JSON Pointer. The value of the string MUST conform - to JSON Point syntax and SHOULD dereference to a valid object within the current - instance document when encoded in tree form. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "jsonpointer". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: str - uri: xsd:string - repr: str - jsonpath: - name: jsonpath - definition_uri: https://w3id.org/linkml/Jsonpath - conforms_to: https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html - description: A string encoding a JSON Path. The value of the string MUST conform - to JSON Point syntax and SHOULD dereference to zero or more valid objects within - the current instance document when encoded in tree form. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "jsonpath". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: str - uri: xsd:string - repr: str - sparqlpath: - name: sparqlpath - definition_uri: https://w3id.org/linkml/Sparqlpath - conforms_to: https://www.w3.org/TR/sparql11-query/#propertypaths - description: A string encoding a SPARQL Property Path. The value of the string - MUST conform to SPARQL syntax and SHOULD dereference to zero or more valid objects - within the current instance document when encoded as RDF. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "sparqlpath". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: str - uri: xsd:string - repr: str -enums: - EnumProgram: - name: EnumProgram - definition_uri: https://includedcc.org/include-access-model/EnumProgram - description: Funding programs relevant to inform operations. - title: Funding Programs - from_schema: https://includedcc.org/include-access-model - permissible_values: - include: - text: include - title: INCLUDE - kf: - text: kf - title: KF - other: - text: other - title: Other - EnumResearchDomain: - name: EnumResearchDomain - definition_uri: https://includedcc.org/include-access-model/EnumResearchDomain - description: Domains of Research used to find studies. - title: Research Domain - from_schema: https://includedcc.org/include-access-model - permissible_values: - behavior_and_behavior_mechanisms: - text: behavior_and_behavior_mechanisms - meaning: mesh:D001520 - title: Behavior and Behavior Mechanisms - congenital_heart_defects: - text: congenital_heart_defects - meaning: mesh:D006330 - title: Congenital Heart Defects - immune_system_diseases: - text: immune_system_diseases - meaning: mesh:D007154 - title: Immune System Diseases - hematologic_diseases: - text: hematologic_diseases - meaning: mesh:D006402 - title: Hematologic Diseases - neurodevelopment: - text: neurodevelopment - meaning: mesh:D065886 - title: Neurodevelopment - sleep_wake_disorders: - text: sleep_wake_disorders - meaning: mesh:D012893 - title: Sleep Wake Disorders - all_co_occurring_conditions: - text: all_co_occurring_conditions - meaning: mesh:D013568 - title: All Co-occurring Conditions - physical_fitness: - text: physical_fitness - meaning: mesh:D010809 - title: Physical Fitness - other: - text: other - title: Other - EnumParticipantLifespanStage: - name: EnumParticipantLifespanStage - definition_uri: https://includedcc.org/include-access-model/EnumParticipantLifespanStage - description: Stages of life during which participants may be recruited. - title: Participant Lifespan Stage - from_schema: https://includedcc.org/include-access-model - permissible_values: - fetal: - text: fetal - description: Before birth - title: Fetal - neonatal: - text: neonatal - description: 0-28 days old - title: Neonatal - pediatric: - text: pediatric - description: Birth-17 years old - title: Pediatric - adult: - text: adult - description: 18+ years old - title: Adult - EnumStudyDesign: - name: EnumStudyDesign - definition_uri: https://includedcc.org/include-access-model/EnumStudyDesign - description: Approaches for collecting data, investigating interventions, and/or - analyzing data. - title: Study Design - from_schema: https://includedcc.org/include-access-model - permissible_values: - case_control: - text: case_control - title: Case-Control - case_set: - text: case_set - title: Case Set - control_set: - text: control_set - title: Control Set - clinical_trial: - text: clinical_trial - title: Clinical Trial - cross_sectional: - text: cross_sectional - title: Cross-Sectional - family_twins_trios: - text: family_twins_trios - title: Family/Twins/Trios - interventional: - text: interventional - title: Interventional - longitudinal: - text: longitudinal - title: Longitudinal - trial_readiness_study: - text: trial_readiness_study - title: Trial Readiness Study - tumor_vs_matched_normal: - text: tumor_vs_matched_normal - title: Tumor vs Matched Normal - EnumClinicalDataSourceType: - name: EnumClinicalDataSourceType - definition_uri: https://includedcc.org/include-access-model/EnumClinicalDataSourceType - description: Approaches to ascertain clinical information about a participant. - title: Clinical Data Source Type - from_schema: https://includedcc.org/include-access-model - permissible_values: - medical_record: - text: medical_record - description: Data obtained directly from medical record - title: Medical Record - investigator_assessment: - text: investigator_assessment - description: Data obtained by examination, interview, etc. with investigator - title: Investigator Assessment - participant_or_caregiver_report: - text: participant_or_caregiver_report - description: Data obtained from survey, questionnaire, etc. filled out by - participant or caregiver - title: Participant or Caregiver Report - other: - text: other - description: Data obtained from other source, such as tissue bank - title: Other - unknown: - text: unknown - title: Unknown - EnumDataCategory: - name: EnumDataCategory - definition_uri: https://includedcc.org/include-access-model/EnumDataCategory - description: Categories of data which may be collected about participants. - title: Data Category - from_schema: https://includedcc.org/include-access-model - permissible_values: - unharmonized_demographic_clinical_data: - text: unharmonized_demographic_clinical_data - title: Unharmonized Demographic/Clinical Data - harmonized_demographic_clinical_data: - text: harmonized_demographic_clinical_data - title: Harmonized Demographic/Clinical Data - genomics: - text: genomics - title: Genomics - transcriptomics: - text: transcriptomics - title: Transcriptomics - epigenomics: - text: epigenomics - title: Epigenomics - proteomics: - text: proteomics - title: Proteomics - metabolomics: - text: metabolomics - title: Metabolomics - cognitive_behavioral: - text: cognitive_behavioral - title: Cognitive/Behavioral - immune_profiling: - text: immune_profiling - title: Immune Profiling - imaging: - text: imaging - title: Imaging - microbiome: - text: microbiome - title: Microbiome - fitness: - text: fitness - title: Fitness - physical_activity: - text: physical_activity - title: Physical Activity - other: - text: other - title: Other - sleep_study: - text: sleep_study - title: Sleep Study - EnumSubjectType: - name: EnumSubjectType - definition_uri: https://includedcc.org/include-access-model/EnumSubjectType - description: Types of Subject entities - from_schema: https://includedcc.org/include-access-model - permissible_values: - participant: - text: participant - description: Study participant with consent, assent, or waiver of consent. - non_participant: - text: non_participant - description: An individual associated with a study who was not explictly consented, - eg, the subject of a reported family history. - cell_line: - text: cell_line - description: Cell Line - animal_model: - text: animal_model - description: Animal model - group: - text: group - description: A group of individuals or entities. - other: - text: other - description: A different entity type- ideally this will be resolved! - EnumDownSyndromeStatus: - name: EnumDownSyndromeStatus - definition_uri: https://includedcc.org/include-access-model/EnumDownSyndromeStatus - description: Down syndrome / chromosome 21 status - from_schema: https://includedcc.org/include-access-model - permissible_values: - d21: - text: d21 - description: Disomy 21 (euploid) - meaning: PATO:0001393 - title: D21 - t21: - text: t21 - description: Trisomy 21 (Down syndrome) - meaning: MONDO:0008608 - title: T21 - EnumSex: - name: EnumSex - definition_uri: https://includedcc.org/include-access-model/EnumSex - description: Subject Sex - from_schema: https://includedcc.org/include-access-model - permissible_values: - female: - text: female - meaning: NCIT:C16576 - title: Female - male: - text: male - meaning: NCIT:C20197 - title: Male - other: - text: other - meaning: NCIT:C17649 - title: Other - unknown: - text: unknown - meaning: NCIT:C17998 - title: Unknown - EnumRace: - name: EnumRace - definition_uri: https://includedcc.org/include-access-model/EnumRace - description: Participant Race - from_schema: https://includedcc.org/include-access-model - permissible_values: - american_indian_or_alaska_native: - text: american_indian_or_alaska_native - meaning: NCIT:C41259 - title: American Indian or Alaska Native - asian: - text: asian - meaning: NCIT:C41260 - title: Asian - black_or_african_american: - text: black_or_african_american - meaning: NCIT:C16352 - title: Black or African American - more_than_one_race: - text: more_than_one_race - meaning: NCIT:C67109 - title: More than one race - native_hawaiian_or_other_pacific_islander: - text: native_hawaiian_or_other_pacific_islander - meaning: NCIT:C41219 - title: Native Hawaiian or Other Pacific Islander - other: - text: other - meaning: NCIT:C17649 - title: Other - white: - text: white - meaning: NCIT:C41261 - title: White - prefer_not_to_answer: - text: prefer_not_to_answer - meaning: NCIT:C132222 - title: Prefer not to answer - unknown: - text: unknown - meaning: NCIT:C17998 - title: Unknown - east_asian: - text: east_asian - description: UK only; do not use for US data - meaning: NCIT:C161419 - title: East Asian - latin_american: - text: latin_american - description: UK only; do not use for US data - meaning: NCIT:C126531 - title: Latin American - middle_eastern_or_north_african: - text: middle_eastern_or_north_african - description: UK only; do not use for US data - meaning: NCIT:C43866 - title: Middle Eastern or North African - south_asian: - text: south_asian - description: UK only; do not use for US data - meaning: NCIT:C41263 - title: South Asian - EnumEthnicity: - name: EnumEthnicity - definition_uri: https://includedcc.org/include-access-model/EnumEthnicity - description: Participant ethnicity, specific to Hispanic or Latino. - from_schema: https://includedcc.org/include-access-model - permissible_values: - hispanic_or_latino: - text: hispanic_or_latino - meaning: NCIT:C17459 - title: Hispanic or Latino - not_hispanic_or_latino: - text: not_hispanic_or_latino - meaning: NCIT:C41222 - title: Not Hispanic or Latino - prefer_not_to_answer: - text: prefer_not_to_answer - meaning: NCIT:C132222 - title: Prefer not to answer - unknown: - text: unknown - meaning: NCIT:C17998 - title: Unknown - EnumVitalStatus: - name: EnumVitalStatus - definition_uri: https://includedcc.org/include-access-model/EnumVitalStatus - description: Descriptions of a Subject's vital status - from_schema: https://includedcc.org/include-access-model - is_a: EnumNull - permissible_values: - dead: - text: dead - meaning: NCIT:C28554 - title: Dead - alive: - text: alive - meaning: NCIT:C37987 - title: Alive - EnumNull: - name: EnumNull - definition_uri: https://includedcc.org/include-access-model/EnumNull - description: Base enumeration providing null options. - from_schema: https://includedcc.org/include-access-model - permissible_values: - unknown: - text: unknown - meaning: NCIT:C17998 - title: Unknown - EnumAssertionProvenance: - name: EnumAssertionProvenance - definition_uri: https://includedcc.org/include-access-model/EnumAssertionProvenance - description: Possible data sources for assertions. - from_schema: https://includedcc.org/include-access-model - is_a: EnumNull - permissible_values: - medical_record: - text: medical_record - description: Data obtained from a medical record - title: Medical Record - investigator_assessment: - text: investigator_assessment - description: Data obtained by examination, interview, etc. with investigator - title: Investigator Assessment - participant_or_caregiver_report: - text: participant_or_caregiver_report - description: Data obtained from survey, questionnaire, etc. filled out by - participant or caregiver - title: Participant or Caregiver Report - other: - text: other - description: Data obtained from other source, such as tissue bank - title: Other - EnumAvailabilityStatus: - name: EnumAvailabilityStatus - definition_uri: https://includedcc.org/include-access-model/EnumAvailabilityStatus - description: Is the biospecimen available for use? - from_schema: https://includedcc.org/include-access-model - permissible_values: - available: - text: available - description: Biospecimen is Available - meaning: ig2_biospecimen_availability:available - title: Available - unavailable: - text: unavailable - description: Biospecimen is Unavailable - meaning: ig2_biospecimen_availability:unavailable - title: Unavailable - EnumSampleCollectionMethod: - name: EnumSampleCollectionMethod - definition_uri: https://includedcc.org/include-access-model/EnumSampleCollectionMethod - description: The approach used to collect the biospecimen. [LOINC](https://loinc.org) - is recommended. - from_schema: https://includedcc.org/include-access-model - EnumSite: - name: EnumSite - definition_uri: https://includedcc.org/include-access-model/EnumSite - description: The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) - is recommended. - from_schema: https://includedcc.org/include-access-model - EnumSpatialQualifiers: - name: EnumSpatialQualifiers - definition_uri: https://includedcc.org/include-access-model/EnumSpatialQualifiers - description: Any spatial/location qualifiers. - from_schema: https://includedcc.org/include-access-model - enum_uri: http://hl7.org/fhir/us/mcode/ValueSet/mcode-body-location-qualifier-vs - reachable_from: - source_ontology: bioregistry:snomedct - source_nodes: - - snomedct:106233006 - - snomedct:272424004 - - snomedct:51440002 - - snomedct:399488007 - - snomedct:24028007 - - snomedct:7771000 - relationship_types: - - rdfs:subClassOf - is_direct: false - EnumLaterality: - name: EnumLaterality - definition_uri: https://includedcc.org/include-access-model/EnumLaterality - description: Laterality information for the site - from_schema: https://includedcc.org/include-access-model - EnumEDAMFormats: - name: EnumEDAMFormats - definition_uri: https://includedcc.org/include-access-model/EnumEDAMFormats - description: Data formats from the EDAM ontology. - from_schema: https://includedcc.org/include-access-model - reachable_from: - source_ontology: bioregistry:edam - source_nodes: - - edam:format_1915 - relationship_types: - - rdfs:subClassOf - is_direct: false - include_self: false - EnumEDAMDataTypes: - name: EnumEDAMDataTypes - definition_uri: https://includedcc.org/include-access-model/EnumEDAMDataTypes - description: Data types from the EDAM ontology. - from_schema: https://includedcc.org/include-access-model - reachable_from: - source_ontology: bioregistry:edam - source_nodes: - - edam:data_0006 - relationship_types: - - rdfs:subClassOf - is_direct: false - include_self: false - EnumFileHashType: - name: EnumFileHashType - definition_uri: https://includedcc.org/include-access-model/EnumFileHashType - description: Types of file hashes supported. - from_schema: https://includedcc.org/include-access-model - permissible_values: - md5: - text: md5 - title: MD5 - etag: - text: etag - title: ETag - sha1: - text: sha1 - title: SHA-1 -slots: - study_id: - name: study_id - definition_uri: https://includedcc.org/include-access-model/study_id - description: INCLUDE Global ID for the study - title: Study ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_id - owner: StudyMetadata - domain_of: - - Study - - StudyMetadata - range: Study - multivalued: false - do_id: - name: do_id - definition_uri: https://includedcc.org/include-access-model/do_id - description: Digital Object Identifier (DOI) for this Record. - title: DOI - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:do_id - owner: DOI - domain_of: - - Study - - DOI - range: DOI - multivalued: false - subject_id: - name: subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:subject_id - owner: File - domain_of: - - Subject - - Demographics - - SubjectAssertion - - Encounter - - File - range: Subject - multivalued: false - assertion_id: - name: assertion_id - definition_uri: https://includedcc.org/include-access-model/assertion_id - description: INCLUDE Global ID for the Assertion - title: Assertion ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:assertion_id - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: SubjectAssertion - multivalued: false - external_id: - name: external_id - definition_uri: https://includedcc.org/include-access-model/external_id - description: Other identifiers for this entity, eg, from the submitting study - or in systems like dbGaP - title: External Identifiers - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:external_id - owner: Record - domain_of: - - Record - range: uriorcurie - required: false - multivalued: true - parent_study: - name: parent_study - definition_uri: https://includedcc.org/include-access-model/parent_study - description: The parent study for this study, if it is a nested study. - title: Parent Study - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:parent_study - owner: Study - domain_of: - - Study - range: Study - required: false - multivalued: false - funding_source: - name: funding_source - definition_uri: https://includedcc.org/include-access-model/funding_source - description: The funding source(s) of the study. - title: Funding Source - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:funding_source - owner: Study - domain_of: - - Study - range: string - required: false - multivalued: true - principal_investigator: - name: principal_investigator - definition_uri: https://includedcc.org/include-access-model/principal_investigator - description: The Principal Investigator(s) responsible for the study. - title: Principal Investigator - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:principal_investigator - owner: Study - domain_of: - - Study - range: Investigator - required: true - multivalued: true - inlined: true - inlined_as_list: true - study_title: - name: study_title - definition_uri: https://includedcc.org/include-access-model/study_title - description: Full Study Title - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_title - owner: Study - domain_of: - - Study - range: string - required: true - multivalued: false - study_code: - name: study_code - definition_uri: https://includedcc.org/include-access-model/study_code - description: Unique identifier for the study (generally a short acronym) - title: Study Code - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_code - owner: Study - domain_of: - - Study - range: string - required: true - study_short_name: - name: study_short_name - definition_uri: https://includedcc.org/include-access-model/study_short_name - description: Short name for the study - title: Study Code - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_short_name - owner: Study - domain_of: - - Study - range: string - required: false - investigator_title: - name: investigator_title - definition_uri: https://includedcc.org/include-access-model/investigator_title - description: The title of the Investigator, eg, "Assistant Professor" - title: Investigator Title - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:investigator_title - owner: Investigator - domain_of: - - Investigator - range: string - required: false - name: - name: name - definition_uri: https://includedcc.org/include-access-model/name - description: Name of the entity. - title: Name - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:name - owner: ActivityDefinition - domain_of: - - VirtualBiorepository - - Investigator - - EncounterDefinition - - ActivityDefinition - range: string - required: false - email: - name: email - definition_uri: https://includedcc.org/include-access-model/email - description: An email address to reach the entity. - title: Email Address - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:email - owner: Investigator - domain_of: - - Investigator - range: string - required: false - institution: - name: institution - definition_uri: https://includedcc.org/include-access-model/institution - description: Name of the institution this record is associated with. - title: Institution - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:institution - owner: Investigator - domain_of: - - VirtualBiorepository - - Investigator - range: string - required: false - program: - name: program - definition_uri: https://includedcc.org/include-access-model/program - description: Funding source(s) for the study - title: Program - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:program - owner: Study - domain_of: - - Study - range: EnumProgram - required: true - multivalued: true - study_description: - name: study_description - definition_uri: https://includedcc.org/include-access-model/study_description - description: Brief description of the study (2-4 sentences) - title: Study Description - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_description - owner: Study - domain_of: - - Study - range: string - required: true - website: - name: website - definition_uri: https://includedcc.org/include-access-model/website - description: Website for the Record. - title: Website - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:website - owner: Publication - domain_of: - - Study - - VirtualBiorepository - - Publication - range: uri - contact: - name: contact - definition_uri: https://includedcc.org/include-access-model/contact - description: The individual to contact with questions about this record. - title: Contact Person - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:contact - owner: VirtualBiorepository - domain_of: - - Study - - VirtualBiorepository - range: Investigator - required: true - multivalued: true - inlined: true - inlined_as_list: true - vbr: - name: vbr - definition_uri: https://includedcc.org/include-access-model/vbr - description: Information about the study's Virtual Biorepository, if participating - title: Virtual Biorepository - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:vbr - owner: StudyMetadata - domain_of: - - StudyMetadata - range: VirtualBiorepository - required: false - inlined: true - inlined_as_list: true - vbr_readme: - name: vbr_readme - definition_uri: https://includedcc.org/include-access-model/vbr_readme - description: Instructions for contacting or requesting samples from Virtual Biorepository, - if participating - title: VBR Readme - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:vbr_readme - owner: VirtualBiorepository - domain_of: - - VirtualBiorepository - range: string - research_domain: - name: research_domain - definition_uri: https://includedcc.org/include-access-model/research_domain - description: Main research domain(s) of the study, other than Down syndrome - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:research_domain - owner: StudyMetadata - domain_of: - - StudyMetadata - range: EnumResearchDomain - required: true - multivalued: true - participant_lifespan_stage: - name: participant_lifespan_stage - definition_uri: https://includedcc.org/include-access-model/participant_lifespan_stage - description: Focus age group(s) of the study population - title: Participant Lifespan Stage - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:participant_lifespan_stage - owner: StudyMetadata - domain_of: - - StudyMetadata - range: EnumParticipantLifespanStage - required: true - multivalued: true - selection_criteria: - name: selection_criteria - definition_uri: https://includedcc.org/include-access-model/selection_criteria - description: Brief description of inclusion and/or exclusion criteria for the - study - title: Selection Criteria - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:selection_criteria - owner: StudyMetadata - domain_of: - - StudyMetadata - range: string - study_design: - name: study_design - definition_uri: https://includedcc.org/include-access-model/study_design - description: Overall design of study, including whether it is longitudinal and - whether family members/unrelated controls are also enrolled - title: Study Design - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_design - owner: StudyMetadata - domain_of: - - StudyMetadata - range: EnumStudyDesign - required: true - multivalued: true - data_category: - name: data_category - definition_uri: https://includedcc.org/include-access-model/data_category - description: General category of data in this Record (e.g. Clinical, Genomics, - etc) - title: Data Category - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:data_category - owner: File - domain_of: - - StudyMetadata - - File - range: EnumDataCategory - clinical_data_source_type: - name: clinical_data_source_type - definition_uri: https://includedcc.org/include-access-model/clinical_data_source_type - description: Source(s) of data collected from study participants - title: Clinical Data Source Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:clinical_data_source_type - owner: StudyMetadata - domain_of: - - StudyMetadata - range: EnumClinicalDataSourceType - required: true - multivalued: true - publication: - name: publication - definition_uri: https://includedcc.org/include-access-model/publication - description: Publications associated with this Record. - title: Publication - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:publication - owner: Study - domain_of: - - Study - range: Publication - multivalued: true - inlined: true - inlined_as_list: true - expected_number_of_participants: - name: expected_number_of_participants - definition_uri: https://includedcc.org/include-access-model/expected_number_of_participants - description: Total expected number of participants to be recruited. - title: Expected Number of Participants - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:expected_number_of_participants - owner: StudyMetadata - domain_of: - - StudyMetadata - range: integer - required: true - actual_number_of_participants: - name: actual_number_of_participants - definition_uri: https://includedcc.org/include-access-model/actual_number_of_participants - description: Total participants included at this time. - title: Actual Number of Participants - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:actual_number_of_participants - owner: StudyMetadata - domain_of: - - StudyMetadata - range: integer - required: true - acknowledgments: - name: acknowledgments - definition_uri: https://includedcc.org/include-access-model/acknowledgments - description: Funding statement and acknowledgments for this study - title: Acknowledgments - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:acknowledgments - owner: Study - domain_of: - - Study - range: string - citation_statement: - name: citation_statement - definition_uri: https://includedcc.org/include-access-model/citation_statement - description: Statement that secondary data users should use to acknowledge use - of this study or dataset. E.g., "The results analyzed and - here are based in whole or in part upon data generated by the INCLUDE (INvestigation - of Co-occurring conditions across the Lifespan to Understand Down syndromE) - Project , and were accessed - from the INCLUDE Data Hub and ." - title: Citation Statement - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:citation_statement - owner: Study - domain_of: - - Study - range: string - bibliographic_reference: - name: bibliographic_reference - definition_uri: https://includedcc.org/include-access-model/bibliographic_reference - description: Text use to reference this Record. - title: Bibiliographic Reference - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:bibliographic_reference - owner: Publication - domain_of: - - DOI - - Publication - range: string - organism_type: - name: organism_type - definition_uri: https://includedcc.org/include-access-model/organism_type - description: Organism Type - title: Organism Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:organism_type - owner: Subject - domain_of: - - Subject - range: uriorcurie - required: false - subject_type: - name: subject_type - definition_uri: https://includedcc.org/include-access-model/subject_type - description: Type of entity this record represents - title: Subject Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:subject_type - owner: Subject - domain_of: - - Subject - range: EnumSubjectType - required: true - sex: - name: sex - definition_uri: https://includedcc.org/include-access-model/sex - description: Sex of Participant - title: Sex - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:sex - owner: Demographics - domain_of: - - Demographics - range: EnumSex - required: true - race: - name: race - definition_uri: https://includedcc.org/include-access-model/race - description: Race of Participant - title: Race - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:race - owner: Demographics - domain_of: - - Demographics - range: EnumRace - required: true - multivalued: true - ethnicity: - name: ethnicity - definition_uri: https://includedcc.org/include-access-model/ethnicity - description: Ethnicity of Participant - title: Ethnicity - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:ethnicity - owner: Demographics - domain_of: - - Demographics - range: EnumEthnicity - required: true - down_syndrome_status: - name: down_syndrome_status - definition_uri: https://includedcc.org/include-access-model/down_syndrome_status - description: Down Syndrome status of participant - title: Down Syndrome Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:down_syndrome_status - owner: Demographics - domain_of: - - Demographics - range: EnumDownSyndromeStatus - required: true - age_at_first_engagement: - name: age_at_first_engagement - definition_uri: https://includedcc.org/include-access-model/age_at_first_engagement - description: Age in days of Participant at first recorded study event (enrollment, - visit, observation, sample collection, survey completion, etc.). Age at enrollment - is preferred, if available. - title: Age at First Participant Engagement - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_first_engagement - owner: Demographics - domain_of: - - Demographics - range: integer - minimum_value: -365 - maximum_value: 32507 - unit: - ucum_code: d - vital_status: - name: vital_status - definition_uri: https://includedcc.org/include-access-model/vital_status - description: Whether participant is alive or dead - title: Vital Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:vital_status - owner: Demographics - domain_of: - - Demographics - range: EnumVitalStatus - age_at_last_vital_status: - name: age_at_last_vital_status - definition_uri: https://includedcc.org/include-access-model/age_at_last_vital_status - description: Age in days when participant's vital status was last recorded - title: Age at Last Vital Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_last_vital_status - owner: Demographics - domain_of: - - Demographics - range: integer - minimum_value: -365 - maximum_value: 32507 - unit: - ucum_code: d - assertion_provenance: - name: assertion_provenance - definition_uri: https://includedcc.org/include-access-model/assertion_provenance - description: The original source of this assertion - title: Assertion Provenance - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:assertion_provenance - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: EnumAssertionProvenance - age_at_assertion: - name: age_at_assertion - definition_uri: https://includedcc.org/include-access-model/age_at_assertion - description: The age in days of the Subject when the assertion was made. - title: Age at assertion - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_assertion - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: integer - unit: - ucum_code: d - age_at_event: - name: age_at_event - definition_uri: https://includedcc.org/include-access-model/age_at_event - description: The age in days of the Subject at the time point which the assertion - describes, | eg, age of onset or when a measurement was performed. - title: Age at event - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_event - owner: Encounter - domain_of: - - SubjectAssertion - - Encounter - range: integer - unit: - ucum_code: d - age_at_resolution: - name: age_at_resolution - definition_uri: https://includedcc.org/include-access-model/age_at_resolution - description: The age in days of the Subject when the asserted state was resolved. - title: Age at resolution - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_resolution - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: integer - unit: - ucum_code: d - concept: - name: concept - definition_uri: https://includedcc.org/include-access-model/concept - description: The structured term defining the meaning of the assertion. - title: Assertion concept - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concept - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: Concept - multivalued: true - concept_curie: - name: concept_curie - definition_uri: https://includedcc.org/include-access-model/concept_curie - description: The standardized curie for the term. - title: Concept Curie - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concept_curie - owner: Concept - domain_of: - - Concept - range: uriorcurie - display: - name: display - definition_uri: https://includedcc.org/include-access-model/display - description: The friendly display string of the coded term. - title: Display String - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:display - owner: Concept - domain_of: - - Concept - range: string - concept_source: - name: concept_source - definition_uri: https://includedcc.org/include-access-model/concept_source - description: The source text yielding the standardized concept. - title: Concept Source Text - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concept_source - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: string - value_concept: - name: value_concept - definition_uri: https://includedcc.org/include-access-model/value_concept - description: The structured term defining the value of the assertion. - title: Value concept - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_concept - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: Concept - multivalued: true - value_number: - name: value_number - definition_uri: https://includedcc.org/include-access-model/value_number - description: The numeric value of the assertion. - title: Value Number - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_number - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: float - value_source: - name: value_source - definition_uri: https://includedcc.org/include-access-model/value_source - description: The source text yielding the value. - title: Value Source Text - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_source - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: string - value_unit: - name: value_unit - definition_uri: https://includedcc.org/include-access-model/value_unit - description: The structured term defining the units of the value. - title: Value Units - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_unit - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: Concept - value_unit_source: - name: value_unit_source - definition_uri: https://includedcc.org/include-access-model/value_unit_source - description: The source text yielding the value's units. - title: Value Units Source Text - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_unit_source - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: string - sample_id: - name: sample_id - definition_uri: https://includedcc.org/include-access-model/sample_id - description: The unique identifier for this Sample. - title: Sample ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:sample_id - owner: File - domain_of: - - Sample - - Aliquot - - File - range: Sample - parent_sample_id: - name: parent_sample_id - definition_uri: https://includedcc.org/include-access-model/parent_sample_id - description: Sample from which this sample is derived - title: Parent Sample ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:parent_sample_id - owner: Sample - domain_of: - - Sample - range: Sample - inlined: false - biospecimen_collection_id: - name: biospecimen_collection_id - definition_uri: https://includedcc.org/include-access-model/biospecimen_collection_id - description: Unique identifier for this Biospecimen Collection. - title: Biospecimen Collection ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:biospecimen_collection_id - owner: BiospecimenCollection - domain_of: - - Sample - - BiospecimenCollection - range: BiospecimenCollection - aliquot_id: - name: aliquot_id - definition_uri: https://includedcc.org/include-access-model/aliquot_id - description: Unique identifier for an Aliquot. - title: Aliquot ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:aliquot_id - owner: Aliquot - domain_of: - - Aliquot - range: Aliquot - sample_type: - name: sample_type - definition_uri: https://includedcc.org/include-access-model/sample_type - description: Type of material of which this Sample is comprised - title: Sample Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:sample_type - owner: Sample - domain_of: - - Sample - range: uriorcurie - required: true - processing: - name: processing - definition_uri: https://includedcc.org/include-access-model/processing - description: Processing that was applied to the Parent Sample or from the Biospecimen - Collection that yielded this distinct sample - title: Sample Processing - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:processing - owner: Sample - domain_of: - - Sample - range: uriorcurie - multivalued: true - availablity_status: - name: availablity_status - definition_uri: https://includedcc.org/include-access-model/availablity_status - description: Can this Sample be requested for further analysis? - title: Sample Availability - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:availablity_status - owner: Aliquot - domain_of: - - Sample - - Aliquot - range: EnumAvailabilityStatus - storage_method: - name: storage_method - definition_uri: https://includedcc.org/include-access-model/storage_method - description: Sample storage method, eg, Frozen or with additives - title: Sample Storage Method - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:storage_method - owner: Sample - domain_of: - - Sample - range: uriorcurie - multivalued: true - quantity_number: - name: quantity_number - definition_uri: https://includedcc.org/include-access-model/quantity_number - description: The total quantity of the specimen - title: Quantity - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:quantity_number - owner: Aliquot - domain_of: - - Sample - - Aliquot - range: float - quantity_unit: - name: quantity_unit - definition_uri: https://includedcc.org/include-access-model/quantity_unit - description: The structured term defining the units of the quantity. - title: Quantity Units - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:quantity_unit - owner: Aliquot - domain_of: - - Sample - - Aliquot - range: Concept - concentration_number: - name: concentration_number - definition_uri: https://includedcc.org/include-access-model/concentration_number - description: What is the concentration of the analyte in the Aliquot? - title: Concentration - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concentration_number - owner: Aliquot - domain_of: - - Aliquot - range: float - concentration_unit: - name: concentration_unit - definition_uri: https://includedcc.org/include-access-model/concentration_unit - description: Units associated with the concentration of the analyte in the Aliquot. - title: Concentration Units - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concentration_unit - owner: Aliquot - domain_of: - - Aliquot - range: Concept - age_at_collection: - name: age_at_collection - definition_uri: https://includedcc.org/include-access-model/age_at_collection - description: The age at which this biospecimen was collected in decimal years. - title: Age at Biospecimen Collection - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_collection - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: float - unit: - ucum_code: a - method: - name: method - definition_uri: https://includedcc.org/include-access-model/method - description: The approach used to collect the biospecimen. - title: Biospecimen Collection Method - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:method - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: EnumSampleCollectionMethod - site: - name: site - definition_uri: https://includedcc.org/include-access-model/site - description: The location of the specimen collection. - title: Biospecimen Collection Site - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:site - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: EnumSite - spatial_qualifier: - name: spatial_qualifier - definition_uri: https://includedcc.org/include-access-model/spatial_qualifier - description: Qualifier that further refine the specific location of biospecimen - collection - title: Spatial Qualifier - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:spatial_qualifier - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: EnumSpatialQualifiers - laterality: - name: laterality - definition_uri: https://includedcc.org/include-access-model/laterality - description: Laterality that further refine the specific location of biospecimen - collection - title: Location Laterality - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:laterality - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: EnumLaterality - encounter_id: - name: encounter_id - definition_uri: https://includedcc.org/include-access-model/encounter_id - description: Unique identifier for this Encounter. - title: Encounter ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:encounter_id - owner: Encounter - domain_of: - - SubjectAssertion - - BiospecimenCollection - - Encounter - range: Encounter - description: - name: description - definition_uri: https://includedcc.org/include-access-model/description - description: Description for this entity. - title: Description - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:description - owner: ActivityDefinition - domain_of: - - EncounterDefinition - - ActivityDefinition - range: string - encounter_definition_id: - name: encounter_definition_id - definition_uri: https://includedcc.org/include-access-model/encounter_definition_id - description: Unique identifier for this Encounter Definition. - title: Encounter Definition ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:encounter_definition_id - owner: EncounterDefinition - domain_of: - - Encounter - - EncounterDefinition - range: EncounterDefinition - activity_definition_id: - name: activity_definition_id - definition_uri: https://includedcc.org/include-access-model/activity_definition_id - description: Unique identifier for this Activity Definition. - title: Activity Definition ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:activity_definition_id - owner: ActivityDefinition - domain_of: - - EncounterDefinition - - ActivityDefinition - range: ActivityDefinition - file_id: - name: file_id - definition_uri: https://includedcc.org/include-access-model/file_id - description: Unique identifier for this File. - title: File ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:file_id - owner: File - domain_of: - - File - range: File - filename: - name: filename - definition_uri: https://includedcc.org/include-access-model/filename - description: The name of the file. - title: Filename - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:filename - owner: File - domain_of: - - File - range: string - format: - name: format - definition_uri: https://includedcc.org/include-access-model/format - description: The format of the file. - title: File Format - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:format - owner: File - domain_of: - - File - range: EnumEDAMFormats - data_type: - name: data_type - definition_uri: https://includedcc.org/include-access-model/data_type - description: The type of data within this file. - title: Data Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:data_type - owner: File - domain_of: - - File - range: EnumEDAMDataTypes - size: - name: size - definition_uri: https://includedcc.org/include-access-model/size - description: Size of the file, in Bytes. - title: File Size - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:size - owner: File - domain_of: - - File - range: integer - unit: - ucum_code: By - staging_url: - name: staging_url - definition_uri: https://includedcc.org/include-access-model/staging_url - description: URL for internal access to the data. May be temporary. - title: Staging Location - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:staging_url - owner: File - domain_of: - - File - range: uriorcurie - release_url: - name: release_url - definition_uri: https://includedcc.org/include-access-model/release_url - description: URL for controlled or open access to the data. - title: Release Location - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:release_url - owner: File - domain_of: - - File - range: uriorcurie - drs_uri: - name: drs_uri - definition_uri: https://includedcc.org/include-access-model/drs_uri - description: DRS location to access the data. - title: DRS URI - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:drs_uri - owner: File - domain_of: - - File - range: uriorcurie - hash: - name: hash - definition_uri: https://includedcc.org/include-access-model/hash - description: File hash information - title: File Hash - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:hash - owner: File - domain_of: - - File - range: FileHash - inlined: true - inlined_as_list: true - hash_type: - name: hash_type - definition_uri: https://includedcc.org/include-access-model/hash_type - description: The type of file hash, eg, md5 - title: File Hash Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:hash_type - owner: FileHash - domain_of: - - FileHash - range: EnumFileHashType - hash_value: - name: hash_value - definition_uri: https://includedcc.org/include-access-model/hash_value - description: The value of the file hash - title: File Hash Value - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:hash_value - owner: FileHash - domain_of: - - FileHash - range: string - Study_study_id: - name: Study_study_id - definition_uri: https://includedcc.org/include-access-model/study_id - description: INCLUDE Global ID for the study - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: study_id - domain: Study - slot_uri: includedcc:study_id - identifier: true - alias: study_id - owner: Study - domain_of: - - Study - is_usage_slot: true - usage_slot_name: study_id - range: string - required: true - multivalued: false - StudyMetadata_study_id: - name: StudyMetadata_study_id - definition_uri: https://includedcc.org/include-access-model/study_id - description: INCLUDE Global ID for the study - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: study_id - domain: StudyMetadata - slot_uri: includedcc:study_id - identifier: true - alias: study_id - owner: StudyMetadata - domain_of: - - StudyMetadata - is_usage_slot: true - usage_slot_name: study_id - range: Study - required: true - multivalued: false - StudyMetadata_data_category: - name: StudyMetadata_data_category - definition_uri: https://includedcc.org/include-access-model/data_category - description: General category of data in this Record (e.g. Clinical, Genomics, - etc) - title: Data Category - from_schema: https://includedcc.org/include-access-model - is_a: data_category - domain: StudyMetadata - slot_uri: includedcc:data_category - alias: data_category - owner: StudyMetadata - domain_of: - - StudyMetadata - is_usage_slot: true - usage_slot_name: data_category - range: EnumDataCategory - required: true - multivalued: true - DOI_do_id: - name: DOI_do_id - definition_uri: https://includedcc.org/include-access-model/do_id - description: Digital Object Identifier (DOI) for this Record. - title: DOI - from_schema: https://includedcc.org/include-access-model - is_a: do_id - domain: DOI - slot_uri: includedcc:do_id - identifier: true - alias: do_id - owner: DOI - domain_of: - - DOI - is_usage_slot: true - usage_slot_name: do_id - range: string - required: true - multivalued: false - Subject_subject_id: - name: Subject_subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: subject_id - domain: Subject - slot_uri: includedcc:subject_id - identifier: true - alias: subject_id - owner: Subject - domain_of: - - Subject - is_usage_slot: true - usage_slot_name: subject_id - range: string - required: true - multivalued: false - Demographics_subject_id: - name: Demographics_subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: subject_id - domain: Demographics - slot_uri: includedcc:subject_id - identifier: true - alias: subject_id - owner: Demographics - domain_of: - - Demographics - is_usage_slot: true - usage_slot_name: subject_id - range: Subject - required: true - multivalued: false - SubjectAssertion_assertion_id: - name: SubjectAssertion_assertion_id - definition_uri: https://includedcc.org/include-access-model/assertion_id - description: INCLUDE Global ID for the Assertion - title: Assertion ID - from_schema: https://includedcc.org/include-access-model - is_a: assertion_id - domain: SubjectAssertion - slot_uri: includedcc:assertion_id - identifier: true - alias: assertion_id - owner: SubjectAssertion - domain_of: - - SubjectAssertion - is_usage_slot: true - usage_slot_name: assertion_id - range: string - required: true - multivalued: false - Concept_concept_curie: - name: Concept_concept_curie - definition_uri: https://includedcc.org/include-access-model/concept_curie - description: The standardized curie for the term. - title: Concept Curie - from_schema: https://includedcc.org/include-access-model - is_a: concept_curie - domain: Concept - slot_uri: includedcc:concept_curie - identifier: true - alias: concept_curie - owner: Concept - domain_of: - - Concept - is_usage_slot: true - usage_slot_name: concept_curie - range: uriorcurie - required: true - Sample_sample_id: - name: Sample_sample_id - definition_uri: https://includedcc.org/include-access-model/sample_id - description: The unique identifier for this Sample. - title: Sample ID - from_schema: https://includedcc.org/include-access-model - is_a: sample_id - domain: Sample - slot_uri: includedcc:sample_id - identifier: true - alias: sample_id - owner: Sample - domain_of: - - Sample - is_usage_slot: true - usage_slot_name: sample_id - range: string - required: true - Sample_biospecimen_collection_id: - name: Sample_biospecimen_collection_id - definition_uri: https://includedcc.org/include-access-model/biospecimen_collection_id - description: Biospecimen Collection during which this sample was generated. - title: Biospecimen Collection ID - from_schema: https://includedcc.org/include-access-model - is_a: biospecimen_collection_id - domain: Sample - slot_uri: includedcc:biospecimen_collection_id - alias: biospecimen_collection_id - owner: Sample - domain_of: - - Sample - is_usage_slot: true - usage_slot_name: biospecimen_collection_id - range: BiospecimenCollection - BiospecimenCollection_biospecimen_collection_id: - name: BiospecimenCollection_biospecimen_collection_id - definition_uri: https://includedcc.org/include-access-model/biospecimen_collection_id - description: Unique identifier for this Biospecimen Collection. - title: Biospecimen Collection ID - from_schema: https://includedcc.org/include-access-model - is_a: biospecimen_collection_id - domain: BiospecimenCollection - slot_uri: includedcc:biospecimen_collection_id - identifier: true - alias: biospecimen_collection_id - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - is_usage_slot: true - usage_slot_name: biospecimen_collection_id - range: string - required: true - Aliquot_aliquot_id: - name: Aliquot_aliquot_id - definition_uri: https://includedcc.org/include-access-model/aliquot_id - description: Unique identifier for an Aliquot. - title: Aliquot ID - from_schema: https://includedcc.org/include-access-model - is_a: aliquot_id - domain: Aliquot - slot_uri: includedcc:aliquot_id - identifier: true - alias: aliquot_id - owner: Aliquot - domain_of: - - Aliquot - is_usage_slot: true - usage_slot_name: aliquot_id - range: string - required: true - Encounter_encounter_id: - name: Encounter_encounter_id - definition_uri: https://includedcc.org/include-access-model/encounter_id - description: Unique identifier for this Encounter. - title: Encounter ID - from_schema: https://includedcc.org/include-access-model - is_a: encounter_id - domain: Encounter - slot_uri: includedcc:encounter_id - identifier: true - alias: encounter_id - owner: Encounter - domain_of: - - Encounter - is_usage_slot: true - usage_slot_name: encounter_id - range: string - required: true - EncounterDefinition_encounter_definition_id: - name: EncounterDefinition_encounter_definition_id - definition_uri: https://includedcc.org/include-access-model/encounter_definition_id - description: Unique identifier for this Encounter Definition. - title: Encounter Definition ID - from_schema: https://includedcc.org/include-access-model - is_a: encounter_definition_id - domain: EncounterDefinition - slot_uri: includedcc:encounter_definition_id - identifier: true - alias: encounter_definition_id - owner: EncounterDefinition - domain_of: - - EncounterDefinition - is_usage_slot: true - usage_slot_name: encounter_definition_id - range: string - required: true - EncounterDefinition_activity_definition_id: - name: EncounterDefinition_activity_definition_id - definition_uri: https://includedcc.org/include-access-model/activity_definition_id - description: Unique identifier for this Activity Definition. - title: Activity Definition ID - from_schema: https://includedcc.org/include-access-model - is_a: activity_definition_id - domain: EncounterDefinition - slot_uri: includedcc:activity_definition_id - alias: activity_definition_id - owner: EncounterDefinition - domain_of: - - EncounterDefinition - is_usage_slot: true - usage_slot_name: activity_definition_id - range: ActivityDefinition - multivalued: true - ActivityDefinition_activity_definition_id: - name: ActivityDefinition_activity_definition_id - definition_uri: https://includedcc.org/include-access-model/activity_definition_id - description: Unique identifier for this Activity Definition. - title: Activity Definition ID - from_schema: https://includedcc.org/include-access-model - is_a: activity_definition_id - domain: ActivityDefinition - slot_uri: includedcc:activity_definition_id - identifier: true - alias: activity_definition_id - owner: ActivityDefinition - domain_of: - - ActivityDefinition - is_usage_slot: true - usage_slot_name: activity_definition_id - range: string - required: true - File_file_id: - name: File_file_id - definition_uri: https://includedcc.org/include-access-model/file_id - description: Unique identifier for this File. - title: File ID - from_schema: https://includedcc.org/include-access-model - is_a: file_id - domain: File - slot_uri: includedcc:file_id - identifier: true - alias: file_id - owner: File - domain_of: - - File - is_usage_slot: true - usage_slot_name: file_id - range: string - required: true - File_subject_id: - name: File_subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: subject_id - domain: File - slot_uri: includedcc:subject_id - alias: subject_id - owner: File - domain_of: - - File - is_usage_slot: true - usage_slot_name: subject_id - range: Subject - multivalued: true - File_sample_id: - name: File_sample_id - definition_uri: https://includedcc.org/include-access-model/sample_id - description: The unique identifier for this Sample. - title: Sample ID - from_schema: https://includedcc.org/include-access-model - is_a: sample_id - domain: File - slot_uri: includedcc:sample_id - alias: sample_id - owner: File - domain_of: - - File - is_usage_slot: true - usage_slot_name: sample_id - range: Sample - multivalued: true -classes: - Record: - name: Record - definition_uri: https://includedcc.org/include-access-model/Record - description: One row / entity within the database - title: Record - from_schema: https://includedcc.org/include-access-model - abstract: true - slots: - - external_id - class_uri: includedcc:Record - Study: - name: Study - definition_uri: https://includedcc.org/include-access-model/Study - description: Study Metadata - title: Study - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Study_study_id - - parent_study - - study_title - - study_code - - study_short_name - - program - - funding_source - - principal_investigator - - contact - - study_description - - website - - publication - - acknowledgments - - citation_statement - - do_id - slot_usage: - study_id: - name: study_id - identifier: true - range: string - required: true - class_uri: includedcc:Study - StudyMetadata: - name: StudyMetadata - definition_uri: https://includedcc.org/include-access-model/StudyMetadata - description: Additional features about studies that may not apply to all studies - title: Study Metadata - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - StudyMetadata_study_id - - participant_lifespan_stage - - selection_criteria - - study_design - - clinical_data_source_type - - StudyMetadata_data_category - - vbr - - research_domain - - expected_number_of_participants - - actual_number_of_participants - slot_usage: - study_id: - name: study_id - identifier: true - required: true - data_category: - name: data_category - required: true - multivalued: true - class_uri: includedcc:StudyMetadata - VirtualBiorepository: - name: VirtualBiorepository - definition_uri: https://includedcc.org/include-access-model/VirtualBiorepository - description: An organization that can provide access to specimen for further analysis. - title: Virtual BioRepository (VBR) - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - name - - institution - - contact - - website - - vbr_readme - class_uri: includedcc:VirtualBiorepository - DOI: - name: DOI - definition_uri: https://includedcc.org/include-access-model/DOI - description: A DOI is a permanent reference with metadata about a digital object. - title: Digital Object Identifier (DOI) - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - DOI_do_id - - bibliographic_reference - slot_usage: - do_id: - name: do_id - identifier: true - range: string - required: true - class_uri: includedcc:DOI - Investigator: - name: Investigator - definition_uri: https://includedcc.org/include-access-model/Investigator - description: An individual who made contributions to the collection, analysis, - or sharing of data. - title: Investigator - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - name - - institution - - investigator_title - - email - class_uri: includedcc:Investigator - Publication: - name: Publication - definition_uri: https://includedcc.org/include-access-model/Publication - description: Information about a specific publication. - title: Publication - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - bibliographic_reference - - website - class_uri: includedcc:Publication - Subject: - name: Subject - definition_uri: https://includedcc.org/include-access-model/Subject - description: This entity is the subject about which data or references are recorded. - This includes the idea of a human participant in a study, a cell line, an animal - model, or any other similar entity. - title: Subject - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Subject_subject_id - - subject_type - - organism_type - slot_usage: - subject_id: - name: subject_id - identifier: true - range: string - required: true - class_uri: includedcc:Subject - Demographics: - name: Demographics - definition_uri: https://includedcc.org/include-access-model/Demographics - description: Basic participant demographics summary - title: Demographics - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Demographics_subject_id - - sex - - race - - ethnicity - - down_syndrome_status - - age_at_last_vital_status - - vital_status - - age_at_first_engagement - slot_usage: - subject_id: - name: subject_id - identifier: true - required: true - class_uri: includedcc:Demographics - SubjectAssertion: - name: SubjectAssertion - definition_uri: https://includedcc.org/include-access-model/SubjectAssertion - description: Assertion about a particular Subject. May include Conditions, Measurements, - etc. - title: Subject Assertion - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - SubjectAssertion_assertion_id - - subject_id - - encounter_id - - assertion_provenance - - age_at_assertion - - age_at_event - - age_at_resolution - - concept - - concept_source - - value_concept - - value_number - - value_source - - value_unit - - value_unit_source - slot_usage: - assertion_id: - name: assertion_id - identifier: true - range: string - required: true - class_uri: includedcc:SubjectAssertion - Concept: - name: Concept - definition_uri: https://includedcc.org/include-access-model/Concept - description: A standardized concept with display information. - title: Concept - from_schema: https://includedcc.org/include-access-model - slots: - - Concept_concept_curie - - display - slot_usage: - concept_curie: - name: concept_curie - identifier: true - required: true - class_uri: includedcc:Concept - Sample: - name: Sample - definition_uri: https://includedcc.org/include-access-model/Sample - description: A functionally equivalent specimen taken from a participant or processed - from such a sample. - title: Sample - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Sample_sample_id - - Sample_biospecimen_collection_id - - parent_sample_id - - sample_type - - processing - - availablity_status - - storage_method - - quantity_number - - quantity_unit - slot_usage: - sample_id: - name: sample_id - identifier: true - range: string - required: true - biospecimen_collection_id: - name: biospecimen_collection_id - description: Biospecimen Collection during which this sample was generated. - class_uri: includedcc:Sample - BiospecimenCollection: - name: BiospecimenCollection - definition_uri: https://includedcc.org/include-access-model/BiospecimenCollection - description: A biospecimen collection event which yields one or more Samples. - title: BiospecimenCollection - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - BiospecimenCollection_biospecimen_collection_id - - age_at_collection - - method - - site - - spatial_qualifier - - laterality - - encounter_id - slot_usage: - biospecimen_collection_id: - name: biospecimen_collection_id - identifier: true - range: string - required: true - class_uri: includedcc:BiospecimenCollection - Aliquot: - name: Aliquot - definition_uri: https://includedcc.org/include-access-model/Aliquot - description: A specific tube or amount of a biospecimen associated with a Sample. - title: Aliquot - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Aliquot_aliquot_id - - sample_id - - availablity_status - - quantity_number - - quantity_unit - - concentration_number - - concentration_unit - slot_usage: - aliquot_id: - name: aliquot_id - identifier: true - range: string - required: true - class_uri: includedcc:Aliquot - Encounter: - name: Encounter - definition_uri: https://includedcc.org/include-access-model/Encounter - description: An event at which data was collected about a participant, an intervention - was made, or information about a participant was recorded. - title: Participant Encounter - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Encounter_encounter_id - - subject_id - - encounter_definition_id - - age_at_event - slot_usage: - encounter_id: - name: encounter_id - identifier: true - range: string - required: true - class_uri: includedcc:Encounter - EncounterDefinition: - name: EncounterDefinition - definition_uri: https://includedcc.org/include-access-model/EncounterDefinition - description: A definition of an encounter type in this study, ie, an event at - which data was collected about a participant, an intervention was made, or information - about a participant was recorded. This may be something planned by a study or - a type of data collection. - title: Encounter Definition - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - EncounterDefinition_encounter_definition_id - - name - - description - - EncounterDefinition_activity_definition_id - slot_usage: - encounter_definition_id: - name: encounter_definition_id - identifier: true - range: string - required: true - activity_definition_id: - name: activity_definition_id - multivalued: true - class_uri: includedcc:EncounterDefinition - ActivityDefinition: - name: ActivityDefinition - definition_uri: https://includedcc.org/include-access-model/ActivityDefinition - description: A definition of an activity in this study, eg, a biospecimen collection, - intervention, survey, or assessment. - title: Activity Definition - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - ActivityDefinition_activity_definition_id - - name - - description - slot_usage: - activity_definition_id: - name: activity_definition_id - identifier: true - range: string - required: true - class_uri: includedcc:ActivityDefinition - File: - name: File - definition_uri: https://includedcc.org/include-access-model/File - description: File - title: File - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - File_file_id - - File_subject_id - - File_sample_id - - filename - - format - - data_category - - data_type - - format - - size - - staging_url - - release_url - - drs_uri - - hash - slot_usage: - file_id: - name: file_id - identifier: true - range: string - required: true - subject_id: - name: subject_id - multivalued: true - sample_id: - name: sample_id - multivalued: true - class_uri: includedcc:File - FileHash: - name: FileHash - definition_uri: https://includedcc.org/include-access-model/FileHash - description: Type and value of a file content hash. - title: File Hash - from_schema: https://includedcc.org/include-access-model - slots: - - hash_type - - hash_value - class_uri: includedcc:FileHash -metamodel_version: 1.7.0 -source_file: include_access_model.yaml -source_file_date: '2026-03-09T16:30:20' -source_file_size: 35097 -generation_date: '2026-03-09T16:31:10' - diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 4b3a8dc..38e6459 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -310,23 +310,120 @@ classes: identifier: true File: title: File - description: An object and its metadata that exists in s3. + # subset of info; ideally pulls from a file universe table and some kind of assay table + description: Required information for portal use. is_a: Record slots: + - study_id + description: unique global study identifier file belongs to - file_id + description: unique file identifier assigned to a file - subject_id # do we need both a subject and sample id in this table? - sample_id + - s3_file_path # can name this url if more appropriate + description: full s3 url of an file's location in aws - file_name + - size - format - - data_category # might be better suited for the assay model - - data_type # same as ^ + - data_category + - data_type + - experimental_strategy + - acl + description: access control list for the file + - access_type + description: notes wheter a file is controlled, open, or registered-tier access + - access_url + - drs_uri + - is_released # maybe can leave this out? should only release ready data be in this model? + description: notes whether a file has been released to the public + - is_registered + description: notes whether a file has been registered to a drs service + - repository + description: name of drs service files are registered to + - hash + description: file hash value - # below are the file fields d3b use from automatic file inventorying in aws; many fields decscibe object metadata + slot_usage: + study_id: + range: string + required: true + identifier: true + file_id: + range: string + required: true + identifier: true + subject_id: + multivalued: true + sample_id: + multivalued: true + file_name: + range: string + required: true + format: + range: string + required: true + size: + range: integer + required: true + s3_file_path: + range: string + required: true + hash: + range: + required: true + access_url: + range: string + required: false + drs_uri: + range: string + required: false + data_category: + range: string + required: true + data_type: + range: string + required: true + experimental_strategy: + range: string + required: true + access_type: + range: string + required: true + is_released: + range: boolean + required: true + is_registered: + range: boolean + required: true + repository: + range: string + required: true + access_url: + range: string + required: true + + FileHash: + title: File Hash + description: Type and value of a file content hash. + slots: + - hash_type + - hash_value + + FileAdmin: # names are TBD; can change - idea is this is operational or file universe model + title: File Admin + description: File unvierse; contains all information about a file that may be needed for operational work + slots: + - study_id + description: unique global study identifier file belongs to + - file_id + description: unique file identifier assigned to a file + - subject_id # do we need both a subject and sample id in this table? + - sample_id + - s3_file_path # can name this url if more appropriate + description: full s3 url of an file's location in aws - file_category description: a high level classfication of the file (e.g., omics file, imaging file) - size - - s3_file_path # can name this url if more appropriate - description: full s3 url of an file's location in aws - s3_key - file_extension - data_transfer_id @@ -344,14 +441,9 @@ classes: description: notes whether a file has been deleted from s3 - is_latest - storage_class - - hash - manifest_hash_value - file_hash_validation_status - file_type - - access_url - - drs_uri - - # not sure if these are actual useful - but are in the d3b model - encryption_status - is_multipart_uploaded - object_lock_leval_hold_status @@ -359,45 +451,39 @@ classes: - object_lock_retain_until_date - replication_status - version_id + - staging_url + description: s3 location of a file before its made public + - release_url + description: production location of a publically available file + - hash + description: file hash value + - access_type + description: notes wheter a file is controlled, open, or registered-tier access + - access_url + description: + - drs_uri + - acl + description: access control list for the file + - is_released + description: notes whether a file has been released to the public + - is_registered + description: notes whether a file has been registered to a drs service + - repository + description: name of drs service files are registered to + - experiment_strategy - # new proposed fields - - is_released - description: notes whether a file has been released to the public - - is_registered - description: notes whether a file has been registered to a drs service - - - -#TODO: I'm not convinced this is the right strategy- access model vs operations -# this might be good to have in a separate model for drs management - # - staging_url - # - release_url - # - drs_uri - # - hash - slot_usage: - file_id: - range: string - required: true - identifier: true - subject_id: - multivalued: true - sample_id: - multivalued: true - file_name: + slot_usage: + study_id: range: string required: true - format: + identifier: true + file_id: range: string required: true - file_category: + identifier: true + file_category: range: string required: true - size: - range: integer - required: true - s3_file_path: - range: string - required: true s3_key: range: string required: true @@ -440,9 +526,6 @@ classes: storage_class: range: string required: true - hash: - range: - required: true manifest_hash_value: range: required: false @@ -452,45 +535,6 @@ classes: file_type: range: string required: true - access_url: - range: string - required: false - drs_uri: - range: string - required: false - - FileHash: - title: File Hash - description: Type and value of a file content hash. - slots: - - hash_type - - hash_value - - FileDrs: - title: File DRS - description: Access control information for files accessed through a DRS service. - slots: - - file_id - description: unique file identifier assigned to a file - - staging_url - description: s3 location of a file before its made public - - release_url - description: production location of a publically available file - - hash - description: file hash value - - access_type - description: notes wheter a file is controlled, open, or registered-tier access - - access_url - description: - - drs_uri - - acl - description: access control list for the file - - slot_usage: - file_id: - range: string - required: true - identifier: true staging_url: range: string required: true @@ -510,6 +554,24 @@ classes: range: string required: true multivalued: true + repository: + range: string + required: true + is_released: + range: boolean + required: true + is_registered: + range: boolean + required: true + experimental_strategy: + range: string + required: true + data_category: + range: string + required: true + data_type: + range: string + required: true From 93f9b1790c5ac80eaf914d5482aad4e9769a9f03 Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Thu, 26 Mar 2026 11:38:23 -0400 Subject: [PATCH 04/20] =?UTF-8?q?=F0=9F=9A=A7=20Working=20on=20assay=20mod?= =?UTF-8?q?el?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schema/include_access_model.yaml | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 38e6459..afdd81a 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -336,7 +336,7 @@ classes: - drs_uri - is_released # maybe can leave this out? should only release ready data be in this model? description: notes whether a file has been released to the public - - is_registered + - is_registered # maybe can leave this out? should only drs registered data be in this model? description: notes whether a file has been registered to a drs service - repository description: name of drs service files are registered to @@ -535,6 +535,9 @@ classes: file_type: range: string required: true + size: + range: integer + required: true staging_url: range: string required: true @@ -569,10 +572,66 @@ classes: data_category: range: string required: true + description: high-level category of the data used for filtering data_type: range: string required: true + FileAssay: + title: File Assay + # for now group all types into one table; but we may want to split out since different + # assay types collect different types of information + # this is a basic model + description: A file produced by or associated with an assay or data + acquisition process including omics, imaging, actigraphy, and other experimental or observational data. + slots: + file_id: + range: string + required: true + identifier: true + subject_id: + range: string + required: true + sample_id: + range: string + required: true + data_category: + range: string + required: true + description: high-level category of the data used for filtering + experimental_strategy: + range: string + required: true + descirption: method or assay used to generate the data + data_type: + range: string + required: true + description: specific type of data contained in the file + format: + range: string + required: true + size: + range: integer + required: true + access_type: + range: string + required: true + assay_center: + range: string + required: false + description: the organization or center that generated the file + platform: + range: string + required: false + description: instrument or platform family name + workflow_name: + range: string + required: false + description: processing tool that produced the file + workflow_version: + range: string + required: false + slots: From fe360b3ed995da1fe45bbe12bdcbaf4b0a7479df Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Thu, 26 Mar 2026 11:45:50 -0400 Subject: [PATCH 05/20] =?UTF-8?q?=F0=9F=92=A1=20Updating=20comments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/include_access_model/schema/include_access_model.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index afdd81a..5db89ef 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -410,6 +410,7 @@ classes: - hash_value FileAdmin: # names are TBD; can change - idea is this is operational or file universe model + # probs doesn't go into the "access model" - but here is what could go there title: File Admin description: File unvierse; contains all information about a file that may be needed for operational work slots: From 51ef4a01bd28c425434e9559869ea9699c693b3e Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Thu, 2 Apr 2026 09:30:39 -0400 Subject: [PATCH 06/20] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Move=20to=20global?= =?UTF-8?q?=20slots?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schema/include_access_model.yaml | 286 +++++++++++------- 1 file changed, 178 insertions(+), 108 deletions(-) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 35a50c0..5c20543 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -313,14 +313,11 @@ classes: is_a: Record slots: - study_id - description: unique global study identifier file belongs to - file_id - description: unique file identifier assigned to a file - subject_id # do we need both a subject and sample id in this table? - sample_id - s3_file_path # can name this url if more appropriate - description: full s3 url of an file's location in aws - - file_name + - filename - size - format - data_category @@ -331,72 +328,50 @@ classes: - staging_url - release_url - drs_uri - - is_released # maybe can leave this out? should only release ready data be in this model? - description: notes whether a file has been released to the public - - is_registered # maybe can leave this out? should only drs registered data be in this model? - description: notes whether a file has been registered to a drs service - - repository - description: name of drs service files are registered to - hash - description: file hash value slot_usage: study_id: - range: string required: true identifier: true file_id: - range: string required: true identifier: true subject_id: - multivalued: true + required: true + multivalued: true sample_id: + required: true multivalued: true file_name: - range: string required: true format: - range: string required: true size: - range: integer required: true s3_file_path: - range: string required: true hash: - range: required: true access_url: - range: string required: false drs_uri: - range: string required: false data_category: - range: string required: true data_type: - range: string required: true experimental_strategy: - range: string required: true access_type: - range: string required: true is_released: - range: boolean required: true is_registered: - range: boolean required: true repository: - range: string required: true access_url: - range: string required: true FileHash: @@ -435,31 +410,24 @@ FileAdmin: # names are TBD; can change - idea is this is operational or file uni description: File unvierse; contains all information about a file that may be needed for operational work slots: - study_id - description: unique global study identifier file belongs to - file_id - description: unique file identifier assigned to a file - subject_id # do we need both a subject and sample id in this table? - sample_id - s3_file_path # can name this url if more appropriate - description: full s3 url of an file's location in aws - file_category - description: a high level classfication of the file (e.g., omics file, imaging file) - size - s3_key - file_extension - data_transfer_id - description: jira ticket number associated with a file transfer request to production bucket - aws_account_id - account_name - account_alias - bucket_study_id - description: global study ID used to create the bucket - bucket - s3_created_at - s3_modified_at - intelligent_tiering_access - is_delete_marker - description: notes whether a file has been deleted from s3 - is_latest - storage_class - manifest_hash_value @@ -467,135 +435,91 @@ FileAdmin: # names are TBD; can change - idea is this is operational or file uni - file_type - encryption_status - is_multipart_uploaded - - object_lock_leval_hold_status + - object_lock_level_hold_status - object_lock_mode - object_lock_retain_until_date - replication_status - version_id - staging_url - description: s3 location of a file before its made public - release_url - description: production location of a publically available file - hash - description: file hash value - access_type - description: notes wheter a file is controlled, open, or registered-tier access - access_url - description: - drs_uri - acl - description: access control list for the file - is_released - description: notes whether a file has been released to the public - is_registered - description: notes whether a file has been registered to a drs service - repository - description: name of drs service files are registered to - experiment_strategy slot_usage: study_id: - range: string required: true - identifier: true file_id: - range: string required: true identifier: true file_category: - range: string required: true s3_key: - range: string required: true file_extension: - range: string required: true data_transfer_id: - range: string required: false aws_account_id: - range: string required: true account_name: - range: string required: true account_alias: - range: string required: true bucket_study_id: - range: string - required: false + required: true bucket: - range: string - required: false + required: true s3_created_at: - range: date required: true s3_modified_at: - range: date required: true intelligent_tiering_access: - range: string required: true is_delete_marker: - range: boolean required: true is_latest: - range: boolean required: true storage_class: - range: string required: true manifest_hash_value: - range: required: false file_hash_validation_status: - range: string required: false file_type: - range: string required: true size: - range: integer required: true staging_url: - range: string required: true release_url: - range: string required: true hash: - range: required: true access_type: - range: string required: true access_url: - range: string requried: true acl: - range: string required: true multivalued: true repository: - range: string required: true is_released: - range: boolean required: true is_registered: - range: boolean required: true experimental_strategy: - range: string required: true data_category: - range: string required: true - description: high-level category of the data used for filtering data_type: - range: string required: true FileAssay: @@ -606,52 +530,50 @@ FileAdmin: # names are TBD; can change - idea is this is operational or file uni description: A file produced by or associated with an assay or data acquisition process including omics, imaging, actigraphy, and other experimental or observational data. slots: + - file_id + - subject_id + - sample_id + - data_category + - experimental_strategy + - data_type + - format + - size + - access_type + - assay_center + - platform + - workflow_name + - workflow_version + + slot_usage: file_id: - range: string required: true identifier: true subject_id: - range: string required: true + multivalued: true sample_id: - range: string required: true + multivalued: true data_category: - range: string required: true - description: high-level category of the data used for filtering experimental_strategy: - range: string required: true - descirption: method or assay used to generate the data data_type: - range: string required: true - description: specific type of data contained in the file format: - range: string required: true size: - range: integer required: true access_type: - range: string required: true assay_center: - range: string - required: false - description: the organization or center that generated the file - platform: - range: string - required: false - description: instrument or platform family name - workflow_name: - range: string - required: false - description: processing tool that produced the file + required: true + platform: + required: true + workflow_name: + required: true workflow_version: - range: string - required: false + required: true slots: study_id: @@ -1085,6 +1007,154 @@ slots: description: The date that data collection started. May include only a year. #TODO: We could re-evaluate these as dates, but that may be too implementation specific range: string + s3_file_path: + title: S3 File Path + description: The full s3 url of a file's location in aws + range: string + is_released: + title: Is Released + description: A flag that notes whether a file has been released to the public + range: boolean + is_registered: + title: Is Registered + description: A flag that notes whether a file has been registered to a drs service + range: boolean + repository: + title: Repository + description: The name of the drs service which files are registered to + range: string + file_category: + title: File Category + description: A high level classification of the file + range: string + s3_key: + title: S3 Key + description: The unique identifier for an object within a bucket + range: string + file_extension: + title: File Extension + description: A 3-4 letter code at the end of a filename that identifies the file format. + range: string + data_transfer_id: + title: Data Transfer ID + description: A jira ticket number associated with a file transfer request to production bucket + range: string + aws_account_id: + title: AWS Account ID + description: A 12-digit number that uniquely identifies a specific AWS account + range: string + account_name: + title: AWS Account Name + description: A user-defined label used to define an AWS accoun. + range: string + account_alias: + title: Account Alias + description: A unique user-defined string that replaces the AWS Account ID in the IAM user sign-in URL + range: string + bucket_study_id: + title: Bucket Study ID + description: The global study ID used to create the bucket + range: string + bucket: + title: Bucket + description: Cloud storage container in AWS used to manage and store s3 objects + range: string + s3_created_at: + title: S3 Created At + description: Timestamp of when a file was uploaded to an s3 bucket. + range: datetime + s3_modified_at: + title: S3 Modified At + description: Timestamp of when a file was modified in an s3 bucket. + range: datetime + intelligent_tiering_access_tier: + title: Intelligent Tiering Access Tier + description: Storage access tier assigned by AWS intelliegnt tiering, indicating the current access frequency classification of the object + range: string + is_delete_marker: + title: Is Delete Marker + description: A flag that notes whether a file has been deleted from s3 + range: boolean + is_latest: + title: Is Latest + description: Specifies whether an object version is the most recent version of that object + range: boolean + storage_class: + title: Storage Class + description: Storage tier of the object in AWS reflecting cost and access characteristics. + range: string + manifest_hash_value: + title: Manifest Hash Value + description: The provided hash value from external users to be validated against internal hash values + range: string + file_hash_validation_status: + title: File Hash Validation Status + description: Notes whether hashes have been generated and verified against manifest hash values. + range: string + file_type: + title: File Type + description: Type or classification of the files based on its format and usuage. + range: string + encryption_status: + title: Encryption Status + description: Indicates whether the object in AWS is encrypted and the type of encryption applied. + range: string + is_multipart_uploaded: + title: Is Multipart Uploaded + description: Indicates whether the object was uploaded using a multipart upload process. + range: string + object_lock_level_hold_status: + title: Object Lock Level Hold Status + description: Whether a legal hold is applied to prevent deletion of the object. + range: string + object_lock_mode: + title: Object Lock Mode + description: Retention mode applied to the object that restricts deletion or modification. + range: string + replication_status: + title: Replication Status + description: Status of the object's replication to another storage location. + range: string + version_id: + title: Version ID + description: Identifier for a specific version of the object + range: + access_type: + title: Access Type + description: Notes wheter a file is controlled, open, or registered-tier access + range: string + access_url: + title: Access URL + description: HTTPS endpoint for accessing a file via a specific data repository service. + range: string + acl: + title: ACL + description: The object access control list. + range: string + experiment_strategy: + title: Experiment Strategy + description: Method or assay used to generate the data + range: string + assay_center: + title: Assay Center + description: The organization or center that generated the file + range: + platform: + title: Platform + description: Instrument or platform family name + range: + workflow_name: + title: Workflow Name + description: Processing tool that produced the file + range: + workflow_version: + title: Workflow Version + description: Version of the process tool that produced the file + range: + + + + enums: EnumProgram: From 51b528d8dd631fb46e43d81e2735c32d7f40f3aa Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Thu, 2 Apr 2026 09:53:08 -0400 Subject: [PATCH 07/20] =?UTF-8?q?=E2=9C=A8=20Fixing=20errors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schema/include_access_model.yaml | 174 ++++++------------ 1 file changed, 55 insertions(+), 119 deletions(-) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 5c20543..bd0160c 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -333,7 +333,6 @@ classes: slot_usage: study_id: required: true - identifier: true file_id: required: true identifier: true @@ -343,36 +342,8 @@ classes: sample_id: required: true multivalued: true - file_name: - required: true - format: - required: true - size: - required: true - s3_file_path: - required: true - hash: + data_category: required: true - access_url: - required: false - drs_uri: - required: false - data_category: - required: true - data_type: - required: true - experimental_strategy: - required: true - access_type: - required: true - is_released: - required: true - is_registered: - required: true - repository: - required: true - access_url: - required: true FileHash: title: File Hash @@ -458,69 +429,6 @@ FileAdmin: # names are TBD; can change - idea is this is operational or file uni file_id: required: true identifier: true - file_category: - required: true - s3_key: - required: true - file_extension: - required: true - data_transfer_id: - required: false - aws_account_id: - required: true - account_name: - required: true - account_alias: - required: true - bucket_study_id: - required: true - bucket: - required: true - s3_created_at: - required: true - s3_modified_at: - required: true - intelligent_tiering_access: - required: true - is_delete_marker: - required: true - is_latest: - required: true - storage_class: - required: true - manifest_hash_value: - required: false - file_hash_validation_status: - required: false - file_type: - required: true - size: - required: true - staging_url: - required: true - release_url: - required: true - hash: - required: true - access_type: - required: true - access_url: - requried: true - acl: - required: true - multivalued: true - repository: - required: true - is_released: - required: true - is_registered: - required: true - experimental_strategy: - required: true - data_category: - required: true - data_type: - required: true FileAssay: title: File Assay @@ -555,24 +463,6 @@ FileAdmin: # names are TBD; can change - idea is this is operational or file uni required: true multivalued: true data_category: - required: true - experimental_strategy: - required: true - data_type: - required: true - format: - required: true - size: - required: true - access_type: - required: true - assay_center: - required: true - platform: - required: true - workflow_name: - required: true - workflow_version: required: true slots: @@ -955,44 +845,54 @@ slots: title: Filename description: The name of the file. range: string + requied: true format: title: File Format description: The format of the file. range: EnumEDAMFormats + required: true data_type: title: Data Type description: The type of data within this file. range: EnumEDAMDataTypes + required: true size: title: File Size description: Size of the file, in Bytes. range: integer unit: - ucum_code: By + ucum_code: By + required: true staging_url: title: Staging Location description: URL for internal access to the data. May be temporary. range: uriorcurie + required: false release_url: title: Release Location description: URL for controlled or open access to the data. range: uriorcurie + required: false drs_uri: title: DRS URI description: DRS location to access the data. range: uriorcurie + required: false hash: title: File Hash description: File hash information range: FileHash + required: true hash_type: title: File Hash Type description: The type of file hash, eg, md5 range: EnumFileHashType + required: true hash_value: title: File Hash Value description: The value of the file hash range: string + required: true dataset_id: title: Dataset ID description: Unique identifier for a Dataset. @@ -1011,146 +911,182 @@ slots: title: S3 File Path description: The full s3 url of a file's location in aws range: string + required: true is_released: title: Is Released description: A flag that notes whether a file has been released to the public range: boolean + required: true is_registered: title: Is Registered description: A flag that notes whether a file has been registered to a drs service range: boolean + required: true repository: title: Repository description: The name of the drs service which files are registered to range: string + required: false file_category: title: File Category description: A high level classification of the file range: string + required: true s3_key: title: S3 Key description: The unique identifier for an object within a bucket range: string + required: true file_extension: title: File Extension description: A 3-4 letter code at the end of a filename that identifies the file format. range: string + required: true data_transfer_id: title: Data Transfer ID description: A jira ticket number associated with a file transfer request to production bucket range: string + required: false aws_account_id: title: AWS Account ID description: A 12-digit number that uniquely identifies a specific AWS account range: string + required: true account_name: title: AWS Account Name description: A user-defined label used to define an AWS accoun. range: string + required: true account_alias: title: Account Alias description: A unique user-defined string that replaces the AWS Account ID in the IAM user sign-in URL range: string + required: true bucket_study_id: title: Bucket Study ID description: The global study ID used to create the bucket range: string + required: true bucket: title: Bucket description: Cloud storage container in AWS used to manage and store s3 objects range: string + required: true s3_created_at: title: S3 Created At description: Timestamp of when a file was uploaded to an s3 bucket. range: datetime + required: true s3_modified_at: title: S3 Modified At description: Timestamp of when a file was modified in an s3 bucket. range: datetime + required: true intelligent_tiering_access_tier: title: Intelligent Tiering Access Tier description: Storage access tier assigned by AWS intelliegnt tiering, indicating the current access frequency classification of the object range: string + required: true is_delete_marker: title: Is Delete Marker description: A flag that notes whether a file has been deleted from s3 range: boolean + required: true is_latest: title: Is Latest description: Specifies whether an object version is the most recent version of that object range: boolean + required: true storage_class: title: Storage Class description: Storage tier of the object in AWS reflecting cost and access characteristics. range: string + required: true manifest_hash_value: title: Manifest Hash Value description: The provided hash value from external users to be validated against internal hash values range: string + required: false file_hash_validation_status: title: File Hash Validation Status description: Notes whether hashes have been generated and verified against manifest hash values. range: string + required: false file_type: title: File Type description: Type or classification of the files based on its format and usuage. range: string + required: true encryption_status: title: Encryption Status description: Indicates whether the object in AWS is encrypted and the type of encryption applied. range: string + required: true is_multipart_uploaded: title: Is Multipart Uploaded description: Indicates whether the object was uploaded using a multipart upload process. range: string + required: true object_lock_level_hold_status: title: Object Lock Level Hold Status description: Whether a legal hold is applied to prevent deletion of the object. range: string + required: true object_lock_mode: title: Object Lock Mode description: Retention mode applied to the object that restricts deletion or modification. range: string + required: true replication_status: title: Replication Status description: Status of the object's replication to another storage location. range: string + required: true version_id: title: Version ID description: Identifier for a specific version of the object - range: + range: string + required: true access_type: title: Access Type description: Notes wheter a file is controlled, open, or registered-tier access range: string + required: true access_url: title: Access URL description: HTTPS endpoint for accessing a file via a specific data repository service. range: string + required: false acl: title: ACL description: The object access control list. range: string - experiment_strategy: - title: Experiment Strategy + required: true + experimental_strategy: + title: Experimental Strategy description: Method or assay used to generate the data range: string + required: true assay_center: title: Assay Center description: The organization or center that generated the file - range: + range: string + required: false platform: title: Platform description: Instrument or platform family name - range: + range: string + required: true workflow_name: title: Workflow Name description: Processing tool that produced the file - range: + range: string + required: false workflow_version: title: Workflow Version description: Version of the process tool that produced the file - range: + range: string + required: false From c66de5cfc6471bc22f698d5cc87934a8066cca27 Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Thu, 2 Apr 2026 10:11:11 -0400 Subject: [PATCH 08/20] =?UTF-8?q?=F0=9F=90=9B=20Fixing=20errors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schema/include_access_model.yaml | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index bd0160c..b846777 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -308,7 +308,6 @@ classes: identifier: true File: title: File - # subset of info; ideally pulls from a file universe table and some kind of assay table description: Required information for portal use. is_a: Record slots: @@ -352,7 +351,7 @@ classes: - hash_type - hash_value -Dataset: + Dataset: title: Dataset description: Set of files grouped together for release. slots: @@ -375,9 +374,7 @@ Dataset: multivalued: true description: The list of files comprising this dataset. -FileAdmin: # names are TBD; can change - idea is this is operational or file universe model - # probs doesn't go into the "access model" - but here is what could go there - title: File Admin + FileAdmin: # names are TBD; can change - idea is this is operational or file universe model title: File Admin description: File unvierse; contains all information about a file that may be needed for operational work slots: - study_id @@ -397,7 +394,7 @@ FileAdmin: # names are TBD; can change - idea is this is operational or file uni - bucket - s3_created_at - s3_modified_at - - intelligent_tiering_access + - intelligent_tiering_access_tier - is_delete_marker - is_latest - storage_class @@ -421,7 +418,7 @@ FileAdmin: # names are TBD; can change - idea is this is operational or file uni - is_released - is_registered - repository - - experiment_strategy + - experimental_strategy slot_usage: study_id: @@ -432,11 +429,12 @@ FileAdmin: # names are TBD; can change - idea is this is operational or file uni FileAssay: title: File Assay - # for now group all types into one table; but we may want to split out since different - # assay types collect different types of information - # this is a basic model - description: A file produced by or associated with an assay or data - acquisition process including omics, imaging, actigraphy, and other experimental or observational data. + # for now group all types into one table; but we may want to split out since different + # assay types collect different types of information + # this is a basic model + description: A file produced by or associated with an assay + or data acquisition process including omics, imaging, + actigraphy, and other experimental or observational data. slots: - file_id - subject_id @@ -845,7 +843,7 @@ slots: title: Filename description: The name of the file. range: string - requied: true + required: true format: title: File Format description: The format of the file. @@ -1087,6 +1085,11 @@ slots: description: Version of the process tool that produced the file range: string required: false + object_lock_retain_until_date: + title: Object Lock Retain Until Date + description: Specifies exact date and time when an object's Object Lock rentention period expires. + range: datetime + required: true From 8f135bd201c300f7a6ebf3d41200c7707e1e1f24 Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Thu, 2 Apr 2026 09:40:10 -0500 Subject: [PATCH 09/20] =?UTF-8?q?=F0=9F=90=9B=20Change=20file=5Fid=20slot?= =?UTF-8?q?=20in=20file=20to=20string?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datamodel/include_access_model.py | 569 +++++++++++++++++- .../include_access_model_pydantic.py | 176 +++++- .../schema/include_access_model.yaml | 1 + 3 files changed, 686 insertions(+), 60 deletions(-) diff --git a/src/include_access_model/datamodel/include_access_model.py b/src/include_access_model/datamodel/include_access_model.py index a1be426..a807bf6 100644 --- a/src/include_access_model/datamodel/include_access_model.py +++ b/src/include_access_model/datamodel/include_access_model.py @@ -1,5 +1,5 @@ # Auto generated from include_access_model.yaml by pythongen.py version: 0.0.1 -# Generation date: 2026-03-12T11:07:16 +# Generation date: 2026-04-02T09:39:22 # Schema: include-access-model # # id: https://includedcc.org/include-access-model @@ -56,8 +56,8 @@ URIRef ) -from linkml_runtime.linkml_model.types import Float, Integer, String, Uri, Uriorcurie -from linkml_runtime.utils.metamodelcore import URI, URIorCURIE +from linkml_runtime.linkml_model.types import Boolean, Datetime, Float, Integer, String, Uri, Uriorcurie +from linkml_runtime.utils.metamodelcore import Bool, URI, URIorCURIE, XSDDateTime metamodel_version = "1.7.0" version = None @@ -145,6 +145,14 @@ class DatasetDatasetId(extended_str): pass +class FileAdminFileId(FileFileId): + pass + + +class FileAssayFileId(FileFileId): + pass + + @dataclass(repr=False) class Record(YAMLRoot): """ @@ -913,7 +921,7 @@ def __post_init__(self, *_: str, **kwargs: Any): @dataclass(repr=False) class File(Record): """ - File + Required information for portal use. """ _inherited_slots: ClassVar[list[str]] = [] @@ -923,17 +931,19 @@ class File(Record): class_model_uri: ClassVar[URIRef] = INCLUDEDCC.File file_id: Union[str, FileFileId] = None - subject_id: Optional[Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]]] = empty_list() - sample_id: Optional[Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]]] = empty_list() - filename: Optional[str] = None - format: Optional[Union[str, "EnumEDAMFormats"]] = None - data_category: Optional[Union[str, "EnumDataCategory"]] = None - data_type: Optional[Union[str, "EnumEDAMDataTypes"]] = None - size: Optional[int] = None + study_id: Union[str, StudyStudyId] = None + subject_id: Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]] = None + sample_id: Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]] = None + s3_file_path: str = None + filename: str = None + size: int = None + format: Union[str, "EnumEDAMFormats"] = None + data_category: Union[str, "EnumDataCategory"] = None + data_type: Union[str, "EnumEDAMDataTypes"] = None + hash: Union[dict, "FileHash"] = None staging_url: Optional[Union[str, URIorCURIE]] = None release_url: Optional[Union[str, URIorCURIE]] = None drs_uri: Optional[Union[str, URIorCURIE]] = None - hash: Optional[Union[dict, "FileHash"]] = None def __post_init__(self, *_: str, **kwargs: Any): if self._is_empty(self.file_id): @@ -941,23 +951,53 @@ def __post_init__(self, *_: str, **kwargs: Any): if not isinstance(self.file_id, FileFileId): self.file_id = FileFileId(self.file_id) + if self._is_empty(self.study_id): + self.MissingRequiredField("study_id") + if not isinstance(self.study_id, StudyStudyId): + self.study_id = StudyStudyId(self.study_id) + + if self._is_empty(self.subject_id): + self.MissingRequiredField("subject_id") if not isinstance(self.subject_id, list): self.subject_id = [self.subject_id] if self.subject_id is not None else [] self.subject_id = [v if isinstance(v, SubjectSubjectId) else SubjectSubjectId(v) for v in self.subject_id] + if self._is_empty(self.sample_id): + self.MissingRequiredField("sample_id") if not isinstance(self.sample_id, list): self.sample_id = [self.sample_id] if self.sample_id is not None else [] self.sample_id = [v if isinstance(v, SampleSampleId) else SampleSampleId(v) for v in self.sample_id] - if self.filename is not None and not isinstance(self.filename, str): + if self._is_empty(self.s3_file_path): + self.MissingRequiredField("s3_file_path") + if not isinstance(self.s3_file_path, str): + self.s3_file_path = str(self.s3_file_path) + + if self._is_empty(self.filename): + self.MissingRequiredField("filename") + if not isinstance(self.filename, str): self.filename = str(self.filename) - if self.data_category is not None and not isinstance(self.data_category, EnumDataCategory): + if self._is_empty(self.size): + self.MissingRequiredField("size") + if not isinstance(self.size, int): + self.size = int(self.size) + + if self._is_empty(self.data_category): + self.MissingRequiredField("data_category") + if not isinstance(self.data_category, EnumDataCategory): self.data_category = EnumDataCategory(self.data_category) - if self.size is not None and not isinstance(self.size, int): + if self._is_empty(self.size): + self.MissingRequiredField("size") + if not isinstance(self.size, int): self.size = int(self.size) + if self._is_empty(self.hash): + self.MissingRequiredField("hash") + if not isinstance(self.hash, FileHash): + self.hash = FileHash(**as_dict(self.hash)) + if self.staging_url is not None and not isinstance(self.staging_url, URIorCURIE): self.staging_url = URIorCURIE(self.staging_url) @@ -967,9 +1007,6 @@ def __post_init__(self, *_: str, **kwargs: Any): if self.drs_uri is not None and not isinstance(self.drs_uri, URIorCURIE): self.drs_uri = URIorCURIE(self.drs_uri) - if self.hash is not None and not isinstance(self.hash, FileHash): - self.hash = FileHash(**as_dict(self.hash)) - super().__post_init__(**kwargs) @@ -985,14 +1022,18 @@ class FileHash(YAMLRoot): class_name: ClassVar[str] = "FileHash" class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileHash - hash_type: Optional[Union[str, "EnumFileHashType"]] = None - hash_value: Optional[str] = None + hash_type: Union[str, "EnumFileHashType"] = None + hash_value: str = None def __post_init__(self, *_: str, **kwargs: Any): - if self.hash_type is not None and not isinstance(self.hash_type, EnumFileHashType): + if self._is_empty(self.hash_type): + self.MissingRequiredField("hash_type") + if not isinstance(self.hash_type, EnumFileHashType): self.hash_type = EnumFileHashType(self.hash_type) - if self.hash_value is not None and not isinstance(self.hash_value, str): + if self._is_empty(self.hash_value): + self.MissingRequiredField("hash_value") + if not isinstance(self.hash_value, str): self.hash_value = str(self.hash_value) super().__post_init__(**kwargs) @@ -1051,6 +1092,337 @@ def __post_init__(self, *_: str, **kwargs: Any): super().__post_init__(**kwargs) +@dataclass(repr=False) +class FileAdmin(YAMLRoot): + """ + File unvierse; contains all information about a file that may be needed for operational work + """ + _inherited_slots: ClassVar[list[str]] = [] + + class_class_uri: ClassVar[URIRef] = INCLUDEDCC["FileAdmin"] + class_class_curie: ClassVar[str] = "includedcc:FileAdmin" + class_name: ClassVar[str] = "FileAdmin" + class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileAdmin + + file_id: Union[str, FileAdminFileId] = None + study_id: Union[str, StudyStudyId] = None + s3_file_path: str = None + file_category: str = None + size: int = None + s3_key: str = None + file_extension: str = None + aws_account_id: str = None + account_name: str = None + account_alias: str = None + bucket_study_id: str = None + bucket: str = None + s3_created_at: Union[str, XSDDateTime] = None + s3_modified_at: Union[str, XSDDateTime] = None + intelligent_tiering_access_tier: str = None + is_delete_marker: Union[bool, Bool] = None + is_latest: Union[bool, Bool] = None + storage_class: str = None + file_type: str = None + encryption_status: str = None + is_multipart_uploaded: str = None + object_lock_level_hold_status: str = None + object_lock_mode: str = None + object_lock_retain_until_date: Union[str, XSDDateTime] = None + replication_status: str = None + version_id: str = None + hash: Union[dict, FileHash] = None + access_type: str = None + acl: str = None + is_released: Union[bool, Bool] = None + is_registered: Union[bool, Bool] = None + experimental_strategy: str = None + subject_id: Optional[Union[str, SubjectSubjectId]] = None + sample_id: Optional[Union[str, SampleSampleId]] = None + data_transfer_id: Optional[str] = None + manifest_hash_value: Optional[str] = None + file_hash_validation_status: Optional[str] = None + staging_url: Optional[Union[str, URIorCURIE]] = None + release_url: Optional[Union[str, URIorCURIE]] = None + access_url: Optional[str] = None + drs_uri: Optional[Union[str, URIorCURIE]] = None + repository: Optional[str] = None + + def __post_init__(self, *_: str, **kwargs: Any): + if self._is_empty(self.file_id): + self.MissingRequiredField("file_id") + if not isinstance(self.file_id, FileAdminFileId): + self.file_id = FileAdminFileId(self.file_id) + + if self._is_empty(self.study_id): + self.MissingRequiredField("study_id") + if not isinstance(self.study_id, StudyStudyId): + self.study_id = StudyStudyId(self.study_id) + + if self._is_empty(self.s3_file_path): + self.MissingRequiredField("s3_file_path") + if not isinstance(self.s3_file_path, str): + self.s3_file_path = str(self.s3_file_path) + + if self._is_empty(self.file_category): + self.MissingRequiredField("file_category") + if not isinstance(self.file_category, str): + self.file_category = str(self.file_category) + + if self._is_empty(self.size): + self.MissingRequiredField("size") + if not isinstance(self.size, int): + self.size = int(self.size) + + if self._is_empty(self.s3_key): + self.MissingRequiredField("s3_key") + if not isinstance(self.s3_key, str): + self.s3_key = str(self.s3_key) + + if self._is_empty(self.file_extension): + self.MissingRequiredField("file_extension") + if not isinstance(self.file_extension, str): + self.file_extension = str(self.file_extension) + + if self._is_empty(self.aws_account_id): + self.MissingRequiredField("aws_account_id") + if not isinstance(self.aws_account_id, str): + self.aws_account_id = str(self.aws_account_id) + + if self._is_empty(self.account_name): + self.MissingRequiredField("account_name") + if not isinstance(self.account_name, str): + self.account_name = str(self.account_name) + + if self._is_empty(self.account_alias): + self.MissingRequiredField("account_alias") + if not isinstance(self.account_alias, str): + self.account_alias = str(self.account_alias) + + if self._is_empty(self.bucket_study_id): + self.MissingRequiredField("bucket_study_id") + if not isinstance(self.bucket_study_id, str): + self.bucket_study_id = str(self.bucket_study_id) + + if self._is_empty(self.bucket): + self.MissingRequiredField("bucket") + if not isinstance(self.bucket, str): + self.bucket = str(self.bucket) + + if self._is_empty(self.s3_created_at): + self.MissingRequiredField("s3_created_at") + if not isinstance(self.s3_created_at, XSDDateTime): + self.s3_created_at = XSDDateTime(self.s3_created_at) + + if self._is_empty(self.s3_modified_at): + self.MissingRequiredField("s3_modified_at") + if not isinstance(self.s3_modified_at, XSDDateTime): + self.s3_modified_at = XSDDateTime(self.s3_modified_at) + + if self._is_empty(self.intelligent_tiering_access_tier): + self.MissingRequiredField("intelligent_tiering_access_tier") + if not isinstance(self.intelligent_tiering_access_tier, str): + self.intelligent_tiering_access_tier = str(self.intelligent_tiering_access_tier) + + if self._is_empty(self.is_delete_marker): + self.MissingRequiredField("is_delete_marker") + if not isinstance(self.is_delete_marker, Bool): + self.is_delete_marker = Bool(self.is_delete_marker) + + if self._is_empty(self.is_latest): + self.MissingRequiredField("is_latest") + if not isinstance(self.is_latest, Bool): + self.is_latest = Bool(self.is_latest) + + if self._is_empty(self.storage_class): + self.MissingRequiredField("storage_class") + if not isinstance(self.storage_class, str): + self.storage_class = str(self.storage_class) + + if self._is_empty(self.file_type): + self.MissingRequiredField("file_type") + if not isinstance(self.file_type, str): + self.file_type = str(self.file_type) + + if self._is_empty(self.encryption_status): + self.MissingRequiredField("encryption_status") + if not isinstance(self.encryption_status, str): + self.encryption_status = str(self.encryption_status) + + if self._is_empty(self.is_multipart_uploaded): + self.MissingRequiredField("is_multipart_uploaded") + if not isinstance(self.is_multipart_uploaded, str): + self.is_multipart_uploaded = str(self.is_multipart_uploaded) + + if self._is_empty(self.object_lock_level_hold_status): + self.MissingRequiredField("object_lock_level_hold_status") + if not isinstance(self.object_lock_level_hold_status, str): + self.object_lock_level_hold_status = str(self.object_lock_level_hold_status) + + if self._is_empty(self.object_lock_mode): + self.MissingRequiredField("object_lock_mode") + if not isinstance(self.object_lock_mode, str): + self.object_lock_mode = str(self.object_lock_mode) + + if self._is_empty(self.object_lock_retain_until_date): + self.MissingRequiredField("object_lock_retain_until_date") + if not isinstance(self.object_lock_retain_until_date, XSDDateTime): + self.object_lock_retain_until_date = XSDDateTime(self.object_lock_retain_until_date) + + if self._is_empty(self.replication_status): + self.MissingRequiredField("replication_status") + if not isinstance(self.replication_status, str): + self.replication_status = str(self.replication_status) + + if self._is_empty(self.version_id): + self.MissingRequiredField("version_id") + if not isinstance(self.version_id, str): + self.version_id = str(self.version_id) + + if self._is_empty(self.hash): + self.MissingRequiredField("hash") + if not isinstance(self.hash, FileHash): + self.hash = FileHash(**as_dict(self.hash)) + + if self._is_empty(self.access_type): + self.MissingRequiredField("access_type") + if not isinstance(self.access_type, str): + self.access_type = str(self.access_type) + + if self._is_empty(self.acl): + self.MissingRequiredField("acl") + if not isinstance(self.acl, str): + self.acl = str(self.acl) + + if self._is_empty(self.is_released): + self.MissingRequiredField("is_released") + if not isinstance(self.is_released, Bool): + self.is_released = Bool(self.is_released) + + if self._is_empty(self.is_registered): + self.MissingRequiredField("is_registered") + if not isinstance(self.is_registered, Bool): + self.is_registered = Bool(self.is_registered) + + if self._is_empty(self.experimental_strategy): + self.MissingRequiredField("experimental_strategy") + if not isinstance(self.experimental_strategy, str): + self.experimental_strategy = str(self.experimental_strategy) + + if self.subject_id is not None and not isinstance(self.subject_id, SubjectSubjectId): + self.subject_id = SubjectSubjectId(self.subject_id) + + if self.sample_id is not None and not isinstance(self.sample_id, SampleSampleId): + self.sample_id = SampleSampleId(self.sample_id) + + if self.data_transfer_id is not None and not isinstance(self.data_transfer_id, str): + self.data_transfer_id = str(self.data_transfer_id) + + if self.manifest_hash_value is not None and not isinstance(self.manifest_hash_value, str): + self.manifest_hash_value = str(self.manifest_hash_value) + + if self.file_hash_validation_status is not None and not isinstance(self.file_hash_validation_status, str): + self.file_hash_validation_status = str(self.file_hash_validation_status) + + if self.staging_url is not None and not isinstance(self.staging_url, URIorCURIE): + self.staging_url = URIorCURIE(self.staging_url) + + if self.release_url is not None and not isinstance(self.release_url, URIorCURIE): + self.release_url = URIorCURIE(self.release_url) + + if self.access_url is not None and not isinstance(self.access_url, str): + self.access_url = str(self.access_url) + + if self.drs_uri is not None and not isinstance(self.drs_uri, URIorCURIE): + self.drs_uri = URIorCURIE(self.drs_uri) + + if self.repository is not None and not isinstance(self.repository, str): + self.repository = str(self.repository) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class FileAssay(YAMLRoot): + """ + A file produced by or associated with an assay or data acquisition process including omics, imaging, actigraphy, + and other experimental or observational data. + """ + _inherited_slots: ClassVar[list[str]] = [] + + class_class_uri: ClassVar[URIRef] = INCLUDEDCC["FileAssay"] + class_class_curie: ClassVar[str] = "includedcc:FileAssay" + class_name: ClassVar[str] = "FileAssay" + class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileAssay + + file_id: Union[str, FileAssayFileId] = None + subject_id: Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]] = None + sample_id: Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]] = None + data_category: Union[str, "EnumDataCategory"] = None + experimental_strategy: str = None + data_type: Union[str, "EnumEDAMDataTypes"] = None + format: Union[str, "EnumEDAMFormats"] = None + size: int = None + access_type: str = None + platform: str = None + assay_center: Optional[str] = None + workflow_name: Optional[str] = None + workflow_version: Optional[str] = None + + def __post_init__(self, *_: str, **kwargs: Any): + if self._is_empty(self.file_id): + self.MissingRequiredField("file_id") + if not isinstance(self.file_id, FileAssayFileId): + self.file_id = FileAssayFileId(self.file_id) + + if self._is_empty(self.subject_id): + self.MissingRequiredField("subject_id") + if not isinstance(self.subject_id, list): + self.subject_id = [self.subject_id] if self.subject_id is not None else [] + self.subject_id = [v if isinstance(v, SubjectSubjectId) else SubjectSubjectId(v) for v in self.subject_id] + + if self._is_empty(self.sample_id): + self.MissingRequiredField("sample_id") + if not isinstance(self.sample_id, list): + self.sample_id = [self.sample_id] if self.sample_id is not None else [] + self.sample_id = [v if isinstance(v, SampleSampleId) else SampleSampleId(v) for v in self.sample_id] + + if self._is_empty(self.data_category): + self.MissingRequiredField("data_category") + if not isinstance(self.data_category, EnumDataCategory): + self.data_category = EnumDataCategory(self.data_category) + + if self._is_empty(self.experimental_strategy): + self.MissingRequiredField("experimental_strategy") + if not isinstance(self.experimental_strategy, str): + self.experimental_strategy = str(self.experimental_strategy) + + if self._is_empty(self.size): + self.MissingRequiredField("size") + if not isinstance(self.size, int): + self.size = int(self.size) + + if self._is_empty(self.access_type): + self.MissingRequiredField("access_type") + if not isinstance(self.access_type, str): + self.access_type = str(self.access_type) + + if self._is_empty(self.platform): + self.MissingRequiredField("platform") + if not isinstance(self.platform, str): + self.platform = str(self.platform) + + if self.assay_center is not None and not isinstance(self.assay_center, str): + self.assay_center = str(self.assay_center) + + if self.workflow_name is not None and not isinstance(self.workflow_name, str): + self.workflow_name = str(self.workflow_name) + + if self.workflow_version is not None and not isinstance(self.workflow_version, str): + self.workflow_version = str(self.workflow_version) + + super().__post_init__(**kwargs) + + # Enumerations class EnumProgram(EnumDefinitionImpl): """ @@ -1820,16 +2192,16 @@ class slots: model_uri=INCLUDEDCC.file_id, domain=None, range=Optional[Union[str, FileFileId]]) slots.filename = Slot(uri=INCLUDEDCC.filename, name="filename", curie=INCLUDEDCC.curie('filename'), - model_uri=INCLUDEDCC.filename, domain=None, range=Optional[str]) + model_uri=INCLUDEDCC.filename, domain=None, range=str) slots.format = Slot(uri=INCLUDEDCC.format, name="format", curie=INCLUDEDCC.curie('format'), - model_uri=INCLUDEDCC.format, domain=None, range=Optional[Union[str, "EnumEDAMFormats"]]) + model_uri=INCLUDEDCC.format, domain=None, range=Union[str, "EnumEDAMFormats"]) slots.data_type = Slot(uri=INCLUDEDCC.data_type, name="data_type", curie=INCLUDEDCC.curie('data_type'), - model_uri=INCLUDEDCC.data_type, domain=None, range=Optional[Union[str, "EnumEDAMDataTypes"]]) + model_uri=INCLUDEDCC.data_type, domain=None, range=Union[str, "EnumEDAMDataTypes"]) slots.size = Slot(uri=INCLUDEDCC.size, name="size", curie=INCLUDEDCC.curie('size'), - model_uri=INCLUDEDCC.size, domain=None, range=Optional[int]) + model_uri=INCLUDEDCC.size, domain=None, range=int) slots.staging_url = Slot(uri=INCLUDEDCC.staging_url, name="staging_url", curie=INCLUDEDCC.curie('staging_url'), model_uri=INCLUDEDCC.staging_url, domain=None, range=Optional[Union[str, URIorCURIE]]) @@ -1841,13 +2213,13 @@ class slots: model_uri=INCLUDEDCC.drs_uri, domain=None, range=Optional[Union[str, URIorCURIE]]) slots.hash = Slot(uri=INCLUDEDCC.hash, name="hash", curie=INCLUDEDCC.curie('hash'), - model_uri=INCLUDEDCC.hash, domain=None, range=Optional[Union[dict, FileHash]]) + model_uri=INCLUDEDCC.hash, domain=None, range=Union[dict, FileHash]) slots.hash_type = Slot(uri=INCLUDEDCC.hash_type, name="hash_type", curie=INCLUDEDCC.curie('hash_type'), - model_uri=INCLUDEDCC.hash_type, domain=None, range=Optional[Union[str, "EnumFileHashType"]]) + model_uri=INCLUDEDCC.hash_type, domain=None, range=Union[str, "EnumFileHashType"]) slots.hash_value = Slot(uri=INCLUDEDCC.hash_value, name="hash_value", curie=INCLUDEDCC.curie('hash_value'), - model_uri=INCLUDEDCC.hash_value, domain=None, range=Optional[str]) + model_uri=INCLUDEDCC.hash_value, domain=None, range=str) slots.dataset_id = Slot(uri=INCLUDEDCC.dataset_id, name="dataset_id", curie=INCLUDEDCC.curie('dataset_id'), model_uri=INCLUDEDCC.dataset_id, domain=None, range=Optional[Union[str, DatasetDatasetId]]) @@ -1858,6 +2230,117 @@ class slots: slots.data_collection_end = Slot(uri=INCLUDEDCC.data_collection_end, name="data_collection_end", curie=INCLUDEDCC.curie('data_collection_end'), model_uri=INCLUDEDCC.data_collection_end, domain=None, range=Optional[str]) +slots.s3_file_path = Slot(uri=INCLUDEDCC.s3_file_path, name="s3_file_path", curie=INCLUDEDCC.curie('s3_file_path'), + model_uri=INCLUDEDCC.s3_file_path, domain=None, range=str) + +slots.is_released = Slot(uri=INCLUDEDCC.is_released, name="is_released", curie=INCLUDEDCC.curie('is_released'), + model_uri=INCLUDEDCC.is_released, domain=None, range=Union[bool, Bool]) + +slots.is_registered = Slot(uri=INCLUDEDCC.is_registered, name="is_registered", curie=INCLUDEDCC.curie('is_registered'), + model_uri=INCLUDEDCC.is_registered, domain=None, range=Union[bool, Bool]) + +slots.repository = Slot(uri=INCLUDEDCC.repository, name="repository", curie=INCLUDEDCC.curie('repository'), + model_uri=INCLUDEDCC.repository, domain=None, range=Optional[str]) + +slots.file_category = Slot(uri=INCLUDEDCC.file_category, name="file_category", curie=INCLUDEDCC.curie('file_category'), + model_uri=INCLUDEDCC.file_category, domain=None, range=str) + +slots.s3_key = Slot(uri=INCLUDEDCC.s3_key, name="s3_key", curie=INCLUDEDCC.curie('s3_key'), + model_uri=INCLUDEDCC.s3_key, domain=None, range=str) + +slots.file_extension = Slot(uri=INCLUDEDCC.file_extension, name="file_extension", curie=INCLUDEDCC.curie('file_extension'), + model_uri=INCLUDEDCC.file_extension, domain=None, range=str) + +slots.data_transfer_id = Slot(uri=INCLUDEDCC.data_transfer_id, name="data_transfer_id", curie=INCLUDEDCC.curie('data_transfer_id'), + model_uri=INCLUDEDCC.data_transfer_id, domain=None, range=Optional[str]) + +slots.aws_account_id = Slot(uri=INCLUDEDCC.aws_account_id, name="aws_account_id", curie=INCLUDEDCC.curie('aws_account_id'), + model_uri=INCLUDEDCC.aws_account_id, domain=None, range=str) + +slots.account_name = Slot(uri=INCLUDEDCC.account_name, name="account_name", curie=INCLUDEDCC.curie('account_name'), + model_uri=INCLUDEDCC.account_name, domain=None, range=str) + +slots.account_alias = Slot(uri=INCLUDEDCC.account_alias, name="account_alias", curie=INCLUDEDCC.curie('account_alias'), + model_uri=INCLUDEDCC.account_alias, domain=None, range=str) + +slots.bucket_study_id = Slot(uri=INCLUDEDCC.bucket_study_id, name="bucket_study_id", curie=INCLUDEDCC.curie('bucket_study_id'), + model_uri=INCLUDEDCC.bucket_study_id, domain=None, range=str) + +slots.bucket = Slot(uri=INCLUDEDCC.bucket, name="bucket", curie=INCLUDEDCC.curie('bucket'), + model_uri=INCLUDEDCC.bucket, domain=None, range=str) + +slots.s3_created_at = Slot(uri=INCLUDEDCC.s3_created_at, name="s3_created_at", curie=INCLUDEDCC.curie('s3_created_at'), + model_uri=INCLUDEDCC.s3_created_at, domain=None, range=Union[str, XSDDateTime]) + +slots.s3_modified_at = Slot(uri=INCLUDEDCC.s3_modified_at, name="s3_modified_at", curie=INCLUDEDCC.curie('s3_modified_at'), + model_uri=INCLUDEDCC.s3_modified_at, domain=None, range=Union[str, XSDDateTime]) + +slots.intelligent_tiering_access_tier = Slot(uri=INCLUDEDCC.intelligent_tiering_access_tier, name="intelligent_tiering_access_tier", curie=INCLUDEDCC.curie('intelligent_tiering_access_tier'), + model_uri=INCLUDEDCC.intelligent_tiering_access_tier, domain=None, range=str) + +slots.is_delete_marker = Slot(uri=INCLUDEDCC.is_delete_marker, name="is_delete_marker", curie=INCLUDEDCC.curie('is_delete_marker'), + model_uri=INCLUDEDCC.is_delete_marker, domain=None, range=Union[bool, Bool]) + +slots.is_latest = Slot(uri=INCLUDEDCC.is_latest, name="is_latest", curie=INCLUDEDCC.curie('is_latest'), + model_uri=INCLUDEDCC.is_latest, domain=None, range=Union[bool, Bool]) + +slots.storage_class = Slot(uri=INCLUDEDCC.storage_class, name="storage_class", curie=INCLUDEDCC.curie('storage_class'), + model_uri=INCLUDEDCC.storage_class, domain=None, range=str) + +slots.manifest_hash_value = Slot(uri=INCLUDEDCC.manifest_hash_value, name="manifest_hash_value", curie=INCLUDEDCC.curie('manifest_hash_value'), + model_uri=INCLUDEDCC.manifest_hash_value, domain=None, range=Optional[str]) + +slots.file_hash_validation_status = Slot(uri=INCLUDEDCC.file_hash_validation_status, name="file_hash_validation_status", curie=INCLUDEDCC.curie('file_hash_validation_status'), + model_uri=INCLUDEDCC.file_hash_validation_status, domain=None, range=Optional[str]) + +slots.file_type = Slot(uri=INCLUDEDCC.file_type, name="file_type", curie=INCLUDEDCC.curie('file_type'), + model_uri=INCLUDEDCC.file_type, domain=None, range=str) + +slots.encryption_status = Slot(uri=INCLUDEDCC.encryption_status, name="encryption_status", curie=INCLUDEDCC.curie('encryption_status'), + model_uri=INCLUDEDCC.encryption_status, domain=None, range=str) + +slots.is_multipart_uploaded = Slot(uri=INCLUDEDCC.is_multipart_uploaded, name="is_multipart_uploaded", curie=INCLUDEDCC.curie('is_multipart_uploaded'), + model_uri=INCLUDEDCC.is_multipart_uploaded, domain=None, range=str) + +slots.object_lock_level_hold_status = Slot(uri=INCLUDEDCC.object_lock_level_hold_status, name="object_lock_level_hold_status", curie=INCLUDEDCC.curie('object_lock_level_hold_status'), + model_uri=INCLUDEDCC.object_lock_level_hold_status, domain=None, range=str) + +slots.object_lock_mode = Slot(uri=INCLUDEDCC.object_lock_mode, name="object_lock_mode", curie=INCLUDEDCC.curie('object_lock_mode'), + model_uri=INCLUDEDCC.object_lock_mode, domain=None, range=str) + +slots.replication_status = Slot(uri=INCLUDEDCC.replication_status, name="replication_status", curie=INCLUDEDCC.curie('replication_status'), + model_uri=INCLUDEDCC.replication_status, domain=None, range=str) + +slots.version_id = Slot(uri=INCLUDEDCC.version_id, name="version_id", curie=INCLUDEDCC.curie('version_id'), + model_uri=INCLUDEDCC.version_id, domain=None, range=str) + +slots.access_type = Slot(uri=INCLUDEDCC.access_type, name="access_type", curie=INCLUDEDCC.curie('access_type'), + model_uri=INCLUDEDCC.access_type, domain=None, range=str) + +slots.access_url = Slot(uri=INCLUDEDCC.access_url, name="access_url", curie=INCLUDEDCC.curie('access_url'), + model_uri=INCLUDEDCC.access_url, domain=None, range=Optional[str]) + +slots.acl = Slot(uri=INCLUDEDCC.acl, name="acl", curie=INCLUDEDCC.curie('acl'), + model_uri=INCLUDEDCC.acl, domain=None, range=str) + +slots.experimental_strategy = Slot(uri=INCLUDEDCC.experimental_strategy, name="experimental_strategy", curie=INCLUDEDCC.curie('experimental_strategy'), + model_uri=INCLUDEDCC.experimental_strategy, domain=None, range=str) + +slots.assay_center = Slot(uri=INCLUDEDCC.assay_center, name="assay_center", curie=INCLUDEDCC.curie('assay_center'), + model_uri=INCLUDEDCC.assay_center, domain=None, range=Optional[str]) + +slots.platform = Slot(uri=INCLUDEDCC.platform, name="platform", curie=INCLUDEDCC.curie('platform'), + model_uri=INCLUDEDCC.platform, domain=None, range=str) + +slots.workflow_name = Slot(uri=INCLUDEDCC.workflow_name, name="workflow_name", curie=INCLUDEDCC.curie('workflow_name'), + model_uri=INCLUDEDCC.workflow_name, domain=None, range=Optional[str]) + +slots.workflow_version = Slot(uri=INCLUDEDCC.workflow_version, name="workflow_version", curie=INCLUDEDCC.curie('workflow_version'), + model_uri=INCLUDEDCC.workflow_version, domain=None, range=Optional[str]) + +slots.object_lock_retain_until_date = Slot(uri=INCLUDEDCC.object_lock_retain_until_date, name="object_lock_retain_until_date", curie=INCLUDEDCC.curie('object_lock_retain_until_date'), + model_uri=INCLUDEDCC.object_lock_retain_until_date, domain=None, range=Union[str, XSDDateTime]) + slots.Study_study_id = Slot(uri=INCLUDEDCC.study_id, name="Study_study_id", curie=INCLUDEDCC.curie('study_id'), model_uri=INCLUDEDCC.Study_study_id, domain=Study, range=Union[str, StudyStudyId]) @@ -1906,17 +2389,41 @@ class slots: slots.ActivityDefinition_activity_definition_id = Slot(uri=INCLUDEDCC.activity_definition_id, name="ActivityDefinition_activity_definition_id", curie=INCLUDEDCC.curie('activity_definition_id'), model_uri=INCLUDEDCC.ActivityDefinition_activity_definition_id, domain=ActivityDefinition, range=Union[str, ActivityDefinitionActivityDefinitionId]) +slots.File_study_id = Slot(uri=INCLUDEDCC.study_id, name="File_study_id", curie=INCLUDEDCC.curie('study_id'), + model_uri=INCLUDEDCC.File_study_id, domain=File, range=Union[str, StudyStudyId]) + slots.File_file_id = Slot(uri=INCLUDEDCC.file_id, name="File_file_id", curie=INCLUDEDCC.curie('file_id'), model_uri=INCLUDEDCC.File_file_id, domain=File, range=Union[str, FileFileId]) slots.File_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="File_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.File_subject_id, domain=File, range=Optional[Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]]]) + model_uri=INCLUDEDCC.File_subject_id, domain=File, range=Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]]) slots.File_sample_id = Slot(uri=INCLUDEDCC.sample_id, name="File_sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.File_sample_id, domain=File, range=Optional[Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]]]) + model_uri=INCLUDEDCC.File_sample_id, domain=File, range=Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]]) + +slots.File_data_category = Slot(uri=INCLUDEDCC.data_category, name="File_data_category", curie=INCLUDEDCC.curie('data_category'), + model_uri=INCLUDEDCC.File_data_category, domain=File, range=Union[str, "EnumDataCategory"]) slots.Dataset_dataset_id = Slot(uri=INCLUDEDCC.dataset_id, name="Dataset_dataset_id", curie=INCLUDEDCC.curie('dataset_id'), model_uri=INCLUDEDCC.Dataset_dataset_id, domain=Dataset, range=Union[str, DatasetDatasetId]) slots.Dataset_file_id = Slot(uri=INCLUDEDCC.file_id, name="Dataset_file_id", curie=INCLUDEDCC.curie('file_id'), model_uri=INCLUDEDCC.Dataset_file_id, domain=Dataset, range=Optional[Union[Union[str, FileFileId], list[Union[str, FileFileId]]]]) + +slots.FileAdmin_study_id = Slot(uri=INCLUDEDCC.study_id, name="FileAdmin_study_id", curie=INCLUDEDCC.curie('study_id'), + model_uri=INCLUDEDCC.FileAdmin_study_id, domain=FileAdmin, range=Union[str, StudyStudyId]) + +slots.FileAdmin_file_id = Slot(uri=INCLUDEDCC.file_id, name="FileAdmin_file_id", curie=INCLUDEDCC.curie('file_id'), + model_uri=INCLUDEDCC.FileAdmin_file_id, domain=FileAdmin, range=Union[str, FileAdminFileId]) + +slots.FileAssay_file_id = Slot(uri=INCLUDEDCC.file_id, name="FileAssay_file_id", curie=INCLUDEDCC.curie('file_id'), + model_uri=INCLUDEDCC.FileAssay_file_id, domain=FileAssay, range=Union[str, FileAssayFileId]) + +slots.FileAssay_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="FileAssay_subject_id", curie=INCLUDEDCC.curie('subject_id'), + model_uri=INCLUDEDCC.FileAssay_subject_id, domain=FileAssay, range=Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]]) + +slots.FileAssay_sample_id = Slot(uri=INCLUDEDCC.sample_id, name="FileAssay_sample_id", curie=INCLUDEDCC.curie('sample_id'), + model_uri=INCLUDEDCC.FileAssay_sample_id, domain=FileAssay, range=Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]]) + +slots.FileAssay_data_category = Slot(uri=INCLUDEDCC.data_category, name="FileAssay_data_category", curie=INCLUDEDCC.curie('data_category'), + model_uri=INCLUDEDCC.FileAssay_data_category, domain=FileAssay, range=Union[str, "EnumDataCategory"]) diff --git a/src/include_access_model/datamodel/include_access_model_pydantic.py b/src/include_access_model/datamodel/include_access_model_pydantic.py index 5fef463..ab99dd8 100644 --- a/src/include_access_model/datamodel/include_access_model_pydantic.py +++ b/src/include_access_model/datamodel/include_access_model_pydantic.py @@ -447,7 +447,7 @@ class Study(Record): 'required': True}}, 'title': 'Research Study'}) - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata']} }) + study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) parent_study: Optional[str] = Field(default=None, title="Parent Study", description="""The parent study for this study, if it is a nested study.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) study_title: str = Field(default=..., description="""Full Study Title""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) study_code: str = Field(default=..., title="Study Code", description="""Unique identifier for the study (generally a short acronym)""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) @@ -478,12 +478,12 @@ class StudyMetadata(Record): 'required': True}}, 'title': 'Study Metadata'}) - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata']} }) + study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) participant_lifespan_stage: list[EnumParticipantLifespanStage] = Field(default=..., title="Participant Lifespan Stage", description="""Focus age group(s) of the study population""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) selection_criteria: Optional[str] = Field(default=None, title="Selection Criteria", description="""Brief description of inclusion and/or exclusion criteria for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) study_design: list[EnumStudyDesign] = Field(default=..., title="Study Design", description="""Overall design of study, including whether it is longitudinal and whether family members/unrelated controls are also enrolled""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) clinical_data_source_type: list[EnumClinicalDataSourceType] = Field(default=..., title="Clinical Data Source Type", description="""Source(s) of data collected from study participants""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - data_category: list[EnumDataCategory] = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File']} }) + data_category: list[EnumDataCategory] = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) vbr: Optional[VirtualBiorepository] = Field(default=None, title="Virtual Biorepository", description="""Information about the study's Virtual Biorepository, if participating""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) research_domain: list[EnumResearchDomain] = Field(default=..., description="""Main research domain(s) of the study, other than Down syndrome""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) expected_number_of_participants: int = Field(default=..., title="Expected Number of Participants", description="""Total expected number of participants to be recruited.""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) @@ -571,7 +571,9 @@ class Subject(Record): 'Demographics', 'SubjectAssertion', 'Encounter', - 'File']} }) + 'File', + 'FileAdmin', + 'FileAssay']} }) subject_type: EnumSubjectType = Field(default=..., title="Subject Type", description="""Type of entity this record represents""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject']} }) organism_type: Optional[str] = Field(default=None, title="Organism Type", description="""Organism Type""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject']} }) external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) @@ -591,7 +593,9 @@ class Demographics(Record): 'Demographics', 'SubjectAssertion', 'Encounter', - 'File']} }) + 'File', + 'FileAdmin', + 'FileAssay']} }) sex: EnumSex = Field(default=..., title="Sex", description="""Sex of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) race: list[EnumRace] = Field(default=..., title="Race", description="""Race of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) ethnicity: EnumEthnicity = Field(default=..., title="Ethnicity", description="""Ethnicity of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) @@ -618,7 +622,9 @@ class SubjectAssertion(Record): 'Demographics', 'SubjectAssertion', 'Encounter', - 'File']} }) + 'File', + 'FileAdmin', + 'FileAssay']} }) encounter_id: Optional[str] = Field(default=None, title="Encounter ID", description="""Unique identifier for this Encounter.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'BiospecimenCollection', 'Encounter']} }) assertion_provenance: Optional[EnumAssertionProvenance] = Field(default=None, title="Assertion Provenance", description="""The original source of this assertion""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) age_at_assertion: Optional[int] = Field(default=None, title="Age at assertion", description="""The age in days of the Subject when the assertion was made.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion'], 'unit': {'ucum_code': 'd'}} }) @@ -665,7 +671,7 @@ class Sample(Record): 'required': True}}, 'title': 'Sample'}) - sample_id: str = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File']} }) + sample_id: str = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) biospecimen_collection_id: Optional[str] = Field(default=None, title="Biospecimen Collection ID", description="""Biospecimen Collection during which this sample was generated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'BiospecimenCollection']} }) parent_sample_id: Optional[str] = Field(default=None, title="Parent Sample ID", description="""Sample from which this sample is derived""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) sample_type: str = Field(default=..., title="Sample Type", description="""Type of material of which this Sample is comprised""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) @@ -710,7 +716,7 @@ class Aliquot(Record): 'title': 'Aliquot'}) aliquot_id: str = Field(default=..., title="Aliquot ID", description="""Unique identifier for an Aliquot.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Aliquot']} }) - sample_id: Optional[str] = Field(default=None, title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File']} }) + sample_id: Optional[str] = Field(default=None, title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) availablity_status: Optional[EnumAvailabilityStatus] = Field(default=None, title="Sample Availability", description="""Can this Sample be requested for further analysis?""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) quantity_number: Optional[float] = Field(default=None, title="Quantity", description="""The total quantity of the specimen""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) quantity_unit: Optional[str] = Field(default=None, title="Quantity Units", description="""The structured term defining the units of the quantity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) @@ -735,7 +741,9 @@ class Encounter(Record): 'Demographics', 'SubjectAssertion', 'Encounter', - 'File']} }) + 'File', + 'FileAdmin', + 'FileAssay']} }) encounter_definition_id: Optional[str] = Field(default=None, title="Encounter Definition ID", description="""Unique identifier for this Encounter Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Encounter', 'EncounterDefinition']} }) age_at_event: Optional[int] = Field(default=None, title="Age at event", description="""The age in days of the Subject at the time point which the assertion describes, eg, age of onset or when a measurement was performed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'Encounter'], 'unit': {'ucum_code': 'd'}} }) external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) @@ -788,33 +796,43 @@ class ActivityDefinition(Record): class File(Record): """ - File + Required information for portal use. """ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'file_id': {'identifier': True, + 'slot_usage': {'data_category': {'name': 'data_category', 'required': True}, + 'file_id': {'identifier': True, 'name': 'file_id', 'range': 'string', 'required': True}, - 'sample_id': {'multivalued': True, 'name': 'sample_id'}, - 'subject_id': {'multivalued': True, 'name': 'subject_id'}}, + 'sample_id': {'multivalued': True, + 'name': 'sample_id', + 'required': True}, + 'study_id': {'name': 'study_id', 'required': True}, + 'subject_id': {'multivalued': True, + 'name': 'subject_id', + 'required': True}}, 'title': 'File'}) - file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset']} }) - subject_id: Optional[list[str]] = Field(default=[], title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', + study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) + file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) + subject_id: list[str] = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', 'Demographics', 'SubjectAssertion', 'Encounter', - 'File']} }) - sample_id: Optional[list[str]] = Field(default=[], title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File']} }) - filename: Optional[str] = Field(default=None, title="Filename", description="""The name of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) - format: Optional[EnumEDAMFormats] = Field(default=None, title="File Format", description="""The format of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) - data_category: Optional[EnumDataCategory] = Field(default=None, title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File']} }) - data_type: Optional[EnumEDAMDataTypes] = Field(default=None, title="Data Type", description="""The type of data within this file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) - size: Optional[int] = Field(default=None, title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File'], 'unit': {'ucum_code': 'By'}} }) - staging_url: Optional[str] = Field(default=None, title="Staging Location", description="""URL for internal access to the data. May be temporary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) - release_url: Optional[str] = Field(default=None, title="Release Location", description="""URL for controlled or open access to the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) - drs_uri: Optional[str] = Field(default=None, title="DRS URI", description="""DRS location to access the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) - hash: Optional[FileHash] = Field(default=None, title="File Hash", description="""File hash information""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) + 'File', + 'FileAdmin', + 'FileAssay']} }) + sample_id: list[str] = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) + s3_file_path: str = Field(default=..., title="S3 File Path", description="""The full s3 url of a file's location in aws""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + filename: str = Field(default=..., title="Filename", description="""The name of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) + size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) + format: EnumEDAMFormats = Field(default=..., title="File Format", description="""The format of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) + data_category: EnumDataCategory = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) + data_type: EnumEDAMDataTypes = Field(default=..., title="Data Type", description="""The type of data within this file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) + staging_url: Optional[str] = Field(default=None, title="Staging Location", description="""URL for internal access to the data. May be temporary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + release_url: Optional[str] = Field(default=None, title="Release Location", description="""URL for controlled or open access to the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + drs_uri: Optional[str] = Field(default=None, title="DRS URI", description="""DRS location to access the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + hash: FileHash = Field(default=..., title="File Hash", description="""File hash information""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) @@ -825,8 +843,8 @@ class FileHash(ConfiguredBaseModel): linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', 'title': 'File Hash'}) - hash_type: Optional[EnumFileHashType] = Field(default=None, title="File Hash Type", description="""The type of file hash, eg, md5""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileHash']} }) - hash_value: Optional[str] = Field(default=None, title="File Hash Value", description="""The value of the file hash""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileHash']} }) + hash_type: EnumFileHashType = Field(default=..., title="File Hash Type", description="""The type of file hash, eg, md5""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileHash']} }) + hash_value: str = Field(default=..., title="File Hash Value", description="""The value of the file hash""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileHash']} }) class Dataset(ConfiguredBaseModel): @@ -852,12 +870,110 @@ class Dataset(ConfiguredBaseModel): 'Dataset']} }) description: Optional[str] = Field(default=None, title="Description", description="""Description for this entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition', 'Dataset']} }) do_id: Optional[str] = Field(default=None, title="DOI", description="""Digital Object Identifier (DOI) for this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'DOI', 'Dataset']} }) - file_id: Optional[list[str]] = Field(default=[], title="File ID", description="""The list of files comprising this dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset']} }) + file_id: Optional[list[str]] = Field(default=[], title="File ID", description="""The list of files comprising this dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) publication: Optional[list[Publication]] = Field(default=[], title="Publication", description="""Publications associated with this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'Dataset']} }) data_collection_start: Optional[str] = Field(default=None, title="Data Collection Start", description="""The date that data collection started. May include only a year.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset']} }) data_collection_end: Optional[str] = Field(default=None, title="Data Collection End", description="""The date that data collection started. May include only a year.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset']} }) +class FileAdmin(ConfiguredBaseModel): + """ + File unvierse; contains all information about a file that may be needed for operational work + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', + 'slot_usage': {'file_id': {'identifier': True, + 'name': 'file_id', + 'required': True}, + 'study_id': {'name': 'study_id', 'required': True}}}) + + study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) + file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) + subject_id: Optional[str] = Field(default=None, title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', + 'Demographics', + 'SubjectAssertion', + 'Encounter', + 'File', + 'FileAdmin', + 'FileAssay']} }) + sample_id: Optional[str] = Field(default=None, title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) + s3_file_path: str = Field(default=..., title="S3 File Path", description="""The full s3 url of a file's location in aws""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + file_category: str = Field(default=..., title="File Category", description="""A high level classification of the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) + s3_key: str = Field(default=..., title="S3 Key", description="""The unique identifier for an object within a bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + file_extension: str = Field(default=..., title="File Extension", description="""A 3-4 letter code at the end of a filename that identifies the file format.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + data_transfer_id: Optional[str] = Field(default=None, title="Data Transfer ID", description="""A jira ticket number associated with a file transfer request to production bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + aws_account_id: str = Field(default=..., title="AWS Account ID", description="""A 12-digit number that uniquely identifies a specific AWS account""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + account_name: str = Field(default=..., title="AWS Account Name", description="""A user-defined label used to define an AWS accoun.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + account_alias: str = Field(default=..., title="Account Alias", description="""A unique user-defined string that replaces the AWS Account ID in the IAM user sign-in URL""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + bucket_study_id: str = Field(default=..., title="Bucket Study ID", description="""The global study ID used to create the bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + bucket: str = Field(default=..., title="Bucket", description="""Cloud storage container in AWS used to manage and store s3 objects""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + s3_created_at: datetime = Field(default=..., title="S3 Created At", description="""Timestamp of when a file was uploaded to an s3 bucket.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + s3_modified_at: datetime = Field(default=..., title="S3 Modified At", description="""Timestamp of when a file was modified in an s3 bucket.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + intelligent_tiering_access_tier: str = Field(default=..., title="Intelligent Tiering Access Tier", description="""Storage access tier assigned by AWS intelliegnt tiering, indicating the current access frequency classification of the object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + is_delete_marker: bool = Field(default=..., title="Is Delete Marker", description="""A flag that notes whether a file has been deleted from s3""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + is_latest: bool = Field(default=..., title="Is Latest", description="""Specifies whether an object version is the most recent version of that object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + storage_class: str = Field(default=..., title="Storage Class", description="""Storage tier of the object in AWS reflecting cost and access characteristics.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + manifest_hash_value: Optional[str] = Field(default=None, title="Manifest Hash Value", description="""The provided hash value from external users to be validated against internal hash values""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + file_hash_validation_status: Optional[str] = Field(default=None, title="File Hash Validation Status", description="""Notes whether hashes have been generated and verified against manifest hash values.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + file_type: str = Field(default=..., title="File Type", description="""Type or classification of the files based on its format and usuage.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + encryption_status: str = Field(default=..., title="Encryption Status", description="""Indicates whether the object in AWS is encrypted and the type of encryption applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + is_multipart_uploaded: str = Field(default=..., title="Is Multipart Uploaded", description="""Indicates whether the object was uploaded using a multipart upload process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + object_lock_level_hold_status: str = Field(default=..., title="Object Lock Level Hold Status", description="""Whether a legal hold is applied to prevent deletion of the object.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + object_lock_mode: str = Field(default=..., title="Object Lock Mode", description="""Retention mode applied to the object that restricts deletion or modification.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + object_lock_retain_until_date: datetime = Field(default=..., title="Object Lock Retain Until Date", description="""Specifies exact date and time when an object's Object Lock rentention period expires.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + replication_status: str = Field(default=..., title="Replication Status", description="""Status of the object's replication to another storage location.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + version_id: str = Field(default=..., title="Version ID", description="""Identifier for a specific version of the object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + staging_url: Optional[str] = Field(default=None, title="Staging Location", description="""URL for internal access to the data. May be temporary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + release_url: Optional[str] = Field(default=None, title="Release Location", description="""URL for controlled or open access to the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + hash: FileHash = Field(default=..., title="File Hash", description="""File hash information""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + access_type: str = Field(default=..., title="Access Type", description="""Notes wheter a file is controlled, open, or registered-tier access""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) + access_url: Optional[str] = Field(default=None, title="Access URL", description="""HTTPS endpoint for accessing a file via a specific data repository service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + drs_uri: Optional[str] = Field(default=None, title="DRS URI", description="""DRS location to access the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) + acl: str = Field(default=..., title="ACL", description="""The object access control list.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + is_released: bool = Field(default=..., title="Is Released", description="""A flag that notes whether a file has been released to the public""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + is_registered: bool = Field(default=..., title="Is Registered", description="""A flag that notes whether a file has been registered to a drs service""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + repository: Optional[str] = Field(default=None, title="Repository", description="""The name of the drs service which files are registered to""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) + experimental_strategy: str = Field(default=..., title="Experimental Strategy", description="""Method or assay used to generate the data""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) + + +class FileAssay(ConfiguredBaseModel): + """ + A file produced by or associated with an assay or data acquisition process including omics, imaging, actigraphy, and other experimental or observational data. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', + 'slot_usage': {'data_category': {'name': 'data_category', 'required': True}, + 'file_id': {'identifier': True, + 'name': 'file_id', + 'required': True}, + 'sample_id': {'multivalued': True, + 'name': 'sample_id', + 'required': True}, + 'subject_id': {'multivalued': True, + 'name': 'subject_id', + 'required': True}}, + 'title': 'File Assay'}) + + file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) + subject_id: list[str] = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', + 'Demographics', + 'SubjectAssertion', + 'Encounter', + 'File', + 'FileAdmin', + 'FileAssay']} }) + sample_id: list[str] = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) + data_category: EnumDataCategory = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) + experimental_strategy: str = Field(default=..., title="Experimental Strategy", description="""Method or assay used to generate the data""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) + data_type: EnumEDAMDataTypes = Field(default=..., title="Data Type", description="""The type of data within this file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) + format: EnumEDAMFormats = Field(default=..., title="File Format", description="""The format of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) + size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) + access_type: str = Field(default=..., title="Access Type", description="""Notes wheter a file is controlled, open, or registered-tier access""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) + assay_center: Optional[str] = Field(default=None, title="Assay Center", description="""The organization or center that generated the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) + platform: str = Field(default=..., title="Platform", description="""Instrument or platform family name""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) + workflow_name: Optional[str] = Field(default=None, title="Workflow Name", description="""Processing tool that produced the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) + workflow_version: Optional[str] = Field(default=None, title="Workflow Version", description="""Version of the process tool that produced the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) + + # Model rebuild # see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model Record.model_rebuild() @@ -880,3 +996,5 @@ class Dataset(ConfiguredBaseModel): File.model_rebuild() FileHash.model_rebuild() Dataset.model_rebuild() +FileAdmin.model_rebuild() +FileAssay.model_rebuild() diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index b846777..9191fd4 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -333,6 +333,7 @@ classes: study_id: required: true file_id: + range: string required: true identifier: true subject_id: From c7db00340cfd9d00eab3dce4b7fd24a932d6f120 Mon Sep 17 00:00:00 2001 From: Christina Diaz Date: Fri, 3 Apr 2026 17:22:36 -0400 Subject: [PATCH 10/20] =?UTF-8?q?=E2=9C=A8=20Add=20enums?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/.DS_Store | Bin 0 -> 10244 bytes docs/schema/include_access_model.yaml | 897 +++++++++++++++++- .../datamodel/include_access_model.py | 197 +++- .../include_access_model_pydantic.py | 79 +- .../schema/include_access_model.yaml | 93 +- 5 files changed, 1206 insertions(+), 60 deletions(-) create mode 100644 docs/.DS_Store diff --git a/docs/.DS_Store b/docs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5d3ce1185e203f39619f06b3933abc60df8544e1 GIT binary patch literal 10244 zcmeHMU2GIp6uxI#V8#ygf*=KV!q$R9U1(_=utCGJUC;_x?6&j|SY~%dI(Bwu*_qv< zwbJ-xK#cmJD8|GXHNF_5f~arC7^4p+QZev^`iA;q;=hTWd+#jLZNV2zfXpN_XYM`c z+^e4n54)KYX8TInhtiz5F zfe?WZfe?WZfe?YK0RjAGvqP>CGQ5Tegb0KPTtI-mAEJ0N84u)yko?tw7rq5RS&iNN zzR7>>`;Kuj($;Y zP9QF1cnuK<5txpE*xZ}M#=U#);{AKZb~9*xGLyG0&u?x%4N_J0tl4v9S+0?Hr-t3p zl&||mFQFHPSgXf%?M(Sz&+N3!(KKDy;X1xTCt?S0e6?suZ(}wQ!h@ErXLn0IiUI%1uMQDey zEn_@W;Ql|aIjJ3aL z`47|&@>os+kfs5Gg8f+GW9+z<(oP9;TrVTMoN5RCa5jd=B)YKjiqosOaxTZ-} zdq(itQ;#hHU0d5!t=HBwrcDh+%yUP(s`Zrw;B;%ydDlW!>(9Em9ERuxeVY=Rwueo- zP51n+yy@VQK4o)bXj^be15CHcF!+L&)-9>kwrbmD`lUSR4eJH7YZOU28T8*T%lzSD zKO1ecVfpR_WiL}w%PCpNcYKb5_Hsk~rK6m44e^zNdktj@a-bXH&7!R!4>i(4l4Kj% zOA2I+93e-^%j8{hg1kpQAzzTQk;KggftFPH^2un07`6;{G3XoOaXLjpP= z3EN=+24M&cuwVpi$UzClU>qKWgYY;!2~WY(@C+P-SKw864PJ-0;C=W2K7^0q6nq7z z;cGYt=iz(!0e*&G;5YbPs+Q(T^Q2m-UTTzXmtxXJDK2$N-O`Y>SF%I^QaQ(Vmjev? zA4EA*j^#y;Nylc+vB;LY@9DhvD$cPp^F&rHx@mEAMPpMN=Gq1J3A&aUdNJ=g*{7rk zCp#xY1yLtO`l-vxsactay_hBD0huK$og=JoQJ2e@C3Kc(-lndSF+b>R(Tqjb$e58- z;!SmJq*cMZqgA3Ai_~D&uu0W+b%TQWN2^6sQ#UFKCA<+yM3OS*5S6bKxj!SP$Qkkt z`4P$eH&lZHbx@C#Zi05$h@@te-U3~)1G*svy|4$;phE`fodXB*upc~l1nGScCg3qR z3{Sujcov?6=ivo-F`)Px@HV^y$KeE=M6!PbpTi`afp06QyKO3U;k%irTS^ri+jaJ# zj!}L#@ko{o^ADrWO4`@KCvi$l74cFm-LoG7dHiVV{N5w0@!rCs{s{Kl*9ivy8D|A9 zQ>hcSLIgqtLIgqtLIkdH1ggaPqpbeF`O^RYU*l1R%MTF<5x5)zP@POA6KGN1=vNxE zT6+}Fy?C;N*-Z$^UGTz8SU)evV}sQdd0hnif Date: Mon, 6 Apr 2026 17:12:44 -0500 Subject: [PATCH 11/20] Somewhat hierarchical platforms with meanings pointing to EFO --- .../schema/include_access_model.yaml | 576 ++++++++++-------- 1 file changed, 322 insertions(+), 254 deletions(-) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 27298c8..0570d1d 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -19,12 +19,13 @@ prefixes: ig2dac: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-code/ ig2dat: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-type/ ig2_biospecimen_availability: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/biospecimen-availability/ - snomed_ct: http://snomed.info/id/ + snomed_ct: http://snomed.info/id/ MONDO: http://purl.obolibrary.org/obo/MONDO_ HP: http://purl.obolibrary.org/obo/HP_ mesh: http://id.nlm.nih.gov/mesh/ NCIT: http://purl.obolibrary.org/obo/NCIT_ PATO: http://purl.obolibrary.org/obo/PATO_ + EFO: http://www.ebi.ac.uk/efo default_prefix: includedcc default_range: string @@ -38,25 +39,25 @@ classes: title: Record abstract: true slots: - - external_id + - external_id Study: - title: Research Study - description: Study Metadata + title: Research Study + description: Study Metadata is_a: Record - slots: - #TODO: Split out core Study items and additional study metadata? + slots: + #TODO: Split out core Study items and additional study metadata? - study_id - - parent_study + - parent_study - study_title - study_code - study_short_name - program - funding_source - - principal_investigator + - principal_investigator - contact - study_description - website - # - dbgap : Should we call this out specifically or just use an external id? + # - dbgap : Should we call this out specifically or just use an external id? - publication - acknowledgments - citation_statement @@ -134,8 +135,9 @@ classes: - website Subject: title: Subject - description: This entity is the subject about which data or references are recorded. - This includes the idea of a human participant in a study, a cell line, an animal model, + description: + This entity is the subject about which data or references are recorded. + This includes the idea of a human participant in a study, a cell line, an animal model, or any other similar entity. is_a: Record slots: @@ -157,7 +159,7 @@ classes: - race - ethnicity - down_syndrome_status - - age_at_last_vital_status + - age_at_last_vital_status - vital_status - age_at_first_engagement slot_usage: @@ -165,9 +167,9 @@ classes: required: true identifier: true SubjectAssertion: - title: Subject Assertion + title: Subject Assertion description: Assertion about a particular Subject. May include Conditions, Measurements, etc. - is_a: Record + is_a: Record slots: - assertion_id - subject_id @@ -199,19 +201,19 @@ classes: required: true identifier: true Sample: - title: Sample + title: Sample description: A functionally equivalent specimen taken from a participant or processed from such a sample. is_a: Record - slots: + slots: - sample_id - - biospecimen_collection_id - - parent_sample_id + - biospecimen_collection_id + - parent_sample_id - sample_type - - processing - - availablity_status - - storage_method + - processing + - availablity_status + - storage_method - quantity_number - - quantity_unit + - quantity_unit slot_usage: sample_id: range: string @@ -222,14 +224,14 @@ classes: BiospecimenCollection: title: BiospecimenCollection description: A biospecimen collection event which yields one or more Samples. - is_a: Record - slots: + is_a: Record + slots: - biospecimen_collection_id - age_at_collection - - method - - site - - spatial_qualifier - - laterality + - method + - site + - spatial_qualifier + - laterality - encounter_id slot_usage: biospecimen_collection_id: @@ -239,13 +241,13 @@ classes: Aliquot: title: Aliquot description: A specific tube or amount of a biospecimen associated with a Sample. - is_a: Record - slots: + is_a: Record + slots: - aliquot_id - sample_id - availablity_status - quantity_number - - quantity_unit + - quantity_unit - concentration_number - concentration_unit slot_usage: @@ -255,7 +257,7 @@ classes: identifier: true Encounter: title: Participant Encounter - description: An event at which data was collected about a participant, + description: An event at which data was collected about a participant, an intervention was made, or information about a participant was recorded. is_a: Record slots: @@ -271,8 +273,8 @@ classes: identifier: true EncounterDefinition: title: Encounter Definition - description: A definition of an encounter type in this study, ie, - an event at which data was collected about a participant, + description: A definition of an encounter type in this study, ie, + an event at which data was collected about a participant, an intervention was made, or information about a participant was recorded. This may be something planned by a study or a type of data collection. #TODO: These are metadata and may not need the same Record basis. @@ -291,7 +293,7 @@ classes: multivalued: true ActivityDefinition: title: Activity Definition - description: A definition of an activity in this study, eg, + description: A definition of an activity in this study, eg, a biospecimen collection, intervention, survey, or assessment. #TODO: These are metadata and may not need the same Record basis. is_a: Record @@ -299,7 +301,7 @@ classes: - activity_definition_id - name - description - #TODO: Probably want an "expected data generated" slot, eg, + #TODO: Probably want an "expected data generated" slot, eg, #observation definitions or dd refs slot_usage: activity_definition_id: @@ -309,38 +311,38 @@ classes: File: title: File description: Required information for portal use. - is_a: Record - slots: - - study_id - - file_id - - subject_id # do we need both a subject and sample id in this table? + is_a: Record + slots: + - study_id + - file_id + - subject_id # do we need both a subject and sample id in this table? - sample_id - - s3_file_path # can name this url if more appropriate + - s3_file_path # can name this url if more appropriate - filename - size - format - - data_category + - data_category - data_type - format - size -#TODO: I'm not convinced this is the right strategy- access model vs operations + #TODO: I'm not convinced this is the right strategy- access model vs operations - staging_url - release_url - drs_uri - - hash + - hash slot_usage: - study_id: - required: true + study_id: + required: true file_id: range: string required: true identifier: true subject_id: - required: true + required: true multivalued: true sample_id: - required: true + required: true multivalued: true data_category: required: true @@ -365,25 +367,25 @@ classes: #TODO: Are these good elements for the core entity? - data_collection_start - data_collection_end - + slot_usage: dataset_id: range: string required: true identifier: true - file_id: + file_id: multivalued: true description: The list of files comprising this dataset. FileAdmin: # names are TBD; can change - idea is this is operational or file universe model title: File Admin description: File unvierse; contains all information about a file that may be needed for operational work - slots: - - study_id - - file_id - - subject_id # do we need both a subject and sample id in this table? + slots: + - study_id + - file_id + - subject_id # do we need both a subject and sample id in this table? - sample_id - - s3_file_path # can name this url if more appropriate - - file_category + - s3_file_path # can name this url if more appropriate + - file_category - size - s3_key - file_extension @@ -418,23 +420,23 @@ classes: - acl - is_released - is_registered - - repository + - repository - experimental_strategy - slot_usage: - study_id: - required: true - file_id: - required: true - identifier: true + slot_usage: + study_id: + required: true + file_id: + required: true + identifier: true FileAssay: title: File Assay - # for now group all types into one table; but we may want to split out since different - # assay types collect different types of information - # this is a basic model - description: A file produced by or associated with an assay - or data acquisition process including omics, imaging, + # for now group all types into one table; but we may want to split out since different + # assay types collect different types of information + # this is a basic model + description: A file produced by or associated with an assay + or data acquisition process including omics, imaging, actigraphy, and other experimental or observational data. slots: - file_id @@ -450,70 +452,70 @@ classes: - platform - workflow_name - workflow_version - - slot_usage: - file_id: - required: true - identifier: true - subject_id: - required: true - multivalued: true - sample_id: - required: true - multivalued: true - data_category: + + slot_usage: + file_id: + required: true + identifier: true + subject_id: + required: true + multivalued: true + sample_id: + required: true + multivalued: true + data_category: required: true - -slots: + +slots: study_id: title: Study ID description: INCLUDE Global ID for the study range: Study - multivalued: false + multivalued: false do_id: title: DOI description: Digital Object Identifier (DOI) for this Record. range: DOI - multivalued: false + multivalued: false subject_id: title: Study ID description: INCLUDE Global ID for the Subject range: Subject - multivalued: false + multivalued: false assertion_id: title: Assertion ID description: INCLUDE Global ID for the Assertion range: SubjectAssertion - multivalued: false - external_id: + multivalued: false + external_id: title: External Identifiers description: Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP - required: false - range: uriorcurie - multivalued: true + required: false + range: uriorcurie + multivalued: true parent_study: title: Parent Study description: The parent study for this study, if it is a nested study. - required: false - range: Study + required: false + range: Study multivalued: false funding_source: - title: Funding Source + title: Funding Source description: The funding source(s) of the study. - required: false - range: string - multivalued: true - principal_investigator: - title: Principal Investigator + required: false + range: string + multivalued: true + principal_investigator: + title: Principal Investigator description: The Principal Investigator(s) responsible for the study. - required: true + required: true range: Investigator - multivalued: true - study_title: - description: Full Study Title - required: true - range: string - multivalued: false + multivalued: true + study_title: + description: Full Study Title + required: true + range: string + multivalued: false study_code: description: Unique identifier for the study (generally a short acronym) title: Study Code @@ -562,9 +564,9 @@ slots: contact: title: Contact Person description: The individual to contact with questions about this record. - required: true + required: true range: Investigator - multivalued: true + multivalued: true vbr: title: Virtual Biorepository description: Information about the study's Virtual Biorepository, if participating @@ -633,15 +635,15 @@ slots: description: Text use to reference this Record. range: string organism_type: - title: Organism Type + title: Organism Type description: Organism Type - required: false - range: uriorcurie - subject_type: - title: Subject Type + required: false + range: uriorcurie + subject_type: + title: Subject Type description: Type of entity this record represents - required: true - range: EnumSubjectType + required: true + range: EnumSubjectType sex: title: Sex description: Sex of Participant @@ -672,7 +674,7 @@ slots: ucum_code: d #Range -1 year to 89*365.25 (Privacy upper bound for ages over 89 years) minimum_value: -365 - maximum_value: 32507 + maximum_value: 32507 vital_status: title: Vital Status description: Whether participant is alive or dead @@ -697,7 +699,8 @@ slots: ucum_code: d age_at_event: title: Age at event - description: The age in days of the Subject at the time point which the assertion describes, + description: + The age in days of the Subject at the time point which the assertion describes, eg, age of onset or when a measurement was performed. range: integer unit: @@ -750,34 +753,34 @@ slots: title: Sample ID description: The unique identifier for this Sample. range: Sample - parent_sample_id: + parent_sample_id: title: Parent Sample ID description: Sample from which this sample is derived - range: Sample + range: Sample inlined: false - biospecimen_collection_id: + biospecimen_collection_id: title: Biospecimen Collection ID description: Unique identifier for this Biospecimen Collection. - range: BiospecimenCollection - aliquot_id: + range: BiospecimenCollection + aliquot_id: title: Aliquot ID description: Unique identifier for an Aliquot. - range: Aliquot + range: Aliquot sample_type: title: Sample Type - description: Type of material of which this Sample is comprised - required: true - range: uriorcurie + description: Type of material of which this Sample is comprised + required: true + range: uriorcurie processing: title: Sample Processing description: Processing that was applied to the Parent Sample or from the Biospecimen Collection that yielded this distinct sample - range: uriorcurie - multivalued: true - availablity_status: + range: uriorcurie + multivalued: true + availablity_status: title: Sample Availability description: Can this Sample be requested for further analysis? - range: EnumAvailabilityStatus - storage_method: + range: EnumAvailabilityStatus + storage_method: title: Sample Storage Method description: Sample storage method, eg, Frozen or with additives range: uriorcurie @@ -790,33 +793,33 @@ slots: title: Quantity Units description: The structured term defining the units of the quantity. range: Concept - concentration_number: + concentration_number: title: Concentration description: What is the concentration of the analyte in the Aliquot? - range: float - concentration_unit: + range: float + concentration_unit: title: Concentration Units description: Units associated with the concentration of the analyte in the Aliquot. - range: Concept + range: Concept age_at_collection: title: Age at Biospecimen Collection description: The age at which this biospecimen was collected in decimal years. - range: float + range: float unit: - ucum_code: a - method: - title: Biospecimen Collection Method + ucum_code: a + method: + title: Biospecimen Collection Method description: The approach used to collect the biospecimen. range: EnumSampleCollectionMethod - site: - title: Biospecimen Collection Site + site: + title: Biospecimen Collection Site description: The location of the specimen collection. range: EnumSite - spatial_qualifier: + spatial_qualifier: title: Spatial Qualifier description: Qualifier that further refine the specific location of biospecimen collection range: EnumSpatialQualifiers - laterality: + laterality: title: Location Laterality description: Laterality that further refine the specific location of biospecimen collection range: EnumLaterality @@ -860,8 +863,8 @@ slots: description: Size of the file, in Bytes. range: integer unit: - ucum_code: By - required: true + ucum_code: By + required: true staging_url: title: Staging Location description: URL for internal access to the data. May be temporary. @@ -870,8 +873,8 @@ slots: release_url: title: Release Location description: URL for controlled or open access to the data. - range: uriorcurie - required: false + range: uriorcurie + required: false drs_uri: title: DRS URI description: DRS location to access the data. @@ -906,7 +909,7 @@ slots: description: The date that data collection started. May include only a year. #TODO: We could re-evaluate these as dates, but that may be too implementation specific range: string - s3_file_path: + s3_file_path: title: S3 File Path description: The full s3 url of a file's location in aws range: string @@ -914,54 +917,54 @@ slots: is_released: title: Is Released description: A flag that notes whether a file has been released to the public - range: boolean + range: boolean required: true is_registered: title: Is Registered description: A flag that notes whether a file has been registered to a drs service range: boolean required: true - repository: + repository: title: Repository - description: The name of the drs service which files are registered to + description: The name of the drs service which files are registered to range: EnumRepository required: false - file_category: + file_category: title: File Category description: A high level classification of the file used for operations. range: string required: true - s3_key: + s3_key: title: S3 Key description: The unique identifier for an object within a bucket range: string required: true - file_extension: + file_extension: title: File Extension description: A 3-4 letter code at the end of a filename that identifies the file format. range: string required: true - data_transfer_id: + data_transfer_id: title: Data Transfer ID description: A jira ticket number associated with a file transfer request to production bucket range: string required: false - aws_account_id: + aws_account_id: title: AWS Account ID description: A 12-digit number that uniquely identifies a specific AWS account range: string required: true - account_name: + account_name: title: AWS Account Name description: A user-defined label used to define an AWS accoun. range: string required: true - account_alias: + account_alias: title: Account Alias description: A unique user-defined string that replaces the AWS Account ID in the IAM user sign-in URL range: string required: true - bucket_study_id: + bucket_study_id: title: Bucket Study ID description: The global study ID used to create the bucket range: string @@ -971,72 +974,72 @@ slots: description: Cloud storage container in AWS used to manage and store s3 objects range: string required: true - s3_created_at: + s3_created_at: title: S3 Created At description: Timestamp of when a file was uploaded to an s3 bucket. range: datetime required: true - s3_modified_at: + s3_modified_at: title: S3 Modified At description: Timestamp of when a file was modified in an s3 bucket. range: datetime required: true - intelligent_tiering_access_tier: + intelligent_tiering_access_tier: title: Intelligent Tiering Access Tier description: Storage access tier assigned by AWS intelliegnt tiering, indicating the current access frequency classification of the object range: string required: true - is_delete_marker: + is_delete_marker: title: Is Delete Marker description: A flag that notes whether a file has been deleted from s3 range: boolean required: true - is_latest: + is_latest: title: Is Latest description: Specifies whether an object version is the most recent version of that object range: boolean required: true - storage_class: + storage_class: title: Storage Class description: Storage tier of the object in AWS reflecting cost and access characteristics. range: string required: true - manifest_hash_value: + manifest_hash_value: title: Manifest Hash Value description: The provided hash value from external users to be validated against internal hash values range: string required: false - file_hash_validation_status: + file_hash_validation_status: title: File Hash Validation Status description: Notes whether hashes have been generated and verified against manifest hash values. range: string required: false - file_type: + file_type: title: File Type description: An internal type or classification of the files based on its operational usuage. range: string required: true - encryption_status: + encryption_status: title: Encryption Status description: Indicates whether the object in AWS is encrypted and the type of encryption applied. range: string required: true - is_multipart_uploaded: + is_multipart_uploaded: title: Is Multipart Uploaded description: Indicates whether the object was uploaded using a multipart upload process. range: string required: true - object_lock_level_hold_status: + object_lock_level_hold_status: title: Object Lock Level Hold Status description: Whether a legal hold is applied to prevent deletion of the object. range: string required: true - object_lock_mode: + object_lock_mode: title: Object Lock Mode description: Retention mode applied to the object that restricts deletion or modification. range: string required: true - replication_status: + replication_status: title: Replication Status description: Status of the object's replication to another storage location. range: string @@ -1046,55 +1049,51 @@ slots: description: Identifier for a specific version of the object range: string required: true - access_type: + access_type: title: Access Type description: Notes wheter a file is controlled, open, or registered-tier access range: EnumAccessType required: true - access_url: + access_url: title: Access URL description: HTTPS endpoint for accessing a file via a specific data repository service. range: string required: false - acl: + acl: title: ACL description: The object access control list. range: string required: true - experimental_strategy: + experimental_strategy: title: Experimental Strategy description: Method or assay used to generate the data range: EnumExperimentalStrategy required: true - assay_center: + assay_center: title: Assay Center description: The organization or center that generated the file range: EnumAssayCenter required: false - platform: + platform: title: Platform description: Instrument or platform family name - range: EnumPlatform + range: EnumPlatform required: true workflow_name: title: Workflow Name description: Processing tool that produced the file - range: string - required: false - workflow_version: + range: string + required: false + workflow_version: title: Workflow Version description: Version of the process tool that produced the file range: string required: false - object_lock_retain_until_date: + object_lock_retain_until_date: title: Object Lock Retain Until Date description: Specifies exact date and time when an object's Object Lock rentention period expires. range: datetime required: true - - - - enums: EnumProgram: @@ -1203,7 +1202,7 @@ enums: description: Categories of data which may be collected about participants. #TODO: Add meanings permissible_values: - #Should we have these two demo/clinical data categories? + #Should we have these two demo/clinical data categories? unharmonized_demographic_clinical_data: title: Unharmonized Demographic/Clinical Data harmonized_demographic_clinical_data: @@ -1237,15 +1236,16 @@ enums: title: Sleep Study EnumSubjectType: description: Types of Subject entities - permissible_values: - participant: + permissible_values: + participant: description: Study participant with consent, assent, or waiver of consent. non_participant: - description: An individual associated with a study who was not explictly consented, eg, the subject + description: + An individual associated with a study who was not explictly consented, eg, the subject of a reported family history. - cell_line: + cell_line: description: Cell Line - animal_model: + animal_model: description: Animal model group: description: A group of individuals or entities. @@ -1379,12 +1379,12 @@ enums: description: Is the biospecimen available for use? permissible_values: available: - title: Available - meaning: ig2_biospecimen_availability:available + title: Available + meaning: ig2_biospecimen_availability:available description: Biospecimen is Available - unavailable: - title: Unavailable - meaning: ig2_biospecimen_availability:unavailable + unavailable: + title: Unavailable + meaning: ig2_biospecimen_availability:unavailable description: Biospecimen is Unavailable EnumSampleCollectionMethod: description: The approach used to collect the biospecimen. [LOINC](https://loinc.org) is recommended. @@ -1392,12 +1392,12 @@ enums: description: The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) is recommended. EnumSpatialQualifiers: description: Any spatial/location qualifiers. - enum_uri: http://hl7.org/fhir/us/mcode/ValueSet/mcode-body-location-qualifier-vs + enum_uri: http://hl7.org/fhir/us/mcode/ValueSet/mcode-body-location-qualifier-vs reachable_from: source_ontology: bioregistry:snomedct source_nodes: - snomedct:106233006 - - snomedct:272424004 + - snomedct:272424004 - snomedct:51440002 - snomedct:399488007 - snomedct:24028007 @@ -1432,88 +1432,156 @@ enums: permissible_values: md5: title: MD5 - etag: + etag: title: ETag sha1: title: SHA-1 - EnumAccessType: - description: Types of file access levels. - permissible_values: - open: - title: Open Access - controlled: + EnumAccessType: + description: Types of file access levels. + permissible_values: + open: + title: Open Access + controlled: title: Controlled Access - registered: + registered: title: Registered-tier Access - EnumExperimentalStrategy: + EnumExperimentalStrategy: description: Types of sequencing methods. - permissible_values: + permissible_values: wgs: title: Whole Genome Sequencing - rnaseq: + rnaseq: title: RNA-Seq - wxs: + wxs: title: Whole Exome Sequencing - methlyation: + methlyation: title: Methylation - clr_wgs: + clr_wgs: title: Continuous Long Reads WGS - proteomics: - title: Proteomics - targeted_seq: + proteomics: + title: Proteomics + targeted_seq: title: Targeted Sequencing - ccs_wgs: + ccs_wgs: title: Circular Consensus Sequencing WGS - panel: + panel: title: Panel - ccs_rnaseq: + ccs_rnaseq: title: Circular Consensus Sequencing RNA-Se - ont_wgs: + ont_wgs: title: Oxford Nanopore Technologies WGS - clr_rnaseq: + clr_rnaseq: title: Continuous Long Reads RNA-Seq - EnumAssayCenter: + EnumAssayCenter: description: Organizations or centers producing raw or harmonized sequencing files. - permissible_values: - # can add more as needed - broad: - title: The Broad Institute - hudsonalpha: - title: HudsonAlpha Institute for Biotechnology - stjude: + permissible_values: + # can add more as needed + broad: + title: The Broad Institute + hudsonalpha: + title: HudsonAlpha Institute for Biotechnology + stjude: title: St. Jude - baylor: + baylor: title: Baylor College of Medicine - chop: + chop: title: The Children's Hospital of Philadelphia - other: + other: title: Other - unknown: + unknown: title: Unknown - EnumRepository: + EnumRepository: description: specific drs service used for registration - permissible_values: - cavatica: + permissible_values: + cavatica: title: Cavatica DRS - dcf: - title: NCI DCF - other: + dcf: + title: NCI DCF + other: title: Other - EnumPlatform: + EnumPlatform: description: names of instrument or platforms used for assay data generation - permissible_values: - illumina: + permissible_values: + illumina: title: Illumina - pacbio: - title: PacBio - ont: - title: ONT - illumina_epic: - title: Illumina Infinium HumanMethylationEPICv2 - other: - title: Other - unknown: + description: Illumina Platform + long_read: + description: Single-molecule sequencing technologies (PacBio, ONT). + unknown: title: Unknown - + description: Unknown platform + + # --- Illumina Sub-grouping --- + # High-Throughput / Production + novaseq_x: + is_a: illumina + title: NovaSeq X Series + description: Ultra-high throughput (NovaSeq X, X Plus). + meaning: EFO:EFO_0022840 + novaseq_6000: + title: NovaSeq 6000 + is_a: illumina + description: Standard high-throughput production platform. + meaning: EFO:EFO_0008637 + # Mid-to-Low Throughput + nextseq_1000: + title: NextSeq 1000 + is_a: illumina + description: Mid-range sequencing (P1, P2, P3 flowcells). + meaning: EFO:EFO_0010962 + nextseq_2000: + title: NextSeq 1000-2000 + is_a: illumina + description: Mid-range sequencing (P1, P2, P3 flowcells). + meaning: EFO:EFO_0010963 + nextseq_500: + title: NextSeq 500_550 + is_a: illumina + description: Older mid-range 2-channel systems. + meaning: EFO:EFO_0009173 + nextseq_550: + title: NextSeq 550 + is_a: illumina + description: Older mid-range 2-channel systems. + meaning: EFO:EFO_0008566 + miseq: + title: MiSeq Series + is_a: illumina + description: Benchtop low-throughput (MiSeq, MiSeqDx). + miniseq_iseq: + title: MiniSeq iSeq + is_a: illumina + description: Smallest entry-level sequencers. + + # Array + iscan_system: + is_a: illumina + description: Hardware for Infinium arrays (EPIC, GSA). + # --- PacBio (Pacific Biosciences) --- + pacbio_revio: + title: PacBio Revio + is_a: long_read + description: Current flagship high-throughput HiFi system. + pacbio_sequel_iie: + title: PacBio Sequel IIe + is_a: long_read + description: Reliable mid-to-high throughput HiFi system. + pacbio_onso: + title: PacBio Onso + is_a: long_read + description: Short-read SBB (Sequencing by Binding) platform from PacBio. + # --- ONT (Oxford Nanopore Technologies) --- + ont_promethion: + title: ONT PromethION + is_a: long_read + description: Ultra-high throughput scalable nanopore system. + ont_gridion: + title: ONT GridION + is_a: long_read + description: Benchtop nanopore system running up to 5 flow cells. + ont_minion: + title: ONT MiniION + is_a: long_read + description: Portable, pocket-sized nanopore sequencer. From 3d93201ad2f510464a275711f1df5f5d7aad26cb Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Tue, 14 Apr 2026 13:36:50 -0500 Subject: [PATCH 12/20] Delete docs/schema/include_access_model.yaml --- docs/schema/include_access_model.yaml | 3613 ------------------------- 1 file changed, 3613 deletions(-) delete mode 100644 docs/schema/include_access_model.yaml diff --git a/docs/schema/include_access_model.yaml b/docs/schema/include_access_model.yaml deleted file mode 100644 index 755ba0e..0000000 --- a/docs/schema/include_access_model.yaml +++ /dev/null @@ -1,3613 +0,0 @@ -name: include-access-model -description: LinkML Schema for the internal INCLUDE DCC Access Model -title: INCLUDE DCC Access Model -see_also: -- https://includedcc.github.io/include-access-model -id: https://includedcc.org/include-access-model -imports: -- linkml:types -license: MIT -prefixes: - includedcc: - prefix_prefix: includedcc - prefix_reference: https://includedcc.org/include-access-model/ - linkml: - prefix_prefix: linkml - prefix_reference: https://w3id.org/linkml/ - schema: - prefix_prefix: schema - prefix_reference: http://schema.org/ - cdc_race_eth: - prefix_prefix: cdc_race_eth - prefix_reference: urn:oid:2.16.840.1.113883.6.238/ - hl7_null: - prefix_prefix: hl7_null - prefix_reference: http://terminology.hl7.org/CodeSystem/v3-NullFlavor/ - ig_dob_method: - prefix_prefix: ig_dob_method - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-date-of-birth-method/ - igcondtype: - prefix_prefix: igcondtype - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/condition-type/ - ig2dac: - prefix_prefix: ig2dac - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-code/ - ig2dat: - prefix_prefix: ig2dat - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-type/ - ig2_biospecimen_availability: - prefix_prefix: ig2_biospecimen_availability - prefix_reference: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/biospecimen-availability/ - snomed_ct: - prefix_prefix: snomed_ct - prefix_reference: http://snomed.info/id/ - MONDO: - prefix_prefix: MONDO - prefix_reference: http://purl.obolibrary.org/obo/MONDO_ - HP: - prefix_prefix: HP - prefix_reference: http://purl.obolibrary.org/obo/HP_ - mesh: - prefix_prefix: mesh - prefix_reference: http://id.nlm.nih.gov/mesh/ - NCIT: - prefix_prefix: NCIT - prefix_reference: http://purl.obolibrary.org/obo/NCIT_ - PATO: - prefix_prefix: PATO - prefix_reference: http://purl.obolibrary.org/obo/PATO_ -default_prefix: includedcc -default_range: string -types: - string: - name: string - definition_uri: https://w3id.org/linkml/String - description: A character string - notes: - - In RDF serializations, a slot with range of string is treated as a literal or - type xsd:string. If you are authoring schemas in LinkML YAML, the type is - referenced with the lower case "string". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Text - base: str - uri: xsd:string - integer: - name: integer - definition_uri: https://w3id.org/linkml/Integer - description: An integer - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "integer". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Integer - base: int - uri: xsd:integer - boolean: - name: boolean - definition_uri: https://w3id.org/linkml/Boolean - description: A binary (true or false) value - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "boolean". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Boolean - base: Bool - uri: xsd:boolean - repr: bool - float: - name: float - definition_uri: https://w3id.org/linkml/Float - description: A real number that conforms to the xsd:float specification - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "float". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Float - base: float - uri: xsd:float - double: - name: double - definition_uri: https://w3id.org/linkml/Double - description: A real number that conforms to the xsd:double specification - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "double". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - close_mappings: - - schema:Float - base: float - uri: xsd:double - decimal: - name: decimal - definition_uri: https://w3id.org/linkml/Decimal - description: A real number with arbitrary precision that conforms to the xsd:decimal - specification - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "decimal". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - broad_mappings: - - schema:Number - base: Decimal - uri: xsd:decimal - time: - name: time - definition_uri: https://w3id.org/linkml/Time - description: A time object represents a (local) time of day, independent of any - particular day - notes: - - URI is dateTime because OWL reasoners do not work with straight date or time - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "time". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Time - base: XSDTime - uri: xsd:time - repr: str - date: - name: date - definition_uri: https://w3id.org/linkml/Date - description: a date (year, month and day) in an idealized calendar - notes: - - URI is dateTime because OWL reasoners don't work with straight date or time - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "date". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:Date - base: XSDDate - uri: xsd:date - repr: str - datetime: - name: datetime - definition_uri: https://w3id.org/linkml/Datetime - description: The combination of a date and time - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "datetime". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - exact_mappings: - - schema:DateTime - base: XSDDateTime - uri: xsd:dateTime - repr: str - date_or_datetime: - name: date_or_datetime - definition_uri: https://w3id.org/linkml/DateOrDatetime - description: Either a date or a datetime - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "date_or_datetime". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: str - uri: linkml:DateOrDatetime - repr: str - uriorcurie: - name: uriorcurie - definition_uri: https://w3id.org/linkml/Uriorcurie - description: a URI or a CURIE - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "uriorcurie". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: URIorCURIE - uri: xsd:anyURI - repr: str - curie: - name: curie - definition_uri: https://w3id.org/linkml/Curie - conforms_to: https://www.w3.org/TR/curie/ - description: a compact URI - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "curie". - comments: - - in RDF serializations this MUST be expanded to a URI - - in non-RDF serializations MAY be serialized as the compact representation - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: Curie - uri: xsd:string - repr: str - uri: - name: uri - definition_uri: https://w3id.org/linkml/Uri - conforms_to: https://www.ietf.org/rfc/rfc3987.txt - description: a complete URI - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "uri". - comments: - - in RDF serializations a slot with range of uri is treated as a literal or type - xsd:anyURI unless it is an identifier or a reference to an identifier, in which - case it is translated directly to a node - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - close_mappings: - - schema:URL - base: URI - uri: xsd:anyURI - repr: str - ncname: - name: ncname - definition_uri: https://w3id.org/linkml/Ncname - description: Prefix part of CURIE - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "ncname". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: NCName - uri: xsd:string - repr: str - objectidentifier: - name: objectidentifier - definition_uri: https://w3id.org/linkml/Objectidentifier - description: A URI or CURIE that represents an object in the model. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "objectidentifier". - comments: - - Used for inheritance and type checking - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: ElementIdentifier - uri: shex:iri - repr: str - nodeidentifier: - name: nodeidentifier - definition_uri: https://w3id.org/linkml/Nodeidentifier - description: A URI, CURIE or BNODE that represents a node in a model. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "nodeidentifier". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: NodeIdentifier - uri: shex:nonLiteral - repr: str - jsonpointer: - name: jsonpointer - definition_uri: https://w3id.org/linkml/Jsonpointer - conforms_to: https://datatracker.ietf.org/doc/html/rfc6901 - description: A string encoding a JSON Pointer. The value of the string MUST conform - to JSON Point syntax and SHOULD dereference to a valid object within the current - instance document when encoded in tree form. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "jsonpointer". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: str - uri: xsd:string - repr: str - jsonpath: - name: jsonpath - definition_uri: https://w3id.org/linkml/Jsonpath - conforms_to: https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html - description: A string encoding a JSON Path. The value of the string MUST conform - to JSON Point syntax and SHOULD dereference to zero or more valid objects within - the current instance document when encoded in tree form. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "jsonpath". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: str - uri: xsd:string - repr: str - sparqlpath: - name: sparqlpath - definition_uri: https://w3id.org/linkml/Sparqlpath - conforms_to: https://www.w3.org/TR/sparql11-query/#propertypaths - description: A string encoding a SPARQL Property Path. The value of the string - MUST conform to SPARQL syntax and SHOULD dereference to zero or more valid objects - within the current instance document when encoded as RDF. - notes: - - If you are authoring schemas in LinkML YAML, the type is referenced with the - lower case "sparqlpath". - from_schema: https://w3id.org/linkml/types - imported_from: linkml:types - base: str - uri: xsd:string - repr: str -enums: - EnumProgram: - name: EnumProgram - definition_uri: https://includedcc.org/include-access-model/EnumProgram - description: Funding programs relevant to inform operations. - title: Funding Programs - from_schema: https://includedcc.org/include-access-model - permissible_values: - include: - text: include - title: INCLUDE - kf: - text: kf - title: KF - other: - text: other - title: Other - EnumResearchDomain: - name: EnumResearchDomain - definition_uri: https://includedcc.org/include-access-model/EnumResearchDomain - description: Domains of Research used to find studies. - title: Research Domain - from_schema: https://includedcc.org/include-access-model - permissible_values: - behavior_and_behavior_mechanisms: - text: behavior_and_behavior_mechanisms - meaning: mesh:D001520 - title: Behavior and Behavior Mechanisms - congenital_heart_defects: - text: congenital_heart_defects - meaning: mesh:D006330 - title: Congenital Heart Defects - immune_system_diseases: - text: immune_system_diseases - meaning: mesh:D007154 - title: Immune System Diseases - hematologic_diseases: - text: hematologic_diseases - meaning: mesh:D006402 - title: Hematologic Diseases - neurodevelopment: - text: neurodevelopment - meaning: mesh:D065886 - title: Neurodevelopment - sleep_wake_disorders: - text: sleep_wake_disorders - meaning: mesh:D012893 - title: Sleep Wake Disorders - all_co_occurring_conditions: - text: all_co_occurring_conditions - meaning: mesh:D013568 - title: All Co-occurring Conditions - physical_fitness: - text: physical_fitness - meaning: mesh:D010809 - title: Physical Fitness - other: - text: other - title: Other - EnumParticipantLifespanStage: - name: EnumParticipantLifespanStage - definition_uri: https://includedcc.org/include-access-model/EnumParticipantLifespanStage - description: Stages of life during which participants may be recruited. - title: Participant Lifespan Stage - from_schema: https://includedcc.org/include-access-model - permissible_values: - fetal: - text: fetal - description: Before birth - title: Fetal - neonatal: - text: neonatal - description: 0-28 days old - title: Neonatal - pediatric: - text: pediatric - description: Birth-17 years old - title: Pediatric - adult: - text: adult - description: 18+ years old - title: Adult - EnumStudyDesign: - name: EnumStudyDesign - definition_uri: https://includedcc.org/include-access-model/EnumStudyDesign - description: Approaches for collecting data, investigating interventions, and/or - analyzing data. - title: Study Design - from_schema: https://includedcc.org/include-access-model - permissible_values: - case_control: - text: case_control - title: Case-Control - case_set: - text: case_set - title: Case Set - control_set: - text: control_set - title: Control Set - clinical_trial: - text: clinical_trial - title: Clinical Trial - cross_sectional: - text: cross_sectional - title: Cross-Sectional - family_twins_trios: - text: family_twins_trios - title: Family/Twins/Trios - interventional: - text: interventional - title: Interventional - longitudinal: - text: longitudinal - title: Longitudinal - trial_readiness_study: - text: trial_readiness_study - title: Trial Readiness Study - tumor_vs_matched_normal: - text: tumor_vs_matched_normal - title: Tumor vs Matched Normal - EnumClinicalDataSourceType: - name: EnumClinicalDataSourceType - definition_uri: https://includedcc.org/include-access-model/EnumClinicalDataSourceType - description: Approaches to ascertain clinical information about a participant. - title: Clinical Data Source Type - from_schema: https://includedcc.org/include-access-model - permissible_values: - medical_record: - text: medical_record - description: Data obtained directly from medical record - title: Medical Record - investigator_assessment: - text: investigator_assessment - description: Data obtained by examination, interview, etc. with investigator - title: Investigator Assessment - participant_or_caregiver_report: - text: participant_or_caregiver_report - description: Data obtained from survey, questionnaire, etc. filled out by - participant or caregiver - title: Participant or Caregiver Report - other: - text: other - description: Data obtained from other source, such as tissue bank - title: Other - unknown: - text: unknown - title: Unknown - EnumDataCategory: - name: EnumDataCategory - definition_uri: https://includedcc.org/include-access-model/EnumDataCategory - description: Categories of data which may be collected about participants. - title: Data Category - from_schema: https://includedcc.org/include-access-model - permissible_values: - unharmonized_demographic_clinical_data: - text: unharmonized_demographic_clinical_data - title: Unharmonized Demographic/Clinical Data - harmonized_demographic_clinical_data: - text: harmonized_demographic_clinical_data - title: Harmonized Demographic/Clinical Data - genomics: - text: genomics - title: Genomics - transcriptomics: - text: transcriptomics - title: Transcriptomics - epigenomics: - text: epigenomics - title: Epigenomics - proteomics: - text: proteomics - title: Proteomics - metabolomics: - text: metabolomics - title: Metabolomics - cognitive_behavioral: - text: cognitive_behavioral - title: Cognitive/Behavioral - immune_profiling: - text: immune_profiling - title: Immune Profiling - imaging: - text: imaging - title: Imaging - microbiome: - text: microbiome - title: Microbiome - fitness: - text: fitness - title: Fitness - physical_activity: - text: physical_activity - title: Physical Activity - other: - text: other - title: Other - sleep_study: - text: sleep_study - title: Sleep Study - EnumSubjectType: - name: EnumSubjectType - definition_uri: https://includedcc.org/include-access-model/EnumSubjectType - description: Types of Subject entities - from_schema: https://includedcc.org/include-access-model - permissible_values: - participant: - text: participant - description: Study participant with consent, assent, or waiver of consent. - non_participant: - text: non_participant - description: An individual associated with a study who was not explictly consented, - eg, the subject of a reported family history. - cell_line: - text: cell_line - description: Cell Line - animal_model: - text: animal_model - description: Animal model - group: - text: group - description: A group of individuals or entities. - other: - text: other - description: A different entity type- ideally this will be resolved! - EnumDownSyndromeStatus: - name: EnumDownSyndromeStatus - definition_uri: https://includedcc.org/include-access-model/EnumDownSyndromeStatus - description: Down syndrome / chromosome 21 status - from_schema: https://includedcc.org/include-access-model - permissible_values: - d21: - text: d21 - description: Disomy 21 (euploid) - meaning: PATO:0001393 - title: D21 - t21: - text: t21 - description: Trisomy 21 (Down syndrome) - meaning: MONDO:0008608 - title: T21 - EnumSex: - name: EnumSex - definition_uri: https://includedcc.org/include-access-model/EnumSex - description: Subject Sex - from_schema: https://includedcc.org/include-access-model - permissible_values: - female: - text: female - meaning: NCIT:C16576 - title: Female - male: - text: male - meaning: NCIT:C20197 - title: Male - other: - text: other - meaning: NCIT:C17649 - title: Other - unknown: - text: unknown - meaning: NCIT:C17998 - title: Unknown - EnumRace: - name: EnumRace - definition_uri: https://includedcc.org/include-access-model/EnumRace - description: Participant Race - from_schema: https://includedcc.org/include-access-model - permissible_values: - american_indian_or_alaska_native: - text: american_indian_or_alaska_native - meaning: NCIT:C41259 - title: American Indian or Alaska Native - asian: - text: asian - meaning: NCIT:C41260 - title: Asian - black_or_african_american: - text: black_or_african_american - meaning: NCIT:C16352 - title: Black or African American - more_than_one_race: - text: more_than_one_race - meaning: NCIT:C67109 - title: More than one race - native_hawaiian_or_other_pacific_islander: - text: native_hawaiian_or_other_pacific_islander - meaning: NCIT:C41219 - title: Native Hawaiian or Other Pacific Islander - other: - text: other - meaning: NCIT:C17649 - title: Other - white: - text: white - meaning: NCIT:C41261 - title: White - prefer_not_to_answer: - text: prefer_not_to_answer - meaning: NCIT:C132222 - title: Prefer not to answer - unknown: - text: unknown - meaning: NCIT:C17998 - title: Unknown - east_asian: - text: east_asian - description: UK only; do not use for US data - meaning: NCIT:C161419 - title: East Asian - latin_american: - text: latin_american - description: UK only; do not use for US data - meaning: NCIT:C126531 - title: Latin American - middle_eastern_or_north_african: - text: middle_eastern_or_north_african - description: UK only; do not use for US data - meaning: NCIT:C43866 - title: Middle Eastern or North African - south_asian: - text: south_asian - description: UK only; do not use for US data - meaning: NCIT:C41263 - title: South Asian - EnumEthnicity: - name: EnumEthnicity - definition_uri: https://includedcc.org/include-access-model/EnumEthnicity - description: Participant ethnicity, specific to Hispanic or Latino. - from_schema: https://includedcc.org/include-access-model - permissible_values: - hispanic_or_latino: - text: hispanic_or_latino - meaning: NCIT:C17459 - title: Hispanic or Latino - not_hispanic_or_latino: - text: not_hispanic_or_latino - meaning: NCIT:C41222 - title: Not Hispanic or Latino - prefer_not_to_answer: - text: prefer_not_to_answer - meaning: NCIT:C132222 - title: Prefer not to answer - unknown: - text: unknown - meaning: NCIT:C17998 - title: Unknown - EnumVitalStatus: - name: EnumVitalStatus - definition_uri: https://includedcc.org/include-access-model/EnumVitalStatus - description: Descriptions of a Subject's vital status - from_schema: https://includedcc.org/include-access-model - is_a: EnumNull - permissible_values: - dead: - text: dead - meaning: NCIT:C28554 - title: Dead - alive: - text: alive - meaning: NCIT:C37987 - title: Alive - EnumNull: - name: EnumNull - definition_uri: https://includedcc.org/include-access-model/EnumNull - description: Base enumeration providing null options. - from_schema: https://includedcc.org/include-access-model - permissible_values: - unknown: - text: unknown - meaning: NCIT:C17998 - title: Unknown - EnumAssertionProvenance: - name: EnumAssertionProvenance - definition_uri: https://includedcc.org/include-access-model/EnumAssertionProvenance - description: Possible data sources for assertions. - from_schema: https://includedcc.org/include-access-model - is_a: EnumNull - permissible_values: - medical_record: - text: medical_record - description: Data obtained from a medical record - title: Medical Record - investigator_assessment: - text: investigator_assessment - description: Data obtained by examination, interview, etc. with investigator - title: Investigator Assessment - participant_or_caregiver_report: - text: participant_or_caregiver_report - description: Data obtained from survey, questionnaire, etc. filled out by - participant or caregiver - title: Participant or Caregiver Report - other: - text: other - description: Data obtained from other source, such as tissue bank - title: Other - EnumAvailabilityStatus: - name: EnumAvailabilityStatus - definition_uri: https://includedcc.org/include-access-model/EnumAvailabilityStatus - description: Is the biospecimen available for use? - from_schema: https://includedcc.org/include-access-model - permissible_values: - available: - text: available - description: Biospecimen is Available - meaning: ig2_biospecimen_availability:available - title: Available - unavailable: - text: unavailable - description: Biospecimen is Unavailable - meaning: ig2_biospecimen_availability:unavailable - title: Unavailable - EnumSampleCollectionMethod: - name: EnumSampleCollectionMethod - definition_uri: https://includedcc.org/include-access-model/EnumSampleCollectionMethod - description: The approach used to collect the biospecimen. [LOINC](https://loinc.org) - is recommended. - from_schema: https://includedcc.org/include-access-model - EnumSite: - name: EnumSite - definition_uri: https://includedcc.org/include-access-model/EnumSite - description: The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) - is recommended. - from_schema: https://includedcc.org/include-access-model - EnumSpatialQualifiers: - name: EnumSpatialQualifiers - definition_uri: https://includedcc.org/include-access-model/EnumSpatialQualifiers - description: Any spatial/location qualifiers. - from_schema: https://includedcc.org/include-access-model - enum_uri: http://hl7.org/fhir/us/mcode/ValueSet/mcode-body-location-qualifier-vs - reachable_from: - source_ontology: bioregistry:snomedct - source_nodes: - - snomedct:106233006 - - snomedct:272424004 - - snomedct:51440002 - - snomedct:399488007 - - snomedct:24028007 - - snomedct:7771000 - relationship_types: - - rdfs:subClassOf - is_direct: false - EnumLaterality: - name: EnumLaterality - definition_uri: https://includedcc.org/include-access-model/EnumLaterality - description: Laterality information for the site - from_schema: https://includedcc.org/include-access-model - EnumEDAMFormats: - name: EnumEDAMFormats - definition_uri: https://includedcc.org/include-access-model/EnumEDAMFormats - description: Data formats from the EDAM ontology. - from_schema: https://includedcc.org/include-access-model - reachable_from: - source_ontology: bioregistry:edam - source_nodes: - - edam:format_1915 - relationship_types: - - rdfs:subClassOf - is_direct: false - include_self: false - EnumEDAMDataTypes: - name: EnumEDAMDataTypes - definition_uri: https://includedcc.org/include-access-model/EnumEDAMDataTypes - description: Data types from the EDAM ontology. - from_schema: https://includedcc.org/include-access-model - reachable_from: - source_ontology: bioregistry:edam - source_nodes: - - edam:data_0006 - relationship_types: - - rdfs:subClassOf - is_direct: false - include_self: false - EnumFileHashType: - name: EnumFileHashType - definition_uri: https://includedcc.org/include-access-model/EnumFileHashType - description: Types of file hashes supported. - from_schema: https://includedcc.org/include-access-model - permissible_values: - md5: - text: md5 - title: MD5 - etag: - text: etag - title: ETag - sha1: - text: sha1 - title: SHA-1 - EnumAccessType: - name: EnumAccessType - definition_uri: https://includedcc.org/include-access-model/EnumAccessType - description: Types of file access levels. - from_schema: https://includedcc.org/include-access-model - permissible_values: - open: - text: open - title: Open Access - controlled: - text: controlled - title: Controlled Access - registered: - text: registered - title: Registered-tier Access - EnumExperimentalStrategy: - name: EnumExperimentalStrategy - definition_uri: https://includedcc.org/include-access-model/EnumExperimentalStrategy - description: Types of sequencing methods. - from_schema: https://includedcc.org/include-access-model - permissible_values: - wgs: - text: wgs - title: Whole Genome Sequencing - rnaseq: - text: rnaseq - title: RNA-Seq - wxs: - text: wxs - title: Whole Exome Sequencing - methlyation: - text: methlyation - title: Methylation - clr_wgs: - text: clr_wgs - title: Continuous Long Reads WGS - proteomics: - text: proteomics - title: Proteomics - targeted_seq: - text: targeted_seq - title: Targeted Sequencing - ccs_wgs: - text: ccs_wgs - title: Circular Consensus Sequencing WGS - panel: - text: panel - title: Panel - ccs_rnaseq: - text: ccs_rnaseq - title: Circular Consensus Sequencing RNA-Se - ont_wgs: - text: ont_wgs - title: Oxford Nanopore Technologies WGS - clr_rnaseq: - text: clr_rnaseq - title: Continuous Long Reads RNA-Seq - EnumAssayCenter: - name: EnumAssayCenter - definition_uri: https://includedcc.org/include-access-model/EnumAssayCenter - description: Organizations or centers producing raw or harmonized sequencing files. - from_schema: https://includedcc.org/include-access-model - permissible_values: - broad: - text: broad - title: The Broad Institute - hudsonalpha: - text: hudsonalpha - title: HudsonAlpha Institute for Biotechnology - stjude: - text: stjude - title: St. Jude - baylor: - text: baylor - title: Baylor College of Medicine - chop: - text: chop - title: The Children's Hospital of Philadelphia - other: - text: other - title: Other - unknown: - text: unknown - title: Unknown - EnumRepository: - name: EnumRepository - definition_uri: https://includedcc.org/include-access-model/EnumRepository - description: specific drs service used for registration - from_schema: https://includedcc.org/include-access-model - permissible_values: - cavatica: - text: cavatica - title: Cavatica DRS - dcf: - text: dcf - title: NCI DCF - other: - text: other - title: Other - EnumPlatform: - name: EnumPlatform - definition_uri: https://includedcc.org/include-access-model/EnumPlatform - description: names of instrument or platforms used for assay data generation - from_schema: https://includedcc.org/include-access-model - permissible_values: - illumina: - text: illumina - title: Illumina - pacbio: - text: pacbio - title: PacBio - ont: - text: ont - title: ONT - illumina_epic: - text: illumina_epic - title: Illumina Infinium HumanMethylationEPICv2 - other: - text: other - title: Other - unknown: - text: unknown - title: Unknown -slots: - study_id: - name: study_id - definition_uri: https://includedcc.org/include-access-model/study_id - description: INCLUDE Global ID for the study - title: Study ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_id - owner: FileAdmin - domain_of: - - Study - - StudyMetadata - - File - - FileAdmin - range: Study - multivalued: false - do_id: - name: do_id - definition_uri: https://includedcc.org/include-access-model/do_id - description: Digital Object Identifier (DOI) for this Record. - title: DOI - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:do_id - owner: Dataset - domain_of: - - Study - - DOI - - Dataset - range: DOI - multivalued: false - subject_id: - name: subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:subject_id - owner: FileAssay - domain_of: - - Subject - - Demographics - - SubjectAssertion - - Encounter - - File - - FileAdmin - - FileAssay - range: Subject - multivalued: false - assertion_id: - name: assertion_id - definition_uri: https://includedcc.org/include-access-model/assertion_id - description: INCLUDE Global ID for the Assertion - title: Assertion ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:assertion_id - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: SubjectAssertion - multivalued: false - external_id: - name: external_id - definition_uri: https://includedcc.org/include-access-model/external_id - description: Other identifiers for this entity, eg, from the submitting study - or in systems like dbGaP - title: External Identifiers - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:external_id - owner: Record - domain_of: - - Record - range: uriorcurie - required: false - multivalued: true - parent_study: - name: parent_study - definition_uri: https://includedcc.org/include-access-model/parent_study - description: The parent study for this study, if it is a nested study. - title: Parent Study - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:parent_study - owner: Study - domain_of: - - Study - range: Study - required: false - multivalued: false - funding_source: - name: funding_source - definition_uri: https://includedcc.org/include-access-model/funding_source - description: The funding source(s) of the study. - title: Funding Source - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:funding_source - owner: Study - domain_of: - - Study - range: string - required: false - multivalued: true - principal_investigator: - name: principal_investigator - definition_uri: https://includedcc.org/include-access-model/principal_investigator - description: The Principal Investigator(s) responsible for the study. - title: Principal Investigator - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:principal_investigator - owner: Study - domain_of: - - Study - range: Investigator - required: true - multivalued: true - inlined: true - inlined_as_list: true - study_title: - name: study_title - definition_uri: https://includedcc.org/include-access-model/study_title - description: Full Study Title - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_title - owner: Study - domain_of: - - Study - range: string - required: true - multivalued: false - study_code: - name: study_code - definition_uri: https://includedcc.org/include-access-model/study_code - description: Unique identifier for the study (generally a short acronym) - title: Study Code - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_code - owner: Study - domain_of: - - Study - range: string - required: true - study_short_name: - name: study_short_name - definition_uri: https://includedcc.org/include-access-model/study_short_name - description: Short name for the study - title: Study Code - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_short_name - owner: Study - domain_of: - - Study - range: string - required: false - investigator_title: - name: investigator_title - definition_uri: https://includedcc.org/include-access-model/investigator_title - description: The title of the Investigator, eg, "Assistant Professor" - title: Investigator Title - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:investigator_title - owner: Investigator - domain_of: - - Investigator - range: string - required: false - name: - name: name - definition_uri: https://includedcc.org/include-access-model/name - description: Name of the entity. - title: Name - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:name - owner: Dataset - domain_of: - - VirtualBiorepository - - Investigator - - EncounterDefinition - - ActivityDefinition - - Dataset - range: string - required: false - email: - name: email - definition_uri: https://includedcc.org/include-access-model/email - description: An email address to reach the entity. - title: Email Address - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:email - owner: Investigator - domain_of: - - Investigator - range: string - required: false - institution: - name: institution - definition_uri: https://includedcc.org/include-access-model/institution - description: Name of the institution this record is associated with. - title: Institution - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:institution - owner: Investigator - domain_of: - - VirtualBiorepository - - Investigator - range: string - required: false - program: - name: program - definition_uri: https://includedcc.org/include-access-model/program - description: Funding source(s) for the study - title: Program - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:program - owner: Study - domain_of: - - Study - range: EnumProgram - required: true - multivalued: true - study_description: - name: study_description - definition_uri: https://includedcc.org/include-access-model/study_description - description: Brief description of the study (2-4 sentences) - title: Study Description - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_description - owner: Study - domain_of: - - Study - range: string - required: true - website: - name: website - definition_uri: https://includedcc.org/include-access-model/website - description: Website for the Record. - title: Website - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:website - owner: Publication - domain_of: - - Study - - VirtualBiorepository - - Publication - range: uri - contact: - name: contact - definition_uri: https://includedcc.org/include-access-model/contact - description: The individual to contact with questions about this record. - title: Contact Person - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:contact - owner: VirtualBiorepository - domain_of: - - Study - - VirtualBiorepository - range: Investigator - required: true - multivalued: true - inlined: true - inlined_as_list: true - vbr: - name: vbr - definition_uri: https://includedcc.org/include-access-model/vbr - description: Information about the study's Virtual Biorepository, if participating - title: Virtual Biorepository - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:vbr - owner: StudyMetadata - domain_of: - - StudyMetadata - range: VirtualBiorepository - required: false - inlined: true - inlined_as_list: true - vbr_readme: - name: vbr_readme - definition_uri: https://includedcc.org/include-access-model/vbr_readme - description: Instructions for contacting or requesting samples from Virtual Biorepository, - if participating - title: VBR Readme - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:vbr_readme - owner: VirtualBiorepository - domain_of: - - VirtualBiorepository - range: string - research_domain: - name: research_domain - definition_uri: https://includedcc.org/include-access-model/research_domain - description: Main research domain(s) of the study, other than Down syndrome - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:research_domain - owner: StudyMetadata - domain_of: - - StudyMetadata - range: EnumResearchDomain - required: true - multivalued: true - participant_lifespan_stage: - name: participant_lifespan_stage - definition_uri: https://includedcc.org/include-access-model/participant_lifespan_stage - description: Focus age group(s) of the study population - title: Participant Lifespan Stage - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:participant_lifespan_stage - owner: StudyMetadata - domain_of: - - StudyMetadata - range: EnumParticipantLifespanStage - required: true - multivalued: true - selection_criteria: - name: selection_criteria - definition_uri: https://includedcc.org/include-access-model/selection_criteria - description: Brief description of inclusion and/or exclusion criteria for the - study - title: Selection Criteria - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:selection_criteria - owner: StudyMetadata - domain_of: - - StudyMetadata - range: string - study_design: - name: study_design - definition_uri: https://includedcc.org/include-access-model/study_design - description: Overall design of study, including whether it is longitudinal and - whether family members/unrelated controls are also enrolled - title: Study Design - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:study_design - owner: StudyMetadata - domain_of: - - StudyMetadata - range: EnumStudyDesign - required: true - multivalued: true - data_category: - name: data_category - definition_uri: https://includedcc.org/include-access-model/data_category - description: General category of data in this Record (e.g. Clinical, Genomics, - etc) - title: Data Category - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:data_category - owner: FileAssay - domain_of: - - StudyMetadata - - File - - FileAssay - range: EnumDataCategory - clinical_data_source_type: - name: clinical_data_source_type - definition_uri: https://includedcc.org/include-access-model/clinical_data_source_type - description: Source(s) of data collected from study participants - title: Clinical Data Source Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:clinical_data_source_type - owner: StudyMetadata - domain_of: - - StudyMetadata - range: EnumClinicalDataSourceType - required: true - multivalued: true - publication: - name: publication - definition_uri: https://includedcc.org/include-access-model/publication - description: Publications associated with this Record. - title: Publication - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:publication - owner: Dataset - domain_of: - - Study - - Dataset - range: Publication - multivalued: true - inlined: true - inlined_as_list: true - expected_number_of_participants: - name: expected_number_of_participants - definition_uri: https://includedcc.org/include-access-model/expected_number_of_participants - description: Total expected number of participants to be recruited. - title: Expected Number of Participants - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:expected_number_of_participants - owner: StudyMetadata - domain_of: - - StudyMetadata - range: integer - required: true - actual_number_of_participants: - name: actual_number_of_participants - definition_uri: https://includedcc.org/include-access-model/actual_number_of_participants - description: Total participants included at this time. - title: Actual Number of Participants - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:actual_number_of_participants - owner: StudyMetadata - domain_of: - - StudyMetadata - range: integer - required: true - acknowledgments: - name: acknowledgments - definition_uri: https://includedcc.org/include-access-model/acknowledgments - description: Funding statement and acknowledgments for this study - title: Acknowledgments - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:acknowledgments - owner: Study - domain_of: - - Study - range: string - citation_statement: - name: citation_statement - definition_uri: https://includedcc.org/include-access-model/citation_statement - description: Statement that secondary data users should use to acknowledge use - of this study or dataset. E.g., "The results analyzed and - here are based in whole or in part upon data generated by the INCLUDE (INvestigation - of Co-occurring conditions across the Lifespan to Understand Down syndromE) - Project , and were accessed - from the INCLUDE Data Hub and ." - title: Citation Statement - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:citation_statement - owner: Study - domain_of: - - Study - range: string - bibliographic_reference: - name: bibliographic_reference - definition_uri: https://includedcc.org/include-access-model/bibliographic_reference - description: Text use to reference this Record. - title: Bibiliographic Reference - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:bibliographic_reference - owner: Publication - domain_of: - - DOI - - Publication - range: string - organism_type: - name: organism_type - definition_uri: https://includedcc.org/include-access-model/organism_type - description: Organism Type - title: Organism Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:organism_type - owner: Subject - domain_of: - - Subject - range: uriorcurie - required: false - subject_type: - name: subject_type - definition_uri: https://includedcc.org/include-access-model/subject_type - description: Type of entity this record represents - title: Subject Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:subject_type - owner: Subject - domain_of: - - Subject - range: EnumSubjectType - required: true - sex: - name: sex - definition_uri: https://includedcc.org/include-access-model/sex - description: Sex of Participant - title: Sex - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:sex - owner: Demographics - domain_of: - - Demographics - range: EnumSex - required: true - race: - name: race - definition_uri: https://includedcc.org/include-access-model/race - description: Race of Participant - title: Race - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:race - owner: Demographics - domain_of: - - Demographics - range: EnumRace - required: true - multivalued: true - ethnicity: - name: ethnicity - definition_uri: https://includedcc.org/include-access-model/ethnicity - description: Ethnicity of Participant - title: Ethnicity - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:ethnicity - owner: Demographics - domain_of: - - Demographics - range: EnumEthnicity - required: true - down_syndrome_status: - name: down_syndrome_status - definition_uri: https://includedcc.org/include-access-model/down_syndrome_status - description: Down Syndrome status of participant - title: Down Syndrome Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:down_syndrome_status - owner: Demographics - domain_of: - - Demographics - range: EnumDownSyndromeStatus - required: true - age_at_first_engagement: - name: age_at_first_engagement - definition_uri: https://includedcc.org/include-access-model/age_at_first_engagement - description: Age in days of Participant at first recorded study event (enrollment, - visit, observation, sample collection, survey completion, etc.). Age at enrollment - is preferred, if available. - title: Age at First Participant Engagement - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_first_engagement - owner: Demographics - domain_of: - - Demographics - range: integer - minimum_value: -365 - maximum_value: 32507 - unit: - ucum_code: d - vital_status: - name: vital_status - definition_uri: https://includedcc.org/include-access-model/vital_status - description: Whether participant is alive or dead - title: Vital Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:vital_status - owner: Demographics - domain_of: - - Demographics - range: EnumVitalStatus - age_at_last_vital_status: - name: age_at_last_vital_status - definition_uri: https://includedcc.org/include-access-model/age_at_last_vital_status - description: Age in days when participant's vital status was last recorded - title: Age at Last Vital Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_last_vital_status - owner: Demographics - domain_of: - - Demographics - range: integer - minimum_value: -365 - maximum_value: 32507 - unit: - ucum_code: d - assertion_provenance: - name: assertion_provenance - definition_uri: https://includedcc.org/include-access-model/assertion_provenance - description: The original source of this assertion - title: Assertion Provenance - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:assertion_provenance - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: EnumAssertionProvenance - age_at_assertion: - name: age_at_assertion - definition_uri: https://includedcc.org/include-access-model/age_at_assertion - description: The age in days of the Subject when the assertion was made. - title: Age at assertion - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_assertion - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: integer - unit: - ucum_code: d - age_at_event: - name: age_at_event - definition_uri: https://includedcc.org/include-access-model/age_at_event - description: The age in days of the Subject at the time point which the assertion - describes, eg, age of onset or when a measurement was performed. - title: Age at event - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_event - owner: Encounter - domain_of: - - SubjectAssertion - - Encounter - range: integer - unit: - ucum_code: d - age_at_resolution: - name: age_at_resolution - definition_uri: https://includedcc.org/include-access-model/age_at_resolution - description: The age in days of the Subject when the asserted state was resolved. - title: Age at resolution - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_resolution - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: integer - unit: - ucum_code: d - concept: - name: concept - definition_uri: https://includedcc.org/include-access-model/concept - description: The structured term defining the meaning of the assertion. - title: Concept - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concept - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: Concept - multivalued: true - concept_curie: - name: concept_curie - definition_uri: https://includedcc.org/include-access-model/concept_curie - description: The standardized curie for the term. - title: Concept Curie - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concept_curie - owner: Concept - domain_of: - - Concept - range: uriorcurie - display: - name: display - definition_uri: https://includedcc.org/include-access-model/display - description: The friendly display string of the coded term. - title: Display String - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:display - owner: Concept - domain_of: - - Concept - range: string - concept_source: - name: concept_source - definition_uri: https://includedcc.org/include-access-model/concept_source - description: The source text yielding the standardized concept. - title: Concept Source Text - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concept_source - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: string - value_concept: - name: value_concept - definition_uri: https://includedcc.org/include-access-model/value_concept - description: The structured term defining the value of the assertion. - title: Value concept - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_concept - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: Concept - multivalued: true - value_number: - name: value_number - definition_uri: https://includedcc.org/include-access-model/value_number - description: The numeric value of the assertion. - title: Value Number - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_number - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: float - value_source: - name: value_source - definition_uri: https://includedcc.org/include-access-model/value_source - description: The source text yielding the value. - title: Value Source Text - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_source - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: string - value_unit: - name: value_unit - definition_uri: https://includedcc.org/include-access-model/value_unit - description: The structured term defining the units of the value. - title: Value Units - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_unit - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: Concept - value_unit_source: - name: value_unit_source - definition_uri: https://includedcc.org/include-access-model/value_unit_source - description: The source text yielding the value's units. - title: Value Units Source Text - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:value_unit_source - owner: SubjectAssertion - domain_of: - - SubjectAssertion - range: string - sample_id: - name: sample_id - definition_uri: https://includedcc.org/include-access-model/sample_id - description: The unique identifier for this Sample. - title: Sample ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:sample_id - owner: FileAssay - domain_of: - - Sample - - Aliquot - - File - - FileAdmin - - FileAssay - range: Sample - parent_sample_id: - name: parent_sample_id - definition_uri: https://includedcc.org/include-access-model/parent_sample_id - description: Sample from which this sample is derived - title: Parent Sample ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:parent_sample_id - owner: Sample - domain_of: - - Sample - range: Sample - inlined: false - biospecimen_collection_id: - name: biospecimen_collection_id - definition_uri: https://includedcc.org/include-access-model/biospecimen_collection_id - description: Unique identifier for this Biospecimen Collection. - title: Biospecimen Collection ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:biospecimen_collection_id - owner: BiospecimenCollection - domain_of: - - Sample - - BiospecimenCollection - range: BiospecimenCollection - aliquot_id: - name: aliquot_id - definition_uri: https://includedcc.org/include-access-model/aliquot_id - description: Unique identifier for an Aliquot. - title: Aliquot ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:aliquot_id - owner: Aliquot - domain_of: - - Aliquot - range: Aliquot - sample_type: - name: sample_type - definition_uri: https://includedcc.org/include-access-model/sample_type - description: Type of material of which this Sample is comprised - title: Sample Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:sample_type - owner: Sample - domain_of: - - Sample - range: uriorcurie - required: true - processing: - name: processing - definition_uri: https://includedcc.org/include-access-model/processing - description: Processing that was applied to the Parent Sample or from the Biospecimen - Collection that yielded this distinct sample - title: Sample Processing - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:processing - owner: Sample - domain_of: - - Sample - range: uriorcurie - multivalued: true - availablity_status: - name: availablity_status - definition_uri: https://includedcc.org/include-access-model/availablity_status - description: Can this Sample be requested for further analysis? - title: Sample Availability - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:availablity_status - owner: Aliquot - domain_of: - - Sample - - Aliquot - range: EnumAvailabilityStatus - storage_method: - name: storage_method - definition_uri: https://includedcc.org/include-access-model/storage_method - description: Sample storage method, eg, Frozen or with additives - title: Sample Storage Method - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:storage_method - owner: Sample - domain_of: - - Sample - range: uriorcurie - multivalued: true - quantity_number: - name: quantity_number - definition_uri: https://includedcc.org/include-access-model/quantity_number - description: The total quantity of the specimen - title: Quantity - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:quantity_number - owner: Aliquot - domain_of: - - Sample - - Aliquot - range: float - quantity_unit: - name: quantity_unit - definition_uri: https://includedcc.org/include-access-model/quantity_unit - description: The structured term defining the units of the quantity. - title: Quantity Units - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:quantity_unit - owner: Aliquot - domain_of: - - Sample - - Aliquot - range: Concept - concentration_number: - name: concentration_number - definition_uri: https://includedcc.org/include-access-model/concentration_number - description: What is the concentration of the analyte in the Aliquot? - title: Concentration - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concentration_number - owner: Aliquot - domain_of: - - Aliquot - range: float - concentration_unit: - name: concentration_unit - definition_uri: https://includedcc.org/include-access-model/concentration_unit - description: Units associated with the concentration of the analyte in the Aliquot. - title: Concentration Units - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:concentration_unit - owner: Aliquot - domain_of: - - Aliquot - range: Concept - age_at_collection: - name: age_at_collection - definition_uri: https://includedcc.org/include-access-model/age_at_collection - description: The age at which this biospecimen was collected in decimal years. - title: Age at Biospecimen Collection - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:age_at_collection - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: float - unit: - ucum_code: a - method: - name: method - definition_uri: https://includedcc.org/include-access-model/method - description: The approach used to collect the biospecimen. - title: Biospecimen Collection Method - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:method - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: EnumSampleCollectionMethod - site: - name: site - definition_uri: https://includedcc.org/include-access-model/site - description: The location of the specimen collection. - title: Biospecimen Collection Site - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:site - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: EnumSite - spatial_qualifier: - name: spatial_qualifier - definition_uri: https://includedcc.org/include-access-model/spatial_qualifier - description: Qualifier that further refine the specific location of biospecimen - collection - title: Spatial Qualifier - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:spatial_qualifier - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: EnumSpatialQualifiers - laterality: - name: laterality - definition_uri: https://includedcc.org/include-access-model/laterality - description: Laterality that further refine the specific location of biospecimen - collection - title: Location Laterality - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:laterality - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - range: EnumLaterality - encounter_id: - name: encounter_id - definition_uri: https://includedcc.org/include-access-model/encounter_id - description: Unique identifier for this Encounter. - title: Encounter ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:encounter_id - owner: Encounter - domain_of: - - SubjectAssertion - - BiospecimenCollection - - Encounter - range: Encounter - description: - name: description - definition_uri: https://includedcc.org/include-access-model/description - description: Description for this entity. - title: Description - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:description - owner: Dataset - domain_of: - - EncounterDefinition - - ActivityDefinition - - Dataset - range: string - encounter_definition_id: - name: encounter_definition_id - definition_uri: https://includedcc.org/include-access-model/encounter_definition_id - description: Unique identifier for this Encounter Definition. - title: Encounter Definition ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:encounter_definition_id - owner: EncounterDefinition - domain_of: - - Encounter - - EncounterDefinition - range: EncounterDefinition - activity_definition_id: - name: activity_definition_id - definition_uri: https://includedcc.org/include-access-model/activity_definition_id - description: Unique identifier for this Activity Definition. - title: Activity Definition ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:activity_definition_id - owner: ActivityDefinition - domain_of: - - EncounterDefinition - - ActivityDefinition - range: ActivityDefinition - file_id: - name: file_id - definition_uri: https://includedcc.org/include-access-model/file_id - description: Unique identifier for this File. - title: File ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:file_id - owner: FileAssay - domain_of: - - File - - Dataset - - FileAdmin - - FileAssay - range: File - filename: - name: filename - definition_uri: https://includedcc.org/include-access-model/filename - description: The name of the file. - title: Filename - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:filename - owner: File - domain_of: - - File - range: string - required: true - format: - name: format - definition_uri: https://includedcc.org/include-access-model/format - description: The format of the file. - title: File Format - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:format - owner: FileAssay - domain_of: - - File - - FileAssay - range: EnumEDAMFormats - required: true - data_type: - name: data_type - definition_uri: https://includedcc.org/include-access-model/data_type - description: The type of data within this file. - title: Data Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:data_type - owner: FileAssay - domain_of: - - File - - FileAssay - range: EnumEDAMDataTypes - required: true - size: - name: size - definition_uri: https://includedcc.org/include-access-model/size - description: Size of the file, in Bytes. - title: File Size - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:size - owner: FileAssay - domain_of: - - File - - FileAdmin - - FileAssay - range: integer - required: true - unit: - ucum_code: By - staging_url: - name: staging_url - definition_uri: https://includedcc.org/include-access-model/staging_url - description: URL for internal access to the data. May be temporary. - title: Staging Location - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:staging_url - owner: FileAdmin - domain_of: - - File - - FileAdmin - range: uriorcurie - required: false - release_url: - name: release_url - definition_uri: https://includedcc.org/include-access-model/release_url - description: URL for controlled or open access to the data. - title: Release Location - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:release_url - owner: FileAdmin - domain_of: - - File - - FileAdmin - range: uriorcurie - required: false - drs_uri: - name: drs_uri - definition_uri: https://includedcc.org/include-access-model/drs_uri - description: DRS location to access the data. - title: DRS URI - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:drs_uri - owner: FileAdmin - domain_of: - - File - - FileAdmin - range: uriorcurie - required: false - hash: - name: hash - definition_uri: https://includedcc.org/include-access-model/hash - description: File hash information - title: File Hash - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:hash - owner: FileAdmin - domain_of: - - File - - FileAdmin - range: FileHash - required: true - inlined: true - inlined_as_list: true - hash_type: - name: hash_type - definition_uri: https://includedcc.org/include-access-model/hash_type - description: The type of file hash, eg, md5 - title: File Hash Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:hash_type - owner: FileHash - domain_of: - - FileHash - range: EnumFileHashType - required: true - hash_value: - name: hash_value - definition_uri: https://includedcc.org/include-access-model/hash_value - description: The value of the file hash - title: File Hash Value - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:hash_value - owner: FileHash - domain_of: - - FileHash - range: string - required: true - dataset_id: - name: dataset_id - definition_uri: https://includedcc.org/include-access-model/dataset_id - description: Unique identifier for a Dataset. - title: Dataset ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:dataset_id - owner: Dataset - domain_of: - - Dataset - range: Dataset - data_collection_start: - name: data_collection_start - definition_uri: https://includedcc.org/include-access-model/data_collection_start - description: The date that data collection started. May include only a year. - title: Data Collection Start - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:data_collection_start - owner: Dataset - domain_of: - - Dataset - range: string - data_collection_end: - name: data_collection_end - definition_uri: https://includedcc.org/include-access-model/data_collection_end - description: The date that data collection started. May include only a year. - title: Data Collection End - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:data_collection_end - owner: Dataset - domain_of: - - Dataset - range: string - s3_file_path: - name: s3_file_path - definition_uri: https://includedcc.org/include-access-model/s3_file_path - description: The full s3 url of a file's location in aws - title: S3 File Path - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:s3_file_path - owner: FileAdmin - domain_of: - - File - - FileAdmin - range: string - required: true - is_released: - name: is_released - definition_uri: https://includedcc.org/include-access-model/is_released - description: A flag that notes whether a file has been released to the public - title: Is Released - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:is_released - owner: FileAdmin - domain_of: - - FileAdmin - range: boolean - required: true - is_registered: - name: is_registered - definition_uri: https://includedcc.org/include-access-model/is_registered - description: A flag that notes whether a file has been registered to a drs service - title: Is Registered - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:is_registered - owner: FileAdmin - domain_of: - - FileAdmin - range: boolean - required: true - repository: - name: repository - definition_uri: https://includedcc.org/include-access-model/repository - description: The name of the drs service which files are registered to - title: Repository - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:repository - owner: FileAdmin - domain_of: - - FileAdmin - range: EnumRepository - required: false - file_category: - name: file_category - definition_uri: https://includedcc.org/include-access-model/file_category - description: A high level classification of the file used for operations. - title: File Category - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:file_category - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - s3_key: - name: s3_key - definition_uri: https://includedcc.org/include-access-model/s3_key - description: The unique identifier for an object within a bucket - title: S3 Key - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:s3_key - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - file_extension: - name: file_extension - definition_uri: https://includedcc.org/include-access-model/file_extension - description: A 3-4 letter code at the end of a filename that identifies the file - format. - title: File Extension - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:file_extension - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - data_transfer_id: - name: data_transfer_id - definition_uri: https://includedcc.org/include-access-model/data_transfer_id - description: A jira ticket number associated with a file transfer request to production - bucket - title: Data Transfer ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:data_transfer_id - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: false - aws_account_id: - name: aws_account_id - definition_uri: https://includedcc.org/include-access-model/aws_account_id - description: A 12-digit number that uniquely identifies a specific AWS account - title: AWS Account ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:aws_account_id - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - account_name: - name: account_name - definition_uri: https://includedcc.org/include-access-model/account_name - description: A user-defined label used to define an AWS accoun. - title: AWS Account Name - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:account_name - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - account_alias: - name: account_alias - definition_uri: https://includedcc.org/include-access-model/account_alias - description: A unique user-defined string that replaces the AWS Account ID in - the IAM user sign-in URL - title: Account Alias - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:account_alias - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - bucket_study_id: - name: bucket_study_id - definition_uri: https://includedcc.org/include-access-model/bucket_study_id - description: The global study ID used to create the bucket - title: Bucket Study ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:bucket_study_id - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - bucket: - name: bucket - definition_uri: https://includedcc.org/include-access-model/bucket - description: Cloud storage container in AWS used to manage and store s3 objects - title: Bucket - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:bucket - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - s3_created_at: - name: s3_created_at - definition_uri: https://includedcc.org/include-access-model/s3_created_at - description: Timestamp of when a file was uploaded to an s3 bucket. - title: S3 Created At - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:s3_created_at - owner: FileAdmin - domain_of: - - FileAdmin - range: datetime - required: true - s3_modified_at: - name: s3_modified_at - definition_uri: https://includedcc.org/include-access-model/s3_modified_at - description: Timestamp of when a file was modified in an s3 bucket. - title: S3 Modified At - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:s3_modified_at - owner: FileAdmin - domain_of: - - FileAdmin - range: datetime - required: true - intelligent_tiering_access_tier: - name: intelligent_tiering_access_tier - definition_uri: https://includedcc.org/include-access-model/intelligent_tiering_access_tier - description: Storage access tier assigned by AWS intelliegnt tiering, indicating - the current access frequency classification of the object - title: Intelligent Tiering Access Tier - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:intelligent_tiering_access_tier - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - is_delete_marker: - name: is_delete_marker - definition_uri: https://includedcc.org/include-access-model/is_delete_marker - description: A flag that notes whether a file has been deleted from s3 - title: Is Delete Marker - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:is_delete_marker - owner: FileAdmin - domain_of: - - FileAdmin - range: boolean - required: true - is_latest: - name: is_latest - definition_uri: https://includedcc.org/include-access-model/is_latest - description: Specifies whether an object version is the most recent version of - that object - title: Is Latest - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:is_latest - owner: FileAdmin - domain_of: - - FileAdmin - range: boolean - required: true - storage_class: - name: storage_class - definition_uri: https://includedcc.org/include-access-model/storage_class - description: Storage tier of the object in AWS reflecting cost and access characteristics. - title: Storage Class - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:storage_class - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - manifest_hash_value: - name: manifest_hash_value - definition_uri: https://includedcc.org/include-access-model/manifest_hash_value - description: The provided hash value from external users to be validated against - internal hash values - title: Manifest Hash Value - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:manifest_hash_value - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: false - file_hash_validation_status: - name: file_hash_validation_status - definition_uri: https://includedcc.org/include-access-model/file_hash_validation_status - description: Notes whether hashes have been generated and verified against manifest - hash values. - title: File Hash Validation Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:file_hash_validation_status - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: false - file_type: - name: file_type - definition_uri: https://includedcc.org/include-access-model/file_type - description: An internal type or classification of the files based on its operational - usuage. - title: File Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:file_type - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - encryption_status: - name: encryption_status - definition_uri: https://includedcc.org/include-access-model/encryption_status - description: Indicates whether the object in AWS is encrypted and the type of - encryption applied. - title: Encryption Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:encryption_status - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - is_multipart_uploaded: - name: is_multipart_uploaded - definition_uri: https://includedcc.org/include-access-model/is_multipart_uploaded - description: Indicates whether the object was uploaded using a multipart upload - process. - title: Is Multipart Uploaded - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:is_multipart_uploaded - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - object_lock_level_hold_status: - name: object_lock_level_hold_status - definition_uri: https://includedcc.org/include-access-model/object_lock_level_hold_status - description: Whether a legal hold is applied to prevent deletion of the object. - title: Object Lock Level Hold Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:object_lock_level_hold_status - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - object_lock_mode: - name: object_lock_mode - definition_uri: https://includedcc.org/include-access-model/object_lock_mode - description: Retention mode applied to the object that restricts deletion or modification. - title: Object Lock Mode - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:object_lock_mode - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - replication_status: - name: replication_status - definition_uri: https://includedcc.org/include-access-model/replication_status - description: Status of the object's replication to another storage location. - title: Replication Status - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:replication_status - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - version_id: - name: version_id - definition_uri: https://includedcc.org/include-access-model/version_id - description: Identifier for a specific version of the object - title: Version ID - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:version_id - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - access_type: - name: access_type - definition_uri: https://includedcc.org/include-access-model/access_type - description: Notes wheter a file is controlled, open, or registered-tier access - title: Access Type - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:access_type - owner: FileAssay - domain_of: - - FileAdmin - - FileAssay - range: EnumAccessType - required: true - access_url: - name: access_url - definition_uri: https://includedcc.org/include-access-model/access_url - description: HTTPS endpoint for accessing a file via a specific data repository - service. - title: Access URL - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:access_url - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: false - acl: - name: acl - definition_uri: https://includedcc.org/include-access-model/acl - description: The object access control list. - title: ACL - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:acl - owner: FileAdmin - domain_of: - - FileAdmin - range: string - required: true - experimental_strategy: - name: experimental_strategy - definition_uri: https://includedcc.org/include-access-model/experimental_strategy - description: Method or assay used to generate the data - title: Experimental Strategy - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:experimental_strategy - owner: FileAssay - domain_of: - - FileAdmin - - FileAssay - range: EnumExperimentalStrategy - required: true - assay_center: - name: assay_center - definition_uri: https://includedcc.org/include-access-model/assay_center - description: The organization or center that generated the file - title: Assay Center - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:assay_center - owner: FileAssay - domain_of: - - FileAssay - range: EnumAssayCenter - required: false - platform: - name: platform - definition_uri: https://includedcc.org/include-access-model/platform - description: Instrument or platform family name - title: Platform - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:platform - owner: FileAssay - domain_of: - - FileAssay - range: EnumPlatform - required: true - workflow_name: - name: workflow_name - definition_uri: https://includedcc.org/include-access-model/workflow_name - description: Processing tool that produced the file - title: Workflow Name - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:workflow_name - owner: FileAssay - domain_of: - - FileAssay - range: string - required: false - workflow_version: - name: workflow_version - definition_uri: https://includedcc.org/include-access-model/workflow_version - description: Version of the process tool that produced the file - title: Workflow Version - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:workflow_version - owner: FileAssay - domain_of: - - FileAssay - range: string - required: false - object_lock_retain_until_date: - name: object_lock_retain_until_date - definition_uri: https://includedcc.org/include-access-model/object_lock_retain_until_date - description: Specifies exact date and time when an object's Object Lock rentention - period expires. - title: Object Lock Retain Until Date - from_schema: https://includedcc.org/include-access-model - slot_uri: includedcc:object_lock_retain_until_date - owner: FileAdmin - domain_of: - - FileAdmin - range: datetime - required: true - Study_study_id: - name: Study_study_id - definition_uri: https://includedcc.org/include-access-model/study_id - description: INCLUDE Global ID for the study - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: study_id - domain: Study - slot_uri: includedcc:study_id - identifier: true - alias: study_id - owner: Study - domain_of: - - Study - is_usage_slot: true - usage_slot_name: study_id - range: string - required: true - multivalued: false - StudyMetadata_study_id: - name: StudyMetadata_study_id - definition_uri: https://includedcc.org/include-access-model/study_id - description: INCLUDE Global ID for the study - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: study_id - domain: StudyMetadata - slot_uri: includedcc:study_id - identifier: true - alias: study_id - owner: StudyMetadata - domain_of: - - StudyMetadata - is_usage_slot: true - usage_slot_name: study_id - range: Study - required: true - multivalued: false - StudyMetadata_data_category: - name: StudyMetadata_data_category - definition_uri: https://includedcc.org/include-access-model/data_category - description: General category of data in this Record (e.g. Clinical, Genomics, - etc) - title: Data Category - from_schema: https://includedcc.org/include-access-model - is_a: data_category - domain: StudyMetadata - slot_uri: includedcc:data_category - alias: data_category - owner: StudyMetadata - domain_of: - - StudyMetadata - is_usage_slot: true - usage_slot_name: data_category - range: EnumDataCategory - required: true - multivalued: true - DOI_do_id: - name: DOI_do_id - definition_uri: https://includedcc.org/include-access-model/do_id - description: Digital Object Identifier (DOI) for this Record. - title: DOI - from_schema: https://includedcc.org/include-access-model - is_a: do_id - domain: DOI - slot_uri: includedcc:do_id - identifier: true - alias: do_id - owner: DOI - domain_of: - - DOI - is_usage_slot: true - usage_slot_name: do_id - range: string - required: true - multivalued: false - Subject_subject_id: - name: Subject_subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: subject_id - domain: Subject - slot_uri: includedcc:subject_id - identifier: true - alias: subject_id - owner: Subject - domain_of: - - Subject - is_usage_slot: true - usage_slot_name: subject_id - range: string - required: true - multivalued: false - Demographics_subject_id: - name: Demographics_subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: subject_id - domain: Demographics - slot_uri: includedcc:subject_id - identifier: true - alias: subject_id - owner: Demographics - domain_of: - - Demographics - is_usage_slot: true - usage_slot_name: subject_id - range: Subject - required: true - multivalued: false - SubjectAssertion_assertion_id: - name: SubjectAssertion_assertion_id - definition_uri: https://includedcc.org/include-access-model/assertion_id - description: INCLUDE Global ID for the Assertion - title: Assertion ID - from_schema: https://includedcc.org/include-access-model - is_a: assertion_id - domain: SubjectAssertion - slot_uri: includedcc:assertion_id - identifier: true - alias: assertion_id - owner: SubjectAssertion - domain_of: - - SubjectAssertion - is_usage_slot: true - usage_slot_name: assertion_id - range: string - required: true - multivalued: false - Concept_concept_curie: - name: Concept_concept_curie - definition_uri: https://includedcc.org/include-access-model/concept_curie - description: The standardized curie for the term. - title: Concept Curie - from_schema: https://includedcc.org/include-access-model - is_a: concept_curie - domain: Concept - slot_uri: includedcc:concept_curie - identifier: true - alias: concept_curie - owner: Concept - domain_of: - - Concept - is_usage_slot: true - usage_slot_name: concept_curie - range: uriorcurie - required: true - Sample_sample_id: - name: Sample_sample_id - definition_uri: https://includedcc.org/include-access-model/sample_id - description: The unique identifier for this Sample. - title: Sample ID - from_schema: https://includedcc.org/include-access-model - is_a: sample_id - domain: Sample - slot_uri: includedcc:sample_id - identifier: true - alias: sample_id - owner: Sample - domain_of: - - Sample - is_usage_slot: true - usage_slot_name: sample_id - range: string - required: true - Sample_biospecimen_collection_id: - name: Sample_biospecimen_collection_id - definition_uri: https://includedcc.org/include-access-model/biospecimen_collection_id - description: Biospecimen Collection during which this sample was generated. - title: Biospecimen Collection ID - from_schema: https://includedcc.org/include-access-model - is_a: biospecimen_collection_id - domain: Sample - slot_uri: includedcc:biospecimen_collection_id - alias: biospecimen_collection_id - owner: Sample - domain_of: - - Sample - is_usage_slot: true - usage_slot_name: biospecimen_collection_id - range: BiospecimenCollection - BiospecimenCollection_biospecimen_collection_id: - name: BiospecimenCollection_biospecimen_collection_id - definition_uri: https://includedcc.org/include-access-model/biospecimen_collection_id - description: Unique identifier for this Biospecimen Collection. - title: Biospecimen Collection ID - from_schema: https://includedcc.org/include-access-model - is_a: biospecimen_collection_id - domain: BiospecimenCollection - slot_uri: includedcc:biospecimen_collection_id - identifier: true - alias: biospecimen_collection_id - owner: BiospecimenCollection - domain_of: - - BiospecimenCollection - is_usage_slot: true - usage_slot_name: biospecimen_collection_id - range: string - required: true - Aliquot_aliquot_id: - name: Aliquot_aliquot_id - definition_uri: https://includedcc.org/include-access-model/aliquot_id - description: Unique identifier for an Aliquot. - title: Aliquot ID - from_schema: https://includedcc.org/include-access-model - is_a: aliquot_id - domain: Aliquot - slot_uri: includedcc:aliquot_id - identifier: true - alias: aliquot_id - owner: Aliquot - domain_of: - - Aliquot - is_usage_slot: true - usage_slot_name: aliquot_id - range: string - required: true - Encounter_encounter_id: - name: Encounter_encounter_id - definition_uri: https://includedcc.org/include-access-model/encounter_id - description: Unique identifier for this Encounter. - title: Encounter ID - from_schema: https://includedcc.org/include-access-model - is_a: encounter_id - domain: Encounter - slot_uri: includedcc:encounter_id - identifier: true - alias: encounter_id - owner: Encounter - domain_of: - - Encounter - is_usage_slot: true - usage_slot_name: encounter_id - range: string - required: true - EncounterDefinition_encounter_definition_id: - name: EncounterDefinition_encounter_definition_id - definition_uri: https://includedcc.org/include-access-model/encounter_definition_id - description: Unique identifier for this Encounter Definition. - title: Encounter Definition ID - from_schema: https://includedcc.org/include-access-model - is_a: encounter_definition_id - domain: EncounterDefinition - slot_uri: includedcc:encounter_definition_id - identifier: true - alias: encounter_definition_id - owner: EncounterDefinition - domain_of: - - EncounterDefinition - is_usage_slot: true - usage_slot_name: encounter_definition_id - range: string - required: true - EncounterDefinition_activity_definition_id: - name: EncounterDefinition_activity_definition_id - definition_uri: https://includedcc.org/include-access-model/activity_definition_id - description: Unique identifier for this Activity Definition. - title: Activity Definition ID - from_schema: https://includedcc.org/include-access-model - is_a: activity_definition_id - domain: EncounterDefinition - slot_uri: includedcc:activity_definition_id - alias: activity_definition_id - owner: EncounterDefinition - domain_of: - - EncounterDefinition - is_usage_slot: true - usage_slot_name: activity_definition_id - range: ActivityDefinition - multivalued: true - ActivityDefinition_activity_definition_id: - name: ActivityDefinition_activity_definition_id - definition_uri: https://includedcc.org/include-access-model/activity_definition_id - description: Unique identifier for this Activity Definition. - title: Activity Definition ID - from_schema: https://includedcc.org/include-access-model - is_a: activity_definition_id - domain: ActivityDefinition - slot_uri: includedcc:activity_definition_id - identifier: true - alias: activity_definition_id - owner: ActivityDefinition - domain_of: - - ActivityDefinition - is_usage_slot: true - usage_slot_name: activity_definition_id - range: string - required: true - File_study_id: - name: File_study_id - definition_uri: https://includedcc.org/include-access-model/study_id - description: INCLUDE Global ID for the study - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: study_id - domain: File - slot_uri: includedcc:study_id - alias: study_id - owner: File - domain_of: - - File - is_usage_slot: true - usage_slot_name: study_id - range: Study - required: true - multivalued: false - File_file_id: - name: File_file_id - definition_uri: https://includedcc.org/include-access-model/file_id - description: Unique identifier for this File. - title: File ID - from_schema: https://includedcc.org/include-access-model - is_a: file_id - domain: File - slot_uri: includedcc:file_id - identifier: true - alias: file_id - owner: File - domain_of: - - File - is_usage_slot: true - usage_slot_name: file_id - range: string - required: true - File_subject_id: - name: File_subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: subject_id - domain: File - slot_uri: includedcc:subject_id - alias: subject_id - owner: File - domain_of: - - File - is_usage_slot: true - usage_slot_name: subject_id - range: Subject - required: true - multivalued: true - File_sample_id: - name: File_sample_id - definition_uri: https://includedcc.org/include-access-model/sample_id - description: The unique identifier for this Sample. - title: Sample ID - from_schema: https://includedcc.org/include-access-model - is_a: sample_id - domain: File - slot_uri: includedcc:sample_id - alias: sample_id - owner: File - domain_of: - - File - is_usage_slot: true - usage_slot_name: sample_id - range: Sample - required: true - multivalued: true - File_data_category: - name: File_data_category - definition_uri: https://includedcc.org/include-access-model/data_category - description: General category of data in this Record (e.g. Clinical, Genomics, - etc) - title: Data Category - from_schema: https://includedcc.org/include-access-model - is_a: data_category - domain: File - slot_uri: includedcc:data_category - alias: data_category - owner: File - domain_of: - - File - is_usage_slot: true - usage_slot_name: data_category - range: EnumDataCategory - required: true - Dataset_dataset_id: - name: Dataset_dataset_id - definition_uri: https://includedcc.org/include-access-model/dataset_id - description: Unique identifier for a Dataset. - title: Dataset ID - from_schema: https://includedcc.org/include-access-model - is_a: dataset_id - domain: Dataset - slot_uri: includedcc:dataset_id - identifier: true - alias: dataset_id - owner: Dataset - domain_of: - - Dataset - is_usage_slot: true - usage_slot_name: dataset_id - range: string - required: true - Dataset_file_id: - name: Dataset_file_id - definition_uri: https://includedcc.org/include-access-model/file_id - description: The list of files comprising this dataset. - title: File ID - from_schema: https://includedcc.org/include-access-model - is_a: file_id - domain: Dataset - slot_uri: includedcc:file_id - alias: file_id - owner: Dataset - domain_of: - - Dataset - is_usage_slot: true - usage_slot_name: file_id - range: File - multivalued: true - FileAdmin_study_id: - name: FileAdmin_study_id - definition_uri: https://includedcc.org/include-access-model/study_id - description: INCLUDE Global ID for the study - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: study_id - domain: FileAdmin - slot_uri: includedcc:study_id - alias: study_id - owner: FileAdmin - domain_of: - - FileAdmin - is_usage_slot: true - usage_slot_name: study_id - range: Study - required: true - multivalued: false - FileAdmin_file_id: - name: FileAdmin_file_id - definition_uri: https://includedcc.org/include-access-model/file_id - description: Unique identifier for this File. - title: File ID - from_schema: https://includedcc.org/include-access-model - is_a: file_id - domain: FileAdmin - slot_uri: includedcc:file_id - identifier: true - alias: file_id - owner: FileAdmin - domain_of: - - FileAdmin - is_usage_slot: true - usage_slot_name: file_id - range: File - required: true - FileAssay_file_id: - name: FileAssay_file_id - definition_uri: https://includedcc.org/include-access-model/file_id - description: Unique identifier for this File. - title: File ID - from_schema: https://includedcc.org/include-access-model - is_a: file_id - domain: FileAssay - slot_uri: includedcc:file_id - identifier: true - alias: file_id - owner: FileAssay - domain_of: - - FileAssay - is_usage_slot: true - usage_slot_name: file_id - range: File - required: true - FileAssay_subject_id: - name: FileAssay_subject_id - definition_uri: https://includedcc.org/include-access-model/subject_id - description: INCLUDE Global ID for the Subject - title: Study ID - from_schema: https://includedcc.org/include-access-model - is_a: subject_id - domain: FileAssay - slot_uri: includedcc:subject_id - alias: subject_id - owner: FileAssay - domain_of: - - FileAssay - is_usage_slot: true - usage_slot_name: subject_id - range: Subject - required: true - multivalued: true - FileAssay_sample_id: - name: FileAssay_sample_id - definition_uri: https://includedcc.org/include-access-model/sample_id - description: The unique identifier for this Sample. - title: Sample ID - from_schema: https://includedcc.org/include-access-model - is_a: sample_id - domain: FileAssay - slot_uri: includedcc:sample_id - alias: sample_id - owner: FileAssay - domain_of: - - FileAssay - is_usage_slot: true - usage_slot_name: sample_id - range: Sample - required: true - multivalued: true - FileAssay_data_category: - name: FileAssay_data_category - definition_uri: https://includedcc.org/include-access-model/data_category - description: General category of data in this Record (e.g. Clinical, Genomics, - etc) - title: Data Category - from_schema: https://includedcc.org/include-access-model - is_a: data_category - domain: FileAssay - slot_uri: includedcc:data_category - alias: data_category - owner: FileAssay - domain_of: - - FileAssay - is_usage_slot: true - usage_slot_name: data_category - range: EnumDataCategory - required: true -classes: - Record: - name: Record - definition_uri: https://includedcc.org/include-access-model/Record - description: One row / entity within the database - title: Record - from_schema: https://includedcc.org/include-access-model - abstract: true - slots: - - external_id - class_uri: includedcc:Record - Study: - name: Study - definition_uri: https://includedcc.org/include-access-model/Study - description: Study Metadata - title: Research Study - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Study_study_id - - parent_study - - study_title - - study_code - - study_short_name - - program - - funding_source - - principal_investigator - - contact - - study_description - - website - - publication - - acknowledgments - - citation_statement - - do_id - slot_usage: - study_id: - name: study_id - identifier: true - range: string - required: true - class_uri: includedcc:Study - StudyMetadata: - name: StudyMetadata - definition_uri: https://includedcc.org/include-access-model/StudyMetadata - description: Additional features about studies that may not apply to all studies - title: Study Metadata - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - StudyMetadata_study_id - - participant_lifespan_stage - - selection_criteria - - study_design - - clinical_data_source_type - - StudyMetadata_data_category - - vbr - - research_domain - - expected_number_of_participants - - actual_number_of_participants - slot_usage: - study_id: - name: study_id - identifier: true - required: true - data_category: - name: data_category - required: true - multivalued: true - class_uri: includedcc:StudyMetadata - VirtualBiorepository: - name: VirtualBiorepository - definition_uri: https://includedcc.org/include-access-model/VirtualBiorepository - description: An organization that can provide access to specimen for further analysis. - title: Virtual BioRepository (VBR) - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - name - - institution - - contact - - website - - vbr_readme - class_uri: includedcc:VirtualBiorepository - DOI: - name: DOI - definition_uri: https://includedcc.org/include-access-model/DOI - description: A DOI is a permanent reference with metadata about a digital object. - title: Digital Object Identifier (DOI) - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - DOI_do_id - - bibliographic_reference - slot_usage: - do_id: - name: do_id - identifier: true - range: string - required: true - class_uri: includedcc:DOI - Investigator: - name: Investigator - definition_uri: https://includedcc.org/include-access-model/Investigator - description: An individual who made contributions to the collection, analysis, - or sharing of data. - title: Investigator - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - name - - institution - - investigator_title - - email - class_uri: includedcc:Investigator - Publication: - name: Publication - definition_uri: https://includedcc.org/include-access-model/Publication - description: Information about a specific publication. - title: Publication - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - bibliographic_reference - - website - class_uri: includedcc:Publication - Subject: - name: Subject - definition_uri: https://includedcc.org/include-access-model/Subject - description: This entity is the subject about which data or references are recorded. - This includes the idea of a human participant in a study, a cell line, an animal - model, or any other similar entity. - title: Subject - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Subject_subject_id - - subject_type - - organism_type - slot_usage: - subject_id: - name: subject_id - identifier: true - range: string - required: true - class_uri: includedcc:Subject - Demographics: - name: Demographics - definition_uri: https://includedcc.org/include-access-model/Demographics - description: Basic participant demographics summary - title: Demographics - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Demographics_subject_id - - sex - - race - - ethnicity - - down_syndrome_status - - age_at_last_vital_status - - vital_status - - age_at_first_engagement - slot_usage: - subject_id: - name: subject_id - identifier: true - required: true - class_uri: includedcc:Demographics - SubjectAssertion: - name: SubjectAssertion - definition_uri: https://includedcc.org/include-access-model/SubjectAssertion - description: Assertion about a particular Subject. May include Conditions, Measurements, - etc. - title: Subject Assertion - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - SubjectAssertion_assertion_id - - subject_id - - encounter_id - - assertion_provenance - - age_at_assertion - - age_at_event - - age_at_resolution - - concept - - concept_source - - value_concept - - value_number - - value_source - - value_unit - - value_unit_source - slot_usage: - assertion_id: - name: assertion_id - identifier: true - range: string - required: true - class_uri: includedcc:SubjectAssertion - Concept: - name: Concept - definition_uri: https://includedcc.org/include-access-model/Concept - description: A standardized concept with display information. - title: Concept - from_schema: https://includedcc.org/include-access-model - slots: - - Concept_concept_curie - - display - slot_usage: - concept_curie: - name: concept_curie - identifier: true - required: true - class_uri: includedcc:Concept - Sample: - name: Sample - definition_uri: https://includedcc.org/include-access-model/Sample - description: A functionally equivalent specimen taken from a participant or processed - from such a sample. - title: Sample - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Sample_sample_id - - Sample_biospecimen_collection_id - - parent_sample_id - - sample_type - - processing - - availablity_status - - storage_method - - quantity_number - - quantity_unit - slot_usage: - sample_id: - name: sample_id - identifier: true - range: string - required: true - biospecimen_collection_id: - name: biospecimen_collection_id - description: Biospecimen Collection during which this sample was generated. - class_uri: includedcc:Sample - BiospecimenCollection: - name: BiospecimenCollection - definition_uri: https://includedcc.org/include-access-model/BiospecimenCollection - description: A biospecimen collection event which yields one or more Samples. - title: BiospecimenCollection - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - BiospecimenCollection_biospecimen_collection_id - - age_at_collection - - method - - site - - spatial_qualifier - - laterality - - encounter_id - slot_usage: - biospecimen_collection_id: - name: biospecimen_collection_id - identifier: true - range: string - required: true - class_uri: includedcc:BiospecimenCollection - Aliquot: - name: Aliquot - definition_uri: https://includedcc.org/include-access-model/Aliquot - description: A specific tube or amount of a biospecimen associated with a Sample. - title: Aliquot - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Aliquot_aliquot_id - - sample_id - - availablity_status - - quantity_number - - quantity_unit - - concentration_number - - concentration_unit - slot_usage: - aliquot_id: - name: aliquot_id - identifier: true - range: string - required: true - class_uri: includedcc:Aliquot - Encounter: - name: Encounter - definition_uri: https://includedcc.org/include-access-model/Encounter - description: An event at which data was collected about a participant, an intervention - was made, or information about a participant was recorded. - title: Participant Encounter - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - Encounter_encounter_id - - subject_id - - encounter_definition_id - - age_at_event - slot_usage: - encounter_id: - name: encounter_id - identifier: true - range: string - required: true - class_uri: includedcc:Encounter - EncounterDefinition: - name: EncounterDefinition - definition_uri: https://includedcc.org/include-access-model/EncounterDefinition - description: A definition of an encounter type in this study, ie, an event at - which data was collected about a participant, an intervention was made, or information - about a participant was recorded. This may be something planned by a study or - a type of data collection. - title: Encounter Definition - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - EncounterDefinition_encounter_definition_id - - name - - description - - EncounterDefinition_activity_definition_id - slot_usage: - encounter_definition_id: - name: encounter_definition_id - identifier: true - range: string - required: true - activity_definition_id: - name: activity_definition_id - multivalued: true - class_uri: includedcc:EncounterDefinition - ActivityDefinition: - name: ActivityDefinition - definition_uri: https://includedcc.org/include-access-model/ActivityDefinition - description: A definition of an activity in this study, eg, a biospecimen collection, - intervention, survey, or assessment. - title: Activity Definition - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - ActivityDefinition_activity_definition_id - - name - - description - slot_usage: - activity_definition_id: - name: activity_definition_id - identifier: true - range: string - required: true - class_uri: includedcc:ActivityDefinition - File: - name: File - definition_uri: https://includedcc.org/include-access-model/File - description: Required information for portal use. - title: File - from_schema: https://includedcc.org/include-access-model - is_a: Record - slots: - - external_id - - File_study_id - - File_file_id - - File_subject_id - - File_sample_id - - s3_file_path - - filename - - size - - format - - File_data_category - - data_type - - format - - size - - staging_url - - release_url - - drs_uri - - hash - slot_usage: - study_id: - name: study_id - required: true - file_id: - name: file_id - identifier: true - range: string - required: true - subject_id: - name: subject_id - required: true - multivalued: true - sample_id: - name: sample_id - required: true - multivalued: true - data_category: - name: data_category - required: true - class_uri: includedcc:File - FileHash: - name: FileHash - definition_uri: https://includedcc.org/include-access-model/FileHash - description: Type and value of a file content hash. - title: File Hash - from_schema: https://includedcc.org/include-access-model - slots: - - hash_type - - hash_value - class_uri: includedcc:FileHash - Dataset: - name: Dataset - definition_uri: https://includedcc.org/include-access-model/Dataset - description: Set of files grouped together for release. - title: Dataset - from_schema: https://includedcc.org/include-access-model - slots: - - Dataset_dataset_id - - name - - description - - do_id - - Dataset_file_id - - publication - - data_collection_start - - data_collection_end - slot_usage: - dataset_id: - name: dataset_id - identifier: true - range: string - required: true - file_id: - name: file_id - description: The list of files comprising this dataset. - multivalued: true - class_uri: includedcc:Dataset - FileAdmin: - name: FileAdmin - definition_uri: https://includedcc.org/include-access-model/FileAdmin - description: File unvierse; contains all information about a file that may be - needed for operational work - from_schema: https://includedcc.org/include-access-model - slots: - - FileAdmin_study_id - - FileAdmin_file_id - - subject_id - - sample_id - - s3_file_path - - file_category - - size - - s3_key - - file_extension - - data_transfer_id - - aws_account_id - - account_name - - account_alias - - bucket_study_id - - bucket - - s3_created_at - - s3_modified_at - - intelligent_tiering_access_tier - - is_delete_marker - - is_latest - - storage_class - - manifest_hash_value - - file_hash_validation_status - - file_type - - encryption_status - - is_multipart_uploaded - - object_lock_level_hold_status - - object_lock_mode - - object_lock_retain_until_date - - replication_status - - version_id - - staging_url - - release_url - - hash - - access_type - - access_url - - drs_uri - - acl - - is_released - - is_registered - - repository - - experimental_strategy - slot_usage: - study_id: - name: study_id - required: true - file_id: - name: file_id - identifier: true - required: true - class_uri: includedcc:FileAdmin - FileAssay: - name: FileAssay - definition_uri: https://includedcc.org/include-access-model/FileAssay - description: A file produced by or associated with an assay or data acquisition - process including omics, imaging, actigraphy, and other experimental or observational - data. - title: File Assay - from_schema: https://includedcc.org/include-access-model - slots: - - FileAssay_file_id - - FileAssay_subject_id - - FileAssay_sample_id - - FileAssay_data_category - - experimental_strategy - - data_type - - format - - size - - access_type - - assay_center - - platform - - workflow_name - - workflow_version - slot_usage: - file_id: - name: file_id - identifier: true - required: true - subject_id: - name: subject_id - required: true - multivalued: true - sample_id: - name: sample_id - required: true - multivalued: true - data_category: - name: data_category - required: true - class_uri: includedcc:FileAssay -metamodel_version: 1.7.0 -source_file: include_access_model.yaml -source_file_date: '2026-04-03T17:19:20' -source_file_size: 46203 -generation_date: '2026-04-03T17:21:01' - From 6574ad187ce6608cdea221bc729da9d3a9b32971 Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Tue, 14 Apr 2026 13:37:07 -0500 Subject: [PATCH 13/20] Delete src/include_access_model/datamodel/include_access_model.py --- .../datamodel/include_access_model.py | 2572 ----------------- 1 file changed, 2572 deletions(-) delete mode 100644 src/include_access_model/datamodel/include_access_model.py diff --git a/src/include_access_model/datamodel/include_access_model.py b/src/include_access_model/datamodel/include_access_model.py deleted file mode 100644 index 8e0b499..0000000 --- a/src/include_access_model/datamodel/include_access_model.py +++ /dev/null @@ -1,2572 +0,0 @@ -# Auto generated from include_access_model.yaml by pythongen.py version: 0.0.1 -# Generation date: 2026-04-03T17:20:29 -# Schema: include-access-model -# -# id: https://includedcc.org/include-access-model -# description: LinkML Schema for the internal INCLUDE DCC Access Model -# license: MIT - -import dataclasses -import re -from dataclasses import dataclass -from datetime import ( - date, - datetime, - time -) -from typing import ( - Any, - ClassVar, - Dict, - List, - Optional, - Union -) - -from jsonasobj2 import ( - JsonObj, - as_dict -) -from linkml_runtime.linkml_model.meta import ( - EnumDefinition, - PermissibleValue, - PvFormulaOptions -) -from linkml_runtime.utils.curienamespace import CurieNamespace -from linkml_runtime.utils.enumerations import EnumDefinitionImpl -from linkml_runtime.utils.formatutils import ( - camelcase, - sfx, - underscore -) -from linkml_runtime.utils.metamodelcore import ( - bnode, - empty_dict, - empty_list -) -from linkml_runtime.utils.slot import Slot -from linkml_runtime.utils.yamlutils import ( - YAMLRoot, - extended_float, - extended_int, - extended_str -) -from rdflib import ( - Namespace, - URIRef -) - -from linkml_runtime.linkml_model.types import Boolean, Datetime, Float, Integer, String, Uri, Uriorcurie -from linkml_runtime.utils.metamodelcore import Bool, URI, URIorCURIE, XSDDateTime - -metamodel_version = "1.7.0" -version = None - -# Namespaces -HP = CurieNamespace('HP', 'http://purl.obolibrary.org/obo/HP_') -MONDO = CurieNamespace('MONDO', 'http://purl.obolibrary.org/obo/MONDO_') -NCIT = CurieNamespace('NCIT', 'http://purl.obolibrary.org/obo/NCIT_') -PATO = CurieNamespace('PATO', 'http://purl.obolibrary.org/obo/PATO_') -CDC_RACE_ETH = CurieNamespace('cdc_race_eth', 'urn:oid:2.16.840.1.113883.6.238/') -HL7_NULL = CurieNamespace('hl7_null', 'http://terminology.hl7.org/CodeSystem/v3-NullFlavor/') -IG2_BIOSPECIMEN_AVAILABILITY = CurieNamespace('ig2_biospecimen_availability', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/biospecimen-availability/') -IG2DAC = CurieNamespace('ig2dac', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-code/') -IG2DAT = CurieNamespace('ig2dat', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-type/') -IG_DOB_METHOD = CurieNamespace('ig_dob_method', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-date-of-birth-method/') -IGCONDTYPE = CurieNamespace('igcondtype', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/condition-type/') -INCLUDEDCC = CurieNamespace('includedcc', 'https://includedcc.org/include-access-model/') -LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/') -MESH = CurieNamespace('mesh', 'http://id.nlm.nih.gov/mesh/') -SCHEMA = CurieNamespace('schema', 'http://schema.org/') -SNOMED_CT = CurieNamespace('snomed_ct', 'http://snomed.info/id/') -DEFAULT_ = INCLUDEDCC - - -# Types - -# Class references -class StudyStudyId(extended_str): - pass - - -class StudyMetadataStudyId(StudyStudyId): - pass - - -class DOIDoId(extended_str): - pass - - -class SubjectSubjectId(extended_str): - pass - - -class DemographicsSubjectId(SubjectSubjectId): - pass - - -class SubjectAssertionAssertionId(extended_str): - pass - - -class ConceptConceptCurie(URIorCURIE): - pass - - -class SampleSampleId(extended_str): - pass - - -class BiospecimenCollectionBiospecimenCollectionId(extended_str): - pass - - -class AliquotAliquotId(extended_str): - pass - - -class EncounterEncounterId(extended_str): - pass - - -class EncounterDefinitionEncounterDefinitionId(extended_str): - pass - - -class ActivityDefinitionActivityDefinitionId(extended_str): - pass - - -class FileFileId(extended_str): - pass - - -class DatasetDatasetId(extended_str): - pass - - -class FileAdminFileId(FileFileId): - pass - - -class FileAssayFileId(FileFileId): - pass - - -@dataclass(repr=False) -class Record(YAMLRoot): - """ - One row / entity within the database - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Record"] - class_class_curie: ClassVar[str] = "includedcc:Record" - class_name: ClassVar[str] = "Record" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Record - - external_id: Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]] = empty_list() - - def __post_init__(self, *_: str, **kwargs: Any): - if not isinstance(self.external_id, list): - self.external_id = [self.external_id] if self.external_id is not None else [] - self.external_id = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.external_id] - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Study(Record): - """ - Study Metadata - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Study"] - class_class_curie: ClassVar[str] = "includedcc:Study" - class_name: ClassVar[str] = "Study" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Study - - study_id: Union[str, StudyStudyId] = None - study_title: str = None - study_code: str = None - program: Union[Union[str, "EnumProgram"], list[Union[str, "EnumProgram"]]] = None - principal_investigator: Union[Union[dict, "Investigator"], list[Union[dict, "Investigator"]]] = None - contact: Union[Union[dict, "Investigator"], list[Union[dict, "Investigator"]]] = None - study_description: str = None - parent_study: Optional[Union[str, StudyStudyId]] = None - study_short_name: Optional[str] = None - funding_source: Optional[Union[str, list[str]]] = empty_list() - website: Optional[Union[str, URI]] = None - publication: Optional[Union[Union[dict, "Publication"], list[Union[dict, "Publication"]]]] = empty_list() - acknowledgments: Optional[str] = None - citation_statement: Optional[str] = None - do_id: Optional[Union[str, DOIDoId]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.study_id): - self.MissingRequiredField("study_id") - if not isinstance(self.study_id, StudyStudyId): - self.study_id = StudyStudyId(self.study_id) - - if self._is_empty(self.study_title): - self.MissingRequiredField("study_title") - if not isinstance(self.study_title, str): - self.study_title = str(self.study_title) - - if self._is_empty(self.study_code): - self.MissingRequiredField("study_code") - if not isinstance(self.study_code, str): - self.study_code = str(self.study_code) - - if self._is_empty(self.program): - self.MissingRequiredField("program") - if not isinstance(self.program, list): - self.program = [self.program] if self.program is not None else [] - self.program = [v if isinstance(v, EnumProgram) else EnumProgram(v) for v in self.program] - - if self._is_empty(self.principal_investigator): - self.MissingRequiredField("principal_investigator") - if not isinstance(self.principal_investigator, list): - self.principal_investigator = [self.principal_investigator] if self.principal_investigator is not None else [] - self.principal_investigator = [v if isinstance(v, Investigator) else Investigator(**as_dict(v)) for v in self.principal_investigator] - - if self._is_empty(self.contact): - self.MissingRequiredField("contact") - if not isinstance(self.contact, list): - self.contact = [self.contact] if self.contact is not None else [] - self.contact = [v if isinstance(v, Investigator) else Investigator(**as_dict(v)) for v in self.contact] - - if self._is_empty(self.study_description): - self.MissingRequiredField("study_description") - if not isinstance(self.study_description, str): - self.study_description = str(self.study_description) - - if self.parent_study is not None and not isinstance(self.parent_study, StudyStudyId): - self.parent_study = StudyStudyId(self.parent_study) - - if self.study_short_name is not None and not isinstance(self.study_short_name, str): - self.study_short_name = str(self.study_short_name) - - if not isinstance(self.funding_source, list): - self.funding_source = [self.funding_source] if self.funding_source is not None else [] - self.funding_source = [v if isinstance(v, str) else str(v) for v in self.funding_source] - - if self.website is not None and not isinstance(self.website, URI): - self.website = URI(self.website) - - if not isinstance(self.publication, list): - self.publication = [self.publication] if self.publication is not None else [] - self.publication = [v if isinstance(v, Publication) else Publication(**as_dict(v)) for v in self.publication] - - if self.acknowledgments is not None and not isinstance(self.acknowledgments, str): - self.acknowledgments = str(self.acknowledgments) - - if self.citation_statement is not None and not isinstance(self.citation_statement, str): - self.citation_statement = str(self.citation_statement) - - if self.do_id is not None and not isinstance(self.do_id, DOIDoId): - self.do_id = DOIDoId(self.do_id) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class StudyMetadata(Record): - """ - Additional features about studies that may not apply to all studies - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["StudyMetadata"] - class_class_curie: ClassVar[str] = "includedcc:StudyMetadata" - class_name: ClassVar[str] = "StudyMetadata" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.StudyMetadata - - study_id: Union[str, StudyMetadataStudyId] = None - participant_lifespan_stage: Union[Union[str, "EnumParticipantLifespanStage"], list[Union[str, "EnumParticipantLifespanStage"]]] = None - study_design: Union[Union[str, "EnumStudyDesign"], list[Union[str, "EnumStudyDesign"]]] = None - clinical_data_source_type: Union[Union[str, "EnumClinicalDataSourceType"], list[Union[str, "EnumClinicalDataSourceType"]]] = None - data_category: Union[Union[str, "EnumDataCategory"], list[Union[str, "EnumDataCategory"]]] = None - research_domain: Union[Union[str, "EnumResearchDomain"], list[Union[str, "EnumResearchDomain"]]] = None - expected_number_of_participants: int = None - actual_number_of_participants: int = None - selection_criteria: Optional[str] = None - vbr: Optional[Union[dict, "VirtualBiorepository"]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.study_id): - self.MissingRequiredField("study_id") - if not isinstance(self.study_id, StudyMetadataStudyId): - self.study_id = StudyMetadataStudyId(self.study_id) - - if self._is_empty(self.participant_lifespan_stage): - self.MissingRequiredField("participant_lifespan_stage") - if not isinstance(self.participant_lifespan_stage, list): - self.participant_lifespan_stage = [self.participant_lifespan_stage] if self.participant_lifespan_stage is not None else [] - self.participant_lifespan_stage = [v if isinstance(v, EnumParticipantLifespanStage) else EnumParticipantLifespanStage(v) for v in self.participant_lifespan_stage] - - if self._is_empty(self.study_design): - self.MissingRequiredField("study_design") - if not isinstance(self.study_design, list): - self.study_design = [self.study_design] if self.study_design is not None else [] - self.study_design = [v if isinstance(v, EnumStudyDesign) else EnumStudyDesign(v) for v in self.study_design] - - if self._is_empty(self.clinical_data_source_type): - self.MissingRequiredField("clinical_data_source_type") - if not isinstance(self.clinical_data_source_type, list): - self.clinical_data_source_type = [self.clinical_data_source_type] if self.clinical_data_source_type is not None else [] - self.clinical_data_source_type = [v if isinstance(v, EnumClinicalDataSourceType) else EnumClinicalDataSourceType(v) for v in self.clinical_data_source_type] - - if self._is_empty(self.data_category): - self.MissingRequiredField("data_category") - if not isinstance(self.data_category, list): - self.data_category = [self.data_category] if self.data_category is not None else [] - self.data_category = [v if isinstance(v, EnumDataCategory) else EnumDataCategory(v) for v in self.data_category] - - if self._is_empty(self.research_domain): - self.MissingRequiredField("research_domain") - if not isinstance(self.research_domain, list): - self.research_domain = [self.research_domain] if self.research_domain is not None else [] - self.research_domain = [v if isinstance(v, EnumResearchDomain) else EnumResearchDomain(v) for v in self.research_domain] - - if self._is_empty(self.expected_number_of_participants): - self.MissingRequiredField("expected_number_of_participants") - if not isinstance(self.expected_number_of_participants, int): - self.expected_number_of_participants = int(self.expected_number_of_participants) - - if self._is_empty(self.actual_number_of_participants): - self.MissingRequiredField("actual_number_of_participants") - if not isinstance(self.actual_number_of_participants, int): - self.actual_number_of_participants = int(self.actual_number_of_participants) - - if self.selection_criteria is not None and not isinstance(self.selection_criteria, str): - self.selection_criteria = str(self.selection_criteria) - - if self.vbr is not None and not isinstance(self.vbr, VirtualBiorepository): - self.vbr = VirtualBiorepository(**as_dict(self.vbr)) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class VirtualBiorepository(Record): - """ - An organization that can provide access to specimen for further analysis. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["VirtualBiorepository"] - class_class_curie: ClassVar[str] = "includedcc:VirtualBiorepository" - class_name: ClassVar[str] = "VirtualBiorepository" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.VirtualBiorepository - - contact: Union[Union[dict, "Investigator"], list[Union[dict, "Investigator"]]] = None - name: Optional[str] = None - institution: Optional[str] = None - website: Optional[Union[str, URI]] = None - vbr_readme: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.contact): - self.MissingRequiredField("contact") - if not isinstance(self.contact, list): - self.contact = [self.contact] if self.contact is not None else [] - self.contact = [v if isinstance(v, Investigator) else Investigator(**as_dict(v)) for v in self.contact] - - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.institution is not None and not isinstance(self.institution, str): - self.institution = str(self.institution) - - if self.website is not None and not isinstance(self.website, URI): - self.website = URI(self.website) - - if self.vbr_readme is not None and not isinstance(self.vbr_readme, str): - self.vbr_readme = str(self.vbr_readme) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class DOI(Record): - """ - A DOI is a permanent reference with metadata about a digital object. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["DOI"] - class_class_curie: ClassVar[str] = "includedcc:DOI" - class_name: ClassVar[str] = "DOI" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.DOI - - do_id: Union[str, DOIDoId] = None - bibliographic_reference: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.do_id): - self.MissingRequiredField("do_id") - if not isinstance(self.do_id, DOIDoId): - self.do_id = DOIDoId(self.do_id) - - if self.bibliographic_reference is not None and not isinstance(self.bibliographic_reference, str): - self.bibliographic_reference = str(self.bibliographic_reference) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Investigator(Record): - """ - An individual who made contributions to the collection, analysis, or sharing of data. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Investigator"] - class_class_curie: ClassVar[str] = "includedcc:Investigator" - class_name: ClassVar[str] = "Investigator" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Investigator - - name: Optional[str] = None - institution: Optional[str] = None - investigator_title: Optional[str] = None - email: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.institution is not None and not isinstance(self.institution, str): - self.institution = str(self.institution) - - if self.investigator_title is not None and not isinstance(self.investigator_title, str): - self.investigator_title = str(self.investigator_title) - - if self.email is not None and not isinstance(self.email, str): - self.email = str(self.email) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Publication(Record): - """ - Information about a specific publication. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Publication"] - class_class_curie: ClassVar[str] = "includedcc:Publication" - class_name: ClassVar[str] = "Publication" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Publication - - bibliographic_reference: Optional[str] = None - website: Optional[Union[str, URI]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self.bibliographic_reference is not None and not isinstance(self.bibliographic_reference, str): - self.bibliographic_reference = str(self.bibliographic_reference) - - if self.website is not None and not isinstance(self.website, URI): - self.website = URI(self.website) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Subject(Record): - """ - This entity is the subject about which data or references are recorded. This includes the idea of a human - participant in a study, a cell line, an animal model, or any other similar entity. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Subject"] - class_class_curie: ClassVar[str] = "includedcc:Subject" - class_name: ClassVar[str] = "Subject" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Subject - - subject_id: Union[str, SubjectSubjectId] = None - subject_type: Union[str, "EnumSubjectType"] = None - organism_type: Optional[Union[str, URIorCURIE]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.subject_id): - self.MissingRequiredField("subject_id") - if not isinstance(self.subject_id, SubjectSubjectId): - self.subject_id = SubjectSubjectId(self.subject_id) - - if self._is_empty(self.subject_type): - self.MissingRequiredField("subject_type") - if not isinstance(self.subject_type, EnumSubjectType): - self.subject_type = EnumSubjectType(self.subject_type) - - if self.organism_type is not None and not isinstance(self.organism_type, URIorCURIE): - self.organism_type = URIorCURIE(self.organism_type) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Demographics(Record): - """ - Basic participant demographics summary - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Demographics"] - class_class_curie: ClassVar[str] = "includedcc:Demographics" - class_name: ClassVar[str] = "Demographics" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Demographics - - subject_id: Union[str, DemographicsSubjectId] = None - sex: Union[str, "EnumSex"] = None - race: Union[Union[str, "EnumRace"], list[Union[str, "EnumRace"]]] = None - ethnicity: Union[str, "EnumEthnicity"] = None - down_syndrome_status: Union[str, "EnumDownSyndromeStatus"] = None - age_at_last_vital_status: Optional[int] = None - vital_status: Optional[Union[str, "EnumVitalStatus"]] = None - age_at_first_engagement: Optional[int] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.subject_id): - self.MissingRequiredField("subject_id") - if not isinstance(self.subject_id, DemographicsSubjectId): - self.subject_id = DemographicsSubjectId(self.subject_id) - - if self._is_empty(self.sex): - self.MissingRequiredField("sex") - if not isinstance(self.sex, EnumSex): - self.sex = EnumSex(self.sex) - - if self._is_empty(self.race): - self.MissingRequiredField("race") - if not isinstance(self.race, list): - self.race = [self.race] if self.race is not None else [] - self.race = [v if isinstance(v, EnumRace) else EnumRace(v) for v in self.race] - - if self._is_empty(self.ethnicity): - self.MissingRequiredField("ethnicity") - if not isinstance(self.ethnicity, EnumEthnicity): - self.ethnicity = EnumEthnicity(self.ethnicity) - - if self._is_empty(self.down_syndrome_status): - self.MissingRequiredField("down_syndrome_status") - if not isinstance(self.down_syndrome_status, EnumDownSyndromeStatus): - self.down_syndrome_status = EnumDownSyndromeStatus(self.down_syndrome_status) - - if self.age_at_last_vital_status is not None and not isinstance(self.age_at_last_vital_status, int): - self.age_at_last_vital_status = int(self.age_at_last_vital_status) - - if self.vital_status is not None and not isinstance(self.vital_status, EnumVitalStatus): - self.vital_status = EnumVitalStatus(self.vital_status) - - if self.age_at_first_engagement is not None and not isinstance(self.age_at_first_engagement, int): - self.age_at_first_engagement = int(self.age_at_first_engagement) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class SubjectAssertion(Record): - """ - Assertion about a particular Subject. May include Conditions, Measurements, etc. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["SubjectAssertion"] - class_class_curie: ClassVar[str] = "includedcc:SubjectAssertion" - class_name: ClassVar[str] = "SubjectAssertion" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.SubjectAssertion - - assertion_id: Union[str, SubjectAssertionAssertionId] = None - subject_id: Optional[Union[str, SubjectSubjectId]] = None - encounter_id: Optional[Union[str, EncounterEncounterId]] = None - assertion_provenance: Optional[Union[str, "EnumAssertionProvenance"]] = None - age_at_assertion: Optional[int] = None - age_at_event: Optional[int] = None - age_at_resolution: Optional[int] = None - concept: Optional[Union[Union[str, ConceptConceptCurie], list[Union[str, ConceptConceptCurie]]]] = empty_list() - concept_source: Optional[str] = None - value_concept: Optional[Union[Union[str, ConceptConceptCurie], list[Union[str, ConceptConceptCurie]]]] = empty_list() - value_number: Optional[float] = None - value_source: Optional[str] = None - value_unit: Optional[Union[str, ConceptConceptCurie]] = None - value_unit_source: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.assertion_id): - self.MissingRequiredField("assertion_id") - if not isinstance(self.assertion_id, SubjectAssertionAssertionId): - self.assertion_id = SubjectAssertionAssertionId(self.assertion_id) - - if self.subject_id is not None and not isinstance(self.subject_id, SubjectSubjectId): - self.subject_id = SubjectSubjectId(self.subject_id) - - if self.encounter_id is not None and not isinstance(self.encounter_id, EncounterEncounterId): - self.encounter_id = EncounterEncounterId(self.encounter_id) - - if self.assertion_provenance is not None and not isinstance(self.assertion_provenance, EnumAssertionProvenance): - self.assertion_provenance = EnumAssertionProvenance(self.assertion_provenance) - - if self.age_at_assertion is not None and not isinstance(self.age_at_assertion, int): - self.age_at_assertion = int(self.age_at_assertion) - - if self.age_at_event is not None and not isinstance(self.age_at_event, int): - self.age_at_event = int(self.age_at_event) - - if self.age_at_resolution is not None and not isinstance(self.age_at_resolution, int): - self.age_at_resolution = int(self.age_at_resolution) - - if not isinstance(self.concept, list): - self.concept = [self.concept] if self.concept is not None else [] - self.concept = [v if isinstance(v, ConceptConceptCurie) else ConceptConceptCurie(v) for v in self.concept] - - if self.concept_source is not None and not isinstance(self.concept_source, str): - self.concept_source = str(self.concept_source) - - if not isinstance(self.value_concept, list): - self.value_concept = [self.value_concept] if self.value_concept is not None else [] - self.value_concept = [v if isinstance(v, ConceptConceptCurie) else ConceptConceptCurie(v) for v in self.value_concept] - - if self.value_number is not None and not isinstance(self.value_number, float): - self.value_number = float(self.value_number) - - if self.value_source is not None and not isinstance(self.value_source, str): - self.value_source = str(self.value_source) - - if self.value_unit is not None and not isinstance(self.value_unit, ConceptConceptCurie): - self.value_unit = ConceptConceptCurie(self.value_unit) - - if self.value_unit_source is not None and not isinstance(self.value_unit_source, str): - self.value_unit_source = str(self.value_unit_source) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Concept(YAMLRoot): - """ - A standardized concept with display information. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Concept"] - class_class_curie: ClassVar[str] = "includedcc:Concept" - class_name: ClassVar[str] = "Concept" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Concept - - concept_curie: Union[str, ConceptConceptCurie] = None - display: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.concept_curie): - self.MissingRequiredField("concept_curie") - if not isinstance(self.concept_curie, ConceptConceptCurie): - self.concept_curie = ConceptConceptCurie(self.concept_curie) - - if self.display is not None and not isinstance(self.display, str): - self.display = str(self.display) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Sample(Record): - """ - A functionally equivalent specimen taken from a participant or processed from such a sample. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Sample"] - class_class_curie: ClassVar[str] = "includedcc:Sample" - class_name: ClassVar[str] = "Sample" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Sample - - sample_id: Union[str, SampleSampleId] = None - sample_type: Union[str, URIorCURIE] = None - biospecimen_collection_id: Optional[Union[str, BiospecimenCollectionBiospecimenCollectionId]] = None - parent_sample_id: Optional[Union[str, SampleSampleId]] = None - processing: Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]] = empty_list() - availablity_status: Optional[Union[str, "EnumAvailabilityStatus"]] = None - storage_method: Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]] = empty_list() - quantity_number: Optional[float] = None - quantity_unit: Optional[Union[str, ConceptConceptCurie]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.sample_id): - self.MissingRequiredField("sample_id") - if not isinstance(self.sample_id, SampleSampleId): - self.sample_id = SampleSampleId(self.sample_id) - - if self._is_empty(self.sample_type): - self.MissingRequiredField("sample_type") - if not isinstance(self.sample_type, URIorCURIE): - self.sample_type = URIorCURIE(self.sample_type) - - if self.biospecimen_collection_id is not None and not isinstance(self.biospecimen_collection_id, BiospecimenCollectionBiospecimenCollectionId): - self.biospecimen_collection_id = BiospecimenCollectionBiospecimenCollectionId(self.biospecimen_collection_id) - - if self.parent_sample_id is not None and not isinstance(self.parent_sample_id, SampleSampleId): - self.parent_sample_id = SampleSampleId(self.parent_sample_id) - - if not isinstance(self.processing, list): - self.processing = [self.processing] if self.processing is not None else [] - self.processing = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.processing] - - if self.availablity_status is not None and not isinstance(self.availablity_status, EnumAvailabilityStatus): - self.availablity_status = EnumAvailabilityStatus(self.availablity_status) - - if not isinstance(self.storage_method, list): - self.storage_method = [self.storage_method] if self.storage_method is not None else [] - self.storage_method = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.storage_method] - - if self.quantity_number is not None and not isinstance(self.quantity_number, float): - self.quantity_number = float(self.quantity_number) - - if self.quantity_unit is not None and not isinstance(self.quantity_unit, ConceptConceptCurie): - self.quantity_unit = ConceptConceptCurie(self.quantity_unit) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class BiospecimenCollection(Record): - """ - A biospecimen collection event which yields one or more Samples. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["BiospecimenCollection"] - class_class_curie: ClassVar[str] = "includedcc:BiospecimenCollection" - class_name: ClassVar[str] = "BiospecimenCollection" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.BiospecimenCollection - - biospecimen_collection_id: Union[str, BiospecimenCollectionBiospecimenCollectionId] = None - age_at_collection: Optional[float] = None - method: Optional[Union[str, "EnumSampleCollectionMethod"]] = None - site: Optional[Union[str, "EnumSite"]] = None - spatial_qualifier: Optional[Union[str, "EnumSpatialQualifiers"]] = None - laterality: Optional[Union[str, "EnumLaterality"]] = None - encounter_id: Optional[Union[str, EncounterEncounterId]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.biospecimen_collection_id): - self.MissingRequiredField("biospecimen_collection_id") - if not isinstance(self.biospecimen_collection_id, BiospecimenCollectionBiospecimenCollectionId): - self.biospecimen_collection_id = BiospecimenCollectionBiospecimenCollectionId(self.biospecimen_collection_id) - - if self.age_at_collection is not None and not isinstance(self.age_at_collection, float): - self.age_at_collection = float(self.age_at_collection) - - if self.encounter_id is not None and not isinstance(self.encounter_id, EncounterEncounterId): - self.encounter_id = EncounterEncounterId(self.encounter_id) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Aliquot(Record): - """ - A specific tube or amount of a biospecimen associated with a Sample. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Aliquot"] - class_class_curie: ClassVar[str] = "includedcc:Aliquot" - class_name: ClassVar[str] = "Aliquot" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Aliquot - - aliquot_id: Union[str, AliquotAliquotId] = None - sample_id: Optional[Union[str, SampleSampleId]] = None - availablity_status: Optional[Union[str, "EnumAvailabilityStatus"]] = None - quantity_number: Optional[float] = None - quantity_unit: Optional[Union[str, ConceptConceptCurie]] = None - concentration_number: Optional[float] = None - concentration_unit: Optional[Union[str, ConceptConceptCurie]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.aliquot_id): - self.MissingRequiredField("aliquot_id") - if not isinstance(self.aliquot_id, AliquotAliquotId): - self.aliquot_id = AliquotAliquotId(self.aliquot_id) - - if self.sample_id is not None and not isinstance(self.sample_id, SampleSampleId): - self.sample_id = SampleSampleId(self.sample_id) - - if self.availablity_status is not None and not isinstance(self.availablity_status, EnumAvailabilityStatus): - self.availablity_status = EnumAvailabilityStatus(self.availablity_status) - - if self.quantity_number is not None and not isinstance(self.quantity_number, float): - self.quantity_number = float(self.quantity_number) - - if self.quantity_unit is not None and not isinstance(self.quantity_unit, ConceptConceptCurie): - self.quantity_unit = ConceptConceptCurie(self.quantity_unit) - - if self.concentration_number is not None and not isinstance(self.concentration_number, float): - self.concentration_number = float(self.concentration_number) - - if self.concentration_unit is not None and not isinstance(self.concentration_unit, ConceptConceptCurie): - self.concentration_unit = ConceptConceptCurie(self.concentration_unit) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Encounter(Record): - """ - An event at which data was collected about a participant, an intervention was made, or information about a - participant was recorded. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Encounter"] - class_class_curie: ClassVar[str] = "includedcc:Encounter" - class_name: ClassVar[str] = "Encounter" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Encounter - - encounter_id: Union[str, EncounterEncounterId] = None - subject_id: Optional[Union[str, SubjectSubjectId]] = None - encounter_definition_id: Optional[Union[str, EncounterDefinitionEncounterDefinitionId]] = None - age_at_event: Optional[int] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.encounter_id): - self.MissingRequiredField("encounter_id") - if not isinstance(self.encounter_id, EncounterEncounterId): - self.encounter_id = EncounterEncounterId(self.encounter_id) - - if self.subject_id is not None and not isinstance(self.subject_id, SubjectSubjectId): - self.subject_id = SubjectSubjectId(self.subject_id) - - if self.encounter_definition_id is not None and not isinstance(self.encounter_definition_id, EncounterDefinitionEncounterDefinitionId): - self.encounter_definition_id = EncounterDefinitionEncounterDefinitionId(self.encounter_definition_id) - - if self.age_at_event is not None and not isinstance(self.age_at_event, int): - self.age_at_event = int(self.age_at_event) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class EncounterDefinition(Record): - """ - A definition of an encounter type in this study, ie, an event at which data was collected about a participant, an - intervention was made, or information about a participant was recorded. This may be something planned by a study - or a type of data collection. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["EncounterDefinition"] - class_class_curie: ClassVar[str] = "includedcc:EncounterDefinition" - class_name: ClassVar[str] = "EncounterDefinition" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.EncounterDefinition - - encounter_definition_id: Union[str, EncounterDefinitionEncounterDefinitionId] = None - name: Optional[str] = None - description: Optional[str] = None - activity_definition_id: Optional[Union[Union[str, ActivityDefinitionActivityDefinitionId], list[Union[str, ActivityDefinitionActivityDefinitionId]]]] = empty_list() - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.encounter_definition_id): - self.MissingRequiredField("encounter_definition_id") - if not isinstance(self.encounter_definition_id, EncounterDefinitionEncounterDefinitionId): - self.encounter_definition_id = EncounterDefinitionEncounterDefinitionId(self.encounter_definition_id) - - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.description is not None and not isinstance(self.description, str): - self.description = str(self.description) - - if not isinstance(self.activity_definition_id, list): - self.activity_definition_id = [self.activity_definition_id] if self.activity_definition_id is not None else [] - self.activity_definition_id = [v if isinstance(v, ActivityDefinitionActivityDefinitionId) else ActivityDefinitionActivityDefinitionId(v) for v in self.activity_definition_id] - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class ActivityDefinition(Record): - """ - A definition of an activity in this study, eg, a biospecimen collection, intervention, survey, or assessment. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["ActivityDefinition"] - class_class_curie: ClassVar[str] = "includedcc:ActivityDefinition" - class_name: ClassVar[str] = "ActivityDefinition" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.ActivityDefinition - - activity_definition_id: Union[str, ActivityDefinitionActivityDefinitionId] = None - name: Optional[str] = None - description: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.activity_definition_id): - self.MissingRequiredField("activity_definition_id") - if not isinstance(self.activity_definition_id, ActivityDefinitionActivityDefinitionId): - self.activity_definition_id = ActivityDefinitionActivityDefinitionId(self.activity_definition_id) - - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.description is not None and not isinstance(self.description, str): - self.description = str(self.description) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class File(Record): - """ - Required information for portal use. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["File"] - class_class_curie: ClassVar[str] = "includedcc:File" - class_name: ClassVar[str] = "File" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.File - - file_id: Union[str, FileFileId] = None - study_id: Union[str, StudyStudyId] = None - subject_id: Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]] = None - sample_id: Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]] = None - s3_file_path: str = None - filename: str = None - size: int = None - format: Union[str, "EnumEDAMFormats"] = None - data_category: Union[str, "EnumDataCategory"] = None - data_type: Union[str, "EnumEDAMDataTypes"] = None - hash: Union[dict, "FileHash"] = None - staging_url: Optional[Union[str, URIorCURIE]] = None - release_url: Optional[Union[str, URIorCURIE]] = None - drs_uri: Optional[Union[str, URIorCURIE]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.file_id): - self.MissingRequiredField("file_id") - if not isinstance(self.file_id, FileFileId): - self.file_id = FileFileId(self.file_id) - - if self._is_empty(self.study_id): - self.MissingRequiredField("study_id") - if not isinstance(self.study_id, StudyStudyId): - self.study_id = StudyStudyId(self.study_id) - - if self._is_empty(self.subject_id): - self.MissingRequiredField("subject_id") - if not isinstance(self.subject_id, list): - self.subject_id = [self.subject_id] if self.subject_id is not None else [] - self.subject_id = [v if isinstance(v, SubjectSubjectId) else SubjectSubjectId(v) for v in self.subject_id] - - if self._is_empty(self.sample_id): - self.MissingRequiredField("sample_id") - if not isinstance(self.sample_id, list): - self.sample_id = [self.sample_id] if self.sample_id is not None else [] - self.sample_id = [v if isinstance(v, SampleSampleId) else SampleSampleId(v) for v in self.sample_id] - - if self._is_empty(self.s3_file_path): - self.MissingRequiredField("s3_file_path") - if not isinstance(self.s3_file_path, str): - self.s3_file_path = str(self.s3_file_path) - - if self._is_empty(self.filename): - self.MissingRequiredField("filename") - if not isinstance(self.filename, str): - self.filename = str(self.filename) - - if self._is_empty(self.size): - self.MissingRequiredField("size") - if not isinstance(self.size, int): - self.size = int(self.size) - - if self._is_empty(self.data_category): - self.MissingRequiredField("data_category") - if not isinstance(self.data_category, EnumDataCategory): - self.data_category = EnumDataCategory(self.data_category) - - if self._is_empty(self.size): - self.MissingRequiredField("size") - if not isinstance(self.size, int): - self.size = int(self.size) - - if self._is_empty(self.hash): - self.MissingRequiredField("hash") - if not isinstance(self.hash, FileHash): - self.hash = FileHash(**as_dict(self.hash)) - - if self.staging_url is not None and not isinstance(self.staging_url, URIorCURIE): - self.staging_url = URIorCURIE(self.staging_url) - - if self.release_url is not None and not isinstance(self.release_url, URIorCURIE): - self.release_url = URIorCURIE(self.release_url) - - if self.drs_uri is not None and not isinstance(self.drs_uri, URIorCURIE): - self.drs_uri = URIorCURIE(self.drs_uri) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class FileHash(YAMLRoot): - """ - Type and value of a file content hash. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["FileHash"] - class_class_curie: ClassVar[str] = "includedcc:FileHash" - class_name: ClassVar[str] = "FileHash" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileHash - - hash_type: Union[str, "EnumFileHashType"] = None - hash_value: str = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.hash_type): - self.MissingRequiredField("hash_type") - if not isinstance(self.hash_type, EnumFileHashType): - self.hash_type = EnumFileHashType(self.hash_type) - - if self._is_empty(self.hash_value): - self.MissingRequiredField("hash_value") - if not isinstance(self.hash_value, str): - self.hash_value = str(self.hash_value) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Dataset(YAMLRoot): - """ - Set of files grouped together for release. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Dataset"] - class_class_curie: ClassVar[str] = "includedcc:Dataset" - class_name: ClassVar[str] = "Dataset" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Dataset - - dataset_id: Union[str, DatasetDatasetId] = None - name: Optional[str] = None - description: Optional[str] = None - do_id: Optional[Union[str, DOIDoId]] = None - file_id: Optional[Union[Union[str, FileFileId], list[Union[str, FileFileId]]]] = empty_list() - publication: Optional[Union[Union[dict, Publication], list[Union[dict, Publication]]]] = empty_list() - data_collection_start: Optional[str] = None - data_collection_end: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.dataset_id): - self.MissingRequiredField("dataset_id") - if not isinstance(self.dataset_id, DatasetDatasetId): - self.dataset_id = DatasetDatasetId(self.dataset_id) - - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.description is not None and not isinstance(self.description, str): - self.description = str(self.description) - - if self.do_id is not None and not isinstance(self.do_id, DOIDoId): - self.do_id = DOIDoId(self.do_id) - - if not isinstance(self.file_id, list): - self.file_id = [self.file_id] if self.file_id is not None else [] - self.file_id = [v if isinstance(v, FileFileId) else FileFileId(v) for v in self.file_id] - - if not isinstance(self.publication, list): - self.publication = [self.publication] if self.publication is not None else [] - self.publication = [v if isinstance(v, Publication) else Publication(**as_dict(v)) for v in self.publication] - - if self.data_collection_start is not None and not isinstance(self.data_collection_start, str): - self.data_collection_start = str(self.data_collection_start) - - if self.data_collection_end is not None and not isinstance(self.data_collection_end, str): - self.data_collection_end = str(self.data_collection_end) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class FileAdmin(YAMLRoot): - """ - File unvierse; contains all information about a file that may be needed for operational work - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["FileAdmin"] - class_class_curie: ClassVar[str] = "includedcc:FileAdmin" - class_name: ClassVar[str] = "FileAdmin" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileAdmin - - file_id: Union[str, FileAdminFileId] = None - study_id: Union[str, StudyStudyId] = None - s3_file_path: str = None - file_category: str = None - size: int = None - s3_key: str = None - file_extension: str = None - aws_account_id: str = None - account_name: str = None - account_alias: str = None - bucket_study_id: str = None - bucket: str = None - s3_created_at: Union[str, XSDDateTime] = None - s3_modified_at: Union[str, XSDDateTime] = None - intelligent_tiering_access_tier: str = None - is_delete_marker: Union[bool, Bool] = None - is_latest: Union[bool, Bool] = None - storage_class: str = None - file_type: str = None - encryption_status: str = None - is_multipart_uploaded: str = None - object_lock_level_hold_status: str = None - object_lock_mode: str = None - object_lock_retain_until_date: Union[str, XSDDateTime] = None - replication_status: str = None - version_id: str = None - hash: Union[dict, FileHash] = None - access_type: Union[str, "EnumAccessType"] = None - acl: str = None - is_released: Union[bool, Bool] = None - is_registered: Union[bool, Bool] = None - experimental_strategy: Union[str, "EnumExperimentalStrategy"] = None - subject_id: Optional[Union[str, SubjectSubjectId]] = None - sample_id: Optional[Union[str, SampleSampleId]] = None - data_transfer_id: Optional[str] = None - manifest_hash_value: Optional[str] = None - file_hash_validation_status: Optional[str] = None - staging_url: Optional[Union[str, URIorCURIE]] = None - release_url: Optional[Union[str, URIorCURIE]] = None - access_url: Optional[str] = None - drs_uri: Optional[Union[str, URIorCURIE]] = None - repository: Optional[Union[str, "EnumRepository"]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.file_id): - self.MissingRequiredField("file_id") - if not isinstance(self.file_id, FileAdminFileId): - self.file_id = FileAdminFileId(self.file_id) - - if self._is_empty(self.study_id): - self.MissingRequiredField("study_id") - if not isinstance(self.study_id, StudyStudyId): - self.study_id = StudyStudyId(self.study_id) - - if self._is_empty(self.s3_file_path): - self.MissingRequiredField("s3_file_path") - if not isinstance(self.s3_file_path, str): - self.s3_file_path = str(self.s3_file_path) - - if self._is_empty(self.file_category): - self.MissingRequiredField("file_category") - if not isinstance(self.file_category, str): - self.file_category = str(self.file_category) - - if self._is_empty(self.size): - self.MissingRequiredField("size") - if not isinstance(self.size, int): - self.size = int(self.size) - - if self._is_empty(self.s3_key): - self.MissingRequiredField("s3_key") - if not isinstance(self.s3_key, str): - self.s3_key = str(self.s3_key) - - if self._is_empty(self.file_extension): - self.MissingRequiredField("file_extension") - if not isinstance(self.file_extension, str): - self.file_extension = str(self.file_extension) - - if self._is_empty(self.aws_account_id): - self.MissingRequiredField("aws_account_id") - if not isinstance(self.aws_account_id, str): - self.aws_account_id = str(self.aws_account_id) - - if self._is_empty(self.account_name): - self.MissingRequiredField("account_name") - if not isinstance(self.account_name, str): - self.account_name = str(self.account_name) - - if self._is_empty(self.account_alias): - self.MissingRequiredField("account_alias") - if not isinstance(self.account_alias, str): - self.account_alias = str(self.account_alias) - - if self._is_empty(self.bucket_study_id): - self.MissingRequiredField("bucket_study_id") - if not isinstance(self.bucket_study_id, str): - self.bucket_study_id = str(self.bucket_study_id) - - if self._is_empty(self.bucket): - self.MissingRequiredField("bucket") - if not isinstance(self.bucket, str): - self.bucket = str(self.bucket) - - if self._is_empty(self.s3_created_at): - self.MissingRequiredField("s3_created_at") - if not isinstance(self.s3_created_at, XSDDateTime): - self.s3_created_at = XSDDateTime(self.s3_created_at) - - if self._is_empty(self.s3_modified_at): - self.MissingRequiredField("s3_modified_at") - if not isinstance(self.s3_modified_at, XSDDateTime): - self.s3_modified_at = XSDDateTime(self.s3_modified_at) - - if self._is_empty(self.intelligent_tiering_access_tier): - self.MissingRequiredField("intelligent_tiering_access_tier") - if not isinstance(self.intelligent_tiering_access_tier, str): - self.intelligent_tiering_access_tier = str(self.intelligent_tiering_access_tier) - - if self._is_empty(self.is_delete_marker): - self.MissingRequiredField("is_delete_marker") - if not isinstance(self.is_delete_marker, Bool): - self.is_delete_marker = Bool(self.is_delete_marker) - - if self._is_empty(self.is_latest): - self.MissingRequiredField("is_latest") - if not isinstance(self.is_latest, Bool): - self.is_latest = Bool(self.is_latest) - - if self._is_empty(self.storage_class): - self.MissingRequiredField("storage_class") - if not isinstance(self.storage_class, str): - self.storage_class = str(self.storage_class) - - if self._is_empty(self.file_type): - self.MissingRequiredField("file_type") - if not isinstance(self.file_type, str): - self.file_type = str(self.file_type) - - if self._is_empty(self.encryption_status): - self.MissingRequiredField("encryption_status") - if not isinstance(self.encryption_status, str): - self.encryption_status = str(self.encryption_status) - - if self._is_empty(self.is_multipart_uploaded): - self.MissingRequiredField("is_multipart_uploaded") - if not isinstance(self.is_multipart_uploaded, str): - self.is_multipart_uploaded = str(self.is_multipart_uploaded) - - if self._is_empty(self.object_lock_level_hold_status): - self.MissingRequiredField("object_lock_level_hold_status") - if not isinstance(self.object_lock_level_hold_status, str): - self.object_lock_level_hold_status = str(self.object_lock_level_hold_status) - - if self._is_empty(self.object_lock_mode): - self.MissingRequiredField("object_lock_mode") - if not isinstance(self.object_lock_mode, str): - self.object_lock_mode = str(self.object_lock_mode) - - if self._is_empty(self.object_lock_retain_until_date): - self.MissingRequiredField("object_lock_retain_until_date") - if not isinstance(self.object_lock_retain_until_date, XSDDateTime): - self.object_lock_retain_until_date = XSDDateTime(self.object_lock_retain_until_date) - - if self._is_empty(self.replication_status): - self.MissingRequiredField("replication_status") - if not isinstance(self.replication_status, str): - self.replication_status = str(self.replication_status) - - if self._is_empty(self.version_id): - self.MissingRequiredField("version_id") - if not isinstance(self.version_id, str): - self.version_id = str(self.version_id) - - if self._is_empty(self.hash): - self.MissingRequiredField("hash") - if not isinstance(self.hash, FileHash): - self.hash = FileHash(**as_dict(self.hash)) - - if self._is_empty(self.access_type): - self.MissingRequiredField("access_type") - if not isinstance(self.access_type, EnumAccessType): - self.access_type = EnumAccessType(self.access_type) - - if self._is_empty(self.acl): - self.MissingRequiredField("acl") - if not isinstance(self.acl, str): - self.acl = str(self.acl) - - if self._is_empty(self.is_released): - self.MissingRequiredField("is_released") - if not isinstance(self.is_released, Bool): - self.is_released = Bool(self.is_released) - - if self._is_empty(self.is_registered): - self.MissingRequiredField("is_registered") - if not isinstance(self.is_registered, Bool): - self.is_registered = Bool(self.is_registered) - - if self._is_empty(self.experimental_strategy): - self.MissingRequiredField("experimental_strategy") - if not isinstance(self.experimental_strategy, EnumExperimentalStrategy): - self.experimental_strategy = EnumExperimentalStrategy(self.experimental_strategy) - - if self.subject_id is not None and not isinstance(self.subject_id, SubjectSubjectId): - self.subject_id = SubjectSubjectId(self.subject_id) - - if self.sample_id is not None and not isinstance(self.sample_id, SampleSampleId): - self.sample_id = SampleSampleId(self.sample_id) - - if self.data_transfer_id is not None and not isinstance(self.data_transfer_id, str): - self.data_transfer_id = str(self.data_transfer_id) - - if self.manifest_hash_value is not None and not isinstance(self.manifest_hash_value, str): - self.manifest_hash_value = str(self.manifest_hash_value) - - if self.file_hash_validation_status is not None and not isinstance(self.file_hash_validation_status, str): - self.file_hash_validation_status = str(self.file_hash_validation_status) - - if self.staging_url is not None and not isinstance(self.staging_url, URIorCURIE): - self.staging_url = URIorCURIE(self.staging_url) - - if self.release_url is not None and not isinstance(self.release_url, URIorCURIE): - self.release_url = URIorCURIE(self.release_url) - - if self.access_url is not None and not isinstance(self.access_url, str): - self.access_url = str(self.access_url) - - if self.drs_uri is not None and not isinstance(self.drs_uri, URIorCURIE): - self.drs_uri = URIorCURIE(self.drs_uri) - - if self.repository is not None and not isinstance(self.repository, EnumRepository): - self.repository = EnumRepository(self.repository) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class FileAssay(YAMLRoot): - """ - A file produced by or associated with an assay or data acquisition process including omics, imaging, actigraphy, - and other experimental or observational data. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["FileAssay"] - class_class_curie: ClassVar[str] = "includedcc:FileAssay" - class_name: ClassVar[str] = "FileAssay" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileAssay - - file_id: Union[str, FileAssayFileId] = None - subject_id: Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]] = None - sample_id: Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]] = None - data_category: Union[str, "EnumDataCategory"] = None - experimental_strategy: Union[str, "EnumExperimentalStrategy"] = None - data_type: Union[str, "EnumEDAMDataTypes"] = None - format: Union[str, "EnumEDAMFormats"] = None - size: int = None - access_type: Union[str, "EnumAccessType"] = None - platform: Union[str, "EnumPlatform"] = None - assay_center: Optional[Union[str, "EnumAssayCenter"]] = None - workflow_name: Optional[str] = None - workflow_version: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.file_id): - self.MissingRequiredField("file_id") - if not isinstance(self.file_id, FileAssayFileId): - self.file_id = FileAssayFileId(self.file_id) - - if self._is_empty(self.subject_id): - self.MissingRequiredField("subject_id") - if not isinstance(self.subject_id, list): - self.subject_id = [self.subject_id] if self.subject_id is not None else [] - self.subject_id = [v if isinstance(v, SubjectSubjectId) else SubjectSubjectId(v) for v in self.subject_id] - - if self._is_empty(self.sample_id): - self.MissingRequiredField("sample_id") - if not isinstance(self.sample_id, list): - self.sample_id = [self.sample_id] if self.sample_id is not None else [] - self.sample_id = [v if isinstance(v, SampleSampleId) else SampleSampleId(v) for v in self.sample_id] - - if self._is_empty(self.data_category): - self.MissingRequiredField("data_category") - if not isinstance(self.data_category, EnumDataCategory): - self.data_category = EnumDataCategory(self.data_category) - - if self._is_empty(self.experimental_strategy): - self.MissingRequiredField("experimental_strategy") - if not isinstance(self.experimental_strategy, EnumExperimentalStrategy): - self.experimental_strategy = EnumExperimentalStrategy(self.experimental_strategy) - - if self._is_empty(self.size): - self.MissingRequiredField("size") - if not isinstance(self.size, int): - self.size = int(self.size) - - if self._is_empty(self.access_type): - self.MissingRequiredField("access_type") - if not isinstance(self.access_type, EnumAccessType): - self.access_type = EnumAccessType(self.access_type) - - if self._is_empty(self.platform): - self.MissingRequiredField("platform") - if not isinstance(self.platform, EnumPlatform): - self.platform = EnumPlatform(self.platform) - - if self.assay_center is not None and not isinstance(self.assay_center, EnumAssayCenter): - self.assay_center = EnumAssayCenter(self.assay_center) - - if self.workflow_name is not None and not isinstance(self.workflow_name, str): - self.workflow_name = str(self.workflow_name) - - if self.workflow_version is not None and not isinstance(self.workflow_version, str): - self.workflow_version = str(self.workflow_version) - - super().__post_init__(**kwargs) - - -# Enumerations -class EnumProgram(EnumDefinitionImpl): - """ - Funding programs relevant to inform operations. - """ - include = PermissibleValue( - text="include", - title="INCLUDE") - kf = PermissibleValue( - text="kf", - title="KF") - other = PermissibleValue( - text="other", - title="Other") - - _defn = EnumDefinition( - name="EnumProgram", - description="Funding programs relevant to inform operations.", - ) - -class EnumResearchDomain(EnumDefinitionImpl): - """ - Domains of Research used to find studies. - """ - behavior_and_behavior_mechanisms = PermissibleValue( - text="behavior_and_behavior_mechanisms", - title="Behavior and Behavior Mechanisms", - meaning=MESH["D001520"]) - congenital_heart_defects = PermissibleValue( - text="congenital_heart_defects", - title="Congenital Heart Defects", - meaning=MESH["D006330"]) - immune_system_diseases = PermissibleValue( - text="immune_system_diseases", - title="Immune System Diseases", - meaning=MESH["D007154"]) - hematologic_diseases = PermissibleValue( - text="hematologic_diseases", - title="Hematologic Diseases", - meaning=MESH["D006402"]) - neurodevelopment = PermissibleValue( - text="neurodevelopment", - title="Neurodevelopment", - meaning=MESH["D065886"]) - sleep_wake_disorders = PermissibleValue( - text="sleep_wake_disorders", - title="Sleep Wake Disorders", - meaning=MESH["D012893"]) - all_co_occurring_conditions = PermissibleValue( - text="all_co_occurring_conditions", - title="All Co-occurring Conditions", - meaning=MESH["D013568"]) - physical_fitness = PermissibleValue( - text="physical_fitness", - title="Physical Fitness", - meaning=MESH["D010809"]) - other = PermissibleValue( - text="other", - title="Other") - - _defn = EnumDefinition( - name="EnumResearchDomain", - description="Domains of Research used to find studies.", - ) - -class EnumParticipantLifespanStage(EnumDefinitionImpl): - """ - Stages of life during which participants may be recruited. - """ - fetal = PermissibleValue( - text="fetal", - title="Fetal", - description="Before birth") - neonatal = PermissibleValue( - text="neonatal", - title="Neonatal", - description="0-28 days old") - pediatric = PermissibleValue( - text="pediatric", - title="Pediatric", - description="Birth-17 years old") - adult = PermissibleValue( - text="adult", - title="Adult", - description="18+ years old") - - _defn = EnumDefinition( - name="EnumParticipantLifespanStage", - description="Stages of life during which participants may be recruited.", - ) - -class EnumStudyDesign(EnumDefinitionImpl): - """ - Approaches for collecting data, investigating interventions, and/or analyzing data. - """ - case_control = PermissibleValue( - text="case_control", - title="Case-Control") - case_set = PermissibleValue( - text="case_set", - title="Case Set") - control_set = PermissibleValue( - text="control_set", - title="Control Set") - clinical_trial = PermissibleValue( - text="clinical_trial", - title="Clinical Trial") - cross_sectional = PermissibleValue( - text="cross_sectional", - title="Cross-Sectional") - family_twins_trios = PermissibleValue( - text="family_twins_trios", - title="Family/Twins/Trios") - interventional = PermissibleValue( - text="interventional", - title="Interventional") - longitudinal = PermissibleValue( - text="longitudinal", - title="Longitudinal") - trial_readiness_study = PermissibleValue( - text="trial_readiness_study", - title="Trial Readiness Study") - tumor_vs_matched_normal = PermissibleValue( - text="tumor_vs_matched_normal", - title="Tumor vs Matched Normal") - - _defn = EnumDefinition( - name="EnumStudyDesign", - description="Approaches for collecting data, investigating interventions, and/or analyzing data.", - ) - -class EnumClinicalDataSourceType(EnumDefinitionImpl): - """ - Approaches to ascertain clinical information about a participant. - """ - medical_record = PermissibleValue( - text="medical_record", - title="Medical Record", - description="Data obtained directly from medical record") - investigator_assessment = PermissibleValue( - text="investigator_assessment", - title="Investigator Assessment", - description="Data obtained by examination, interview, etc. with investigator") - participant_or_caregiver_report = PermissibleValue( - text="participant_or_caregiver_report", - title="Participant or Caregiver Report", - description="Data obtained from survey, questionnaire, etc. filled out by participant or caregiver") - other = PermissibleValue( - text="other", - title="Other", - description="Data obtained from other source, such as tissue bank") - unknown = PermissibleValue( - text="unknown", - title="Unknown") - - _defn = EnumDefinition( - name="EnumClinicalDataSourceType", - description="Approaches to ascertain clinical information about a participant.", - ) - -class EnumDataCategory(EnumDefinitionImpl): - """ - Categories of data which may be collected about participants. - """ - unharmonized_demographic_clinical_data = PermissibleValue( - text="unharmonized_demographic_clinical_data", - title="Unharmonized Demographic/Clinical Data") - harmonized_demographic_clinical_data = PermissibleValue( - text="harmonized_demographic_clinical_data", - title="Harmonized Demographic/Clinical Data") - genomics = PermissibleValue( - text="genomics", - title="Genomics") - transcriptomics = PermissibleValue( - text="transcriptomics", - title="Transcriptomics") - epigenomics = PermissibleValue( - text="epigenomics", - title="Epigenomics") - proteomics = PermissibleValue( - text="proteomics", - title="Proteomics") - metabolomics = PermissibleValue( - text="metabolomics", - title="Metabolomics") - cognitive_behavioral = PermissibleValue( - text="cognitive_behavioral", - title="Cognitive/Behavioral") - immune_profiling = PermissibleValue( - text="immune_profiling", - title="Immune Profiling") - imaging = PermissibleValue( - text="imaging", - title="Imaging") - microbiome = PermissibleValue( - text="microbiome", - title="Microbiome") - fitness = PermissibleValue( - text="fitness", - title="Fitness") - physical_activity = PermissibleValue( - text="physical_activity", - title="Physical Activity") - other = PermissibleValue( - text="other", - title="Other") - sleep_study = PermissibleValue( - text="sleep_study", - title="Sleep Study") - - _defn = EnumDefinition( - name="EnumDataCategory", - description="Categories of data which may be collected about participants.", - ) - -class EnumSubjectType(EnumDefinitionImpl): - """ - Types of Subject entities - """ - participant = PermissibleValue( - text="participant", - description="Study participant with consent, assent, or waiver of consent.") - non_participant = PermissibleValue( - text="non_participant", - description="""An individual associated with a study who was not explictly consented, eg, the subject of a reported family history.""") - cell_line = PermissibleValue( - text="cell_line", - description="Cell Line") - animal_model = PermissibleValue( - text="animal_model", - description="Animal model") - group = PermissibleValue( - text="group", - description="A group of individuals or entities.") - other = PermissibleValue( - text="other", - description="A different entity type- ideally this will be resolved!") - - _defn = EnumDefinition( - name="EnumSubjectType", - description="Types of Subject entities", - ) - -class EnumDownSyndromeStatus(EnumDefinitionImpl): - """ - Down syndrome / chromosome 21 status - """ - d21 = PermissibleValue( - text="d21", - title="D21", - description="Disomy 21 (euploid)", - meaning=PATO["0001393"]) - t21 = PermissibleValue( - text="t21", - title="T21", - description="Trisomy 21 (Down syndrome)", - meaning=MONDO["0008608"]) - - _defn = EnumDefinition( - name="EnumDownSyndromeStatus", - description="Down syndrome / chromosome 21 status", - ) - -class EnumSex(EnumDefinitionImpl): - """ - Subject Sex - """ - female = PermissibleValue( - text="female", - title="Female", - meaning=NCIT["C16576"]) - male = PermissibleValue( - text="male", - title="Male", - meaning=NCIT["C20197"]) - other = PermissibleValue( - text="other", - title="Other", - meaning=NCIT["C17649"]) - unknown = PermissibleValue( - text="unknown", - title="Unknown", - meaning=NCIT["C17998"]) - - _defn = EnumDefinition( - name="EnumSex", - description="Subject Sex", - ) - -class EnumRace(EnumDefinitionImpl): - """ - Participant Race - """ - american_indian_or_alaska_native = PermissibleValue( - text="american_indian_or_alaska_native", - title="American Indian or Alaska Native", - meaning=NCIT["C41259"]) - asian = PermissibleValue( - text="asian", - title="Asian", - meaning=NCIT["C41260"]) - black_or_african_american = PermissibleValue( - text="black_or_african_american", - title="Black or African American", - meaning=NCIT["C16352"]) - more_than_one_race = PermissibleValue( - text="more_than_one_race", - title="More than one race", - meaning=NCIT["C67109"]) - native_hawaiian_or_other_pacific_islander = PermissibleValue( - text="native_hawaiian_or_other_pacific_islander", - title="Native Hawaiian or Other Pacific Islander", - meaning=NCIT["C41219"]) - other = PermissibleValue( - text="other", - title="Other", - meaning=NCIT["C17649"]) - white = PermissibleValue( - text="white", - title="White", - meaning=NCIT["C41261"]) - prefer_not_to_answer = PermissibleValue( - text="prefer_not_to_answer", - title="Prefer not to answer", - meaning=NCIT["C132222"]) - unknown = PermissibleValue( - text="unknown", - title="Unknown", - meaning=NCIT["C17998"]) - east_asian = PermissibleValue( - text="east_asian", - title="East Asian", - description="UK only; do not use for US data", - meaning=NCIT["C161419"]) - latin_american = PermissibleValue( - text="latin_american", - title="Latin American", - description="UK only; do not use for US data", - meaning=NCIT["C126531"]) - middle_eastern_or_north_african = PermissibleValue( - text="middle_eastern_or_north_african", - title="Middle Eastern or North African", - description="UK only; do not use for US data", - meaning=NCIT["C43866"]) - south_asian = PermissibleValue( - text="south_asian", - title="South Asian", - description="UK only; do not use for US data", - meaning=NCIT["C41263"]) - - _defn = EnumDefinition( - name="EnumRace", - description="Participant Race", - ) - -class EnumEthnicity(EnumDefinitionImpl): - """ - Participant ethnicity, specific to Hispanic or Latino. - """ - hispanic_or_latino = PermissibleValue( - text="hispanic_or_latino", - title="Hispanic or Latino", - meaning=NCIT["C17459"]) - not_hispanic_or_latino = PermissibleValue( - text="not_hispanic_or_latino", - title="Not Hispanic or Latino", - meaning=NCIT["C41222"]) - prefer_not_to_answer = PermissibleValue( - text="prefer_not_to_answer", - title="Prefer not to answer", - meaning=NCIT["C132222"]) - unknown = PermissibleValue( - text="unknown", - title="Unknown", - meaning=NCIT["C17998"]) - - _defn = EnumDefinition( - name="EnumEthnicity", - description="Participant ethnicity, specific to Hispanic or Latino.", - ) - -class EnumVitalStatus(EnumDefinitionImpl): - """ - Descriptions of a Subject's vital status - """ - dead = PermissibleValue( - text="dead", - title="Dead", - meaning=NCIT["C28554"]) - alive = PermissibleValue( - text="alive", - title="Alive", - meaning=NCIT["C37987"]) - - _defn = EnumDefinition( - name="EnumVitalStatus", - description="Descriptions of a Subject's vital status", - ) - -class EnumNull(EnumDefinitionImpl): - """ - Base enumeration providing null options. - """ - unknown = PermissibleValue( - text="unknown", - title="Unknown", - meaning=NCIT["C17998"]) - - _defn = EnumDefinition( - name="EnumNull", - description="Base enumeration providing null options.", - ) - -class EnumAssertionProvenance(EnumDefinitionImpl): - """ - Possible data sources for assertions. - """ - medical_record = PermissibleValue( - text="medical_record", - title="Medical Record", - description="Data obtained from a medical record") - investigator_assessment = PermissibleValue( - text="investigator_assessment", - title="Investigator Assessment", - description="Data obtained by examination, interview, etc. with investigator") - participant_or_caregiver_report = PermissibleValue( - text="participant_or_caregiver_report", - title="Participant or Caregiver Report", - description="Data obtained from survey, questionnaire, etc. filled out by participant or caregiver") - other = PermissibleValue( - text="other", - title="Other", - description="Data obtained from other source, such as tissue bank") - - _defn = EnumDefinition( - name="EnumAssertionProvenance", - description="Possible data sources for assertions.", - ) - -class EnumAvailabilityStatus(EnumDefinitionImpl): - """ - Is the biospecimen available for use? - """ - available = PermissibleValue( - text="available", - title="Available", - description="Biospecimen is Available", - meaning=IG2_BIOSPECIMEN_AVAILABILITY["available"]) - unavailable = PermissibleValue( - text="unavailable", - title="Unavailable", - description="Biospecimen is Unavailable", - meaning=IG2_BIOSPECIMEN_AVAILABILITY["unavailable"]) - - _defn = EnumDefinition( - name="EnumAvailabilityStatus", - description="Is the biospecimen available for use?", - ) - -class EnumSampleCollectionMethod(EnumDefinitionImpl): - """ - The approach used to collect the biospecimen. [LOINC](https://loinc.org) is recommended. - """ - _defn = EnumDefinition( - name="EnumSampleCollectionMethod", - description="The approach used to collect the biospecimen. [LOINC](https://loinc.org) is recommended.", - ) - -class EnumSite(EnumDefinitionImpl): - """ - The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) is - recommended. - """ - _defn = EnumDefinition( - name="EnumSite", - description="""The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) is recommended.""", - ) - -class EnumSpatialQualifiers(EnumDefinitionImpl): - """ - Any spatial/location qualifiers. - """ - _defn = EnumDefinition( - name="EnumSpatialQualifiers", - description="Any spatial/location qualifiers.", - ) - -class EnumLaterality(EnumDefinitionImpl): - """ - Laterality information for the site - """ - _defn = EnumDefinition( - name="EnumLaterality", - description="Laterality information for the site", - ) - -class EnumEDAMFormats(EnumDefinitionImpl): - """ - Data formats from the EDAM ontology. - """ - _defn = EnumDefinition( - name="EnumEDAMFormats", - description="Data formats from the EDAM ontology.", - ) - -class EnumEDAMDataTypes(EnumDefinitionImpl): - """ - Data types from the EDAM ontology. - """ - _defn = EnumDefinition( - name="EnumEDAMDataTypes", - description="Data types from the EDAM ontology.", - ) - -class EnumFileHashType(EnumDefinitionImpl): - """ - Types of file hashes supported. - """ - md5 = PermissibleValue( - text="md5", - title="MD5") - etag = PermissibleValue( - text="etag", - title="ETag") - sha1 = PermissibleValue( - text="sha1", - title="SHA-1") - - _defn = EnumDefinition( - name="EnumFileHashType", - description="Types of file hashes supported.", - ) - -class EnumAccessType(EnumDefinitionImpl): - """ - Types of file access levels. - """ - open = PermissibleValue( - text="open", - title="Open Access") - controlled = PermissibleValue( - text="controlled", - title="Controlled Access") - registered = PermissibleValue( - text="registered", - title="Registered-tier Access") - - _defn = EnumDefinition( - name="EnumAccessType", - description="Types of file access levels.", - ) - -class EnumExperimentalStrategy(EnumDefinitionImpl): - """ - Types of sequencing methods. - """ - wgs = PermissibleValue( - text="wgs", - title="Whole Genome Sequencing") - rnaseq = PermissibleValue( - text="rnaseq", - title="RNA-Seq") - wxs = PermissibleValue( - text="wxs", - title="Whole Exome Sequencing") - methlyation = PermissibleValue( - text="methlyation", - title="Methylation") - clr_wgs = PermissibleValue( - text="clr_wgs", - title="Continuous Long Reads WGS") - proteomics = PermissibleValue( - text="proteomics", - title="Proteomics") - targeted_seq = PermissibleValue( - text="targeted_seq", - title="Targeted Sequencing") - ccs_wgs = PermissibleValue( - text="ccs_wgs", - title="Circular Consensus Sequencing WGS") - panel = PermissibleValue( - text="panel", - title="Panel") - ccs_rnaseq = PermissibleValue( - text="ccs_rnaseq", - title="Circular Consensus Sequencing RNA-Se") - ont_wgs = PermissibleValue( - text="ont_wgs", - title="Oxford Nanopore Technologies WGS") - clr_rnaseq = PermissibleValue( - text="clr_rnaseq", - title="Continuous Long Reads RNA-Seq") - - _defn = EnumDefinition( - name="EnumExperimentalStrategy", - description="Types of sequencing methods.", - ) - -class EnumAssayCenter(EnumDefinitionImpl): - """ - Organizations or centers producing raw or harmonized sequencing files. - """ - broad = PermissibleValue( - text="broad", - title="The Broad Institute") - hudsonalpha = PermissibleValue( - text="hudsonalpha", - title="HudsonAlpha Institute for Biotechnology") - stjude = PermissibleValue( - text="stjude", - title="St. Jude") - baylor = PermissibleValue( - text="baylor", - title="Baylor College of Medicine") - chop = PermissibleValue( - text="chop", - title="The Children's Hospital of Philadelphia") - other = PermissibleValue( - text="other", - title="Other") - unknown = PermissibleValue( - text="unknown", - title="Unknown") - - _defn = EnumDefinition( - name="EnumAssayCenter", - description="Organizations or centers producing raw or harmonized sequencing files.", - ) - -class EnumRepository(EnumDefinitionImpl): - """ - specific drs service used for registration - """ - cavatica = PermissibleValue( - text="cavatica", - title="Cavatica DRS") - dcf = PermissibleValue( - text="dcf", - title="NCI DCF") - other = PermissibleValue( - text="other", - title="Other") - - _defn = EnumDefinition( - name="EnumRepository", - description="specific drs service used for registration", - ) - -class EnumPlatform(EnumDefinitionImpl): - """ - names of instrument or platforms used for assay data generation - """ - illumina = PermissibleValue( - text="illumina", - title="Illumina") - pacbio = PermissibleValue( - text="pacbio", - title="PacBio") - ont = PermissibleValue( - text="ont", - title="ONT") - illumina_epic = PermissibleValue( - text="illumina_epic", - title="Illumina Infinium HumanMethylationEPICv2") - other = PermissibleValue( - text="other", - title="Other") - unknown = PermissibleValue( - text="unknown", - title="Unknown") - - _defn = EnumDefinition( - name="EnumPlatform", - description="names of instrument or platforms used for assay data generation", - ) - -# Slots -class slots: - pass - -slots.study_id = Slot(uri=INCLUDEDCC.study_id, name="study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.study_id, domain=None, range=Optional[Union[str, StudyStudyId]]) - -slots.do_id = Slot(uri=INCLUDEDCC.do_id, name="do_id", curie=INCLUDEDCC.curie('do_id'), - model_uri=INCLUDEDCC.do_id, domain=None, range=Optional[Union[str, DOIDoId]]) - -slots.subject_id = Slot(uri=INCLUDEDCC.subject_id, name="subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.subject_id, domain=None, range=Optional[Union[str, SubjectSubjectId]]) - -slots.assertion_id = Slot(uri=INCLUDEDCC.assertion_id, name="assertion_id", curie=INCLUDEDCC.curie('assertion_id'), - model_uri=INCLUDEDCC.assertion_id, domain=None, range=Optional[Union[str, SubjectAssertionAssertionId]]) - -slots.external_id = Slot(uri=INCLUDEDCC.external_id, name="external_id", curie=INCLUDEDCC.curie('external_id'), - model_uri=INCLUDEDCC.external_id, domain=None, range=Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]]) - -slots.parent_study = Slot(uri=INCLUDEDCC.parent_study, name="parent_study", curie=INCLUDEDCC.curie('parent_study'), - model_uri=INCLUDEDCC.parent_study, domain=None, range=Optional[Union[str, StudyStudyId]]) - -slots.funding_source = Slot(uri=INCLUDEDCC.funding_source, name="funding_source", curie=INCLUDEDCC.curie('funding_source'), - model_uri=INCLUDEDCC.funding_source, domain=None, range=Optional[Union[str, list[str]]]) - -slots.principal_investigator = Slot(uri=INCLUDEDCC.principal_investigator, name="principal_investigator", curie=INCLUDEDCC.curie('principal_investigator'), - model_uri=INCLUDEDCC.principal_investigator, domain=None, range=Union[Union[dict, Investigator], list[Union[dict, Investigator]]]) - -slots.study_title = Slot(uri=INCLUDEDCC.study_title, name="study_title", curie=INCLUDEDCC.curie('study_title'), - model_uri=INCLUDEDCC.study_title, domain=None, range=str) - -slots.study_code = Slot(uri=INCLUDEDCC.study_code, name="study_code", curie=INCLUDEDCC.curie('study_code'), - model_uri=INCLUDEDCC.study_code, domain=None, range=str) - -slots.study_short_name = Slot(uri=INCLUDEDCC.study_short_name, name="study_short_name", curie=INCLUDEDCC.curie('study_short_name'), - model_uri=INCLUDEDCC.study_short_name, domain=None, range=Optional[str]) - -slots.investigator_title = Slot(uri=INCLUDEDCC.investigator_title, name="investigator_title", curie=INCLUDEDCC.curie('investigator_title'), - model_uri=INCLUDEDCC.investigator_title, domain=None, range=Optional[str]) - -slots.name = Slot(uri=INCLUDEDCC.name, name="name", curie=INCLUDEDCC.curie('name'), - model_uri=INCLUDEDCC.name, domain=None, range=Optional[str]) - -slots.email = Slot(uri=INCLUDEDCC.email, name="email", curie=INCLUDEDCC.curie('email'), - model_uri=INCLUDEDCC.email, domain=None, range=Optional[str]) - -slots.institution = Slot(uri=INCLUDEDCC.institution, name="institution", curie=INCLUDEDCC.curie('institution'), - model_uri=INCLUDEDCC.institution, domain=None, range=Optional[str]) - -slots.program = Slot(uri=INCLUDEDCC.program, name="program", curie=INCLUDEDCC.curie('program'), - model_uri=INCLUDEDCC.program, domain=None, range=Union[Union[str, "EnumProgram"], list[Union[str, "EnumProgram"]]]) - -slots.study_description = Slot(uri=INCLUDEDCC.study_description, name="study_description", curie=INCLUDEDCC.curie('study_description'), - model_uri=INCLUDEDCC.study_description, domain=None, range=str) - -slots.website = Slot(uri=INCLUDEDCC.website, name="website", curie=INCLUDEDCC.curie('website'), - model_uri=INCLUDEDCC.website, domain=None, range=Optional[Union[str, URI]]) - -slots.contact = Slot(uri=INCLUDEDCC.contact, name="contact", curie=INCLUDEDCC.curie('contact'), - model_uri=INCLUDEDCC.contact, domain=None, range=Union[Union[dict, Investigator], list[Union[dict, Investigator]]]) - -slots.vbr = Slot(uri=INCLUDEDCC.vbr, name="vbr", curie=INCLUDEDCC.curie('vbr'), - model_uri=INCLUDEDCC.vbr, domain=None, range=Optional[Union[dict, VirtualBiorepository]]) - -slots.vbr_readme = Slot(uri=INCLUDEDCC.vbr_readme, name="vbr_readme", curie=INCLUDEDCC.curie('vbr_readme'), - model_uri=INCLUDEDCC.vbr_readme, domain=None, range=Optional[str]) - -slots.research_domain = Slot(uri=INCLUDEDCC.research_domain, name="research_domain", curie=INCLUDEDCC.curie('research_domain'), - model_uri=INCLUDEDCC.research_domain, domain=None, range=Union[Union[str, "EnumResearchDomain"], list[Union[str, "EnumResearchDomain"]]]) - -slots.participant_lifespan_stage = Slot(uri=INCLUDEDCC.participant_lifespan_stage, name="participant_lifespan_stage", curie=INCLUDEDCC.curie('participant_lifespan_stage'), - model_uri=INCLUDEDCC.participant_lifespan_stage, domain=None, range=Union[Union[str, "EnumParticipantLifespanStage"], list[Union[str, "EnumParticipantLifespanStage"]]]) - -slots.selection_criteria = Slot(uri=INCLUDEDCC.selection_criteria, name="selection_criteria", curie=INCLUDEDCC.curie('selection_criteria'), - model_uri=INCLUDEDCC.selection_criteria, domain=None, range=Optional[str]) - -slots.study_design = Slot(uri=INCLUDEDCC.study_design, name="study_design", curie=INCLUDEDCC.curie('study_design'), - model_uri=INCLUDEDCC.study_design, domain=None, range=Union[Union[str, "EnumStudyDesign"], list[Union[str, "EnumStudyDesign"]]]) - -slots.data_category = Slot(uri=INCLUDEDCC.data_category, name="data_category", curie=INCLUDEDCC.curie('data_category'), - model_uri=INCLUDEDCC.data_category, domain=None, range=Optional[Union[str, "EnumDataCategory"]]) - -slots.clinical_data_source_type = Slot(uri=INCLUDEDCC.clinical_data_source_type, name="clinical_data_source_type", curie=INCLUDEDCC.curie('clinical_data_source_type'), - model_uri=INCLUDEDCC.clinical_data_source_type, domain=None, range=Union[Union[str, "EnumClinicalDataSourceType"], list[Union[str, "EnumClinicalDataSourceType"]]]) - -slots.publication = Slot(uri=INCLUDEDCC.publication, name="publication", curie=INCLUDEDCC.curie('publication'), - model_uri=INCLUDEDCC.publication, domain=None, range=Optional[Union[Union[dict, Publication], list[Union[dict, Publication]]]]) - -slots.expected_number_of_participants = Slot(uri=INCLUDEDCC.expected_number_of_participants, name="expected_number_of_participants", curie=INCLUDEDCC.curie('expected_number_of_participants'), - model_uri=INCLUDEDCC.expected_number_of_participants, domain=None, range=int) - -slots.actual_number_of_participants = Slot(uri=INCLUDEDCC.actual_number_of_participants, name="actual_number_of_participants", curie=INCLUDEDCC.curie('actual_number_of_participants'), - model_uri=INCLUDEDCC.actual_number_of_participants, domain=None, range=int) - -slots.acknowledgments = Slot(uri=INCLUDEDCC.acknowledgments, name="acknowledgments", curie=INCLUDEDCC.curie('acknowledgments'), - model_uri=INCLUDEDCC.acknowledgments, domain=None, range=Optional[str]) - -slots.citation_statement = Slot(uri=INCLUDEDCC.citation_statement, name="citation_statement", curie=INCLUDEDCC.curie('citation_statement'), - model_uri=INCLUDEDCC.citation_statement, domain=None, range=Optional[str]) - -slots.bibliographic_reference = Slot(uri=INCLUDEDCC.bibliographic_reference, name="bibliographic_reference", curie=INCLUDEDCC.curie('bibliographic_reference'), - model_uri=INCLUDEDCC.bibliographic_reference, domain=None, range=Optional[str]) - -slots.organism_type = Slot(uri=INCLUDEDCC.organism_type, name="organism_type", curie=INCLUDEDCC.curie('organism_type'), - model_uri=INCLUDEDCC.organism_type, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.subject_type = Slot(uri=INCLUDEDCC.subject_type, name="subject_type", curie=INCLUDEDCC.curie('subject_type'), - model_uri=INCLUDEDCC.subject_type, domain=None, range=Union[str, "EnumSubjectType"]) - -slots.sex = Slot(uri=INCLUDEDCC.sex, name="sex", curie=INCLUDEDCC.curie('sex'), - model_uri=INCLUDEDCC.sex, domain=None, range=Union[str, "EnumSex"]) - -slots.race = Slot(uri=INCLUDEDCC.race, name="race", curie=INCLUDEDCC.curie('race'), - model_uri=INCLUDEDCC.race, domain=None, range=Union[Union[str, "EnumRace"], list[Union[str, "EnumRace"]]]) - -slots.ethnicity = Slot(uri=INCLUDEDCC.ethnicity, name="ethnicity", curie=INCLUDEDCC.curie('ethnicity'), - model_uri=INCLUDEDCC.ethnicity, domain=None, range=Union[str, "EnumEthnicity"]) - -slots.down_syndrome_status = Slot(uri=INCLUDEDCC.down_syndrome_status, name="down_syndrome_status", curie=INCLUDEDCC.curie('down_syndrome_status'), - model_uri=INCLUDEDCC.down_syndrome_status, domain=None, range=Union[str, "EnumDownSyndromeStatus"]) - -slots.age_at_first_engagement = Slot(uri=INCLUDEDCC.age_at_first_engagement, name="age_at_first_engagement", curie=INCLUDEDCC.curie('age_at_first_engagement'), - model_uri=INCLUDEDCC.age_at_first_engagement, domain=None, range=Optional[int]) - -slots.vital_status = Slot(uri=INCLUDEDCC.vital_status, name="vital_status", curie=INCLUDEDCC.curie('vital_status'), - model_uri=INCLUDEDCC.vital_status, domain=None, range=Optional[Union[str, "EnumVitalStatus"]]) - -slots.age_at_last_vital_status = Slot(uri=INCLUDEDCC.age_at_last_vital_status, name="age_at_last_vital_status", curie=INCLUDEDCC.curie('age_at_last_vital_status'), - model_uri=INCLUDEDCC.age_at_last_vital_status, domain=None, range=Optional[int]) - -slots.assertion_provenance = Slot(uri=INCLUDEDCC.assertion_provenance, name="assertion_provenance", curie=INCLUDEDCC.curie('assertion_provenance'), - model_uri=INCLUDEDCC.assertion_provenance, domain=None, range=Optional[Union[str, "EnumAssertionProvenance"]]) - -slots.age_at_assertion = Slot(uri=INCLUDEDCC.age_at_assertion, name="age_at_assertion", curie=INCLUDEDCC.curie('age_at_assertion'), - model_uri=INCLUDEDCC.age_at_assertion, domain=None, range=Optional[int]) - -slots.age_at_event = Slot(uri=INCLUDEDCC.age_at_event, name="age_at_event", curie=INCLUDEDCC.curie('age_at_event'), - model_uri=INCLUDEDCC.age_at_event, domain=None, range=Optional[int]) - -slots.age_at_resolution = Slot(uri=INCLUDEDCC.age_at_resolution, name="age_at_resolution", curie=INCLUDEDCC.curie('age_at_resolution'), - model_uri=INCLUDEDCC.age_at_resolution, domain=None, range=Optional[int]) - -slots.concept = Slot(uri=INCLUDEDCC.concept, name="concept", curie=INCLUDEDCC.curie('concept'), - model_uri=INCLUDEDCC.concept, domain=None, range=Optional[Union[Union[str, ConceptConceptCurie], list[Union[str, ConceptConceptCurie]]]]) - -slots.concept_curie = Slot(uri=INCLUDEDCC.concept_curie, name="concept_curie", curie=INCLUDEDCC.curie('concept_curie'), - model_uri=INCLUDEDCC.concept_curie, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.display = Slot(uri=INCLUDEDCC.display, name="display", curie=INCLUDEDCC.curie('display'), - model_uri=INCLUDEDCC.display, domain=None, range=Optional[str]) - -slots.concept_source = Slot(uri=INCLUDEDCC.concept_source, name="concept_source", curie=INCLUDEDCC.curie('concept_source'), - model_uri=INCLUDEDCC.concept_source, domain=None, range=Optional[str]) - -slots.value_concept = Slot(uri=INCLUDEDCC.value_concept, name="value_concept", curie=INCLUDEDCC.curie('value_concept'), - model_uri=INCLUDEDCC.value_concept, domain=None, range=Optional[Union[Union[str, ConceptConceptCurie], list[Union[str, ConceptConceptCurie]]]]) - -slots.value_number = Slot(uri=INCLUDEDCC.value_number, name="value_number", curie=INCLUDEDCC.curie('value_number'), - model_uri=INCLUDEDCC.value_number, domain=None, range=Optional[float]) - -slots.value_source = Slot(uri=INCLUDEDCC.value_source, name="value_source", curie=INCLUDEDCC.curie('value_source'), - model_uri=INCLUDEDCC.value_source, domain=None, range=Optional[str]) - -slots.value_unit = Slot(uri=INCLUDEDCC.value_unit, name="value_unit", curie=INCLUDEDCC.curie('value_unit'), - model_uri=INCLUDEDCC.value_unit, domain=None, range=Optional[Union[str, ConceptConceptCurie]]) - -slots.value_unit_source = Slot(uri=INCLUDEDCC.value_unit_source, name="value_unit_source", curie=INCLUDEDCC.curie('value_unit_source'), - model_uri=INCLUDEDCC.value_unit_source, domain=None, range=Optional[str]) - -slots.sample_id = Slot(uri=INCLUDEDCC.sample_id, name="sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.sample_id, domain=None, range=Optional[Union[str, SampleSampleId]]) - -slots.parent_sample_id = Slot(uri=INCLUDEDCC.parent_sample_id, name="parent_sample_id", curie=INCLUDEDCC.curie('parent_sample_id'), - model_uri=INCLUDEDCC.parent_sample_id, domain=None, range=Optional[Union[str, SampleSampleId]]) - -slots.biospecimen_collection_id = Slot(uri=INCLUDEDCC.biospecimen_collection_id, name="biospecimen_collection_id", curie=INCLUDEDCC.curie('biospecimen_collection_id'), - model_uri=INCLUDEDCC.biospecimen_collection_id, domain=None, range=Optional[Union[str, BiospecimenCollectionBiospecimenCollectionId]]) - -slots.aliquot_id = Slot(uri=INCLUDEDCC.aliquot_id, name="aliquot_id", curie=INCLUDEDCC.curie('aliquot_id'), - model_uri=INCLUDEDCC.aliquot_id, domain=None, range=Optional[Union[str, AliquotAliquotId]]) - -slots.sample_type = Slot(uri=INCLUDEDCC.sample_type, name="sample_type", curie=INCLUDEDCC.curie('sample_type'), - model_uri=INCLUDEDCC.sample_type, domain=None, range=Union[str, URIorCURIE]) - -slots.processing = Slot(uri=INCLUDEDCC.processing, name="processing", curie=INCLUDEDCC.curie('processing'), - model_uri=INCLUDEDCC.processing, domain=None, range=Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]]) - -slots.availablity_status = Slot(uri=INCLUDEDCC.availablity_status, name="availablity_status", curie=INCLUDEDCC.curie('availablity_status'), - model_uri=INCLUDEDCC.availablity_status, domain=None, range=Optional[Union[str, "EnumAvailabilityStatus"]]) - -slots.storage_method = Slot(uri=INCLUDEDCC.storage_method, name="storage_method", curie=INCLUDEDCC.curie('storage_method'), - model_uri=INCLUDEDCC.storage_method, domain=None, range=Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]]) - -slots.quantity_number = Slot(uri=INCLUDEDCC.quantity_number, name="quantity_number", curie=INCLUDEDCC.curie('quantity_number'), - model_uri=INCLUDEDCC.quantity_number, domain=None, range=Optional[float]) - -slots.quantity_unit = Slot(uri=INCLUDEDCC.quantity_unit, name="quantity_unit", curie=INCLUDEDCC.curie('quantity_unit'), - model_uri=INCLUDEDCC.quantity_unit, domain=None, range=Optional[Union[str, ConceptConceptCurie]]) - -slots.concentration_number = Slot(uri=INCLUDEDCC.concentration_number, name="concentration_number", curie=INCLUDEDCC.curie('concentration_number'), - model_uri=INCLUDEDCC.concentration_number, domain=None, range=Optional[float]) - -slots.concentration_unit = Slot(uri=INCLUDEDCC.concentration_unit, name="concentration_unit", curie=INCLUDEDCC.curie('concentration_unit'), - model_uri=INCLUDEDCC.concentration_unit, domain=None, range=Optional[Union[str, ConceptConceptCurie]]) - -slots.age_at_collection = Slot(uri=INCLUDEDCC.age_at_collection, name="age_at_collection", curie=INCLUDEDCC.curie('age_at_collection'), - model_uri=INCLUDEDCC.age_at_collection, domain=None, range=Optional[float]) - -slots.method = Slot(uri=INCLUDEDCC.method, name="method", curie=INCLUDEDCC.curie('method'), - model_uri=INCLUDEDCC.method, domain=None, range=Optional[Union[str, "EnumSampleCollectionMethod"]]) - -slots.site = Slot(uri=INCLUDEDCC.site, name="site", curie=INCLUDEDCC.curie('site'), - model_uri=INCLUDEDCC.site, domain=None, range=Optional[Union[str, "EnumSite"]]) - -slots.spatial_qualifier = Slot(uri=INCLUDEDCC.spatial_qualifier, name="spatial_qualifier", curie=INCLUDEDCC.curie('spatial_qualifier'), - model_uri=INCLUDEDCC.spatial_qualifier, domain=None, range=Optional[Union[str, "EnumSpatialQualifiers"]]) - -slots.laterality = Slot(uri=INCLUDEDCC.laterality, name="laterality", curie=INCLUDEDCC.curie('laterality'), - model_uri=INCLUDEDCC.laterality, domain=None, range=Optional[Union[str, "EnumLaterality"]]) - -slots.encounter_id = Slot(uri=INCLUDEDCC.encounter_id, name="encounter_id", curie=INCLUDEDCC.curie('encounter_id'), - model_uri=INCLUDEDCC.encounter_id, domain=None, range=Optional[Union[str, EncounterEncounterId]]) - -slots.description = Slot(uri=INCLUDEDCC.description, name="description", curie=INCLUDEDCC.curie('description'), - model_uri=INCLUDEDCC.description, domain=None, range=Optional[str]) - -slots.encounter_definition_id = Slot(uri=INCLUDEDCC.encounter_definition_id, name="encounter_definition_id", curie=INCLUDEDCC.curie('encounter_definition_id'), - model_uri=INCLUDEDCC.encounter_definition_id, domain=None, range=Optional[Union[str, EncounterDefinitionEncounterDefinitionId]]) - -slots.activity_definition_id = Slot(uri=INCLUDEDCC.activity_definition_id, name="activity_definition_id", curie=INCLUDEDCC.curie('activity_definition_id'), - model_uri=INCLUDEDCC.activity_definition_id, domain=None, range=Optional[Union[str, ActivityDefinitionActivityDefinitionId]]) - -slots.file_id = Slot(uri=INCLUDEDCC.file_id, name="file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.file_id, domain=None, range=Optional[Union[str, FileFileId]]) - -slots.filename = Slot(uri=INCLUDEDCC.filename, name="filename", curie=INCLUDEDCC.curie('filename'), - model_uri=INCLUDEDCC.filename, domain=None, range=str) - -slots.format = Slot(uri=INCLUDEDCC.format, name="format", curie=INCLUDEDCC.curie('format'), - model_uri=INCLUDEDCC.format, domain=None, range=Union[str, "EnumEDAMFormats"]) - -slots.data_type = Slot(uri=INCLUDEDCC.data_type, name="data_type", curie=INCLUDEDCC.curie('data_type'), - model_uri=INCLUDEDCC.data_type, domain=None, range=Union[str, "EnumEDAMDataTypes"]) - -slots.size = Slot(uri=INCLUDEDCC.size, name="size", curie=INCLUDEDCC.curie('size'), - model_uri=INCLUDEDCC.size, domain=None, range=int) - -slots.staging_url = Slot(uri=INCLUDEDCC.staging_url, name="staging_url", curie=INCLUDEDCC.curie('staging_url'), - model_uri=INCLUDEDCC.staging_url, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.release_url = Slot(uri=INCLUDEDCC.release_url, name="release_url", curie=INCLUDEDCC.curie('release_url'), - model_uri=INCLUDEDCC.release_url, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.drs_uri = Slot(uri=INCLUDEDCC.drs_uri, name="drs_uri", curie=INCLUDEDCC.curie('drs_uri'), - model_uri=INCLUDEDCC.drs_uri, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.hash = Slot(uri=INCLUDEDCC.hash, name="hash", curie=INCLUDEDCC.curie('hash'), - model_uri=INCLUDEDCC.hash, domain=None, range=Union[dict, FileHash]) - -slots.hash_type = Slot(uri=INCLUDEDCC.hash_type, name="hash_type", curie=INCLUDEDCC.curie('hash_type'), - model_uri=INCLUDEDCC.hash_type, domain=None, range=Union[str, "EnumFileHashType"]) - -slots.hash_value = Slot(uri=INCLUDEDCC.hash_value, name="hash_value", curie=INCLUDEDCC.curie('hash_value'), - model_uri=INCLUDEDCC.hash_value, domain=None, range=str) - -slots.dataset_id = Slot(uri=INCLUDEDCC.dataset_id, name="dataset_id", curie=INCLUDEDCC.curie('dataset_id'), - model_uri=INCLUDEDCC.dataset_id, domain=None, range=Optional[Union[str, DatasetDatasetId]]) - -slots.data_collection_start = Slot(uri=INCLUDEDCC.data_collection_start, name="data_collection_start", curie=INCLUDEDCC.curie('data_collection_start'), - model_uri=INCLUDEDCC.data_collection_start, domain=None, range=Optional[str]) - -slots.data_collection_end = Slot(uri=INCLUDEDCC.data_collection_end, name="data_collection_end", curie=INCLUDEDCC.curie('data_collection_end'), - model_uri=INCLUDEDCC.data_collection_end, domain=None, range=Optional[str]) - -slots.s3_file_path = Slot(uri=INCLUDEDCC.s3_file_path, name="s3_file_path", curie=INCLUDEDCC.curie('s3_file_path'), - model_uri=INCLUDEDCC.s3_file_path, domain=None, range=str) - -slots.is_released = Slot(uri=INCLUDEDCC.is_released, name="is_released", curie=INCLUDEDCC.curie('is_released'), - model_uri=INCLUDEDCC.is_released, domain=None, range=Union[bool, Bool]) - -slots.is_registered = Slot(uri=INCLUDEDCC.is_registered, name="is_registered", curie=INCLUDEDCC.curie('is_registered'), - model_uri=INCLUDEDCC.is_registered, domain=None, range=Union[bool, Bool]) - -slots.repository = Slot(uri=INCLUDEDCC.repository, name="repository", curie=INCLUDEDCC.curie('repository'), - model_uri=INCLUDEDCC.repository, domain=None, range=Optional[Union[str, "EnumRepository"]]) - -slots.file_category = Slot(uri=INCLUDEDCC.file_category, name="file_category", curie=INCLUDEDCC.curie('file_category'), - model_uri=INCLUDEDCC.file_category, domain=None, range=str) - -slots.s3_key = Slot(uri=INCLUDEDCC.s3_key, name="s3_key", curie=INCLUDEDCC.curie('s3_key'), - model_uri=INCLUDEDCC.s3_key, domain=None, range=str) - -slots.file_extension = Slot(uri=INCLUDEDCC.file_extension, name="file_extension", curie=INCLUDEDCC.curie('file_extension'), - model_uri=INCLUDEDCC.file_extension, domain=None, range=str) - -slots.data_transfer_id = Slot(uri=INCLUDEDCC.data_transfer_id, name="data_transfer_id", curie=INCLUDEDCC.curie('data_transfer_id'), - model_uri=INCLUDEDCC.data_transfer_id, domain=None, range=Optional[str]) - -slots.aws_account_id = Slot(uri=INCLUDEDCC.aws_account_id, name="aws_account_id", curie=INCLUDEDCC.curie('aws_account_id'), - model_uri=INCLUDEDCC.aws_account_id, domain=None, range=str) - -slots.account_name = Slot(uri=INCLUDEDCC.account_name, name="account_name", curie=INCLUDEDCC.curie('account_name'), - model_uri=INCLUDEDCC.account_name, domain=None, range=str) - -slots.account_alias = Slot(uri=INCLUDEDCC.account_alias, name="account_alias", curie=INCLUDEDCC.curie('account_alias'), - model_uri=INCLUDEDCC.account_alias, domain=None, range=str) - -slots.bucket_study_id = Slot(uri=INCLUDEDCC.bucket_study_id, name="bucket_study_id", curie=INCLUDEDCC.curie('bucket_study_id'), - model_uri=INCLUDEDCC.bucket_study_id, domain=None, range=str) - -slots.bucket = Slot(uri=INCLUDEDCC.bucket, name="bucket", curie=INCLUDEDCC.curie('bucket'), - model_uri=INCLUDEDCC.bucket, domain=None, range=str) - -slots.s3_created_at = Slot(uri=INCLUDEDCC.s3_created_at, name="s3_created_at", curie=INCLUDEDCC.curie('s3_created_at'), - model_uri=INCLUDEDCC.s3_created_at, domain=None, range=Union[str, XSDDateTime]) - -slots.s3_modified_at = Slot(uri=INCLUDEDCC.s3_modified_at, name="s3_modified_at", curie=INCLUDEDCC.curie('s3_modified_at'), - model_uri=INCLUDEDCC.s3_modified_at, domain=None, range=Union[str, XSDDateTime]) - -slots.intelligent_tiering_access_tier = Slot(uri=INCLUDEDCC.intelligent_tiering_access_tier, name="intelligent_tiering_access_tier", curie=INCLUDEDCC.curie('intelligent_tiering_access_tier'), - model_uri=INCLUDEDCC.intelligent_tiering_access_tier, domain=None, range=str) - -slots.is_delete_marker = Slot(uri=INCLUDEDCC.is_delete_marker, name="is_delete_marker", curie=INCLUDEDCC.curie('is_delete_marker'), - model_uri=INCLUDEDCC.is_delete_marker, domain=None, range=Union[bool, Bool]) - -slots.is_latest = Slot(uri=INCLUDEDCC.is_latest, name="is_latest", curie=INCLUDEDCC.curie('is_latest'), - model_uri=INCLUDEDCC.is_latest, domain=None, range=Union[bool, Bool]) - -slots.storage_class = Slot(uri=INCLUDEDCC.storage_class, name="storage_class", curie=INCLUDEDCC.curie('storage_class'), - model_uri=INCLUDEDCC.storage_class, domain=None, range=str) - -slots.manifest_hash_value = Slot(uri=INCLUDEDCC.manifest_hash_value, name="manifest_hash_value", curie=INCLUDEDCC.curie('manifest_hash_value'), - model_uri=INCLUDEDCC.manifest_hash_value, domain=None, range=Optional[str]) - -slots.file_hash_validation_status = Slot(uri=INCLUDEDCC.file_hash_validation_status, name="file_hash_validation_status", curie=INCLUDEDCC.curie('file_hash_validation_status'), - model_uri=INCLUDEDCC.file_hash_validation_status, domain=None, range=Optional[str]) - -slots.file_type = Slot(uri=INCLUDEDCC.file_type, name="file_type", curie=INCLUDEDCC.curie('file_type'), - model_uri=INCLUDEDCC.file_type, domain=None, range=str) - -slots.encryption_status = Slot(uri=INCLUDEDCC.encryption_status, name="encryption_status", curie=INCLUDEDCC.curie('encryption_status'), - model_uri=INCLUDEDCC.encryption_status, domain=None, range=str) - -slots.is_multipart_uploaded = Slot(uri=INCLUDEDCC.is_multipart_uploaded, name="is_multipart_uploaded", curie=INCLUDEDCC.curie('is_multipart_uploaded'), - model_uri=INCLUDEDCC.is_multipart_uploaded, domain=None, range=str) - -slots.object_lock_level_hold_status = Slot(uri=INCLUDEDCC.object_lock_level_hold_status, name="object_lock_level_hold_status", curie=INCLUDEDCC.curie('object_lock_level_hold_status'), - model_uri=INCLUDEDCC.object_lock_level_hold_status, domain=None, range=str) - -slots.object_lock_mode = Slot(uri=INCLUDEDCC.object_lock_mode, name="object_lock_mode", curie=INCLUDEDCC.curie('object_lock_mode'), - model_uri=INCLUDEDCC.object_lock_mode, domain=None, range=str) - -slots.replication_status = Slot(uri=INCLUDEDCC.replication_status, name="replication_status", curie=INCLUDEDCC.curie('replication_status'), - model_uri=INCLUDEDCC.replication_status, domain=None, range=str) - -slots.version_id = Slot(uri=INCLUDEDCC.version_id, name="version_id", curie=INCLUDEDCC.curie('version_id'), - model_uri=INCLUDEDCC.version_id, domain=None, range=str) - -slots.access_type = Slot(uri=INCLUDEDCC.access_type, name="access_type", curie=INCLUDEDCC.curie('access_type'), - model_uri=INCLUDEDCC.access_type, domain=None, range=Union[str, "EnumAccessType"]) - -slots.access_url = Slot(uri=INCLUDEDCC.access_url, name="access_url", curie=INCLUDEDCC.curie('access_url'), - model_uri=INCLUDEDCC.access_url, domain=None, range=Optional[str]) - -slots.acl = Slot(uri=INCLUDEDCC.acl, name="acl", curie=INCLUDEDCC.curie('acl'), - model_uri=INCLUDEDCC.acl, domain=None, range=str) - -slots.experimental_strategy = Slot(uri=INCLUDEDCC.experimental_strategy, name="experimental_strategy", curie=INCLUDEDCC.curie('experimental_strategy'), - model_uri=INCLUDEDCC.experimental_strategy, domain=None, range=Union[str, "EnumExperimentalStrategy"]) - -slots.assay_center = Slot(uri=INCLUDEDCC.assay_center, name="assay_center", curie=INCLUDEDCC.curie('assay_center'), - model_uri=INCLUDEDCC.assay_center, domain=None, range=Optional[Union[str, "EnumAssayCenter"]]) - -slots.platform = Slot(uri=INCLUDEDCC.platform, name="platform", curie=INCLUDEDCC.curie('platform'), - model_uri=INCLUDEDCC.platform, domain=None, range=Union[str, "EnumPlatform"]) - -slots.workflow_name = Slot(uri=INCLUDEDCC.workflow_name, name="workflow_name", curie=INCLUDEDCC.curie('workflow_name'), - model_uri=INCLUDEDCC.workflow_name, domain=None, range=Optional[str]) - -slots.workflow_version = Slot(uri=INCLUDEDCC.workflow_version, name="workflow_version", curie=INCLUDEDCC.curie('workflow_version'), - model_uri=INCLUDEDCC.workflow_version, domain=None, range=Optional[str]) - -slots.object_lock_retain_until_date = Slot(uri=INCLUDEDCC.object_lock_retain_until_date, name="object_lock_retain_until_date", curie=INCLUDEDCC.curie('object_lock_retain_until_date'), - model_uri=INCLUDEDCC.object_lock_retain_until_date, domain=None, range=Union[str, XSDDateTime]) - -slots.Study_study_id = Slot(uri=INCLUDEDCC.study_id, name="Study_study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.Study_study_id, domain=Study, range=Union[str, StudyStudyId]) - -slots.StudyMetadata_study_id = Slot(uri=INCLUDEDCC.study_id, name="StudyMetadata_study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.StudyMetadata_study_id, domain=StudyMetadata, range=Union[str, StudyMetadataStudyId]) - -slots.StudyMetadata_data_category = Slot(uri=INCLUDEDCC.data_category, name="StudyMetadata_data_category", curie=INCLUDEDCC.curie('data_category'), - model_uri=INCLUDEDCC.StudyMetadata_data_category, domain=StudyMetadata, range=Union[Union[str, "EnumDataCategory"], list[Union[str, "EnumDataCategory"]]]) - -slots.DOI_do_id = Slot(uri=INCLUDEDCC.do_id, name="DOI_do_id", curie=INCLUDEDCC.curie('do_id'), - model_uri=INCLUDEDCC.DOI_do_id, domain=DOI, range=Union[str, DOIDoId]) - -slots.Subject_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="Subject_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.Subject_subject_id, domain=Subject, range=Union[str, SubjectSubjectId]) - -slots.Demographics_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="Demographics_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.Demographics_subject_id, domain=Demographics, range=Union[str, DemographicsSubjectId]) - -slots.SubjectAssertion_assertion_id = Slot(uri=INCLUDEDCC.assertion_id, name="SubjectAssertion_assertion_id", curie=INCLUDEDCC.curie('assertion_id'), - model_uri=INCLUDEDCC.SubjectAssertion_assertion_id, domain=SubjectAssertion, range=Union[str, SubjectAssertionAssertionId]) - -slots.Concept_concept_curie = Slot(uri=INCLUDEDCC.concept_curie, name="Concept_concept_curie", curie=INCLUDEDCC.curie('concept_curie'), - model_uri=INCLUDEDCC.Concept_concept_curie, domain=Concept, range=Union[str, ConceptConceptCurie]) - -slots.Sample_sample_id = Slot(uri=INCLUDEDCC.sample_id, name="Sample_sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.Sample_sample_id, domain=Sample, range=Union[str, SampleSampleId]) - -slots.Sample_biospecimen_collection_id = Slot(uri=INCLUDEDCC.biospecimen_collection_id, name="Sample_biospecimen_collection_id", curie=INCLUDEDCC.curie('biospecimen_collection_id'), - model_uri=INCLUDEDCC.Sample_biospecimen_collection_id, domain=Sample, range=Optional[Union[str, BiospecimenCollectionBiospecimenCollectionId]]) - -slots.BiospecimenCollection_biospecimen_collection_id = Slot(uri=INCLUDEDCC.biospecimen_collection_id, name="BiospecimenCollection_biospecimen_collection_id", curie=INCLUDEDCC.curie('biospecimen_collection_id'), - model_uri=INCLUDEDCC.BiospecimenCollection_biospecimen_collection_id, domain=BiospecimenCollection, range=Union[str, BiospecimenCollectionBiospecimenCollectionId]) - -slots.Aliquot_aliquot_id = Slot(uri=INCLUDEDCC.aliquot_id, name="Aliquot_aliquot_id", curie=INCLUDEDCC.curie('aliquot_id'), - model_uri=INCLUDEDCC.Aliquot_aliquot_id, domain=Aliquot, range=Union[str, AliquotAliquotId]) - -slots.Encounter_encounter_id = Slot(uri=INCLUDEDCC.encounter_id, name="Encounter_encounter_id", curie=INCLUDEDCC.curie('encounter_id'), - model_uri=INCLUDEDCC.Encounter_encounter_id, domain=Encounter, range=Union[str, EncounterEncounterId]) - -slots.EncounterDefinition_encounter_definition_id = Slot(uri=INCLUDEDCC.encounter_definition_id, name="EncounterDefinition_encounter_definition_id", curie=INCLUDEDCC.curie('encounter_definition_id'), - model_uri=INCLUDEDCC.EncounterDefinition_encounter_definition_id, domain=EncounterDefinition, range=Union[str, EncounterDefinitionEncounterDefinitionId]) - -slots.EncounterDefinition_activity_definition_id = Slot(uri=INCLUDEDCC.activity_definition_id, name="EncounterDefinition_activity_definition_id", curie=INCLUDEDCC.curie('activity_definition_id'), - model_uri=INCLUDEDCC.EncounterDefinition_activity_definition_id, domain=EncounterDefinition, range=Optional[Union[Union[str, ActivityDefinitionActivityDefinitionId], list[Union[str, ActivityDefinitionActivityDefinitionId]]]]) - -slots.ActivityDefinition_activity_definition_id = Slot(uri=INCLUDEDCC.activity_definition_id, name="ActivityDefinition_activity_definition_id", curie=INCLUDEDCC.curie('activity_definition_id'), - model_uri=INCLUDEDCC.ActivityDefinition_activity_definition_id, domain=ActivityDefinition, range=Union[str, ActivityDefinitionActivityDefinitionId]) - -slots.File_study_id = Slot(uri=INCLUDEDCC.study_id, name="File_study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.File_study_id, domain=File, range=Union[str, StudyStudyId]) - -slots.File_file_id = Slot(uri=INCLUDEDCC.file_id, name="File_file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.File_file_id, domain=File, range=Union[str, FileFileId]) - -slots.File_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="File_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.File_subject_id, domain=File, range=Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]]) - -slots.File_sample_id = Slot(uri=INCLUDEDCC.sample_id, name="File_sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.File_sample_id, domain=File, range=Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]]) - -slots.File_data_category = Slot(uri=INCLUDEDCC.data_category, name="File_data_category", curie=INCLUDEDCC.curie('data_category'), - model_uri=INCLUDEDCC.File_data_category, domain=File, range=Union[str, "EnumDataCategory"]) - -slots.Dataset_dataset_id = Slot(uri=INCLUDEDCC.dataset_id, name="Dataset_dataset_id", curie=INCLUDEDCC.curie('dataset_id'), - model_uri=INCLUDEDCC.Dataset_dataset_id, domain=Dataset, range=Union[str, DatasetDatasetId]) - -slots.Dataset_file_id = Slot(uri=INCLUDEDCC.file_id, name="Dataset_file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.Dataset_file_id, domain=Dataset, range=Optional[Union[Union[str, FileFileId], list[Union[str, FileFileId]]]]) - -slots.FileAdmin_study_id = Slot(uri=INCLUDEDCC.study_id, name="FileAdmin_study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.FileAdmin_study_id, domain=FileAdmin, range=Union[str, StudyStudyId]) - -slots.FileAdmin_file_id = Slot(uri=INCLUDEDCC.file_id, name="FileAdmin_file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.FileAdmin_file_id, domain=FileAdmin, range=Union[str, FileAdminFileId]) - -slots.FileAssay_file_id = Slot(uri=INCLUDEDCC.file_id, name="FileAssay_file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.FileAssay_file_id, domain=FileAssay, range=Union[str, FileAssayFileId]) - -slots.FileAssay_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="FileAssay_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.FileAssay_subject_id, domain=FileAssay, range=Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]]) - -slots.FileAssay_sample_id = Slot(uri=INCLUDEDCC.sample_id, name="FileAssay_sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.FileAssay_sample_id, domain=FileAssay, range=Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]]) - -slots.FileAssay_data_category = Slot(uri=INCLUDEDCC.data_category, name="FileAssay_data_category", curie=INCLUDEDCC.curie('data_category'), - model_uri=INCLUDEDCC.FileAssay_data_category, domain=FileAssay, range=Union[str, "EnumDataCategory"]) From d74045821cd28dc983869ec74b85966c137e15c4 Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Tue, 14 Apr 2026 13:37:23 -0500 Subject: [PATCH 14/20] Delete src/include_access_model/datamodel/include_access_model_pydantic.py --- .../include_access_model_pydantic.py | 1061 ----------------- 1 file changed, 1061 deletions(-) delete mode 100644 src/include_access_model/datamodel/include_access_model_pydantic.py diff --git a/src/include_access_model/datamodel/include_access_model_pydantic.py b/src/include_access_model/datamodel/include_access_model_pydantic.py deleted file mode 100644 index 4c60f27..0000000 --- a/src/include_access_model/datamodel/include_access_model_pydantic.py +++ /dev/null @@ -1,1061 +0,0 @@ -from __future__ import annotations - -import re -import sys -from datetime import ( - date, - datetime, - time -) -from decimal import Decimal -from enum import Enum -from typing import ( - Any, - ClassVar, - Literal, - Optional, - Union -) - -from pydantic import ( - BaseModel, - ConfigDict, - Field, - RootModel, - SerializationInfo, - SerializerFunctionWrapHandler, - field_validator, - model_serializer -) - - -metamodel_version = "None" -version = "None" - - -class ConfiguredBaseModel(BaseModel): - model_config = ConfigDict( - serialize_by_alias = True, - validate_by_name = True, - validate_assignment = True, - validate_default = True, - extra = "forbid", - arbitrary_types_allowed = True, - use_enum_values = True, - strict = False, - ) - - @model_serializer(mode='wrap', when_used='unless-none') - def treat_empty_lists_as_none( - self, handler: SerializerFunctionWrapHandler, - info: SerializationInfo) -> dict[str, Any]: - if info.exclude_none: - _instance = self.model_copy() - for field, field_info in type(_instance).model_fields.items(): - if getattr(_instance, field) == [] and not( - field_info.is_required()): - setattr(_instance, field, None) - else: - _instance = self - return handler(_instance, info) - - - -class LinkMLMeta(RootModel): - root: dict[str, Any] = {} - model_config = ConfigDict(frozen=True) - - def __getattr__(self, key:str): - return getattr(self.root, key) - - def __getitem__(self, key:str): - return self.root[key] - - def __setitem__(self, key:str, value): - self.root[key] = value - - def __contains__(self, key:str) -> bool: - return key in self.root - - -linkml_meta = LinkMLMeta({'default_prefix': 'includedcc', - 'default_range': 'string', - 'description': 'LinkML Schema for the internal INCLUDE DCC Access Model', - 'id': 'https://includedcc.org/include-access-model', - 'imports': ['linkml:types'], - 'license': 'MIT', - 'name': 'include-access-model', - 'prefixes': {'HP': {'prefix_prefix': 'HP', - 'prefix_reference': 'http://purl.obolibrary.org/obo/HP_'}, - 'MONDO': {'prefix_prefix': 'MONDO', - 'prefix_reference': 'http://purl.obolibrary.org/obo/MONDO_'}, - 'NCIT': {'prefix_prefix': 'NCIT', - 'prefix_reference': 'http://purl.obolibrary.org/obo/NCIT_'}, - 'PATO': {'prefix_prefix': 'PATO', - 'prefix_reference': 'http://purl.obolibrary.org/obo/PATO_'}, - 'cdc_race_eth': {'prefix_prefix': 'cdc_race_eth', - 'prefix_reference': 'urn:oid:2.16.840.1.113883.6.238/'}, - 'hl7_null': {'prefix_prefix': 'hl7_null', - 'prefix_reference': 'http://terminology.hl7.org/CodeSystem/v3-NullFlavor/'}, - 'ig2_biospecimen_availability': {'prefix_prefix': 'ig2_biospecimen_availability', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/biospecimen-availability/'}, - 'ig2dac': {'prefix_prefix': 'ig2dac', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-code/'}, - 'ig2dat': {'prefix_prefix': 'ig2dat', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-type/'}, - 'ig_dob_method': {'prefix_prefix': 'ig_dob_method', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-date-of-birth-method/'}, - 'igcondtype': {'prefix_prefix': 'igcondtype', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/condition-type/'}, - 'includedcc': {'prefix_prefix': 'includedcc', - 'prefix_reference': 'https://includedcc.org/include-access-model/'}, - 'linkml': {'prefix_prefix': 'linkml', - 'prefix_reference': 'https://w3id.org/linkml/'}, - 'mesh': {'prefix_prefix': 'mesh', - 'prefix_reference': 'http://id.nlm.nih.gov/mesh/'}, - 'schema': {'prefix_prefix': 'schema', - 'prefix_reference': 'http://schema.org/'}, - 'snomed_ct': {'prefix_prefix': 'snomed_ct', - 'prefix_reference': 'http://snomed.info/id/'}}, - 'see_also': ['https://includedcc.github.io/include-access-model'], - 'source_file': 'src/include_access_model/schema/include_access_model.yaml', - 'title': 'INCLUDE DCC Access Model'} ) - -class EnumProgram(str, Enum): - """ - Funding programs relevant to inform operations. - """ - INCLUDE = "include" - KF = "kf" - Other = "other" - - -class EnumResearchDomain(str, Enum): - """ - Domains of Research used to find studies. - """ - Behavior_and_Behavior_Mechanisms = "behavior_and_behavior_mechanisms" - Congenital_Heart_Defects = "congenital_heart_defects" - Immune_System_Diseases = "immune_system_diseases" - Hematologic_Diseases = "hematologic_diseases" - Neurodevelopment = "neurodevelopment" - Sleep_Wake_Disorders = "sleep_wake_disorders" - All_Co_occurring_Conditions = "all_co_occurring_conditions" - Physical_Fitness = "physical_fitness" - Other = "other" - - -class EnumParticipantLifespanStage(str, Enum): - """ - Stages of life during which participants may be recruited. - """ - Fetal = "fetal" - """ - Before birth - """ - Neonatal = "neonatal" - """ - 0-28 days old - """ - Pediatric = "pediatric" - """ - Birth-17 years old - """ - Adult = "adult" - """ - 18+ years old - """ - - -class EnumStudyDesign(str, Enum): - """ - Approaches for collecting data, investigating interventions, and/or analyzing data. - """ - Case_Control = "case_control" - Case_Set = "case_set" - Control_Set = "control_set" - Clinical_Trial = "clinical_trial" - Cross_Sectional = "cross_sectional" - FamilySOLIDUSTwinsSOLIDUSTrios = "family_twins_trios" - Interventional = "interventional" - Longitudinal = "longitudinal" - Trial_Readiness_Study = "trial_readiness_study" - Tumor_vs_Matched_Normal = "tumor_vs_matched_normal" - - -class EnumClinicalDataSourceType(str, Enum): - """ - Approaches to ascertain clinical information about a participant. - """ - Medical_Record = "medical_record" - """ - Data obtained directly from medical record - """ - Investigator_Assessment = "investigator_assessment" - """ - Data obtained by examination, interview, etc. with investigator - """ - Participant_or_Caregiver_Report = "participant_or_caregiver_report" - """ - Data obtained from survey, questionnaire, etc. filled out by participant or caregiver - """ - Other = "other" - """ - Data obtained from other source, such as tissue bank - """ - Unknown = "unknown" - - -class EnumDataCategory(str, Enum): - """ - Categories of data which may be collected about participants. - """ - Unharmonized_DemographicSOLIDUSClinical_Data = "unharmonized_demographic_clinical_data" - Harmonized_DemographicSOLIDUSClinical_Data = "harmonized_demographic_clinical_data" - Genomics = "genomics" - Transcriptomics = "transcriptomics" - Epigenomics = "epigenomics" - Proteomics = "proteomics" - Metabolomics = "metabolomics" - CognitiveSOLIDUSBehavioral = "cognitive_behavioral" - Immune_Profiling = "immune_profiling" - Imaging = "imaging" - Microbiome = "microbiome" - Fitness = "fitness" - Physical_Activity = "physical_activity" - Other = "other" - Sleep_Study = "sleep_study" - - -class EnumSubjectType(str, Enum): - """ - Types of Subject entities - """ - participant = "participant" - """ - Study participant with consent, assent, or waiver of consent. - """ - non_participant = "non_participant" - """ - An individual associated with a study who was not explictly consented, eg, the subject of a reported family history. - """ - cell_line = "cell_line" - """ - Cell Line - """ - animal_model = "animal_model" - """ - Animal model - """ - group = "group" - """ - A group of individuals or entities. - """ - other = "other" - """ - A different entity type- ideally this will be resolved! - """ - - -class EnumDownSyndromeStatus(str, Enum): - """ - Down syndrome / chromosome 21 status - """ - D21 = "d21" - """ - Disomy 21 (euploid) - """ - T21 = "t21" - """ - Trisomy 21 (Down syndrome) - """ - - -class EnumSex(str, Enum): - """ - Subject Sex - """ - Female = "female" - Male = "male" - Other = "other" - Unknown = "unknown" - - -class EnumRace(str, Enum): - """ - Participant Race - """ - American_Indian_or_Alaska_Native = "american_indian_or_alaska_native" - Asian = "asian" - Black_or_African_American = "black_or_african_american" - More_than_one_race = "more_than_one_race" - Native_Hawaiian_or_Other_Pacific_Islander = "native_hawaiian_or_other_pacific_islander" - Other = "other" - White = "white" - Prefer_not_to_answer = "prefer_not_to_answer" - Unknown = "unknown" - East_Asian = "east_asian" - """ - UK only; do not use for US data - """ - Latin_American = "latin_american" - """ - UK only; do not use for US data - """ - Middle_Eastern_or_North_African = "middle_eastern_or_north_african" - """ - UK only; do not use for US data - """ - South_Asian = "south_asian" - """ - UK only; do not use for US data - """ - - -class EnumEthnicity(str, Enum): - """ - Participant ethnicity, specific to Hispanic or Latino. - """ - Hispanic_or_Latino = "hispanic_or_latino" - Not_Hispanic_or_Latino = "not_hispanic_or_latino" - Prefer_not_to_answer = "prefer_not_to_answer" - Unknown = "unknown" - - -class EnumVitalStatus(str, Enum): - """ - Descriptions of a Subject's vital status - """ - Dead = "dead" - Alive = "alive" - - -class EnumNull(str, Enum): - """ - Base enumeration providing null options. - """ - Unknown = "unknown" - - -class EnumAssertionProvenance(str, Enum): - """ - Possible data sources for assertions. - """ - Medical_Record = "medical_record" - """ - Data obtained from a medical record - """ - Investigator_Assessment = "investigator_assessment" - """ - Data obtained by examination, interview, etc. with investigator - """ - Participant_or_Caregiver_Report = "participant_or_caregiver_report" - """ - Data obtained from survey, questionnaire, etc. filled out by participant or caregiver - """ - Other = "other" - """ - Data obtained from other source, such as tissue bank - """ - - -class EnumAvailabilityStatus(str, Enum): - """ - Is the biospecimen available for use? - """ - Available = "available" - """ - Biospecimen is Available - """ - Unavailable = "unavailable" - """ - Biospecimen is Unavailable - """ - - -class EnumSampleCollectionMethod(str): - """ - The approach used to collect the biospecimen. [LOINC](https://loinc.org) is recommended. - """ - pass - - -class EnumSite(str): - """ - The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) is recommended. - """ - pass - - -class EnumSpatialQualifiers(str): - """ - Any spatial/location qualifiers. - """ - pass - - -class EnumLaterality(str): - """ - Laterality information for the site - """ - pass - - -class EnumEDAMFormats(str): - """ - Data formats from the EDAM ontology. - """ - pass - - -class EnumEDAMDataTypes(str): - """ - Data types from the EDAM ontology. - """ - pass - - -class EnumFileHashType(str, Enum): - """ - Types of file hashes supported. - """ - MD5 = "md5" - ETag = "etag" - SHA_1 = "sha1" - - -class EnumAccessType(str, Enum): - """ - Types of file access levels. - """ - Open_Access = "open" - Controlled_Access = "controlled" - Registered_tier_Access = "registered" - - -class EnumExperimentalStrategy(str, Enum): - """ - Types of sequencing methods. - """ - Whole_Genome_Sequencing = "wgs" - RNA_Seq = "rnaseq" - Whole_Exome_Sequencing = "wxs" - Methylation = "methlyation" - Continuous_Long_Reads_WGS = "clr_wgs" - Proteomics = "proteomics" - Targeted_Sequencing = "targeted_seq" - Circular_Consensus_Sequencing_WGS = "ccs_wgs" - Panel = "panel" - Circular_Consensus_Sequencing_RNA_Se = "ccs_rnaseq" - Oxford_Nanopore_Technologies_WGS = "ont_wgs" - Continuous_Long_Reads_RNA_Seq = "clr_rnaseq" - - -class EnumAssayCenter(str, Enum): - """ - Organizations or centers producing raw or harmonized sequencing files. - """ - The_Broad_Institute = "broad" - HudsonAlpha_Institute_for_Biotechnology = "hudsonalpha" - StFULL_STOP_Jude = "stjude" - Baylor_College_of_Medicine = "baylor" - The_ChildrenAPOSTROPHEs_Hospital_of_Philadelphia = "chop" - Other = "other" - Unknown = "unknown" - - -class EnumRepository(str, Enum): - """ - specific drs service used for registration - """ - Cavatica_DRS = "cavatica" - NCI_DCF = "dcf" - Other = "other" - - -class EnumPlatform(str, Enum): - """ - names of instrument or platforms used for assay data generation - """ - Illumina = "illumina" - PacBio = "pacbio" - ONT = "ont" - Illumina_Infinium_HumanMethylationEPICv2 = "illumina_epic" - Other = "other" - Unknown = "unknown" - - - -class Record(ConfiguredBaseModel): - """ - One row / entity within the database - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, - 'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'Record'}) - - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Study(Record): - """ - Study Metadata - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'study_id': {'identifier': True, - 'name': 'study_id', - 'range': 'string', - 'required': True}}, - 'title': 'Research Study'}) - - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) - parent_study: Optional[str] = Field(default=None, title="Parent Study", description="""The parent study for this study, if it is a nested study.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - study_title: str = Field(default=..., description="""Full Study Title""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - study_code: str = Field(default=..., title="Study Code", description="""Unique identifier for the study (generally a short acronym)""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - study_short_name: Optional[str] = Field(default=None, title="Study Code", description="""Short name for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - program: list[EnumProgram] = Field(default=..., title="Program", description="""Funding source(s) for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - funding_source: Optional[list[str]] = Field(default=[], title="Funding Source", description="""The funding source(s) of the study.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - principal_investigator: list[Investigator] = Field(default=..., title="Principal Investigator", description="""The Principal Investigator(s) responsible for the study.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - contact: list[Investigator] = Field(default=..., title="Contact Person", description="""The individual to contact with questions about this record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository']} }) - study_description: str = Field(default=..., title="Study Description", description="""Brief description of the study (2-4 sentences)""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - website: Optional[str] = Field(default=None, title="Website", description="""Website for the Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository', 'Publication']} }) - publication: Optional[list[Publication]] = Field(default=[], title="Publication", description="""Publications associated with this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'Dataset']} }) - acknowledgments: Optional[str] = Field(default=None, title="Acknowledgments", description="""Funding statement and acknowledgments for this study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - citation_statement: Optional[str] = Field(default=None, title="Citation Statement", description="""Statement that secondary data users should use to acknowledge use of this study or dataset. E.g., \"The results analyzed and here are based in whole or in part upon data generated by the INCLUDE (INvestigation of Co-occurring conditions across the Lifespan to Understand Down syndromE) Project , and were accessed from the INCLUDE Data Hub and .\"""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - do_id: Optional[str] = Field(default=None, title="DOI", description="""Digital Object Identifier (DOI) for this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'DOI', 'Dataset']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class StudyMetadata(Record): - """ - Additional features about studies that may not apply to all studies - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'data_category': {'multivalued': True, - 'name': 'data_category', - 'required': True}, - 'study_id': {'identifier': True, - 'name': 'study_id', - 'required': True}}, - 'title': 'Study Metadata'}) - - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) - participant_lifespan_stage: list[EnumParticipantLifespanStage] = Field(default=..., title="Participant Lifespan Stage", description="""Focus age group(s) of the study population""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - selection_criteria: Optional[str] = Field(default=None, title="Selection Criteria", description="""Brief description of inclusion and/or exclusion criteria for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - study_design: list[EnumStudyDesign] = Field(default=..., title="Study Design", description="""Overall design of study, including whether it is longitudinal and whether family members/unrelated controls are also enrolled""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - clinical_data_source_type: list[EnumClinicalDataSourceType] = Field(default=..., title="Clinical Data Source Type", description="""Source(s) of data collected from study participants""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - data_category: list[EnumDataCategory] = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) - vbr: Optional[VirtualBiorepository] = Field(default=None, title="Virtual Biorepository", description="""Information about the study's Virtual Biorepository, if participating""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - research_domain: list[EnumResearchDomain] = Field(default=..., description="""Main research domain(s) of the study, other than Down syndrome""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - expected_number_of_participants: int = Field(default=..., title="Expected Number of Participants", description="""Total expected number of participants to be recruited.""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - actual_number_of_participants: int = Field(default=..., title="Actual Number of Participants", description="""Total participants included at this time.""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class VirtualBiorepository(Record): - """ - An organization that can provide access to specimen for further analysis. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'Virtual BioRepository (VBR)'}) - - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - institution: Optional[str] = Field(default=None, title="Institution", description="""Name of the institution this record is associated with.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', 'Investigator']} }) - contact: list[Investigator] = Field(default=..., title="Contact Person", description="""The individual to contact with questions about this record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository']} }) - website: Optional[str] = Field(default=None, title="Website", description="""Website for the Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository', 'Publication']} }) - vbr_readme: Optional[str] = Field(default=None, title="VBR Readme", description="""Instructions for contacting or requesting samples from Virtual Biorepository, if participating""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class DOI(Record): - """ - A DOI is a permanent reference with metadata about a digital object. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'do_id': {'identifier': True, - 'name': 'do_id', - 'range': 'string', - 'required': True}}, - 'title': 'Digital Object Identifier (DOI)'}) - - do_id: str = Field(default=..., title="DOI", description="""Digital Object Identifier (DOI) for this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'DOI', 'Dataset']} }) - bibliographic_reference: Optional[str] = Field(default=None, title="Bibiliographic Reference", description="""Text use to reference this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DOI', 'Publication']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Investigator(Record): - """ - An individual who made contributions to the collection, analysis, or sharing of data. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'Investigator'}) - - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - institution: Optional[str] = Field(default=None, title="Institution", description="""Name of the institution this record is associated with.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', 'Investigator']} }) - investigator_title: Optional[str] = Field(default=None, title="Investigator Title", description="""The title of the Investigator, eg, \"Assistant Professor\"""", json_schema_extra = { "linkml_meta": {'domain_of': ['Investigator']} }) - email: Optional[str] = Field(default=None, title="Email Address", description="""An email address to reach the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Investigator']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Publication(Record): - """ - Information about a specific publication. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'Publication'}) - - bibliographic_reference: Optional[str] = Field(default=None, title="Bibiliographic Reference", description="""Text use to reference this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DOI', 'Publication']} }) - website: Optional[str] = Field(default=None, title="Website", description="""Website for the Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository', 'Publication']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Subject(Record): - """ - This entity is the subject about which data or references are recorded. This includes the idea of a human participant in a study, a cell line, an animal model, or any other similar entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'subject_id': {'identifier': True, - 'name': 'subject_id', - 'range': 'string', - 'required': True}}, - 'title': 'Subject'}) - - subject_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - subject_type: EnumSubjectType = Field(default=..., title="Subject Type", description="""Type of entity this record represents""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject']} }) - organism_type: Optional[str] = Field(default=None, title="Organism Type", description="""Organism Type""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Demographics(Record): - """ - Basic participant demographics summary - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'subject_id': {'identifier': True, - 'name': 'subject_id', - 'required': True}}, - 'title': 'Demographics'}) - - subject_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - sex: EnumSex = Field(default=..., title="Sex", description="""Sex of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - race: list[EnumRace] = Field(default=..., title="Race", description="""Race of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - ethnicity: EnumEthnicity = Field(default=..., title="Ethnicity", description="""Ethnicity of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - down_syndrome_status: EnumDownSyndromeStatus = Field(default=..., title="Down Syndrome Status", description="""Down Syndrome status of participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - age_at_last_vital_status: Optional[int] = Field(default=None, title="Age at Last Vital Status", description="""Age in days when participant's vital status was last recorded""", ge=-365, le=32507, json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics'], 'unit': {'ucum_code': 'd'}} }) - vital_status: Optional[EnumVitalStatus] = Field(default=None, title="Vital Status", description="""Whether participant is alive or dead""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - age_at_first_engagement: Optional[int] = Field(default=None, title="Age at First Participant Engagement", description="""Age in days of Participant at first recorded study event (enrollment, visit, observation, sample collection, survey completion, etc.). Age at enrollment is preferred, if available.""", ge=-365, le=32507, json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics'], 'unit': {'ucum_code': 'd'}} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class SubjectAssertion(Record): - """ - Assertion about a particular Subject. May include Conditions, Measurements, etc. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'assertion_id': {'identifier': True, - 'name': 'assertion_id', - 'range': 'string', - 'required': True}}, - 'title': 'Subject Assertion'}) - - assertion_id: str = Field(default=..., title="Assertion ID", description="""INCLUDE Global ID for the Assertion""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - subject_id: Optional[str] = Field(default=None, title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - encounter_id: Optional[str] = Field(default=None, title="Encounter ID", description="""Unique identifier for this Encounter.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'BiospecimenCollection', 'Encounter']} }) - assertion_provenance: Optional[EnumAssertionProvenance] = Field(default=None, title="Assertion Provenance", description="""The original source of this assertion""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - age_at_assertion: Optional[int] = Field(default=None, title="Age at assertion", description="""The age in days of the Subject when the assertion was made.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion'], 'unit': {'ucum_code': 'd'}} }) - age_at_event: Optional[int] = Field(default=None, title="Age at event", description="""The age in days of the Subject at the time point which the assertion describes, eg, age of onset or when a measurement was performed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'Encounter'], 'unit': {'ucum_code': 'd'}} }) - age_at_resolution: Optional[int] = Field(default=None, title="Age at resolution", description="""The age in days of the Subject when the asserted state was resolved.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion'], 'unit': {'ucum_code': 'd'}} }) - concept: Optional[list[str]] = Field(default=[], title="Concept", description="""The structured term defining the meaning of the assertion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - concept_source: Optional[str] = Field(default=None, title="Concept Source Text", description="""The source text yielding the standardized concept.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_concept: Optional[list[str]] = Field(default=[], title="Value concept", description="""The structured term defining the value of the assertion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_number: Optional[float] = Field(default=None, title="Value Number", description="""The numeric value of the assertion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_source: Optional[str] = Field(default=None, title="Value Source Text", description="""The source text yielding the value.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_unit: Optional[str] = Field(default=None, title="Value Units", description="""The structured term defining the units of the value.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_unit_source: Optional[str] = Field(default=None, title="Value Units Source Text", description="""The source text yielding the value's units.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Concept(ConfiguredBaseModel): - """ - A standardized concept with display information. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'concept_curie': {'identifier': True, - 'name': 'concept_curie', - 'required': True}}, - 'title': 'Concept'}) - - concept_curie: str = Field(default=..., title="Concept Curie", description="""The standardized curie for the term.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Concept']} }) - display: Optional[str] = Field(default=None, title="Display String", description="""The friendly display string of the coded term.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Concept']} }) - - -class Sample(Record): - """ - A functionally equivalent specimen taken from a participant or processed from such a sample. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'biospecimen_collection_id': {'description': 'Biospecimen ' - 'Collection ' - 'during which ' - 'this sample was ' - 'generated.', - 'name': 'biospecimen_collection_id'}, - 'sample_id': {'identifier': True, - 'name': 'sample_id', - 'range': 'string', - 'required': True}}, - 'title': 'Sample'}) - - sample_id: str = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - biospecimen_collection_id: Optional[str] = Field(default=None, title="Biospecimen Collection ID", description="""Biospecimen Collection during which this sample was generated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'BiospecimenCollection']} }) - parent_sample_id: Optional[str] = Field(default=None, title="Parent Sample ID", description="""Sample from which this sample is derived""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) - sample_type: str = Field(default=..., title="Sample Type", description="""Type of material of which this Sample is comprised""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) - processing: Optional[list[str]] = Field(default=[], title="Sample Processing", description="""Processing that was applied to the Parent Sample or from the Biospecimen Collection that yielded this distinct sample""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) - availablity_status: Optional[EnumAvailabilityStatus] = Field(default=None, title="Sample Availability", description="""Can this Sample be requested for further analysis?""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - storage_method: Optional[list[str]] = Field(default=[], title="Sample Storage Method", description="""Sample storage method, eg, Frozen or with additives""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) - quantity_number: Optional[float] = Field(default=None, title="Quantity", description="""The total quantity of the specimen""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - quantity_unit: Optional[str] = Field(default=None, title="Quantity Units", description="""The structured term defining the units of the quantity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class BiospecimenCollection(Record): - """ - A biospecimen collection event which yields one or more Samples. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'biospecimen_collection_id': {'identifier': True, - 'name': 'biospecimen_collection_id', - 'range': 'string', - 'required': True}}, - 'title': 'BiospecimenCollection'}) - - biospecimen_collection_id: str = Field(default=..., title="Biospecimen Collection ID", description="""Unique identifier for this Biospecimen Collection.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'BiospecimenCollection']} }) - age_at_collection: Optional[float] = Field(default=None, title="Age at Biospecimen Collection", description="""The age at which this biospecimen was collected in decimal years.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection'], 'unit': {'ucum_code': 'a'}} }) - method: Optional[EnumSampleCollectionMethod] = Field(default=None, title="Biospecimen Collection Method", description="""The approach used to collect the biospecimen.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection']} }) - site: Optional[EnumSite] = Field(default=None, title="Biospecimen Collection Site", description="""The location of the specimen collection.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection']} }) - spatial_qualifier: Optional[EnumSpatialQualifiers] = Field(default=None, title="Spatial Qualifier", description="""Qualifier that further refine the specific location of biospecimen collection""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection']} }) - laterality: Optional[EnumLaterality] = Field(default=None, title="Location Laterality", description="""Laterality that further refine the specific location of biospecimen collection""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection']} }) - encounter_id: Optional[str] = Field(default=None, title="Encounter ID", description="""Unique identifier for this Encounter.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'BiospecimenCollection', 'Encounter']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Aliquot(Record): - """ - A specific tube or amount of a biospecimen associated with a Sample. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'aliquot_id': {'identifier': True, - 'name': 'aliquot_id', - 'range': 'string', - 'required': True}}, - 'title': 'Aliquot'}) - - aliquot_id: str = Field(default=..., title="Aliquot ID", description="""Unique identifier for an Aliquot.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Aliquot']} }) - sample_id: Optional[str] = Field(default=None, title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - availablity_status: Optional[EnumAvailabilityStatus] = Field(default=None, title="Sample Availability", description="""Can this Sample be requested for further analysis?""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - quantity_number: Optional[float] = Field(default=None, title="Quantity", description="""The total quantity of the specimen""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - quantity_unit: Optional[str] = Field(default=None, title="Quantity Units", description="""The structured term defining the units of the quantity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - concentration_number: Optional[float] = Field(default=None, title="Concentration", description="""What is the concentration of the analyte in the Aliquot?""", json_schema_extra = { "linkml_meta": {'domain_of': ['Aliquot']} }) - concentration_unit: Optional[str] = Field(default=None, title="Concentration Units", description="""Units associated with the concentration of the analyte in the Aliquot.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Aliquot']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Encounter(Record): - """ - An event at which data was collected about a participant, an intervention was made, or information about a participant was recorded. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'encounter_id': {'identifier': True, - 'name': 'encounter_id', - 'range': 'string', - 'required': True}}, - 'title': 'Participant Encounter'}) - - encounter_id: str = Field(default=..., title="Encounter ID", description="""Unique identifier for this Encounter.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'BiospecimenCollection', 'Encounter']} }) - subject_id: Optional[str] = Field(default=None, title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - encounter_definition_id: Optional[str] = Field(default=None, title="Encounter Definition ID", description="""Unique identifier for this Encounter Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Encounter', 'EncounterDefinition']} }) - age_at_event: Optional[int] = Field(default=None, title="Age at event", description="""The age in days of the Subject at the time point which the assertion describes, eg, age of onset or when a measurement was performed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'Encounter'], 'unit': {'ucum_code': 'd'}} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class EncounterDefinition(Record): - """ - A definition of an encounter type in this study, ie, an event at which data was collected about a participant, an intervention was made, or information about a participant was recorded. This may be something planned by a study or a type of data collection. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'activity_definition_id': {'multivalued': True, - 'name': 'activity_definition_id'}, - 'encounter_definition_id': {'identifier': True, - 'name': 'encounter_definition_id', - 'range': 'string', - 'required': True}}, - 'title': 'Encounter Definition'}) - - encounter_definition_id: str = Field(default=..., title="Encounter Definition ID", description="""Unique identifier for this Encounter Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Encounter', 'EncounterDefinition']} }) - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - description: Optional[str] = Field(default=None, title="Description", description="""Description for this entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition', 'Dataset']} }) - activity_definition_id: Optional[list[str]] = Field(default=[], title="Activity Definition ID", description="""Unique identifier for this Activity Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class ActivityDefinition(Record): - """ - A definition of an activity in this study, eg, a biospecimen collection, intervention, survey, or assessment. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'activity_definition_id': {'identifier': True, - 'name': 'activity_definition_id', - 'range': 'string', - 'required': True}}, - 'title': 'Activity Definition'}) - - activity_definition_id: str = Field(default=..., title="Activity Definition ID", description="""Unique identifier for this Activity Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition']} }) - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - description: Optional[str] = Field(default=None, title="Description", description="""Description for this entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition', 'Dataset']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class File(Record): - """ - Required information for portal use. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'data_category': {'name': 'data_category', 'required': True}, - 'file_id': {'identifier': True, - 'name': 'file_id', - 'range': 'string', - 'required': True}, - 'sample_id': {'multivalued': True, - 'name': 'sample_id', - 'required': True}, - 'study_id': {'name': 'study_id', 'required': True}, - 'subject_id': {'multivalued': True, - 'name': 'subject_id', - 'required': True}}, - 'title': 'File'}) - - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) - file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) - subject_id: list[str] = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - sample_id: list[str] = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - s3_file_path: str = Field(default=..., title="S3 File Path", description="""The full s3 url of a file's location in aws""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - filename: str = Field(default=..., title="Filename", description="""The name of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) - size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) - format: EnumEDAMFormats = Field(default=..., title="File Format", description="""The format of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) - data_category: EnumDataCategory = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) - data_type: EnumEDAMDataTypes = Field(default=..., title="Data Type", description="""The type of data within this file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) - staging_url: Optional[str] = Field(default=None, title="Staging Location", description="""URL for internal access to the data. May be temporary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - release_url: Optional[str] = Field(default=None, title="Release Location", description="""URL for controlled or open access to the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - drs_uri: Optional[str] = Field(default=None, title="DRS URI", description="""DRS location to access the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - hash: FileHash = Field(default=..., title="File Hash", description="""File hash information""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class FileHash(ConfiguredBaseModel): - """ - Type and value of a file content hash. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'File Hash'}) - - hash_type: EnumFileHashType = Field(default=..., title="File Hash Type", description="""The type of file hash, eg, md5""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileHash']} }) - hash_value: str = Field(default=..., title="File Hash Value", description="""The value of the file hash""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileHash']} }) - - -class Dataset(ConfiguredBaseModel): - """ - Set of files grouped together for release. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'dataset_id': {'identifier': True, - 'name': 'dataset_id', - 'range': 'string', - 'required': True}, - 'file_id': {'description': 'The list of files comprising this ' - 'dataset.', - 'multivalued': True, - 'name': 'file_id'}}, - 'title': 'Dataset'}) - - dataset_id: str = Field(default=..., title="Dataset ID", description="""Unique identifier for a Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset']} }) - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - description: Optional[str] = Field(default=None, title="Description", description="""Description for this entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition', 'Dataset']} }) - do_id: Optional[str] = Field(default=None, title="DOI", description="""Digital Object Identifier (DOI) for this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'DOI', 'Dataset']} }) - file_id: Optional[list[str]] = Field(default=[], title="File ID", description="""The list of files comprising this dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) - publication: Optional[list[Publication]] = Field(default=[], title="Publication", description="""Publications associated with this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'Dataset']} }) - data_collection_start: Optional[str] = Field(default=None, title="Data Collection Start", description="""The date that data collection started. May include only a year.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset']} }) - data_collection_end: Optional[str] = Field(default=None, title="Data Collection End", description="""The date that data collection started. May include only a year.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset']} }) - - -class FileAdmin(ConfiguredBaseModel): - """ - File unvierse; contains all information about a file that may be needed for operational work - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'file_id': {'identifier': True, - 'name': 'file_id', - 'required': True}, - 'study_id': {'name': 'study_id', 'required': True}}}) - - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) - file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) - subject_id: Optional[str] = Field(default=None, title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - sample_id: Optional[str] = Field(default=None, title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - s3_file_path: str = Field(default=..., title="S3 File Path", description="""The full s3 url of a file's location in aws""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - file_category: str = Field(default=..., title="File Category", description="""A high level classification of the file used for operations.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) - s3_key: str = Field(default=..., title="S3 Key", description="""The unique identifier for an object within a bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - file_extension: str = Field(default=..., title="File Extension", description="""A 3-4 letter code at the end of a filename that identifies the file format.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - data_transfer_id: Optional[str] = Field(default=None, title="Data Transfer ID", description="""A jira ticket number associated with a file transfer request to production bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - aws_account_id: str = Field(default=..., title="AWS Account ID", description="""A 12-digit number that uniquely identifies a specific AWS account""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - account_name: str = Field(default=..., title="AWS Account Name", description="""A user-defined label used to define an AWS accoun.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - account_alias: str = Field(default=..., title="Account Alias", description="""A unique user-defined string that replaces the AWS Account ID in the IAM user sign-in URL""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - bucket_study_id: str = Field(default=..., title="Bucket Study ID", description="""The global study ID used to create the bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - bucket: str = Field(default=..., title="Bucket", description="""Cloud storage container in AWS used to manage and store s3 objects""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - s3_created_at: datetime = Field(default=..., title="S3 Created At", description="""Timestamp of when a file was uploaded to an s3 bucket.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - s3_modified_at: datetime = Field(default=..., title="S3 Modified At", description="""Timestamp of when a file was modified in an s3 bucket.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - intelligent_tiering_access_tier: str = Field(default=..., title="Intelligent Tiering Access Tier", description="""Storage access tier assigned by AWS intelliegnt tiering, indicating the current access frequency classification of the object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_delete_marker: bool = Field(default=..., title="Is Delete Marker", description="""A flag that notes whether a file has been deleted from s3""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_latest: bool = Field(default=..., title="Is Latest", description="""Specifies whether an object version is the most recent version of that object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - storage_class: str = Field(default=..., title="Storage Class", description="""Storage tier of the object in AWS reflecting cost and access characteristics.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - manifest_hash_value: Optional[str] = Field(default=None, title="Manifest Hash Value", description="""The provided hash value from external users to be validated against internal hash values""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - file_hash_validation_status: Optional[str] = Field(default=None, title="File Hash Validation Status", description="""Notes whether hashes have been generated and verified against manifest hash values.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - file_type: str = Field(default=..., title="File Type", description="""An internal type or classification of the files based on its operational usuage.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - encryption_status: str = Field(default=..., title="Encryption Status", description="""Indicates whether the object in AWS is encrypted and the type of encryption applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_multipart_uploaded: str = Field(default=..., title="Is Multipart Uploaded", description="""Indicates whether the object was uploaded using a multipart upload process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - object_lock_level_hold_status: str = Field(default=..., title="Object Lock Level Hold Status", description="""Whether a legal hold is applied to prevent deletion of the object.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - object_lock_mode: str = Field(default=..., title="Object Lock Mode", description="""Retention mode applied to the object that restricts deletion or modification.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - object_lock_retain_until_date: datetime = Field(default=..., title="Object Lock Retain Until Date", description="""Specifies exact date and time when an object's Object Lock rentention period expires.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - replication_status: str = Field(default=..., title="Replication Status", description="""Status of the object's replication to another storage location.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - version_id: str = Field(default=..., title="Version ID", description="""Identifier for a specific version of the object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - staging_url: Optional[str] = Field(default=None, title="Staging Location", description="""URL for internal access to the data. May be temporary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - release_url: Optional[str] = Field(default=None, title="Release Location", description="""URL for controlled or open access to the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - hash: FileHash = Field(default=..., title="File Hash", description="""File hash information""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - access_type: EnumAccessType = Field(default=..., title="Access Type", description="""Notes wheter a file is controlled, open, or registered-tier access""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) - access_url: Optional[str] = Field(default=None, title="Access URL", description="""HTTPS endpoint for accessing a file via a specific data repository service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - drs_uri: Optional[str] = Field(default=None, title="DRS URI", description="""DRS location to access the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - acl: str = Field(default=..., title="ACL", description="""The object access control list.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_released: bool = Field(default=..., title="Is Released", description="""A flag that notes whether a file has been released to the public""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_registered: bool = Field(default=..., title="Is Registered", description="""A flag that notes whether a file has been registered to a drs service""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - repository: Optional[EnumRepository] = Field(default=None, title="Repository", description="""The name of the drs service which files are registered to""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - experimental_strategy: EnumExperimentalStrategy = Field(default=..., title="Experimental Strategy", description="""Method or assay used to generate the data""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) - - -class FileAssay(ConfiguredBaseModel): - """ - A file produced by or associated with an assay or data acquisition process including omics, imaging, actigraphy, and other experimental or observational data. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'data_category': {'name': 'data_category', 'required': True}, - 'file_id': {'identifier': True, - 'name': 'file_id', - 'required': True}, - 'sample_id': {'multivalued': True, - 'name': 'sample_id', - 'required': True}, - 'subject_id': {'multivalued': True, - 'name': 'subject_id', - 'required': True}}, - 'title': 'File Assay'}) - - file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) - subject_id: list[str] = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - sample_id: list[str] = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - data_category: EnumDataCategory = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) - experimental_strategy: EnumExperimentalStrategy = Field(default=..., title="Experimental Strategy", description="""Method or assay used to generate the data""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) - data_type: EnumEDAMDataTypes = Field(default=..., title="Data Type", description="""The type of data within this file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) - format: EnumEDAMFormats = Field(default=..., title="File Format", description="""The format of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) - size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) - access_type: EnumAccessType = Field(default=..., title="Access Type", description="""Notes wheter a file is controlled, open, or registered-tier access""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) - assay_center: Optional[EnumAssayCenter] = Field(default=None, title="Assay Center", description="""The organization or center that generated the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) - platform: EnumPlatform = Field(default=..., title="Platform", description="""Instrument or platform family name""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) - workflow_name: Optional[str] = Field(default=None, title="Workflow Name", description="""Processing tool that produced the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) - workflow_version: Optional[str] = Field(default=None, title="Workflow Version", description="""Version of the process tool that produced the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) - - -# Model rebuild -# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model -Record.model_rebuild() -Study.model_rebuild() -StudyMetadata.model_rebuild() -VirtualBiorepository.model_rebuild() -DOI.model_rebuild() -Investigator.model_rebuild() -Publication.model_rebuild() -Subject.model_rebuild() -Demographics.model_rebuild() -SubjectAssertion.model_rebuild() -Concept.model_rebuild() -Sample.model_rebuild() -BiospecimenCollection.model_rebuild() -Aliquot.model_rebuild() -Encounter.model_rebuild() -EncounterDefinition.model_rebuild() -ActivityDefinition.model_rebuild() -File.model_rebuild() -FileHash.model_rebuild() -Dataset.model_rebuild() -FileAdmin.model_rebuild() -FileAssay.model_rebuild() From cb56705e7cabd7a538931de570b8815ffe4ecc80 Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Fri, 17 Apr 2026 14:06:53 -0500 Subject: [PATCH 15/20] =?UTF-8?q?=F0=9F=94=A7=20Update=20EFO=20URI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linting requires a specific EFO URI: > warning Schema maps prefix 'EFO' to namespace 'http://www.ebi.ac.uk/efo' instead of namespace 'http://identifiers.org/efo/' (canonical_prefixes) --- .../datamodel/include_access_model.py | 89 +++++++++++++++---- .../include_access_model_pydantic.py | 78 ++++++++++++++-- .../schema/include_access_model.yaml | 2 +- 3 files changed, 148 insertions(+), 21 deletions(-) diff --git a/src/include_access_model/datamodel/include_access_model.py b/src/include_access_model/datamodel/include_access_model.py index 8e0b499..7d74d30 100644 --- a/src/include_access_model/datamodel/include_access_model.py +++ b/src/include_access_model/datamodel/include_access_model.py @@ -1,5 +1,5 @@ # Auto generated from include_access_model.yaml by pythongen.py version: 0.0.1 -# Generation date: 2026-04-03T17:20:29 +# Generation date: 2026-04-17T14:05:35 # Schema: include-access-model # # id: https://includedcc.org/include-access-model @@ -63,6 +63,7 @@ version = None # Namespaces +EFO = CurieNamespace('EFO', 'http://identifiers.org/efo/') HP = CurieNamespace('HP', 'http://purl.obolibrary.org/obo/HP_') MONDO = CurieNamespace('MONDO', 'http://purl.obolibrary.org/obo/MONDO_') NCIT = CurieNamespace('NCIT', 'http://purl.obolibrary.org/obo/NCIT_') @@ -2077,22 +2078,80 @@ class EnumPlatform(EnumDefinitionImpl): """ illumina = PermissibleValue( text="illumina", - title="Illumina") - pacbio = PermissibleValue( - text="pacbio", - title="PacBio") - ont = PermissibleValue( - text="ont", - title="ONT") - illumina_epic = PermissibleValue( - text="illumina_epic", - title="Illumina Infinium HumanMethylationEPICv2") - other = PermissibleValue( - text="other", - title="Other") + title="Illumina", + description="Illumina Platform") + long_read = PermissibleValue( + text="long_read", + description="Single-molecule sequencing technologies (PacBio, ONT).") unknown = PermissibleValue( text="unknown", - title="Unknown") + title="Unknown", + description="Unknown platform") + novaseq_x = PermissibleValue( + text="novaseq_x", + title="NovaSeq X Series", + description="Ultra-high throughput (NovaSeq X, X Plus).", + meaning=EFO["EFO_0022840"]) + novaseq_6000 = PermissibleValue( + text="novaseq_6000", + title="NovaSeq 6000", + description="Standard high-throughput production platform.", + meaning=EFO["EFO_0008637"]) + nextseq_1000 = PermissibleValue( + text="nextseq_1000", + title="NextSeq 1000", + description="Mid-range sequencing (P1, P2, P3 flowcells).", + meaning=EFO["EFO_0010962"]) + nextseq_2000 = PermissibleValue( + text="nextseq_2000", + title="NextSeq 1000-2000", + description="Mid-range sequencing (P1, P2, P3 flowcells).", + meaning=EFO["EFO_0010963"]) + nextseq_500 = PermissibleValue( + text="nextseq_500", + title="NextSeq 500_550", + description="Older mid-range 2-channel systems.", + meaning=EFO["EFO_0009173"]) + nextseq_550 = PermissibleValue( + text="nextseq_550", + title="NextSeq 550", + description="Older mid-range 2-channel systems.", + meaning=EFO["EFO_0008566"]) + miseq = PermissibleValue( + text="miseq", + title="MiSeq Series", + description="Benchtop low-throughput (MiSeq, MiSeqDx).") + miniseq_iseq = PermissibleValue( + text="miniseq_iseq", + title="MiniSeq iSeq", + description="Smallest entry-level sequencers.") + iscan_system = PermissibleValue( + text="iscan_system", + description="Hardware for Infinium arrays (EPIC, GSA).") + pacbio_revio = PermissibleValue( + text="pacbio_revio", + title="PacBio Revio", + description="Current flagship high-throughput HiFi system.") + pacbio_sequel_iie = PermissibleValue( + text="pacbio_sequel_iie", + title="PacBio Sequel IIe", + description="Reliable mid-to-high throughput HiFi system.") + pacbio_onso = PermissibleValue( + text="pacbio_onso", + title="PacBio Onso", + description="Short-read SBB (Sequencing by Binding) platform from PacBio.") + ont_promethion = PermissibleValue( + text="ont_promethion", + title="ONT PromethION", + description="Ultra-high throughput scalable nanopore system.") + ont_gridion = PermissibleValue( + text="ont_gridion", + title="ONT GridION", + description="Benchtop nanopore system running up to 5 flow cells.") + ont_minion = PermissibleValue( + text="ont_minion", + title="ONT MiniION", + description="Portable, pocket-sized nanopore sequencer.") _defn = EnumDefinition( name="EnumPlatform", diff --git a/src/include_access_model/datamodel/include_access_model_pydantic.py b/src/include_access_model/datamodel/include_access_model_pydantic.py index 4c60f27..125d36f 100644 --- a/src/include_access_model/datamodel/include_access_model_pydantic.py +++ b/src/include_access_model/datamodel/include_access_model_pydantic.py @@ -85,7 +85,9 @@ def __contains__(self, key:str) -> bool: 'imports': ['linkml:types'], 'license': 'MIT', 'name': 'include-access-model', - 'prefixes': {'HP': {'prefix_prefix': 'HP', + 'prefixes': {'EFO': {'prefix_prefix': 'EFO', + 'prefix_reference': 'http://identifiers.org/efo/'}, + 'HP': {'prefix_prefix': 'HP', 'prefix_reference': 'http://purl.obolibrary.org/obo/HP_'}, 'MONDO': {'prefix_prefix': 'MONDO', 'prefix_reference': 'http://purl.obolibrary.org/obo/MONDO_'}, @@ -478,11 +480,77 @@ class EnumPlatform(str, Enum): names of instrument or platforms used for assay data generation """ Illumina = "illumina" - PacBio = "pacbio" - ONT = "ont" - Illumina_Infinium_HumanMethylationEPICv2 = "illumina_epic" - Other = "other" + """ + Illumina Platform + """ + long_read = "long_read" + """ + Single-molecule sequencing technologies (PacBio, ONT). + """ Unknown = "unknown" + """ + Unknown platform + """ + NovaSeq_X_Series = "novaseq_x" + """ + Ultra-high throughput (NovaSeq X, X Plus). + """ + NovaSeq_6000 = "novaseq_6000" + """ + Standard high-throughput production platform. + """ + NextSeq_1000 = "nextseq_1000" + """ + Mid-range sequencing (P1, P2, P3 flowcells). + """ + NextSeq_1000_2000 = "nextseq_2000" + """ + Mid-range sequencing (P1, P2, P3 flowcells). + """ + NextSeq_500_550 = "nextseq_500" + """ + Older mid-range 2-channel systems. + """ + NextSeq_550 = "nextseq_550" + """ + Older mid-range 2-channel systems. + """ + MiSeq_Series = "miseq" + """ + Benchtop low-throughput (MiSeq, MiSeqDx). + """ + MiniSeq_iSeq = "miniseq_iseq" + """ + Smallest entry-level sequencers. + """ + iscan_system = "iscan_system" + """ + Hardware for Infinium arrays (EPIC, GSA). + """ + PacBio_Revio = "pacbio_revio" + """ + Current flagship high-throughput HiFi system. + """ + PacBio_Sequel_IIe = "pacbio_sequel_iie" + """ + Reliable mid-to-high throughput HiFi system. + """ + PacBio_Onso = "pacbio_onso" + """ + Short-read SBB (Sequencing by Binding) platform from PacBio. + """ + ONT_PromethION = "ont_promethion" + """ + Ultra-high throughput scalable nanopore system. + """ + ONT_GridION = "ont_gridion" + """ + Benchtop nanopore system running up to 5 flow cells. + """ + ONT_MiniION = "ont_minion" + """ + Portable, pocket-sized nanopore sequencer. + """ diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 0570d1d..492ec61 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -25,7 +25,7 @@ prefixes: mesh: http://id.nlm.nih.gov/mesh/ NCIT: http://purl.obolibrary.org/obo/NCIT_ PATO: http://purl.obolibrary.org/obo/PATO_ - EFO: http://www.ebi.ac.uk/efo + EFO: http://identifiers.org/efo/ default_prefix: includedcc default_range: string From 555a7c59ded5c456bdd860c808c62700f4f93f5a Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Fri, 17 Apr 2026 14:07:56 -0500 Subject: [PATCH 16/20] Delete src/include_access_model/datamodel/include_access_model.py --- .../datamodel/include_access_model.py | 2631 ----------------- 1 file changed, 2631 deletions(-) delete mode 100644 src/include_access_model/datamodel/include_access_model.py diff --git a/src/include_access_model/datamodel/include_access_model.py b/src/include_access_model/datamodel/include_access_model.py deleted file mode 100644 index 7d74d30..0000000 --- a/src/include_access_model/datamodel/include_access_model.py +++ /dev/null @@ -1,2631 +0,0 @@ -# Auto generated from include_access_model.yaml by pythongen.py version: 0.0.1 -# Generation date: 2026-04-17T14:05:35 -# Schema: include-access-model -# -# id: https://includedcc.org/include-access-model -# description: LinkML Schema for the internal INCLUDE DCC Access Model -# license: MIT - -import dataclasses -import re -from dataclasses import dataclass -from datetime import ( - date, - datetime, - time -) -from typing import ( - Any, - ClassVar, - Dict, - List, - Optional, - Union -) - -from jsonasobj2 import ( - JsonObj, - as_dict -) -from linkml_runtime.linkml_model.meta import ( - EnumDefinition, - PermissibleValue, - PvFormulaOptions -) -from linkml_runtime.utils.curienamespace import CurieNamespace -from linkml_runtime.utils.enumerations import EnumDefinitionImpl -from linkml_runtime.utils.formatutils import ( - camelcase, - sfx, - underscore -) -from linkml_runtime.utils.metamodelcore import ( - bnode, - empty_dict, - empty_list -) -from linkml_runtime.utils.slot import Slot -from linkml_runtime.utils.yamlutils import ( - YAMLRoot, - extended_float, - extended_int, - extended_str -) -from rdflib import ( - Namespace, - URIRef -) - -from linkml_runtime.linkml_model.types import Boolean, Datetime, Float, Integer, String, Uri, Uriorcurie -from linkml_runtime.utils.metamodelcore import Bool, URI, URIorCURIE, XSDDateTime - -metamodel_version = "1.7.0" -version = None - -# Namespaces -EFO = CurieNamespace('EFO', 'http://identifiers.org/efo/') -HP = CurieNamespace('HP', 'http://purl.obolibrary.org/obo/HP_') -MONDO = CurieNamespace('MONDO', 'http://purl.obolibrary.org/obo/MONDO_') -NCIT = CurieNamespace('NCIT', 'http://purl.obolibrary.org/obo/NCIT_') -PATO = CurieNamespace('PATO', 'http://purl.obolibrary.org/obo/PATO_') -CDC_RACE_ETH = CurieNamespace('cdc_race_eth', 'urn:oid:2.16.840.1.113883.6.238/') -HL7_NULL = CurieNamespace('hl7_null', 'http://terminology.hl7.org/CodeSystem/v3-NullFlavor/') -IG2_BIOSPECIMEN_AVAILABILITY = CurieNamespace('ig2_biospecimen_availability', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/biospecimen-availability/') -IG2DAC = CurieNamespace('ig2dac', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-code/') -IG2DAT = CurieNamespace('ig2dat', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-type/') -IG_DOB_METHOD = CurieNamespace('ig_dob_method', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-date-of-birth-method/') -IGCONDTYPE = CurieNamespace('igcondtype', 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/condition-type/') -INCLUDEDCC = CurieNamespace('includedcc', 'https://includedcc.org/include-access-model/') -LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/') -MESH = CurieNamespace('mesh', 'http://id.nlm.nih.gov/mesh/') -SCHEMA = CurieNamespace('schema', 'http://schema.org/') -SNOMED_CT = CurieNamespace('snomed_ct', 'http://snomed.info/id/') -DEFAULT_ = INCLUDEDCC - - -# Types - -# Class references -class StudyStudyId(extended_str): - pass - - -class StudyMetadataStudyId(StudyStudyId): - pass - - -class DOIDoId(extended_str): - pass - - -class SubjectSubjectId(extended_str): - pass - - -class DemographicsSubjectId(SubjectSubjectId): - pass - - -class SubjectAssertionAssertionId(extended_str): - pass - - -class ConceptConceptCurie(URIorCURIE): - pass - - -class SampleSampleId(extended_str): - pass - - -class BiospecimenCollectionBiospecimenCollectionId(extended_str): - pass - - -class AliquotAliquotId(extended_str): - pass - - -class EncounterEncounterId(extended_str): - pass - - -class EncounterDefinitionEncounterDefinitionId(extended_str): - pass - - -class ActivityDefinitionActivityDefinitionId(extended_str): - pass - - -class FileFileId(extended_str): - pass - - -class DatasetDatasetId(extended_str): - pass - - -class FileAdminFileId(FileFileId): - pass - - -class FileAssayFileId(FileFileId): - pass - - -@dataclass(repr=False) -class Record(YAMLRoot): - """ - One row / entity within the database - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Record"] - class_class_curie: ClassVar[str] = "includedcc:Record" - class_name: ClassVar[str] = "Record" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Record - - external_id: Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]] = empty_list() - - def __post_init__(self, *_: str, **kwargs: Any): - if not isinstance(self.external_id, list): - self.external_id = [self.external_id] if self.external_id is not None else [] - self.external_id = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.external_id] - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Study(Record): - """ - Study Metadata - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Study"] - class_class_curie: ClassVar[str] = "includedcc:Study" - class_name: ClassVar[str] = "Study" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Study - - study_id: Union[str, StudyStudyId] = None - study_title: str = None - study_code: str = None - program: Union[Union[str, "EnumProgram"], list[Union[str, "EnumProgram"]]] = None - principal_investigator: Union[Union[dict, "Investigator"], list[Union[dict, "Investigator"]]] = None - contact: Union[Union[dict, "Investigator"], list[Union[dict, "Investigator"]]] = None - study_description: str = None - parent_study: Optional[Union[str, StudyStudyId]] = None - study_short_name: Optional[str] = None - funding_source: Optional[Union[str, list[str]]] = empty_list() - website: Optional[Union[str, URI]] = None - publication: Optional[Union[Union[dict, "Publication"], list[Union[dict, "Publication"]]]] = empty_list() - acknowledgments: Optional[str] = None - citation_statement: Optional[str] = None - do_id: Optional[Union[str, DOIDoId]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.study_id): - self.MissingRequiredField("study_id") - if not isinstance(self.study_id, StudyStudyId): - self.study_id = StudyStudyId(self.study_id) - - if self._is_empty(self.study_title): - self.MissingRequiredField("study_title") - if not isinstance(self.study_title, str): - self.study_title = str(self.study_title) - - if self._is_empty(self.study_code): - self.MissingRequiredField("study_code") - if not isinstance(self.study_code, str): - self.study_code = str(self.study_code) - - if self._is_empty(self.program): - self.MissingRequiredField("program") - if not isinstance(self.program, list): - self.program = [self.program] if self.program is not None else [] - self.program = [v if isinstance(v, EnumProgram) else EnumProgram(v) for v in self.program] - - if self._is_empty(self.principal_investigator): - self.MissingRequiredField("principal_investigator") - if not isinstance(self.principal_investigator, list): - self.principal_investigator = [self.principal_investigator] if self.principal_investigator is not None else [] - self.principal_investigator = [v if isinstance(v, Investigator) else Investigator(**as_dict(v)) for v in self.principal_investigator] - - if self._is_empty(self.contact): - self.MissingRequiredField("contact") - if not isinstance(self.contact, list): - self.contact = [self.contact] if self.contact is not None else [] - self.contact = [v if isinstance(v, Investigator) else Investigator(**as_dict(v)) for v in self.contact] - - if self._is_empty(self.study_description): - self.MissingRequiredField("study_description") - if not isinstance(self.study_description, str): - self.study_description = str(self.study_description) - - if self.parent_study is not None and not isinstance(self.parent_study, StudyStudyId): - self.parent_study = StudyStudyId(self.parent_study) - - if self.study_short_name is not None and not isinstance(self.study_short_name, str): - self.study_short_name = str(self.study_short_name) - - if not isinstance(self.funding_source, list): - self.funding_source = [self.funding_source] if self.funding_source is not None else [] - self.funding_source = [v if isinstance(v, str) else str(v) for v in self.funding_source] - - if self.website is not None and not isinstance(self.website, URI): - self.website = URI(self.website) - - if not isinstance(self.publication, list): - self.publication = [self.publication] if self.publication is not None else [] - self.publication = [v if isinstance(v, Publication) else Publication(**as_dict(v)) for v in self.publication] - - if self.acknowledgments is not None and not isinstance(self.acknowledgments, str): - self.acknowledgments = str(self.acknowledgments) - - if self.citation_statement is not None and not isinstance(self.citation_statement, str): - self.citation_statement = str(self.citation_statement) - - if self.do_id is not None and not isinstance(self.do_id, DOIDoId): - self.do_id = DOIDoId(self.do_id) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class StudyMetadata(Record): - """ - Additional features about studies that may not apply to all studies - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["StudyMetadata"] - class_class_curie: ClassVar[str] = "includedcc:StudyMetadata" - class_name: ClassVar[str] = "StudyMetadata" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.StudyMetadata - - study_id: Union[str, StudyMetadataStudyId] = None - participant_lifespan_stage: Union[Union[str, "EnumParticipantLifespanStage"], list[Union[str, "EnumParticipantLifespanStage"]]] = None - study_design: Union[Union[str, "EnumStudyDesign"], list[Union[str, "EnumStudyDesign"]]] = None - clinical_data_source_type: Union[Union[str, "EnumClinicalDataSourceType"], list[Union[str, "EnumClinicalDataSourceType"]]] = None - data_category: Union[Union[str, "EnumDataCategory"], list[Union[str, "EnumDataCategory"]]] = None - research_domain: Union[Union[str, "EnumResearchDomain"], list[Union[str, "EnumResearchDomain"]]] = None - expected_number_of_participants: int = None - actual_number_of_participants: int = None - selection_criteria: Optional[str] = None - vbr: Optional[Union[dict, "VirtualBiorepository"]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.study_id): - self.MissingRequiredField("study_id") - if not isinstance(self.study_id, StudyMetadataStudyId): - self.study_id = StudyMetadataStudyId(self.study_id) - - if self._is_empty(self.participant_lifespan_stage): - self.MissingRequiredField("participant_lifespan_stage") - if not isinstance(self.participant_lifespan_stage, list): - self.participant_lifespan_stage = [self.participant_lifespan_stage] if self.participant_lifespan_stage is not None else [] - self.participant_lifespan_stage = [v if isinstance(v, EnumParticipantLifespanStage) else EnumParticipantLifespanStage(v) for v in self.participant_lifespan_stage] - - if self._is_empty(self.study_design): - self.MissingRequiredField("study_design") - if not isinstance(self.study_design, list): - self.study_design = [self.study_design] if self.study_design is not None else [] - self.study_design = [v if isinstance(v, EnumStudyDesign) else EnumStudyDesign(v) for v in self.study_design] - - if self._is_empty(self.clinical_data_source_type): - self.MissingRequiredField("clinical_data_source_type") - if not isinstance(self.clinical_data_source_type, list): - self.clinical_data_source_type = [self.clinical_data_source_type] if self.clinical_data_source_type is not None else [] - self.clinical_data_source_type = [v if isinstance(v, EnumClinicalDataSourceType) else EnumClinicalDataSourceType(v) for v in self.clinical_data_source_type] - - if self._is_empty(self.data_category): - self.MissingRequiredField("data_category") - if not isinstance(self.data_category, list): - self.data_category = [self.data_category] if self.data_category is not None else [] - self.data_category = [v if isinstance(v, EnumDataCategory) else EnumDataCategory(v) for v in self.data_category] - - if self._is_empty(self.research_domain): - self.MissingRequiredField("research_domain") - if not isinstance(self.research_domain, list): - self.research_domain = [self.research_domain] if self.research_domain is not None else [] - self.research_domain = [v if isinstance(v, EnumResearchDomain) else EnumResearchDomain(v) for v in self.research_domain] - - if self._is_empty(self.expected_number_of_participants): - self.MissingRequiredField("expected_number_of_participants") - if not isinstance(self.expected_number_of_participants, int): - self.expected_number_of_participants = int(self.expected_number_of_participants) - - if self._is_empty(self.actual_number_of_participants): - self.MissingRequiredField("actual_number_of_participants") - if not isinstance(self.actual_number_of_participants, int): - self.actual_number_of_participants = int(self.actual_number_of_participants) - - if self.selection_criteria is not None and not isinstance(self.selection_criteria, str): - self.selection_criteria = str(self.selection_criteria) - - if self.vbr is not None and not isinstance(self.vbr, VirtualBiorepository): - self.vbr = VirtualBiorepository(**as_dict(self.vbr)) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class VirtualBiorepository(Record): - """ - An organization that can provide access to specimen for further analysis. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["VirtualBiorepository"] - class_class_curie: ClassVar[str] = "includedcc:VirtualBiorepository" - class_name: ClassVar[str] = "VirtualBiorepository" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.VirtualBiorepository - - contact: Union[Union[dict, "Investigator"], list[Union[dict, "Investigator"]]] = None - name: Optional[str] = None - institution: Optional[str] = None - website: Optional[Union[str, URI]] = None - vbr_readme: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.contact): - self.MissingRequiredField("contact") - if not isinstance(self.contact, list): - self.contact = [self.contact] if self.contact is not None else [] - self.contact = [v if isinstance(v, Investigator) else Investigator(**as_dict(v)) for v in self.contact] - - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.institution is not None and not isinstance(self.institution, str): - self.institution = str(self.institution) - - if self.website is not None and not isinstance(self.website, URI): - self.website = URI(self.website) - - if self.vbr_readme is not None and not isinstance(self.vbr_readme, str): - self.vbr_readme = str(self.vbr_readme) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class DOI(Record): - """ - A DOI is a permanent reference with metadata about a digital object. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["DOI"] - class_class_curie: ClassVar[str] = "includedcc:DOI" - class_name: ClassVar[str] = "DOI" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.DOI - - do_id: Union[str, DOIDoId] = None - bibliographic_reference: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.do_id): - self.MissingRequiredField("do_id") - if not isinstance(self.do_id, DOIDoId): - self.do_id = DOIDoId(self.do_id) - - if self.bibliographic_reference is not None and not isinstance(self.bibliographic_reference, str): - self.bibliographic_reference = str(self.bibliographic_reference) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Investigator(Record): - """ - An individual who made contributions to the collection, analysis, or sharing of data. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Investigator"] - class_class_curie: ClassVar[str] = "includedcc:Investigator" - class_name: ClassVar[str] = "Investigator" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Investigator - - name: Optional[str] = None - institution: Optional[str] = None - investigator_title: Optional[str] = None - email: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.institution is not None and not isinstance(self.institution, str): - self.institution = str(self.institution) - - if self.investigator_title is not None and not isinstance(self.investigator_title, str): - self.investigator_title = str(self.investigator_title) - - if self.email is not None and not isinstance(self.email, str): - self.email = str(self.email) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Publication(Record): - """ - Information about a specific publication. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Publication"] - class_class_curie: ClassVar[str] = "includedcc:Publication" - class_name: ClassVar[str] = "Publication" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Publication - - bibliographic_reference: Optional[str] = None - website: Optional[Union[str, URI]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self.bibliographic_reference is not None and not isinstance(self.bibliographic_reference, str): - self.bibliographic_reference = str(self.bibliographic_reference) - - if self.website is not None and not isinstance(self.website, URI): - self.website = URI(self.website) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Subject(Record): - """ - This entity is the subject about which data or references are recorded. This includes the idea of a human - participant in a study, a cell line, an animal model, or any other similar entity. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Subject"] - class_class_curie: ClassVar[str] = "includedcc:Subject" - class_name: ClassVar[str] = "Subject" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Subject - - subject_id: Union[str, SubjectSubjectId] = None - subject_type: Union[str, "EnumSubjectType"] = None - organism_type: Optional[Union[str, URIorCURIE]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.subject_id): - self.MissingRequiredField("subject_id") - if not isinstance(self.subject_id, SubjectSubjectId): - self.subject_id = SubjectSubjectId(self.subject_id) - - if self._is_empty(self.subject_type): - self.MissingRequiredField("subject_type") - if not isinstance(self.subject_type, EnumSubjectType): - self.subject_type = EnumSubjectType(self.subject_type) - - if self.organism_type is not None and not isinstance(self.organism_type, URIorCURIE): - self.organism_type = URIorCURIE(self.organism_type) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Demographics(Record): - """ - Basic participant demographics summary - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Demographics"] - class_class_curie: ClassVar[str] = "includedcc:Demographics" - class_name: ClassVar[str] = "Demographics" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Demographics - - subject_id: Union[str, DemographicsSubjectId] = None - sex: Union[str, "EnumSex"] = None - race: Union[Union[str, "EnumRace"], list[Union[str, "EnumRace"]]] = None - ethnicity: Union[str, "EnumEthnicity"] = None - down_syndrome_status: Union[str, "EnumDownSyndromeStatus"] = None - age_at_last_vital_status: Optional[int] = None - vital_status: Optional[Union[str, "EnumVitalStatus"]] = None - age_at_first_engagement: Optional[int] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.subject_id): - self.MissingRequiredField("subject_id") - if not isinstance(self.subject_id, DemographicsSubjectId): - self.subject_id = DemographicsSubjectId(self.subject_id) - - if self._is_empty(self.sex): - self.MissingRequiredField("sex") - if not isinstance(self.sex, EnumSex): - self.sex = EnumSex(self.sex) - - if self._is_empty(self.race): - self.MissingRequiredField("race") - if not isinstance(self.race, list): - self.race = [self.race] if self.race is not None else [] - self.race = [v if isinstance(v, EnumRace) else EnumRace(v) for v in self.race] - - if self._is_empty(self.ethnicity): - self.MissingRequiredField("ethnicity") - if not isinstance(self.ethnicity, EnumEthnicity): - self.ethnicity = EnumEthnicity(self.ethnicity) - - if self._is_empty(self.down_syndrome_status): - self.MissingRequiredField("down_syndrome_status") - if not isinstance(self.down_syndrome_status, EnumDownSyndromeStatus): - self.down_syndrome_status = EnumDownSyndromeStatus(self.down_syndrome_status) - - if self.age_at_last_vital_status is not None and not isinstance(self.age_at_last_vital_status, int): - self.age_at_last_vital_status = int(self.age_at_last_vital_status) - - if self.vital_status is not None and not isinstance(self.vital_status, EnumVitalStatus): - self.vital_status = EnumVitalStatus(self.vital_status) - - if self.age_at_first_engagement is not None and not isinstance(self.age_at_first_engagement, int): - self.age_at_first_engagement = int(self.age_at_first_engagement) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class SubjectAssertion(Record): - """ - Assertion about a particular Subject. May include Conditions, Measurements, etc. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["SubjectAssertion"] - class_class_curie: ClassVar[str] = "includedcc:SubjectAssertion" - class_name: ClassVar[str] = "SubjectAssertion" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.SubjectAssertion - - assertion_id: Union[str, SubjectAssertionAssertionId] = None - subject_id: Optional[Union[str, SubjectSubjectId]] = None - encounter_id: Optional[Union[str, EncounterEncounterId]] = None - assertion_provenance: Optional[Union[str, "EnumAssertionProvenance"]] = None - age_at_assertion: Optional[int] = None - age_at_event: Optional[int] = None - age_at_resolution: Optional[int] = None - concept: Optional[Union[Union[str, ConceptConceptCurie], list[Union[str, ConceptConceptCurie]]]] = empty_list() - concept_source: Optional[str] = None - value_concept: Optional[Union[Union[str, ConceptConceptCurie], list[Union[str, ConceptConceptCurie]]]] = empty_list() - value_number: Optional[float] = None - value_source: Optional[str] = None - value_unit: Optional[Union[str, ConceptConceptCurie]] = None - value_unit_source: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.assertion_id): - self.MissingRequiredField("assertion_id") - if not isinstance(self.assertion_id, SubjectAssertionAssertionId): - self.assertion_id = SubjectAssertionAssertionId(self.assertion_id) - - if self.subject_id is not None and not isinstance(self.subject_id, SubjectSubjectId): - self.subject_id = SubjectSubjectId(self.subject_id) - - if self.encounter_id is not None and not isinstance(self.encounter_id, EncounterEncounterId): - self.encounter_id = EncounterEncounterId(self.encounter_id) - - if self.assertion_provenance is not None and not isinstance(self.assertion_provenance, EnumAssertionProvenance): - self.assertion_provenance = EnumAssertionProvenance(self.assertion_provenance) - - if self.age_at_assertion is not None and not isinstance(self.age_at_assertion, int): - self.age_at_assertion = int(self.age_at_assertion) - - if self.age_at_event is not None and not isinstance(self.age_at_event, int): - self.age_at_event = int(self.age_at_event) - - if self.age_at_resolution is not None and not isinstance(self.age_at_resolution, int): - self.age_at_resolution = int(self.age_at_resolution) - - if not isinstance(self.concept, list): - self.concept = [self.concept] if self.concept is not None else [] - self.concept = [v if isinstance(v, ConceptConceptCurie) else ConceptConceptCurie(v) for v in self.concept] - - if self.concept_source is not None and not isinstance(self.concept_source, str): - self.concept_source = str(self.concept_source) - - if not isinstance(self.value_concept, list): - self.value_concept = [self.value_concept] if self.value_concept is not None else [] - self.value_concept = [v if isinstance(v, ConceptConceptCurie) else ConceptConceptCurie(v) for v in self.value_concept] - - if self.value_number is not None and not isinstance(self.value_number, float): - self.value_number = float(self.value_number) - - if self.value_source is not None and not isinstance(self.value_source, str): - self.value_source = str(self.value_source) - - if self.value_unit is not None and not isinstance(self.value_unit, ConceptConceptCurie): - self.value_unit = ConceptConceptCurie(self.value_unit) - - if self.value_unit_source is not None and not isinstance(self.value_unit_source, str): - self.value_unit_source = str(self.value_unit_source) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Concept(YAMLRoot): - """ - A standardized concept with display information. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Concept"] - class_class_curie: ClassVar[str] = "includedcc:Concept" - class_name: ClassVar[str] = "Concept" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Concept - - concept_curie: Union[str, ConceptConceptCurie] = None - display: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.concept_curie): - self.MissingRequiredField("concept_curie") - if not isinstance(self.concept_curie, ConceptConceptCurie): - self.concept_curie = ConceptConceptCurie(self.concept_curie) - - if self.display is not None and not isinstance(self.display, str): - self.display = str(self.display) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Sample(Record): - """ - A functionally equivalent specimen taken from a participant or processed from such a sample. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Sample"] - class_class_curie: ClassVar[str] = "includedcc:Sample" - class_name: ClassVar[str] = "Sample" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Sample - - sample_id: Union[str, SampleSampleId] = None - sample_type: Union[str, URIorCURIE] = None - biospecimen_collection_id: Optional[Union[str, BiospecimenCollectionBiospecimenCollectionId]] = None - parent_sample_id: Optional[Union[str, SampleSampleId]] = None - processing: Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]] = empty_list() - availablity_status: Optional[Union[str, "EnumAvailabilityStatus"]] = None - storage_method: Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]] = empty_list() - quantity_number: Optional[float] = None - quantity_unit: Optional[Union[str, ConceptConceptCurie]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.sample_id): - self.MissingRequiredField("sample_id") - if not isinstance(self.sample_id, SampleSampleId): - self.sample_id = SampleSampleId(self.sample_id) - - if self._is_empty(self.sample_type): - self.MissingRequiredField("sample_type") - if not isinstance(self.sample_type, URIorCURIE): - self.sample_type = URIorCURIE(self.sample_type) - - if self.biospecimen_collection_id is not None and not isinstance(self.biospecimen_collection_id, BiospecimenCollectionBiospecimenCollectionId): - self.biospecimen_collection_id = BiospecimenCollectionBiospecimenCollectionId(self.biospecimen_collection_id) - - if self.parent_sample_id is not None and not isinstance(self.parent_sample_id, SampleSampleId): - self.parent_sample_id = SampleSampleId(self.parent_sample_id) - - if not isinstance(self.processing, list): - self.processing = [self.processing] if self.processing is not None else [] - self.processing = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.processing] - - if self.availablity_status is not None and not isinstance(self.availablity_status, EnumAvailabilityStatus): - self.availablity_status = EnumAvailabilityStatus(self.availablity_status) - - if not isinstance(self.storage_method, list): - self.storage_method = [self.storage_method] if self.storage_method is not None else [] - self.storage_method = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.storage_method] - - if self.quantity_number is not None and not isinstance(self.quantity_number, float): - self.quantity_number = float(self.quantity_number) - - if self.quantity_unit is not None and not isinstance(self.quantity_unit, ConceptConceptCurie): - self.quantity_unit = ConceptConceptCurie(self.quantity_unit) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class BiospecimenCollection(Record): - """ - A biospecimen collection event which yields one or more Samples. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["BiospecimenCollection"] - class_class_curie: ClassVar[str] = "includedcc:BiospecimenCollection" - class_name: ClassVar[str] = "BiospecimenCollection" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.BiospecimenCollection - - biospecimen_collection_id: Union[str, BiospecimenCollectionBiospecimenCollectionId] = None - age_at_collection: Optional[float] = None - method: Optional[Union[str, "EnumSampleCollectionMethod"]] = None - site: Optional[Union[str, "EnumSite"]] = None - spatial_qualifier: Optional[Union[str, "EnumSpatialQualifiers"]] = None - laterality: Optional[Union[str, "EnumLaterality"]] = None - encounter_id: Optional[Union[str, EncounterEncounterId]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.biospecimen_collection_id): - self.MissingRequiredField("biospecimen_collection_id") - if not isinstance(self.biospecimen_collection_id, BiospecimenCollectionBiospecimenCollectionId): - self.biospecimen_collection_id = BiospecimenCollectionBiospecimenCollectionId(self.biospecimen_collection_id) - - if self.age_at_collection is not None and not isinstance(self.age_at_collection, float): - self.age_at_collection = float(self.age_at_collection) - - if self.encounter_id is not None and not isinstance(self.encounter_id, EncounterEncounterId): - self.encounter_id = EncounterEncounterId(self.encounter_id) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Aliquot(Record): - """ - A specific tube or amount of a biospecimen associated with a Sample. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Aliquot"] - class_class_curie: ClassVar[str] = "includedcc:Aliquot" - class_name: ClassVar[str] = "Aliquot" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Aliquot - - aliquot_id: Union[str, AliquotAliquotId] = None - sample_id: Optional[Union[str, SampleSampleId]] = None - availablity_status: Optional[Union[str, "EnumAvailabilityStatus"]] = None - quantity_number: Optional[float] = None - quantity_unit: Optional[Union[str, ConceptConceptCurie]] = None - concentration_number: Optional[float] = None - concentration_unit: Optional[Union[str, ConceptConceptCurie]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.aliquot_id): - self.MissingRequiredField("aliquot_id") - if not isinstance(self.aliquot_id, AliquotAliquotId): - self.aliquot_id = AliquotAliquotId(self.aliquot_id) - - if self.sample_id is not None and not isinstance(self.sample_id, SampleSampleId): - self.sample_id = SampleSampleId(self.sample_id) - - if self.availablity_status is not None and not isinstance(self.availablity_status, EnumAvailabilityStatus): - self.availablity_status = EnumAvailabilityStatus(self.availablity_status) - - if self.quantity_number is not None and not isinstance(self.quantity_number, float): - self.quantity_number = float(self.quantity_number) - - if self.quantity_unit is not None and not isinstance(self.quantity_unit, ConceptConceptCurie): - self.quantity_unit = ConceptConceptCurie(self.quantity_unit) - - if self.concentration_number is not None and not isinstance(self.concentration_number, float): - self.concentration_number = float(self.concentration_number) - - if self.concentration_unit is not None and not isinstance(self.concentration_unit, ConceptConceptCurie): - self.concentration_unit = ConceptConceptCurie(self.concentration_unit) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Encounter(Record): - """ - An event at which data was collected about a participant, an intervention was made, or information about a - participant was recorded. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Encounter"] - class_class_curie: ClassVar[str] = "includedcc:Encounter" - class_name: ClassVar[str] = "Encounter" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Encounter - - encounter_id: Union[str, EncounterEncounterId] = None - subject_id: Optional[Union[str, SubjectSubjectId]] = None - encounter_definition_id: Optional[Union[str, EncounterDefinitionEncounterDefinitionId]] = None - age_at_event: Optional[int] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.encounter_id): - self.MissingRequiredField("encounter_id") - if not isinstance(self.encounter_id, EncounterEncounterId): - self.encounter_id = EncounterEncounterId(self.encounter_id) - - if self.subject_id is not None and not isinstance(self.subject_id, SubjectSubjectId): - self.subject_id = SubjectSubjectId(self.subject_id) - - if self.encounter_definition_id is not None and not isinstance(self.encounter_definition_id, EncounterDefinitionEncounterDefinitionId): - self.encounter_definition_id = EncounterDefinitionEncounterDefinitionId(self.encounter_definition_id) - - if self.age_at_event is not None and not isinstance(self.age_at_event, int): - self.age_at_event = int(self.age_at_event) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class EncounterDefinition(Record): - """ - A definition of an encounter type in this study, ie, an event at which data was collected about a participant, an - intervention was made, or information about a participant was recorded. This may be something planned by a study - or a type of data collection. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["EncounterDefinition"] - class_class_curie: ClassVar[str] = "includedcc:EncounterDefinition" - class_name: ClassVar[str] = "EncounterDefinition" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.EncounterDefinition - - encounter_definition_id: Union[str, EncounterDefinitionEncounterDefinitionId] = None - name: Optional[str] = None - description: Optional[str] = None - activity_definition_id: Optional[Union[Union[str, ActivityDefinitionActivityDefinitionId], list[Union[str, ActivityDefinitionActivityDefinitionId]]]] = empty_list() - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.encounter_definition_id): - self.MissingRequiredField("encounter_definition_id") - if not isinstance(self.encounter_definition_id, EncounterDefinitionEncounterDefinitionId): - self.encounter_definition_id = EncounterDefinitionEncounterDefinitionId(self.encounter_definition_id) - - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.description is not None and not isinstance(self.description, str): - self.description = str(self.description) - - if not isinstance(self.activity_definition_id, list): - self.activity_definition_id = [self.activity_definition_id] if self.activity_definition_id is not None else [] - self.activity_definition_id = [v if isinstance(v, ActivityDefinitionActivityDefinitionId) else ActivityDefinitionActivityDefinitionId(v) for v in self.activity_definition_id] - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class ActivityDefinition(Record): - """ - A definition of an activity in this study, eg, a biospecimen collection, intervention, survey, or assessment. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["ActivityDefinition"] - class_class_curie: ClassVar[str] = "includedcc:ActivityDefinition" - class_name: ClassVar[str] = "ActivityDefinition" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.ActivityDefinition - - activity_definition_id: Union[str, ActivityDefinitionActivityDefinitionId] = None - name: Optional[str] = None - description: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.activity_definition_id): - self.MissingRequiredField("activity_definition_id") - if not isinstance(self.activity_definition_id, ActivityDefinitionActivityDefinitionId): - self.activity_definition_id = ActivityDefinitionActivityDefinitionId(self.activity_definition_id) - - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.description is not None and not isinstance(self.description, str): - self.description = str(self.description) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class File(Record): - """ - Required information for portal use. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["File"] - class_class_curie: ClassVar[str] = "includedcc:File" - class_name: ClassVar[str] = "File" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.File - - file_id: Union[str, FileFileId] = None - study_id: Union[str, StudyStudyId] = None - subject_id: Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]] = None - sample_id: Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]] = None - s3_file_path: str = None - filename: str = None - size: int = None - format: Union[str, "EnumEDAMFormats"] = None - data_category: Union[str, "EnumDataCategory"] = None - data_type: Union[str, "EnumEDAMDataTypes"] = None - hash: Union[dict, "FileHash"] = None - staging_url: Optional[Union[str, URIorCURIE]] = None - release_url: Optional[Union[str, URIorCURIE]] = None - drs_uri: Optional[Union[str, URIorCURIE]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.file_id): - self.MissingRequiredField("file_id") - if not isinstance(self.file_id, FileFileId): - self.file_id = FileFileId(self.file_id) - - if self._is_empty(self.study_id): - self.MissingRequiredField("study_id") - if not isinstance(self.study_id, StudyStudyId): - self.study_id = StudyStudyId(self.study_id) - - if self._is_empty(self.subject_id): - self.MissingRequiredField("subject_id") - if not isinstance(self.subject_id, list): - self.subject_id = [self.subject_id] if self.subject_id is not None else [] - self.subject_id = [v if isinstance(v, SubjectSubjectId) else SubjectSubjectId(v) for v in self.subject_id] - - if self._is_empty(self.sample_id): - self.MissingRequiredField("sample_id") - if not isinstance(self.sample_id, list): - self.sample_id = [self.sample_id] if self.sample_id is not None else [] - self.sample_id = [v if isinstance(v, SampleSampleId) else SampleSampleId(v) for v in self.sample_id] - - if self._is_empty(self.s3_file_path): - self.MissingRequiredField("s3_file_path") - if not isinstance(self.s3_file_path, str): - self.s3_file_path = str(self.s3_file_path) - - if self._is_empty(self.filename): - self.MissingRequiredField("filename") - if not isinstance(self.filename, str): - self.filename = str(self.filename) - - if self._is_empty(self.size): - self.MissingRequiredField("size") - if not isinstance(self.size, int): - self.size = int(self.size) - - if self._is_empty(self.data_category): - self.MissingRequiredField("data_category") - if not isinstance(self.data_category, EnumDataCategory): - self.data_category = EnumDataCategory(self.data_category) - - if self._is_empty(self.size): - self.MissingRequiredField("size") - if not isinstance(self.size, int): - self.size = int(self.size) - - if self._is_empty(self.hash): - self.MissingRequiredField("hash") - if not isinstance(self.hash, FileHash): - self.hash = FileHash(**as_dict(self.hash)) - - if self.staging_url is not None and not isinstance(self.staging_url, URIorCURIE): - self.staging_url = URIorCURIE(self.staging_url) - - if self.release_url is not None and not isinstance(self.release_url, URIorCURIE): - self.release_url = URIorCURIE(self.release_url) - - if self.drs_uri is not None and not isinstance(self.drs_uri, URIorCURIE): - self.drs_uri = URIorCURIE(self.drs_uri) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class FileHash(YAMLRoot): - """ - Type and value of a file content hash. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["FileHash"] - class_class_curie: ClassVar[str] = "includedcc:FileHash" - class_name: ClassVar[str] = "FileHash" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileHash - - hash_type: Union[str, "EnumFileHashType"] = None - hash_value: str = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.hash_type): - self.MissingRequiredField("hash_type") - if not isinstance(self.hash_type, EnumFileHashType): - self.hash_type = EnumFileHashType(self.hash_type) - - if self._is_empty(self.hash_value): - self.MissingRequiredField("hash_value") - if not isinstance(self.hash_value, str): - self.hash_value = str(self.hash_value) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class Dataset(YAMLRoot): - """ - Set of files grouped together for release. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["Dataset"] - class_class_curie: ClassVar[str] = "includedcc:Dataset" - class_name: ClassVar[str] = "Dataset" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.Dataset - - dataset_id: Union[str, DatasetDatasetId] = None - name: Optional[str] = None - description: Optional[str] = None - do_id: Optional[Union[str, DOIDoId]] = None - file_id: Optional[Union[Union[str, FileFileId], list[Union[str, FileFileId]]]] = empty_list() - publication: Optional[Union[Union[dict, Publication], list[Union[dict, Publication]]]] = empty_list() - data_collection_start: Optional[str] = None - data_collection_end: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.dataset_id): - self.MissingRequiredField("dataset_id") - if not isinstance(self.dataset_id, DatasetDatasetId): - self.dataset_id = DatasetDatasetId(self.dataset_id) - - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) - - if self.description is not None and not isinstance(self.description, str): - self.description = str(self.description) - - if self.do_id is not None and not isinstance(self.do_id, DOIDoId): - self.do_id = DOIDoId(self.do_id) - - if not isinstance(self.file_id, list): - self.file_id = [self.file_id] if self.file_id is not None else [] - self.file_id = [v if isinstance(v, FileFileId) else FileFileId(v) for v in self.file_id] - - if not isinstance(self.publication, list): - self.publication = [self.publication] if self.publication is not None else [] - self.publication = [v if isinstance(v, Publication) else Publication(**as_dict(v)) for v in self.publication] - - if self.data_collection_start is not None and not isinstance(self.data_collection_start, str): - self.data_collection_start = str(self.data_collection_start) - - if self.data_collection_end is not None and not isinstance(self.data_collection_end, str): - self.data_collection_end = str(self.data_collection_end) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class FileAdmin(YAMLRoot): - """ - File unvierse; contains all information about a file that may be needed for operational work - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["FileAdmin"] - class_class_curie: ClassVar[str] = "includedcc:FileAdmin" - class_name: ClassVar[str] = "FileAdmin" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileAdmin - - file_id: Union[str, FileAdminFileId] = None - study_id: Union[str, StudyStudyId] = None - s3_file_path: str = None - file_category: str = None - size: int = None - s3_key: str = None - file_extension: str = None - aws_account_id: str = None - account_name: str = None - account_alias: str = None - bucket_study_id: str = None - bucket: str = None - s3_created_at: Union[str, XSDDateTime] = None - s3_modified_at: Union[str, XSDDateTime] = None - intelligent_tiering_access_tier: str = None - is_delete_marker: Union[bool, Bool] = None - is_latest: Union[bool, Bool] = None - storage_class: str = None - file_type: str = None - encryption_status: str = None - is_multipart_uploaded: str = None - object_lock_level_hold_status: str = None - object_lock_mode: str = None - object_lock_retain_until_date: Union[str, XSDDateTime] = None - replication_status: str = None - version_id: str = None - hash: Union[dict, FileHash] = None - access_type: Union[str, "EnumAccessType"] = None - acl: str = None - is_released: Union[bool, Bool] = None - is_registered: Union[bool, Bool] = None - experimental_strategy: Union[str, "EnumExperimentalStrategy"] = None - subject_id: Optional[Union[str, SubjectSubjectId]] = None - sample_id: Optional[Union[str, SampleSampleId]] = None - data_transfer_id: Optional[str] = None - manifest_hash_value: Optional[str] = None - file_hash_validation_status: Optional[str] = None - staging_url: Optional[Union[str, URIorCURIE]] = None - release_url: Optional[Union[str, URIorCURIE]] = None - access_url: Optional[str] = None - drs_uri: Optional[Union[str, URIorCURIE]] = None - repository: Optional[Union[str, "EnumRepository"]] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.file_id): - self.MissingRequiredField("file_id") - if not isinstance(self.file_id, FileAdminFileId): - self.file_id = FileAdminFileId(self.file_id) - - if self._is_empty(self.study_id): - self.MissingRequiredField("study_id") - if not isinstance(self.study_id, StudyStudyId): - self.study_id = StudyStudyId(self.study_id) - - if self._is_empty(self.s3_file_path): - self.MissingRequiredField("s3_file_path") - if not isinstance(self.s3_file_path, str): - self.s3_file_path = str(self.s3_file_path) - - if self._is_empty(self.file_category): - self.MissingRequiredField("file_category") - if not isinstance(self.file_category, str): - self.file_category = str(self.file_category) - - if self._is_empty(self.size): - self.MissingRequiredField("size") - if not isinstance(self.size, int): - self.size = int(self.size) - - if self._is_empty(self.s3_key): - self.MissingRequiredField("s3_key") - if not isinstance(self.s3_key, str): - self.s3_key = str(self.s3_key) - - if self._is_empty(self.file_extension): - self.MissingRequiredField("file_extension") - if not isinstance(self.file_extension, str): - self.file_extension = str(self.file_extension) - - if self._is_empty(self.aws_account_id): - self.MissingRequiredField("aws_account_id") - if not isinstance(self.aws_account_id, str): - self.aws_account_id = str(self.aws_account_id) - - if self._is_empty(self.account_name): - self.MissingRequiredField("account_name") - if not isinstance(self.account_name, str): - self.account_name = str(self.account_name) - - if self._is_empty(self.account_alias): - self.MissingRequiredField("account_alias") - if not isinstance(self.account_alias, str): - self.account_alias = str(self.account_alias) - - if self._is_empty(self.bucket_study_id): - self.MissingRequiredField("bucket_study_id") - if not isinstance(self.bucket_study_id, str): - self.bucket_study_id = str(self.bucket_study_id) - - if self._is_empty(self.bucket): - self.MissingRequiredField("bucket") - if not isinstance(self.bucket, str): - self.bucket = str(self.bucket) - - if self._is_empty(self.s3_created_at): - self.MissingRequiredField("s3_created_at") - if not isinstance(self.s3_created_at, XSDDateTime): - self.s3_created_at = XSDDateTime(self.s3_created_at) - - if self._is_empty(self.s3_modified_at): - self.MissingRequiredField("s3_modified_at") - if not isinstance(self.s3_modified_at, XSDDateTime): - self.s3_modified_at = XSDDateTime(self.s3_modified_at) - - if self._is_empty(self.intelligent_tiering_access_tier): - self.MissingRequiredField("intelligent_tiering_access_tier") - if not isinstance(self.intelligent_tiering_access_tier, str): - self.intelligent_tiering_access_tier = str(self.intelligent_tiering_access_tier) - - if self._is_empty(self.is_delete_marker): - self.MissingRequiredField("is_delete_marker") - if not isinstance(self.is_delete_marker, Bool): - self.is_delete_marker = Bool(self.is_delete_marker) - - if self._is_empty(self.is_latest): - self.MissingRequiredField("is_latest") - if not isinstance(self.is_latest, Bool): - self.is_latest = Bool(self.is_latest) - - if self._is_empty(self.storage_class): - self.MissingRequiredField("storage_class") - if not isinstance(self.storage_class, str): - self.storage_class = str(self.storage_class) - - if self._is_empty(self.file_type): - self.MissingRequiredField("file_type") - if not isinstance(self.file_type, str): - self.file_type = str(self.file_type) - - if self._is_empty(self.encryption_status): - self.MissingRequiredField("encryption_status") - if not isinstance(self.encryption_status, str): - self.encryption_status = str(self.encryption_status) - - if self._is_empty(self.is_multipart_uploaded): - self.MissingRequiredField("is_multipart_uploaded") - if not isinstance(self.is_multipart_uploaded, str): - self.is_multipart_uploaded = str(self.is_multipart_uploaded) - - if self._is_empty(self.object_lock_level_hold_status): - self.MissingRequiredField("object_lock_level_hold_status") - if not isinstance(self.object_lock_level_hold_status, str): - self.object_lock_level_hold_status = str(self.object_lock_level_hold_status) - - if self._is_empty(self.object_lock_mode): - self.MissingRequiredField("object_lock_mode") - if not isinstance(self.object_lock_mode, str): - self.object_lock_mode = str(self.object_lock_mode) - - if self._is_empty(self.object_lock_retain_until_date): - self.MissingRequiredField("object_lock_retain_until_date") - if not isinstance(self.object_lock_retain_until_date, XSDDateTime): - self.object_lock_retain_until_date = XSDDateTime(self.object_lock_retain_until_date) - - if self._is_empty(self.replication_status): - self.MissingRequiredField("replication_status") - if not isinstance(self.replication_status, str): - self.replication_status = str(self.replication_status) - - if self._is_empty(self.version_id): - self.MissingRequiredField("version_id") - if not isinstance(self.version_id, str): - self.version_id = str(self.version_id) - - if self._is_empty(self.hash): - self.MissingRequiredField("hash") - if not isinstance(self.hash, FileHash): - self.hash = FileHash(**as_dict(self.hash)) - - if self._is_empty(self.access_type): - self.MissingRequiredField("access_type") - if not isinstance(self.access_type, EnumAccessType): - self.access_type = EnumAccessType(self.access_type) - - if self._is_empty(self.acl): - self.MissingRequiredField("acl") - if not isinstance(self.acl, str): - self.acl = str(self.acl) - - if self._is_empty(self.is_released): - self.MissingRequiredField("is_released") - if not isinstance(self.is_released, Bool): - self.is_released = Bool(self.is_released) - - if self._is_empty(self.is_registered): - self.MissingRequiredField("is_registered") - if not isinstance(self.is_registered, Bool): - self.is_registered = Bool(self.is_registered) - - if self._is_empty(self.experimental_strategy): - self.MissingRequiredField("experimental_strategy") - if not isinstance(self.experimental_strategy, EnumExperimentalStrategy): - self.experimental_strategy = EnumExperimentalStrategy(self.experimental_strategy) - - if self.subject_id is not None and not isinstance(self.subject_id, SubjectSubjectId): - self.subject_id = SubjectSubjectId(self.subject_id) - - if self.sample_id is not None and not isinstance(self.sample_id, SampleSampleId): - self.sample_id = SampleSampleId(self.sample_id) - - if self.data_transfer_id is not None and not isinstance(self.data_transfer_id, str): - self.data_transfer_id = str(self.data_transfer_id) - - if self.manifest_hash_value is not None and not isinstance(self.manifest_hash_value, str): - self.manifest_hash_value = str(self.manifest_hash_value) - - if self.file_hash_validation_status is not None and not isinstance(self.file_hash_validation_status, str): - self.file_hash_validation_status = str(self.file_hash_validation_status) - - if self.staging_url is not None and not isinstance(self.staging_url, URIorCURIE): - self.staging_url = URIorCURIE(self.staging_url) - - if self.release_url is not None and not isinstance(self.release_url, URIorCURIE): - self.release_url = URIorCURIE(self.release_url) - - if self.access_url is not None and not isinstance(self.access_url, str): - self.access_url = str(self.access_url) - - if self.drs_uri is not None and not isinstance(self.drs_uri, URIorCURIE): - self.drs_uri = URIorCURIE(self.drs_uri) - - if self.repository is not None and not isinstance(self.repository, EnumRepository): - self.repository = EnumRepository(self.repository) - - super().__post_init__(**kwargs) - - -@dataclass(repr=False) -class FileAssay(YAMLRoot): - """ - A file produced by or associated with an assay or data acquisition process including omics, imaging, actigraphy, - and other experimental or observational data. - """ - _inherited_slots: ClassVar[list[str]] = [] - - class_class_uri: ClassVar[URIRef] = INCLUDEDCC["FileAssay"] - class_class_curie: ClassVar[str] = "includedcc:FileAssay" - class_name: ClassVar[str] = "FileAssay" - class_model_uri: ClassVar[URIRef] = INCLUDEDCC.FileAssay - - file_id: Union[str, FileAssayFileId] = None - subject_id: Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]] = None - sample_id: Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]] = None - data_category: Union[str, "EnumDataCategory"] = None - experimental_strategy: Union[str, "EnumExperimentalStrategy"] = None - data_type: Union[str, "EnumEDAMDataTypes"] = None - format: Union[str, "EnumEDAMFormats"] = None - size: int = None - access_type: Union[str, "EnumAccessType"] = None - platform: Union[str, "EnumPlatform"] = None - assay_center: Optional[Union[str, "EnumAssayCenter"]] = None - workflow_name: Optional[str] = None - workflow_version: Optional[str] = None - - def __post_init__(self, *_: str, **kwargs: Any): - if self._is_empty(self.file_id): - self.MissingRequiredField("file_id") - if not isinstance(self.file_id, FileAssayFileId): - self.file_id = FileAssayFileId(self.file_id) - - if self._is_empty(self.subject_id): - self.MissingRequiredField("subject_id") - if not isinstance(self.subject_id, list): - self.subject_id = [self.subject_id] if self.subject_id is not None else [] - self.subject_id = [v if isinstance(v, SubjectSubjectId) else SubjectSubjectId(v) for v in self.subject_id] - - if self._is_empty(self.sample_id): - self.MissingRequiredField("sample_id") - if not isinstance(self.sample_id, list): - self.sample_id = [self.sample_id] if self.sample_id is not None else [] - self.sample_id = [v if isinstance(v, SampleSampleId) else SampleSampleId(v) for v in self.sample_id] - - if self._is_empty(self.data_category): - self.MissingRequiredField("data_category") - if not isinstance(self.data_category, EnumDataCategory): - self.data_category = EnumDataCategory(self.data_category) - - if self._is_empty(self.experimental_strategy): - self.MissingRequiredField("experimental_strategy") - if not isinstance(self.experimental_strategy, EnumExperimentalStrategy): - self.experimental_strategy = EnumExperimentalStrategy(self.experimental_strategy) - - if self._is_empty(self.size): - self.MissingRequiredField("size") - if not isinstance(self.size, int): - self.size = int(self.size) - - if self._is_empty(self.access_type): - self.MissingRequiredField("access_type") - if not isinstance(self.access_type, EnumAccessType): - self.access_type = EnumAccessType(self.access_type) - - if self._is_empty(self.platform): - self.MissingRequiredField("platform") - if not isinstance(self.platform, EnumPlatform): - self.platform = EnumPlatform(self.platform) - - if self.assay_center is not None and not isinstance(self.assay_center, EnumAssayCenter): - self.assay_center = EnumAssayCenter(self.assay_center) - - if self.workflow_name is not None and not isinstance(self.workflow_name, str): - self.workflow_name = str(self.workflow_name) - - if self.workflow_version is not None and not isinstance(self.workflow_version, str): - self.workflow_version = str(self.workflow_version) - - super().__post_init__(**kwargs) - - -# Enumerations -class EnumProgram(EnumDefinitionImpl): - """ - Funding programs relevant to inform operations. - """ - include = PermissibleValue( - text="include", - title="INCLUDE") - kf = PermissibleValue( - text="kf", - title="KF") - other = PermissibleValue( - text="other", - title="Other") - - _defn = EnumDefinition( - name="EnumProgram", - description="Funding programs relevant to inform operations.", - ) - -class EnumResearchDomain(EnumDefinitionImpl): - """ - Domains of Research used to find studies. - """ - behavior_and_behavior_mechanisms = PermissibleValue( - text="behavior_and_behavior_mechanisms", - title="Behavior and Behavior Mechanisms", - meaning=MESH["D001520"]) - congenital_heart_defects = PermissibleValue( - text="congenital_heart_defects", - title="Congenital Heart Defects", - meaning=MESH["D006330"]) - immune_system_diseases = PermissibleValue( - text="immune_system_diseases", - title="Immune System Diseases", - meaning=MESH["D007154"]) - hematologic_diseases = PermissibleValue( - text="hematologic_diseases", - title="Hematologic Diseases", - meaning=MESH["D006402"]) - neurodevelopment = PermissibleValue( - text="neurodevelopment", - title="Neurodevelopment", - meaning=MESH["D065886"]) - sleep_wake_disorders = PermissibleValue( - text="sleep_wake_disorders", - title="Sleep Wake Disorders", - meaning=MESH["D012893"]) - all_co_occurring_conditions = PermissibleValue( - text="all_co_occurring_conditions", - title="All Co-occurring Conditions", - meaning=MESH["D013568"]) - physical_fitness = PermissibleValue( - text="physical_fitness", - title="Physical Fitness", - meaning=MESH["D010809"]) - other = PermissibleValue( - text="other", - title="Other") - - _defn = EnumDefinition( - name="EnumResearchDomain", - description="Domains of Research used to find studies.", - ) - -class EnumParticipantLifespanStage(EnumDefinitionImpl): - """ - Stages of life during which participants may be recruited. - """ - fetal = PermissibleValue( - text="fetal", - title="Fetal", - description="Before birth") - neonatal = PermissibleValue( - text="neonatal", - title="Neonatal", - description="0-28 days old") - pediatric = PermissibleValue( - text="pediatric", - title="Pediatric", - description="Birth-17 years old") - adult = PermissibleValue( - text="adult", - title="Adult", - description="18+ years old") - - _defn = EnumDefinition( - name="EnumParticipantLifespanStage", - description="Stages of life during which participants may be recruited.", - ) - -class EnumStudyDesign(EnumDefinitionImpl): - """ - Approaches for collecting data, investigating interventions, and/or analyzing data. - """ - case_control = PermissibleValue( - text="case_control", - title="Case-Control") - case_set = PermissibleValue( - text="case_set", - title="Case Set") - control_set = PermissibleValue( - text="control_set", - title="Control Set") - clinical_trial = PermissibleValue( - text="clinical_trial", - title="Clinical Trial") - cross_sectional = PermissibleValue( - text="cross_sectional", - title="Cross-Sectional") - family_twins_trios = PermissibleValue( - text="family_twins_trios", - title="Family/Twins/Trios") - interventional = PermissibleValue( - text="interventional", - title="Interventional") - longitudinal = PermissibleValue( - text="longitudinal", - title="Longitudinal") - trial_readiness_study = PermissibleValue( - text="trial_readiness_study", - title="Trial Readiness Study") - tumor_vs_matched_normal = PermissibleValue( - text="tumor_vs_matched_normal", - title="Tumor vs Matched Normal") - - _defn = EnumDefinition( - name="EnumStudyDesign", - description="Approaches for collecting data, investigating interventions, and/or analyzing data.", - ) - -class EnumClinicalDataSourceType(EnumDefinitionImpl): - """ - Approaches to ascertain clinical information about a participant. - """ - medical_record = PermissibleValue( - text="medical_record", - title="Medical Record", - description="Data obtained directly from medical record") - investigator_assessment = PermissibleValue( - text="investigator_assessment", - title="Investigator Assessment", - description="Data obtained by examination, interview, etc. with investigator") - participant_or_caregiver_report = PermissibleValue( - text="participant_or_caregiver_report", - title="Participant or Caregiver Report", - description="Data obtained from survey, questionnaire, etc. filled out by participant or caregiver") - other = PermissibleValue( - text="other", - title="Other", - description="Data obtained from other source, such as tissue bank") - unknown = PermissibleValue( - text="unknown", - title="Unknown") - - _defn = EnumDefinition( - name="EnumClinicalDataSourceType", - description="Approaches to ascertain clinical information about a participant.", - ) - -class EnumDataCategory(EnumDefinitionImpl): - """ - Categories of data which may be collected about participants. - """ - unharmonized_demographic_clinical_data = PermissibleValue( - text="unharmonized_demographic_clinical_data", - title="Unharmonized Demographic/Clinical Data") - harmonized_demographic_clinical_data = PermissibleValue( - text="harmonized_demographic_clinical_data", - title="Harmonized Demographic/Clinical Data") - genomics = PermissibleValue( - text="genomics", - title="Genomics") - transcriptomics = PermissibleValue( - text="transcriptomics", - title="Transcriptomics") - epigenomics = PermissibleValue( - text="epigenomics", - title="Epigenomics") - proteomics = PermissibleValue( - text="proteomics", - title="Proteomics") - metabolomics = PermissibleValue( - text="metabolomics", - title="Metabolomics") - cognitive_behavioral = PermissibleValue( - text="cognitive_behavioral", - title="Cognitive/Behavioral") - immune_profiling = PermissibleValue( - text="immune_profiling", - title="Immune Profiling") - imaging = PermissibleValue( - text="imaging", - title="Imaging") - microbiome = PermissibleValue( - text="microbiome", - title="Microbiome") - fitness = PermissibleValue( - text="fitness", - title="Fitness") - physical_activity = PermissibleValue( - text="physical_activity", - title="Physical Activity") - other = PermissibleValue( - text="other", - title="Other") - sleep_study = PermissibleValue( - text="sleep_study", - title="Sleep Study") - - _defn = EnumDefinition( - name="EnumDataCategory", - description="Categories of data which may be collected about participants.", - ) - -class EnumSubjectType(EnumDefinitionImpl): - """ - Types of Subject entities - """ - participant = PermissibleValue( - text="participant", - description="Study participant with consent, assent, or waiver of consent.") - non_participant = PermissibleValue( - text="non_participant", - description="""An individual associated with a study who was not explictly consented, eg, the subject of a reported family history.""") - cell_line = PermissibleValue( - text="cell_line", - description="Cell Line") - animal_model = PermissibleValue( - text="animal_model", - description="Animal model") - group = PermissibleValue( - text="group", - description="A group of individuals or entities.") - other = PermissibleValue( - text="other", - description="A different entity type- ideally this will be resolved!") - - _defn = EnumDefinition( - name="EnumSubjectType", - description="Types of Subject entities", - ) - -class EnumDownSyndromeStatus(EnumDefinitionImpl): - """ - Down syndrome / chromosome 21 status - """ - d21 = PermissibleValue( - text="d21", - title="D21", - description="Disomy 21 (euploid)", - meaning=PATO["0001393"]) - t21 = PermissibleValue( - text="t21", - title="T21", - description="Trisomy 21 (Down syndrome)", - meaning=MONDO["0008608"]) - - _defn = EnumDefinition( - name="EnumDownSyndromeStatus", - description="Down syndrome / chromosome 21 status", - ) - -class EnumSex(EnumDefinitionImpl): - """ - Subject Sex - """ - female = PermissibleValue( - text="female", - title="Female", - meaning=NCIT["C16576"]) - male = PermissibleValue( - text="male", - title="Male", - meaning=NCIT["C20197"]) - other = PermissibleValue( - text="other", - title="Other", - meaning=NCIT["C17649"]) - unknown = PermissibleValue( - text="unknown", - title="Unknown", - meaning=NCIT["C17998"]) - - _defn = EnumDefinition( - name="EnumSex", - description="Subject Sex", - ) - -class EnumRace(EnumDefinitionImpl): - """ - Participant Race - """ - american_indian_or_alaska_native = PermissibleValue( - text="american_indian_or_alaska_native", - title="American Indian or Alaska Native", - meaning=NCIT["C41259"]) - asian = PermissibleValue( - text="asian", - title="Asian", - meaning=NCIT["C41260"]) - black_or_african_american = PermissibleValue( - text="black_or_african_american", - title="Black or African American", - meaning=NCIT["C16352"]) - more_than_one_race = PermissibleValue( - text="more_than_one_race", - title="More than one race", - meaning=NCIT["C67109"]) - native_hawaiian_or_other_pacific_islander = PermissibleValue( - text="native_hawaiian_or_other_pacific_islander", - title="Native Hawaiian or Other Pacific Islander", - meaning=NCIT["C41219"]) - other = PermissibleValue( - text="other", - title="Other", - meaning=NCIT["C17649"]) - white = PermissibleValue( - text="white", - title="White", - meaning=NCIT["C41261"]) - prefer_not_to_answer = PermissibleValue( - text="prefer_not_to_answer", - title="Prefer not to answer", - meaning=NCIT["C132222"]) - unknown = PermissibleValue( - text="unknown", - title="Unknown", - meaning=NCIT["C17998"]) - east_asian = PermissibleValue( - text="east_asian", - title="East Asian", - description="UK only; do not use for US data", - meaning=NCIT["C161419"]) - latin_american = PermissibleValue( - text="latin_american", - title="Latin American", - description="UK only; do not use for US data", - meaning=NCIT["C126531"]) - middle_eastern_or_north_african = PermissibleValue( - text="middle_eastern_or_north_african", - title="Middle Eastern or North African", - description="UK only; do not use for US data", - meaning=NCIT["C43866"]) - south_asian = PermissibleValue( - text="south_asian", - title="South Asian", - description="UK only; do not use for US data", - meaning=NCIT["C41263"]) - - _defn = EnumDefinition( - name="EnumRace", - description="Participant Race", - ) - -class EnumEthnicity(EnumDefinitionImpl): - """ - Participant ethnicity, specific to Hispanic or Latino. - """ - hispanic_or_latino = PermissibleValue( - text="hispanic_or_latino", - title="Hispanic or Latino", - meaning=NCIT["C17459"]) - not_hispanic_or_latino = PermissibleValue( - text="not_hispanic_or_latino", - title="Not Hispanic or Latino", - meaning=NCIT["C41222"]) - prefer_not_to_answer = PermissibleValue( - text="prefer_not_to_answer", - title="Prefer not to answer", - meaning=NCIT["C132222"]) - unknown = PermissibleValue( - text="unknown", - title="Unknown", - meaning=NCIT["C17998"]) - - _defn = EnumDefinition( - name="EnumEthnicity", - description="Participant ethnicity, specific to Hispanic or Latino.", - ) - -class EnumVitalStatus(EnumDefinitionImpl): - """ - Descriptions of a Subject's vital status - """ - dead = PermissibleValue( - text="dead", - title="Dead", - meaning=NCIT["C28554"]) - alive = PermissibleValue( - text="alive", - title="Alive", - meaning=NCIT["C37987"]) - - _defn = EnumDefinition( - name="EnumVitalStatus", - description="Descriptions of a Subject's vital status", - ) - -class EnumNull(EnumDefinitionImpl): - """ - Base enumeration providing null options. - """ - unknown = PermissibleValue( - text="unknown", - title="Unknown", - meaning=NCIT["C17998"]) - - _defn = EnumDefinition( - name="EnumNull", - description="Base enumeration providing null options.", - ) - -class EnumAssertionProvenance(EnumDefinitionImpl): - """ - Possible data sources for assertions. - """ - medical_record = PermissibleValue( - text="medical_record", - title="Medical Record", - description="Data obtained from a medical record") - investigator_assessment = PermissibleValue( - text="investigator_assessment", - title="Investigator Assessment", - description="Data obtained by examination, interview, etc. with investigator") - participant_or_caregiver_report = PermissibleValue( - text="participant_or_caregiver_report", - title="Participant or Caregiver Report", - description="Data obtained from survey, questionnaire, etc. filled out by participant or caregiver") - other = PermissibleValue( - text="other", - title="Other", - description="Data obtained from other source, such as tissue bank") - - _defn = EnumDefinition( - name="EnumAssertionProvenance", - description="Possible data sources for assertions.", - ) - -class EnumAvailabilityStatus(EnumDefinitionImpl): - """ - Is the biospecimen available for use? - """ - available = PermissibleValue( - text="available", - title="Available", - description="Biospecimen is Available", - meaning=IG2_BIOSPECIMEN_AVAILABILITY["available"]) - unavailable = PermissibleValue( - text="unavailable", - title="Unavailable", - description="Biospecimen is Unavailable", - meaning=IG2_BIOSPECIMEN_AVAILABILITY["unavailable"]) - - _defn = EnumDefinition( - name="EnumAvailabilityStatus", - description="Is the biospecimen available for use?", - ) - -class EnumSampleCollectionMethod(EnumDefinitionImpl): - """ - The approach used to collect the biospecimen. [LOINC](https://loinc.org) is recommended. - """ - _defn = EnumDefinition( - name="EnumSampleCollectionMethod", - description="The approach used to collect the biospecimen. [LOINC](https://loinc.org) is recommended.", - ) - -class EnumSite(EnumDefinitionImpl): - """ - The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) is - recommended. - """ - _defn = EnumDefinition( - name="EnumSite", - description="""The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) is recommended.""", - ) - -class EnumSpatialQualifiers(EnumDefinitionImpl): - """ - Any spatial/location qualifiers. - """ - _defn = EnumDefinition( - name="EnumSpatialQualifiers", - description="Any spatial/location qualifiers.", - ) - -class EnumLaterality(EnumDefinitionImpl): - """ - Laterality information for the site - """ - _defn = EnumDefinition( - name="EnumLaterality", - description="Laterality information for the site", - ) - -class EnumEDAMFormats(EnumDefinitionImpl): - """ - Data formats from the EDAM ontology. - """ - _defn = EnumDefinition( - name="EnumEDAMFormats", - description="Data formats from the EDAM ontology.", - ) - -class EnumEDAMDataTypes(EnumDefinitionImpl): - """ - Data types from the EDAM ontology. - """ - _defn = EnumDefinition( - name="EnumEDAMDataTypes", - description="Data types from the EDAM ontology.", - ) - -class EnumFileHashType(EnumDefinitionImpl): - """ - Types of file hashes supported. - """ - md5 = PermissibleValue( - text="md5", - title="MD5") - etag = PermissibleValue( - text="etag", - title="ETag") - sha1 = PermissibleValue( - text="sha1", - title="SHA-1") - - _defn = EnumDefinition( - name="EnumFileHashType", - description="Types of file hashes supported.", - ) - -class EnumAccessType(EnumDefinitionImpl): - """ - Types of file access levels. - """ - open = PermissibleValue( - text="open", - title="Open Access") - controlled = PermissibleValue( - text="controlled", - title="Controlled Access") - registered = PermissibleValue( - text="registered", - title="Registered-tier Access") - - _defn = EnumDefinition( - name="EnumAccessType", - description="Types of file access levels.", - ) - -class EnumExperimentalStrategy(EnumDefinitionImpl): - """ - Types of sequencing methods. - """ - wgs = PermissibleValue( - text="wgs", - title="Whole Genome Sequencing") - rnaseq = PermissibleValue( - text="rnaseq", - title="RNA-Seq") - wxs = PermissibleValue( - text="wxs", - title="Whole Exome Sequencing") - methlyation = PermissibleValue( - text="methlyation", - title="Methylation") - clr_wgs = PermissibleValue( - text="clr_wgs", - title="Continuous Long Reads WGS") - proteomics = PermissibleValue( - text="proteomics", - title="Proteomics") - targeted_seq = PermissibleValue( - text="targeted_seq", - title="Targeted Sequencing") - ccs_wgs = PermissibleValue( - text="ccs_wgs", - title="Circular Consensus Sequencing WGS") - panel = PermissibleValue( - text="panel", - title="Panel") - ccs_rnaseq = PermissibleValue( - text="ccs_rnaseq", - title="Circular Consensus Sequencing RNA-Se") - ont_wgs = PermissibleValue( - text="ont_wgs", - title="Oxford Nanopore Technologies WGS") - clr_rnaseq = PermissibleValue( - text="clr_rnaseq", - title="Continuous Long Reads RNA-Seq") - - _defn = EnumDefinition( - name="EnumExperimentalStrategy", - description="Types of sequencing methods.", - ) - -class EnumAssayCenter(EnumDefinitionImpl): - """ - Organizations or centers producing raw or harmonized sequencing files. - """ - broad = PermissibleValue( - text="broad", - title="The Broad Institute") - hudsonalpha = PermissibleValue( - text="hudsonalpha", - title="HudsonAlpha Institute for Biotechnology") - stjude = PermissibleValue( - text="stjude", - title="St. Jude") - baylor = PermissibleValue( - text="baylor", - title="Baylor College of Medicine") - chop = PermissibleValue( - text="chop", - title="The Children's Hospital of Philadelphia") - other = PermissibleValue( - text="other", - title="Other") - unknown = PermissibleValue( - text="unknown", - title="Unknown") - - _defn = EnumDefinition( - name="EnumAssayCenter", - description="Organizations or centers producing raw or harmonized sequencing files.", - ) - -class EnumRepository(EnumDefinitionImpl): - """ - specific drs service used for registration - """ - cavatica = PermissibleValue( - text="cavatica", - title="Cavatica DRS") - dcf = PermissibleValue( - text="dcf", - title="NCI DCF") - other = PermissibleValue( - text="other", - title="Other") - - _defn = EnumDefinition( - name="EnumRepository", - description="specific drs service used for registration", - ) - -class EnumPlatform(EnumDefinitionImpl): - """ - names of instrument or platforms used for assay data generation - """ - illumina = PermissibleValue( - text="illumina", - title="Illumina", - description="Illumina Platform") - long_read = PermissibleValue( - text="long_read", - description="Single-molecule sequencing technologies (PacBio, ONT).") - unknown = PermissibleValue( - text="unknown", - title="Unknown", - description="Unknown platform") - novaseq_x = PermissibleValue( - text="novaseq_x", - title="NovaSeq X Series", - description="Ultra-high throughput (NovaSeq X, X Plus).", - meaning=EFO["EFO_0022840"]) - novaseq_6000 = PermissibleValue( - text="novaseq_6000", - title="NovaSeq 6000", - description="Standard high-throughput production platform.", - meaning=EFO["EFO_0008637"]) - nextseq_1000 = PermissibleValue( - text="nextseq_1000", - title="NextSeq 1000", - description="Mid-range sequencing (P1, P2, P3 flowcells).", - meaning=EFO["EFO_0010962"]) - nextseq_2000 = PermissibleValue( - text="nextseq_2000", - title="NextSeq 1000-2000", - description="Mid-range sequencing (P1, P2, P3 flowcells).", - meaning=EFO["EFO_0010963"]) - nextseq_500 = PermissibleValue( - text="nextseq_500", - title="NextSeq 500_550", - description="Older mid-range 2-channel systems.", - meaning=EFO["EFO_0009173"]) - nextseq_550 = PermissibleValue( - text="nextseq_550", - title="NextSeq 550", - description="Older mid-range 2-channel systems.", - meaning=EFO["EFO_0008566"]) - miseq = PermissibleValue( - text="miseq", - title="MiSeq Series", - description="Benchtop low-throughput (MiSeq, MiSeqDx).") - miniseq_iseq = PermissibleValue( - text="miniseq_iseq", - title="MiniSeq iSeq", - description="Smallest entry-level sequencers.") - iscan_system = PermissibleValue( - text="iscan_system", - description="Hardware for Infinium arrays (EPIC, GSA).") - pacbio_revio = PermissibleValue( - text="pacbio_revio", - title="PacBio Revio", - description="Current flagship high-throughput HiFi system.") - pacbio_sequel_iie = PermissibleValue( - text="pacbio_sequel_iie", - title="PacBio Sequel IIe", - description="Reliable mid-to-high throughput HiFi system.") - pacbio_onso = PermissibleValue( - text="pacbio_onso", - title="PacBio Onso", - description="Short-read SBB (Sequencing by Binding) platform from PacBio.") - ont_promethion = PermissibleValue( - text="ont_promethion", - title="ONT PromethION", - description="Ultra-high throughput scalable nanopore system.") - ont_gridion = PermissibleValue( - text="ont_gridion", - title="ONT GridION", - description="Benchtop nanopore system running up to 5 flow cells.") - ont_minion = PermissibleValue( - text="ont_minion", - title="ONT MiniION", - description="Portable, pocket-sized nanopore sequencer.") - - _defn = EnumDefinition( - name="EnumPlatform", - description="names of instrument or platforms used for assay data generation", - ) - -# Slots -class slots: - pass - -slots.study_id = Slot(uri=INCLUDEDCC.study_id, name="study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.study_id, domain=None, range=Optional[Union[str, StudyStudyId]]) - -slots.do_id = Slot(uri=INCLUDEDCC.do_id, name="do_id", curie=INCLUDEDCC.curie('do_id'), - model_uri=INCLUDEDCC.do_id, domain=None, range=Optional[Union[str, DOIDoId]]) - -slots.subject_id = Slot(uri=INCLUDEDCC.subject_id, name="subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.subject_id, domain=None, range=Optional[Union[str, SubjectSubjectId]]) - -slots.assertion_id = Slot(uri=INCLUDEDCC.assertion_id, name="assertion_id", curie=INCLUDEDCC.curie('assertion_id'), - model_uri=INCLUDEDCC.assertion_id, domain=None, range=Optional[Union[str, SubjectAssertionAssertionId]]) - -slots.external_id = Slot(uri=INCLUDEDCC.external_id, name="external_id", curie=INCLUDEDCC.curie('external_id'), - model_uri=INCLUDEDCC.external_id, domain=None, range=Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]]) - -slots.parent_study = Slot(uri=INCLUDEDCC.parent_study, name="parent_study", curie=INCLUDEDCC.curie('parent_study'), - model_uri=INCLUDEDCC.parent_study, domain=None, range=Optional[Union[str, StudyStudyId]]) - -slots.funding_source = Slot(uri=INCLUDEDCC.funding_source, name="funding_source", curie=INCLUDEDCC.curie('funding_source'), - model_uri=INCLUDEDCC.funding_source, domain=None, range=Optional[Union[str, list[str]]]) - -slots.principal_investigator = Slot(uri=INCLUDEDCC.principal_investigator, name="principal_investigator", curie=INCLUDEDCC.curie('principal_investigator'), - model_uri=INCLUDEDCC.principal_investigator, domain=None, range=Union[Union[dict, Investigator], list[Union[dict, Investigator]]]) - -slots.study_title = Slot(uri=INCLUDEDCC.study_title, name="study_title", curie=INCLUDEDCC.curie('study_title'), - model_uri=INCLUDEDCC.study_title, domain=None, range=str) - -slots.study_code = Slot(uri=INCLUDEDCC.study_code, name="study_code", curie=INCLUDEDCC.curie('study_code'), - model_uri=INCLUDEDCC.study_code, domain=None, range=str) - -slots.study_short_name = Slot(uri=INCLUDEDCC.study_short_name, name="study_short_name", curie=INCLUDEDCC.curie('study_short_name'), - model_uri=INCLUDEDCC.study_short_name, domain=None, range=Optional[str]) - -slots.investigator_title = Slot(uri=INCLUDEDCC.investigator_title, name="investigator_title", curie=INCLUDEDCC.curie('investigator_title'), - model_uri=INCLUDEDCC.investigator_title, domain=None, range=Optional[str]) - -slots.name = Slot(uri=INCLUDEDCC.name, name="name", curie=INCLUDEDCC.curie('name'), - model_uri=INCLUDEDCC.name, domain=None, range=Optional[str]) - -slots.email = Slot(uri=INCLUDEDCC.email, name="email", curie=INCLUDEDCC.curie('email'), - model_uri=INCLUDEDCC.email, domain=None, range=Optional[str]) - -slots.institution = Slot(uri=INCLUDEDCC.institution, name="institution", curie=INCLUDEDCC.curie('institution'), - model_uri=INCLUDEDCC.institution, domain=None, range=Optional[str]) - -slots.program = Slot(uri=INCLUDEDCC.program, name="program", curie=INCLUDEDCC.curie('program'), - model_uri=INCLUDEDCC.program, domain=None, range=Union[Union[str, "EnumProgram"], list[Union[str, "EnumProgram"]]]) - -slots.study_description = Slot(uri=INCLUDEDCC.study_description, name="study_description", curie=INCLUDEDCC.curie('study_description'), - model_uri=INCLUDEDCC.study_description, domain=None, range=str) - -slots.website = Slot(uri=INCLUDEDCC.website, name="website", curie=INCLUDEDCC.curie('website'), - model_uri=INCLUDEDCC.website, domain=None, range=Optional[Union[str, URI]]) - -slots.contact = Slot(uri=INCLUDEDCC.contact, name="contact", curie=INCLUDEDCC.curie('contact'), - model_uri=INCLUDEDCC.contact, domain=None, range=Union[Union[dict, Investigator], list[Union[dict, Investigator]]]) - -slots.vbr = Slot(uri=INCLUDEDCC.vbr, name="vbr", curie=INCLUDEDCC.curie('vbr'), - model_uri=INCLUDEDCC.vbr, domain=None, range=Optional[Union[dict, VirtualBiorepository]]) - -slots.vbr_readme = Slot(uri=INCLUDEDCC.vbr_readme, name="vbr_readme", curie=INCLUDEDCC.curie('vbr_readme'), - model_uri=INCLUDEDCC.vbr_readme, domain=None, range=Optional[str]) - -slots.research_domain = Slot(uri=INCLUDEDCC.research_domain, name="research_domain", curie=INCLUDEDCC.curie('research_domain'), - model_uri=INCLUDEDCC.research_domain, domain=None, range=Union[Union[str, "EnumResearchDomain"], list[Union[str, "EnumResearchDomain"]]]) - -slots.participant_lifespan_stage = Slot(uri=INCLUDEDCC.participant_lifespan_stage, name="participant_lifespan_stage", curie=INCLUDEDCC.curie('participant_lifespan_stage'), - model_uri=INCLUDEDCC.participant_lifespan_stage, domain=None, range=Union[Union[str, "EnumParticipantLifespanStage"], list[Union[str, "EnumParticipantLifespanStage"]]]) - -slots.selection_criteria = Slot(uri=INCLUDEDCC.selection_criteria, name="selection_criteria", curie=INCLUDEDCC.curie('selection_criteria'), - model_uri=INCLUDEDCC.selection_criteria, domain=None, range=Optional[str]) - -slots.study_design = Slot(uri=INCLUDEDCC.study_design, name="study_design", curie=INCLUDEDCC.curie('study_design'), - model_uri=INCLUDEDCC.study_design, domain=None, range=Union[Union[str, "EnumStudyDesign"], list[Union[str, "EnumStudyDesign"]]]) - -slots.data_category = Slot(uri=INCLUDEDCC.data_category, name="data_category", curie=INCLUDEDCC.curie('data_category'), - model_uri=INCLUDEDCC.data_category, domain=None, range=Optional[Union[str, "EnumDataCategory"]]) - -slots.clinical_data_source_type = Slot(uri=INCLUDEDCC.clinical_data_source_type, name="clinical_data_source_type", curie=INCLUDEDCC.curie('clinical_data_source_type'), - model_uri=INCLUDEDCC.clinical_data_source_type, domain=None, range=Union[Union[str, "EnumClinicalDataSourceType"], list[Union[str, "EnumClinicalDataSourceType"]]]) - -slots.publication = Slot(uri=INCLUDEDCC.publication, name="publication", curie=INCLUDEDCC.curie('publication'), - model_uri=INCLUDEDCC.publication, domain=None, range=Optional[Union[Union[dict, Publication], list[Union[dict, Publication]]]]) - -slots.expected_number_of_participants = Slot(uri=INCLUDEDCC.expected_number_of_participants, name="expected_number_of_participants", curie=INCLUDEDCC.curie('expected_number_of_participants'), - model_uri=INCLUDEDCC.expected_number_of_participants, domain=None, range=int) - -slots.actual_number_of_participants = Slot(uri=INCLUDEDCC.actual_number_of_participants, name="actual_number_of_participants", curie=INCLUDEDCC.curie('actual_number_of_participants'), - model_uri=INCLUDEDCC.actual_number_of_participants, domain=None, range=int) - -slots.acknowledgments = Slot(uri=INCLUDEDCC.acknowledgments, name="acknowledgments", curie=INCLUDEDCC.curie('acknowledgments'), - model_uri=INCLUDEDCC.acknowledgments, domain=None, range=Optional[str]) - -slots.citation_statement = Slot(uri=INCLUDEDCC.citation_statement, name="citation_statement", curie=INCLUDEDCC.curie('citation_statement'), - model_uri=INCLUDEDCC.citation_statement, domain=None, range=Optional[str]) - -slots.bibliographic_reference = Slot(uri=INCLUDEDCC.bibliographic_reference, name="bibliographic_reference", curie=INCLUDEDCC.curie('bibliographic_reference'), - model_uri=INCLUDEDCC.bibliographic_reference, domain=None, range=Optional[str]) - -slots.organism_type = Slot(uri=INCLUDEDCC.organism_type, name="organism_type", curie=INCLUDEDCC.curie('organism_type'), - model_uri=INCLUDEDCC.organism_type, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.subject_type = Slot(uri=INCLUDEDCC.subject_type, name="subject_type", curie=INCLUDEDCC.curie('subject_type'), - model_uri=INCLUDEDCC.subject_type, domain=None, range=Union[str, "EnumSubjectType"]) - -slots.sex = Slot(uri=INCLUDEDCC.sex, name="sex", curie=INCLUDEDCC.curie('sex'), - model_uri=INCLUDEDCC.sex, domain=None, range=Union[str, "EnumSex"]) - -slots.race = Slot(uri=INCLUDEDCC.race, name="race", curie=INCLUDEDCC.curie('race'), - model_uri=INCLUDEDCC.race, domain=None, range=Union[Union[str, "EnumRace"], list[Union[str, "EnumRace"]]]) - -slots.ethnicity = Slot(uri=INCLUDEDCC.ethnicity, name="ethnicity", curie=INCLUDEDCC.curie('ethnicity'), - model_uri=INCLUDEDCC.ethnicity, domain=None, range=Union[str, "EnumEthnicity"]) - -slots.down_syndrome_status = Slot(uri=INCLUDEDCC.down_syndrome_status, name="down_syndrome_status", curie=INCLUDEDCC.curie('down_syndrome_status'), - model_uri=INCLUDEDCC.down_syndrome_status, domain=None, range=Union[str, "EnumDownSyndromeStatus"]) - -slots.age_at_first_engagement = Slot(uri=INCLUDEDCC.age_at_first_engagement, name="age_at_first_engagement", curie=INCLUDEDCC.curie('age_at_first_engagement'), - model_uri=INCLUDEDCC.age_at_first_engagement, domain=None, range=Optional[int]) - -slots.vital_status = Slot(uri=INCLUDEDCC.vital_status, name="vital_status", curie=INCLUDEDCC.curie('vital_status'), - model_uri=INCLUDEDCC.vital_status, domain=None, range=Optional[Union[str, "EnumVitalStatus"]]) - -slots.age_at_last_vital_status = Slot(uri=INCLUDEDCC.age_at_last_vital_status, name="age_at_last_vital_status", curie=INCLUDEDCC.curie('age_at_last_vital_status'), - model_uri=INCLUDEDCC.age_at_last_vital_status, domain=None, range=Optional[int]) - -slots.assertion_provenance = Slot(uri=INCLUDEDCC.assertion_provenance, name="assertion_provenance", curie=INCLUDEDCC.curie('assertion_provenance'), - model_uri=INCLUDEDCC.assertion_provenance, domain=None, range=Optional[Union[str, "EnumAssertionProvenance"]]) - -slots.age_at_assertion = Slot(uri=INCLUDEDCC.age_at_assertion, name="age_at_assertion", curie=INCLUDEDCC.curie('age_at_assertion'), - model_uri=INCLUDEDCC.age_at_assertion, domain=None, range=Optional[int]) - -slots.age_at_event = Slot(uri=INCLUDEDCC.age_at_event, name="age_at_event", curie=INCLUDEDCC.curie('age_at_event'), - model_uri=INCLUDEDCC.age_at_event, domain=None, range=Optional[int]) - -slots.age_at_resolution = Slot(uri=INCLUDEDCC.age_at_resolution, name="age_at_resolution", curie=INCLUDEDCC.curie('age_at_resolution'), - model_uri=INCLUDEDCC.age_at_resolution, domain=None, range=Optional[int]) - -slots.concept = Slot(uri=INCLUDEDCC.concept, name="concept", curie=INCLUDEDCC.curie('concept'), - model_uri=INCLUDEDCC.concept, domain=None, range=Optional[Union[Union[str, ConceptConceptCurie], list[Union[str, ConceptConceptCurie]]]]) - -slots.concept_curie = Slot(uri=INCLUDEDCC.concept_curie, name="concept_curie", curie=INCLUDEDCC.curie('concept_curie'), - model_uri=INCLUDEDCC.concept_curie, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.display = Slot(uri=INCLUDEDCC.display, name="display", curie=INCLUDEDCC.curie('display'), - model_uri=INCLUDEDCC.display, domain=None, range=Optional[str]) - -slots.concept_source = Slot(uri=INCLUDEDCC.concept_source, name="concept_source", curie=INCLUDEDCC.curie('concept_source'), - model_uri=INCLUDEDCC.concept_source, domain=None, range=Optional[str]) - -slots.value_concept = Slot(uri=INCLUDEDCC.value_concept, name="value_concept", curie=INCLUDEDCC.curie('value_concept'), - model_uri=INCLUDEDCC.value_concept, domain=None, range=Optional[Union[Union[str, ConceptConceptCurie], list[Union[str, ConceptConceptCurie]]]]) - -slots.value_number = Slot(uri=INCLUDEDCC.value_number, name="value_number", curie=INCLUDEDCC.curie('value_number'), - model_uri=INCLUDEDCC.value_number, domain=None, range=Optional[float]) - -slots.value_source = Slot(uri=INCLUDEDCC.value_source, name="value_source", curie=INCLUDEDCC.curie('value_source'), - model_uri=INCLUDEDCC.value_source, domain=None, range=Optional[str]) - -slots.value_unit = Slot(uri=INCLUDEDCC.value_unit, name="value_unit", curie=INCLUDEDCC.curie('value_unit'), - model_uri=INCLUDEDCC.value_unit, domain=None, range=Optional[Union[str, ConceptConceptCurie]]) - -slots.value_unit_source = Slot(uri=INCLUDEDCC.value_unit_source, name="value_unit_source", curie=INCLUDEDCC.curie('value_unit_source'), - model_uri=INCLUDEDCC.value_unit_source, domain=None, range=Optional[str]) - -slots.sample_id = Slot(uri=INCLUDEDCC.sample_id, name="sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.sample_id, domain=None, range=Optional[Union[str, SampleSampleId]]) - -slots.parent_sample_id = Slot(uri=INCLUDEDCC.parent_sample_id, name="parent_sample_id", curie=INCLUDEDCC.curie('parent_sample_id'), - model_uri=INCLUDEDCC.parent_sample_id, domain=None, range=Optional[Union[str, SampleSampleId]]) - -slots.biospecimen_collection_id = Slot(uri=INCLUDEDCC.biospecimen_collection_id, name="biospecimen_collection_id", curie=INCLUDEDCC.curie('biospecimen_collection_id'), - model_uri=INCLUDEDCC.biospecimen_collection_id, domain=None, range=Optional[Union[str, BiospecimenCollectionBiospecimenCollectionId]]) - -slots.aliquot_id = Slot(uri=INCLUDEDCC.aliquot_id, name="aliquot_id", curie=INCLUDEDCC.curie('aliquot_id'), - model_uri=INCLUDEDCC.aliquot_id, domain=None, range=Optional[Union[str, AliquotAliquotId]]) - -slots.sample_type = Slot(uri=INCLUDEDCC.sample_type, name="sample_type", curie=INCLUDEDCC.curie('sample_type'), - model_uri=INCLUDEDCC.sample_type, domain=None, range=Union[str, URIorCURIE]) - -slots.processing = Slot(uri=INCLUDEDCC.processing, name="processing", curie=INCLUDEDCC.curie('processing'), - model_uri=INCLUDEDCC.processing, domain=None, range=Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]]) - -slots.availablity_status = Slot(uri=INCLUDEDCC.availablity_status, name="availablity_status", curie=INCLUDEDCC.curie('availablity_status'), - model_uri=INCLUDEDCC.availablity_status, domain=None, range=Optional[Union[str, "EnumAvailabilityStatus"]]) - -slots.storage_method = Slot(uri=INCLUDEDCC.storage_method, name="storage_method", curie=INCLUDEDCC.curie('storage_method'), - model_uri=INCLUDEDCC.storage_method, domain=None, range=Optional[Union[Union[str, URIorCURIE], list[Union[str, URIorCURIE]]]]) - -slots.quantity_number = Slot(uri=INCLUDEDCC.quantity_number, name="quantity_number", curie=INCLUDEDCC.curie('quantity_number'), - model_uri=INCLUDEDCC.quantity_number, domain=None, range=Optional[float]) - -slots.quantity_unit = Slot(uri=INCLUDEDCC.quantity_unit, name="quantity_unit", curie=INCLUDEDCC.curie('quantity_unit'), - model_uri=INCLUDEDCC.quantity_unit, domain=None, range=Optional[Union[str, ConceptConceptCurie]]) - -slots.concentration_number = Slot(uri=INCLUDEDCC.concentration_number, name="concentration_number", curie=INCLUDEDCC.curie('concentration_number'), - model_uri=INCLUDEDCC.concentration_number, domain=None, range=Optional[float]) - -slots.concentration_unit = Slot(uri=INCLUDEDCC.concentration_unit, name="concentration_unit", curie=INCLUDEDCC.curie('concentration_unit'), - model_uri=INCLUDEDCC.concentration_unit, domain=None, range=Optional[Union[str, ConceptConceptCurie]]) - -slots.age_at_collection = Slot(uri=INCLUDEDCC.age_at_collection, name="age_at_collection", curie=INCLUDEDCC.curie('age_at_collection'), - model_uri=INCLUDEDCC.age_at_collection, domain=None, range=Optional[float]) - -slots.method = Slot(uri=INCLUDEDCC.method, name="method", curie=INCLUDEDCC.curie('method'), - model_uri=INCLUDEDCC.method, domain=None, range=Optional[Union[str, "EnumSampleCollectionMethod"]]) - -slots.site = Slot(uri=INCLUDEDCC.site, name="site", curie=INCLUDEDCC.curie('site'), - model_uri=INCLUDEDCC.site, domain=None, range=Optional[Union[str, "EnumSite"]]) - -slots.spatial_qualifier = Slot(uri=INCLUDEDCC.spatial_qualifier, name="spatial_qualifier", curie=INCLUDEDCC.curie('spatial_qualifier'), - model_uri=INCLUDEDCC.spatial_qualifier, domain=None, range=Optional[Union[str, "EnumSpatialQualifiers"]]) - -slots.laterality = Slot(uri=INCLUDEDCC.laterality, name="laterality", curie=INCLUDEDCC.curie('laterality'), - model_uri=INCLUDEDCC.laterality, domain=None, range=Optional[Union[str, "EnumLaterality"]]) - -slots.encounter_id = Slot(uri=INCLUDEDCC.encounter_id, name="encounter_id", curie=INCLUDEDCC.curie('encounter_id'), - model_uri=INCLUDEDCC.encounter_id, domain=None, range=Optional[Union[str, EncounterEncounterId]]) - -slots.description = Slot(uri=INCLUDEDCC.description, name="description", curie=INCLUDEDCC.curie('description'), - model_uri=INCLUDEDCC.description, domain=None, range=Optional[str]) - -slots.encounter_definition_id = Slot(uri=INCLUDEDCC.encounter_definition_id, name="encounter_definition_id", curie=INCLUDEDCC.curie('encounter_definition_id'), - model_uri=INCLUDEDCC.encounter_definition_id, domain=None, range=Optional[Union[str, EncounterDefinitionEncounterDefinitionId]]) - -slots.activity_definition_id = Slot(uri=INCLUDEDCC.activity_definition_id, name="activity_definition_id", curie=INCLUDEDCC.curie('activity_definition_id'), - model_uri=INCLUDEDCC.activity_definition_id, domain=None, range=Optional[Union[str, ActivityDefinitionActivityDefinitionId]]) - -slots.file_id = Slot(uri=INCLUDEDCC.file_id, name="file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.file_id, domain=None, range=Optional[Union[str, FileFileId]]) - -slots.filename = Slot(uri=INCLUDEDCC.filename, name="filename", curie=INCLUDEDCC.curie('filename'), - model_uri=INCLUDEDCC.filename, domain=None, range=str) - -slots.format = Slot(uri=INCLUDEDCC.format, name="format", curie=INCLUDEDCC.curie('format'), - model_uri=INCLUDEDCC.format, domain=None, range=Union[str, "EnumEDAMFormats"]) - -slots.data_type = Slot(uri=INCLUDEDCC.data_type, name="data_type", curie=INCLUDEDCC.curie('data_type'), - model_uri=INCLUDEDCC.data_type, domain=None, range=Union[str, "EnumEDAMDataTypes"]) - -slots.size = Slot(uri=INCLUDEDCC.size, name="size", curie=INCLUDEDCC.curie('size'), - model_uri=INCLUDEDCC.size, domain=None, range=int) - -slots.staging_url = Slot(uri=INCLUDEDCC.staging_url, name="staging_url", curie=INCLUDEDCC.curie('staging_url'), - model_uri=INCLUDEDCC.staging_url, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.release_url = Slot(uri=INCLUDEDCC.release_url, name="release_url", curie=INCLUDEDCC.curie('release_url'), - model_uri=INCLUDEDCC.release_url, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.drs_uri = Slot(uri=INCLUDEDCC.drs_uri, name="drs_uri", curie=INCLUDEDCC.curie('drs_uri'), - model_uri=INCLUDEDCC.drs_uri, domain=None, range=Optional[Union[str, URIorCURIE]]) - -slots.hash = Slot(uri=INCLUDEDCC.hash, name="hash", curie=INCLUDEDCC.curie('hash'), - model_uri=INCLUDEDCC.hash, domain=None, range=Union[dict, FileHash]) - -slots.hash_type = Slot(uri=INCLUDEDCC.hash_type, name="hash_type", curie=INCLUDEDCC.curie('hash_type'), - model_uri=INCLUDEDCC.hash_type, domain=None, range=Union[str, "EnumFileHashType"]) - -slots.hash_value = Slot(uri=INCLUDEDCC.hash_value, name="hash_value", curie=INCLUDEDCC.curie('hash_value'), - model_uri=INCLUDEDCC.hash_value, domain=None, range=str) - -slots.dataset_id = Slot(uri=INCLUDEDCC.dataset_id, name="dataset_id", curie=INCLUDEDCC.curie('dataset_id'), - model_uri=INCLUDEDCC.dataset_id, domain=None, range=Optional[Union[str, DatasetDatasetId]]) - -slots.data_collection_start = Slot(uri=INCLUDEDCC.data_collection_start, name="data_collection_start", curie=INCLUDEDCC.curie('data_collection_start'), - model_uri=INCLUDEDCC.data_collection_start, domain=None, range=Optional[str]) - -slots.data_collection_end = Slot(uri=INCLUDEDCC.data_collection_end, name="data_collection_end", curie=INCLUDEDCC.curie('data_collection_end'), - model_uri=INCLUDEDCC.data_collection_end, domain=None, range=Optional[str]) - -slots.s3_file_path = Slot(uri=INCLUDEDCC.s3_file_path, name="s3_file_path", curie=INCLUDEDCC.curie('s3_file_path'), - model_uri=INCLUDEDCC.s3_file_path, domain=None, range=str) - -slots.is_released = Slot(uri=INCLUDEDCC.is_released, name="is_released", curie=INCLUDEDCC.curie('is_released'), - model_uri=INCLUDEDCC.is_released, domain=None, range=Union[bool, Bool]) - -slots.is_registered = Slot(uri=INCLUDEDCC.is_registered, name="is_registered", curie=INCLUDEDCC.curie('is_registered'), - model_uri=INCLUDEDCC.is_registered, domain=None, range=Union[bool, Bool]) - -slots.repository = Slot(uri=INCLUDEDCC.repository, name="repository", curie=INCLUDEDCC.curie('repository'), - model_uri=INCLUDEDCC.repository, domain=None, range=Optional[Union[str, "EnumRepository"]]) - -slots.file_category = Slot(uri=INCLUDEDCC.file_category, name="file_category", curie=INCLUDEDCC.curie('file_category'), - model_uri=INCLUDEDCC.file_category, domain=None, range=str) - -slots.s3_key = Slot(uri=INCLUDEDCC.s3_key, name="s3_key", curie=INCLUDEDCC.curie('s3_key'), - model_uri=INCLUDEDCC.s3_key, domain=None, range=str) - -slots.file_extension = Slot(uri=INCLUDEDCC.file_extension, name="file_extension", curie=INCLUDEDCC.curie('file_extension'), - model_uri=INCLUDEDCC.file_extension, domain=None, range=str) - -slots.data_transfer_id = Slot(uri=INCLUDEDCC.data_transfer_id, name="data_transfer_id", curie=INCLUDEDCC.curie('data_transfer_id'), - model_uri=INCLUDEDCC.data_transfer_id, domain=None, range=Optional[str]) - -slots.aws_account_id = Slot(uri=INCLUDEDCC.aws_account_id, name="aws_account_id", curie=INCLUDEDCC.curie('aws_account_id'), - model_uri=INCLUDEDCC.aws_account_id, domain=None, range=str) - -slots.account_name = Slot(uri=INCLUDEDCC.account_name, name="account_name", curie=INCLUDEDCC.curie('account_name'), - model_uri=INCLUDEDCC.account_name, domain=None, range=str) - -slots.account_alias = Slot(uri=INCLUDEDCC.account_alias, name="account_alias", curie=INCLUDEDCC.curie('account_alias'), - model_uri=INCLUDEDCC.account_alias, domain=None, range=str) - -slots.bucket_study_id = Slot(uri=INCLUDEDCC.bucket_study_id, name="bucket_study_id", curie=INCLUDEDCC.curie('bucket_study_id'), - model_uri=INCLUDEDCC.bucket_study_id, domain=None, range=str) - -slots.bucket = Slot(uri=INCLUDEDCC.bucket, name="bucket", curie=INCLUDEDCC.curie('bucket'), - model_uri=INCLUDEDCC.bucket, domain=None, range=str) - -slots.s3_created_at = Slot(uri=INCLUDEDCC.s3_created_at, name="s3_created_at", curie=INCLUDEDCC.curie('s3_created_at'), - model_uri=INCLUDEDCC.s3_created_at, domain=None, range=Union[str, XSDDateTime]) - -slots.s3_modified_at = Slot(uri=INCLUDEDCC.s3_modified_at, name="s3_modified_at", curie=INCLUDEDCC.curie('s3_modified_at'), - model_uri=INCLUDEDCC.s3_modified_at, domain=None, range=Union[str, XSDDateTime]) - -slots.intelligent_tiering_access_tier = Slot(uri=INCLUDEDCC.intelligent_tiering_access_tier, name="intelligent_tiering_access_tier", curie=INCLUDEDCC.curie('intelligent_tiering_access_tier'), - model_uri=INCLUDEDCC.intelligent_tiering_access_tier, domain=None, range=str) - -slots.is_delete_marker = Slot(uri=INCLUDEDCC.is_delete_marker, name="is_delete_marker", curie=INCLUDEDCC.curie('is_delete_marker'), - model_uri=INCLUDEDCC.is_delete_marker, domain=None, range=Union[bool, Bool]) - -slots.is_latest = Slot(uri=INCLUDEDCC.is_latest, name="is_latest", curie=INCLUDEDCC.curie('is_latest'), - model_uri=INCLUDEDCC.is_latest, domain=None, range=Union[bool, Bool]) - -slots.storage_class = Slot(uri=INCLUDEDCC.storage_class, name="storage_class", curie=INCLUDEDCC.curie('storage_class'), - model_uri=INCLUDEDCC.storage_class, domain=None, range=str) - -slots.manifest_hash_value = Slot(uri=INCLUDEDCC.manifest_hash_value, name="manifest_hash_value", curie=INCLUDEDCC.curie('manifest_hash_value'), - model_uri=INCLUDEDCC.manifest_hash_value, domain=None, range=Optional[str]) - -slots.file_hash_validation_status = Slot(uri=INCLUDEDCC.file_hash_validation_status, name="file_hash_validation_status", curie=INCLUDEDCC.curie('file_hash_validation_status'), - model_uri=INCLUDEDCC.file_hash_validation_status, domain=None, range=Optional[str]) - -slots.file_type = Slot(uri=INCLUDEDCC.file_type, name="file_type", curie=INCLUDEDCC.curie('file_type'), - model_uri=INCLUDEDCC.file_type, domain=None, range=str) - -slots.encryption_status = Slot(uri=INCLUDEDCC.encryption_status, name="encryption_status", curie=INCLUDEDCC.curie('encryption_status'), - model_uri=INCLUDEDCC.encryption_status, domain=None, range=str) - -slots.is_multipart_uploaded = Slot(uri=INCLUDEDCC.is_multipart_uploaded, name="is_multipart_uploaded", curie=INCLUDEDCC.curie('is_multipart_uploaded'), - model_uri=INCLUDEDCC.is_multipart_uploaded, domain=None, range=str) - -slots.object_lock_level_hold_status = Slot(uri=INCLUDEDCC.object_lock_level_hold_status, name="object_lock_level_hold_status", curie=INCLUDEDCC.curie('object_lock_level_hold_status'), - model_uri=INCLUDEDCC.object_lock_level_hold_status, domain=None, range=str) - -slots.object_lock_mode = Slot(uri=INCLUDEDCC.object_lock_mode, name="object_lock_mode", curie=INCLUDEDCC.curie('object_lock_mode'), - model_uri=INCLUDEDCC.object_lock_mode, domain=None, range=str) - -slots.replication_status = Slot(uri=INCLUDEDCC.replication_status, name="replication_status", curie=INCLUDEDCC.curie('replication_status'), - model_uri=INCLUDEDCC.replication_status, domain=None, range=str) - -slots.version_id = Slot(uri=INCLUDEDCC.version_id, name="version_id", curie=INCLUDEDCC.curie('version_id'), - model_uri=INCLUDEDCC.version_id, domain=None, range=str) - -slots.access_type = Slot(uri=INCLUDEDCC.access_type, name="access_type", curie=INCLUDEDCC.curie('access_type'), - model_uri=INCLUDEDCC.access_type, domain=None, range=Union[str, "EnumAccessType"]) - -slots.access_url = Slot(uri=INCLUDEDCC.access_url, name="access_url", curie=INCLUDEDCC.curie('access_url'), - model_uri=INCLUDEDCC.access_url, domain=None, range=Optional[str]) - -slots.acl = Slot(uri=INCLUDEDCC.acl, name="acl", curie=INCLUDEDCC.curie('acl'), - model_uri=INCLUDEDCC.acl, domain=None, range=str) - -slots.experimental_strategy = Slot(uri=INCLUDEDCC.experimental_strategy, name="experimental_strategy", curie=INCLUDEDCC.curie('experimental_strategy'), - model_uri=INCLUDEDCC.experimental_strategy, domain=None, range=Union[str, "EnumExperimentalStrategy"]) - -slots.assay_center = Slot(uri=INCLUDEDCC.assay_center, name="assay_center", curie=INCLUDEDCC.curie('assay_center'), - model_uri=INCLUDEDCC.assay_center, domain=None, range=Optional[Union[str, "EnumAssayCenter"]]) - -slots.platform = Slot(uri=INCLUDEDCC.platform, name="platform", curie=INCLUDEDCC.curie('platform'), - model_uri=INCLUDEDCC.platform, domain=None, range=Union[str, "EnumPlatform"]) - -slots.workflow_name = Slot(uri=INCLUDEDCC.workflow_name, name="workflow_name", curie=INCLUDEDCC.curie('workflow_name'), - model_uri=INCLUDEDCC.workflow_name, domain=None, range=Optional[str]) - -slots.workflow_version = Slot(uri=INCLUDEDCC.workflow_version, name="workflow_version", curie=INCLUDEDCC.curie('workflow_version'), - model_uri=INCLUDEDCC.workflow_version, domain=None, range=Optional[str]) - -slots.object_lock_retain_until_date = Slot(uri=INCLUDEDCC.object_lock_retain_until_date, name="object_lock_retain_until_date", curie=INCLUDEDCC.curie('object_lock_retain_until_date'), - model_uri=INCLUDEDCC.object_lock_retain_until_date, domain=None, range=Union[str, XSDDateTime]) - -slots.Study_study_id = Slot(uri=INCLUDEDCC.study_id, name="Study_study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.Study_study_id, domain=Study, range=Union[str, StudyStudyId]) - -slots.StudyMetadata_study_id = Slot(uri=INCLUDEDCC.study_id, name="StudyMetadata_study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.StudyMetadata_study_id, domain=StudyMetadata, range=Union[str, StudyMetadataStudyId]) - -slots.StudyMetadata_data_category = Slot(uri=INCLUDEDCC.data_category, name="StudyMetadata_data_category", curie=INCLUDEDCC.curie('data_category'), - model_uri=INCLUDEDCC.StudyMetadata_data_category, domain=StudyMetadata, range=Union[Union[str, "EnumDataCategory"], list[Union[str, "EnumDataCategory"]]]) - -slots.DOI_do_id = Slot(uri=INCLUDEDCC.do_id, name="DOI_do_id", curie=INCLUDEDCC.curie('do_id'), - model_uri=INCLUDEDCC.DOI_do_id, domain=DOI, range=Union[str, DOIDoId]) - -slots.Subject_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="Subject_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.Subject_subject_id, domain=Subject, range=Union[str, SubjectSubjectId]) - -slots.Demographics_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="Demographics_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.Demographics_subject_id, domain=Demographics, range=Union[str, DemographicsSubjectId]) - -slots.SubjectAssertion_assertion_id = Slot(uri=INCLUDEDCC.assertion_id, name="SubjectAssertion_assertion_id", curie=INCLUDEDCC.curie('assertion_id'), - model_uri=INCLUDEDCC.SubjectAssertion_assertion_id, domain=SubjectAssertion, range=Union[str, SubjectAssertionAssertionId]) - -slots.Concept_concept_curie = Slot(uri=INCLUDEDCC.concept_curie, name="Concept_concept_curie", curie=INCLUDEDCC.curie('concept_curie'), - model_uri=INCLUDEDCC.Concept_concept_curie, domain=Concept, range=Union[str, ConceptConceptCurie]) - -slots.Sample_sample_id = Slot(uri=INCLUDEDCC.sample_id, name="Sample_sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.Sample_sample_id, domain=Sample, range=Union[str, SampleSampleId]) - -slots.Sample_biospecimen_collection_id = Slot(uri=INCLUDEDCC.biospecimen_collection_id, name="Sample_biospecimen_collection_id", curie=INCLUDEDCC.curie('biospecimen_collection_id'), - model_uri=INCLUDEDCC.Sample_biospecimen_collection_id, domain=Sample, range=Optional[Union[str, BiospecimenCollectionBiospecimenCollectionId]]) - -slots.BiospecimenCollection_biospecimen_collection_id = Slot(uri=INCLUDEDCC.biospecimen_collection_id, name="BiospecimenCollection_biospecimen_collection_id", curie=INCLUDEDCC.curie('biospecimen_collection_id'), - model_uri=INCLUDEDCC.BiospecimenCollection_biospecimen_collection_id, domain=BiospecimenCollection, range=Union[str, BiospecimenCollectionBiospecimenCollectionId]) - -slots.Aliquot_aliquot_id = Slot(uri=INCLUDEDCC.aliquot_id, name="Aliquot_aliquot_id", curie=INCLUDEDCC.curie('aliquot_id'), - model_uri=INCLUDEDCC.Aliquot_aliquot_id, domain=Aliquot, range=Union[str, AliquotAliquotId]) - -slots.Encounter_encounter_id = Slot(uri=INCLUDEDCC.encounter_id, name="Encounter_encounter_id", curie=INCLUDEDCC.curie('encounter_id'), - model_uri=INCLUDEDCC.Encounter_encounter_id, domain=Encounter, range=Union[str, EncounterEncounterId]) - -slots.EncounterDefinition_encounter_definition_id = Slot(uri=INCLUDEDCC.encounter_definition_id, name="EncounterDefinition_encounter_definition_id", curie=INCLUDEDCC.curie('encounter_definition_id'), - model_uri=INCLUDEDCC.EncounterDefinition_encounter_definition_id, domain=EncounterDefinition, range=Union[str, EncounterDefinitionEncounterDefinitionId]) - -slots.EncounterDefinition_activity_definition_id = Slot(uri=INCLUDEDCC.activity_definition_id, name="EncounterDefinition_activity_definition_id", curie=INCLUDEDCC.curie('activity_definition_id'), - model_uri=INCLUDEDCC.EncounterDefinition_activity_definition_id, domain=EncounterDefinition, range=Optional[Union[Union[str, ActivityDefinitionActivityDefinitionId], list[Union[str, ActivityDefinitionActivityDefinitionId]]]]) - -slots.ActivityDefinition_activity_definition_id = Slot(uri=INCLUDEDCC.activity_definition_id, name="ActivityDefinition_activity_definition_id", curie=INCLUDEDCC.curie('activity_definition_id'), - model_uri=INCLUDEDCC.ActivityDefinition_activity_definition_id, domain=ActivityDefinition, range=Union[str, ActivityDefinitionActivityDefinitionId]) - -slots.File_study_id = Slot(uri=INCLUDEDCC.study_id, name="File_study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.File_study_id, domain=File, range=Union[str, StudyStudyId]) - -slots.File_file_id = Slot(uri=INCLUDEDCC.file_id, name="File_file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.File_file_id, domain=File, range=Union[str, FileFileId]) - -slots.File_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="File_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.File_subject_id, domain=File, range=Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]]) - -slots.File_sample_id = Slot(uri=INCLUDEDCC.sample_id, name="File_sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.File_sample_id, domain=File, range=Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]]) - -slots.File_data_category = Slot(uri=INCLUDEDCC.data_category, name="File_data_category", curie=INCLUDEDCC.curie('data_category'), - model_uri=INCLUDEDCC.File_data_category, domain=File, range=Union[str, "EnumDataCategory"]) - -slots.Dataset_dataset_id = Slot(uri=INCLUDEDCC.dataset_id, name="Dataset_dataset_id", curie=INCLUDEDCC.curie('dataset_id'), - model_uri=INCLUDEDCC.Dataset_dataset_id, domain=Dataset, range=Union[str, DatasetDatasetId]) - -slots.Dataset_file_id = Slot(uri=INCLUDEDCC.file_id, name="Dataset_file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.Dataset_file_id, domain=Dataset, range=Optional[Union[Union[str, FileFileId], list[Union[str, FileFileId]]]]) - -slots.FileAdmin_study_id = Slot(uri=INCLUDEDCC.study_id, name="FileAdmin_study_id", curie=INCLUDEDCC.curie('study_id'), - model_uri=INCLUDEDCC.FileAdmin_study_id, domain=FileAdmin, range=Union[str, StudyStudyId]) - -slots.FileAdmin_file_id = Slot(uri=INCLUDEDCC.file_id, name="FileAdmin_file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.FileAdmin_file_id, domain=FileAdmin, range=Union[str, FileAdminFileId]) - -slots.FileAssay_file_id = Slot(uri=INCLUDEDCC.file_id, name="FileAssay_file_id", curie=INCLUDEDCC.curie('file_id'), - model_uri=INCLUDEDCC.FileAssay_file_id, domain=FileAssay, range=Union[str, FileAssayFileId]) - -slots.FileAssay_subject_id = Slot(uri=INCLUDEDCC.subject_id, name="FileAssay_subject_id", curie=INCLUDEDCC.curie('subject_id'), - model_uri=INCLUDEDCC.FileAssay_subject_id, domain=FileAssay, range=Union[Union[str, SubjectSubjectId], list[Union[str, SubjectSubjectId]]]) - -slots.FileAssay_sample_id = Slot(uri=INCLUDEDCC.sample_id, name="FileAssay_sample_id", curie=INCLUDEDCC.curie('sample_id'), - model_uri=INCLUDEDCC.FileAssay_sample_id, domain=FileAssay, range=Union[Union[str, SampleSampleId], list[Union[str, SampleSampleId]]]) - -slots.FileAssay_data_category = Slot(uri=INCLUDEDCC.data_category, name="FileAssay_data_category", curie=INCLUDEDCC.curie('data_category'), - model_uri=INCLUDEDCC.FileAssay_data_category, domain=FileAssay, range=Union[str, "EnumDataCategory"]) From 59d0d1de65e87282766b263a3ddffd9067503b09 Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Fri, 17 Apr 2026 14:08:11 -0500 Subject: [PATCH 17/20] Delete src/include_access_model/datamodel/include_access_model_pydantic.py --- .../include_access_model_pydantic.py | 1129 ----------------- 1 file changed, 1129 deletions(-) delete mode 100644 src/include_access_model/datamodel/include_access_model_pydantic.py diff --git a/src/include_access_model/datamodel/include_access_model_pydantic.py b/src/include_access_model/datamodel/include_access_model_pydantic.py deleted file mode 100644 index 125d36f..0000000 --- a/src/include_access_model/datamodel/include_access_model_pydantic.py +++ /dev/null @@ -1,1129 +0,0 @@ -from __future__ import annotations - -import re -import sys -from datetime import ( - date, - datetime, - time -) -from decimal import Decimal -from enum import Enum -from typing import ( - Any, - ClassVar, - Literal, - Optional, - Union -) - -from pydantic import ( - BaseModel, - ConfigDict, - Field, - RootModel, - SerializationInfo, - SerializerFunctionWrapHandler, - field_validator, - model_serializer -) - - -metamodel_version = "None" -version = "None" - - -class ConfiguredBaseModel(BaseModel): - model_config = ConfigDict( - serialize_by_alias = True, - validate_by_name = True, - validate_assignment = True, - validate_default = True, - extra = "forbid", - arbitrary_types_allowed = True, - use_enum_values = True, - strict = False, - ) - - @model_serializer(mode='wrap', when_used='unless-none') - def treat_empty_lists_as_none( - self, handler: SerializerFunctionWrapHandler, - info: SerializationInfo) -> dict[str, Any]: - if info.exclude_none: - _instance = self.model_copy() - for field, field_info in type(_instance).model_fields.items(): - if getattr(_instance, field) == [] and not( - field_info.is_required()): - setattr(_instance, field, None) - else: - _instance = self - return handler(_instance, info) - - - -class LinkMLMeta(RootModel): - root: dict[str, Any] = {} - model_config = ConfigDict(frozen=True) - - def __getattr__(self, key:str): - return getattr(self.root, key) - - def __getitem__(self, key:str): - return self.root[key] - - def __setitem__(self, key:str, value): - self.root[key] = value - - def __contains__(self, key:str) -> bool: - return key in self.root - - -linkml_meta = LinkMLMeta({'default_prefix': 'includedcc', - 'default_range': 'string', - 'description': 'LinkML Schema for the internal INCLUDE DCC Access Model', - 'id': 'https://includedcc.org/include-access-model', - 'imports': ['linkml:types'], - 'license': 'MIT', - 'name': 'include-access-model', - 'prefixes': {'EFO': {'prefix_prefix': 'EFO', - 'prefix_reference': 'http://identifiers.org/efo/'}, - 'HP': {'prefix_prefix': 'HP', - 'prefix_reference': 'http://purl.obolibrary.org/obo/HP_'}, - 'MONDO': {'prefix_prefix': 'MONDO', - 'prefix_reference': 'http://purl.obolibrary.org/obo/MONDO_'}, - 'NCIT': {'prefix_prefix': 'NCIT', - 'prefix_reference': 'http://purl.obolibrary.org/obo/NCIT_'}, - 'PATO': {'prefix_prefix': 'PATO', - 'prefix_reference': 'http://purl.obolibrary.org/obo/PATO_'}, - 'cdc_race_eth': {'prefix_prefix': 'cdc_race_eth', - 'prefix_reference': 'urn:oid:2.16.840.1.113883.6.238/'}, - 'hl7_null': {'prefix_prefix': 'hl7_null', - 'prefix_reference': 'http://terminology.hl7.org/CodeSystem/v3-NullFlavor/'}, - 'ig2_biospecimen_availability': {'prefix_prefix': 'ig2_biospecimen_availability', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/biospecimen-availability/'}, - 'ig2dac': {'prefix_prefix': 'ig2dac', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-code/'}, - 'ig2dat': {'prefix_prefix': 'ig2dat', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-type/'}, - 'ig_dob_method': {'prefix_prefix': 'ig_dob_method', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-date-of-birth-method/'}, - 'igcondtype': {'prefix_prefix': 'igcondtype', - 'prefix_reference': 'https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/condition-type/'}, - 'includedcc': {'prefix_prefix': 'includedcc', - 'prefix_reference': 'https://includedcc.org/include-access-model/'}, - 'linkml': {'prefix_prefix': 'linkml', - 'prefix_reference': 'https://w3id.org/linkml/'}, - 'mesh': {'prefix_prefix': 'mesh', - 'prefix_reference': 'http://id.nlm.nih.gov/mesh/'}, - 'schema': {'prefix_prefix': 'schema', - 'prefix_reference': 'http://schema.org/'}, - 'snomed_ct': {'prefix_prefix': 'snomed_ct', - 'prefix_reference': 'http://snomed.info/id/'}}, - 'see_also': ['https://includedcc.github.io/include-access-model'], - 'source_file': 'src/include_access_model/schema/include_access_model.yaml', - 'title': 'INCLUDE DCC Access Model'} ) - -class EnumProgram(str, Enum): - """ - Funding programs relevant to inform operations. - """ - INCLUDE = "include" - KF = "kf" - Other = "other" - - -class EnumResearchDomain(str, Enum): - """ - Domains of Research used to find studies. - """ - Behavior_and_Behavior_Mechanisms = "behavior_and_behavior_mechanisms" - Congenital_Heart_Defects = "congenital_heart_defects" - Immune_System_Diseases = "immune_system_diseases" - Hematologic_Diseases = "hematologic_diseases" - Neurodevelopment = "neurodevelopment" - Sleep_Wake_Disorders = "sleep_wake_disorders" - All_Co_occurring_Conditions = "all_co_occurring_conditions" - Physical_Fitness = "physical_fitness" - Other = "other" - - -class EnumParticipantLifespanStage(str, Enum): - """ - Stages of life during which participants may be recruited. - """ - Fetal = "fetal" - """ - Before birth - """ - Neonatal = "neonatal" - """ - 0-28 days old - """ - Pediatric = "pediatric" - """ - Birth-17 years old - """ - Adult = "adult" - """ - 18+ years old - """ - - -class EnumStudyDesign(str, Enum): - """ - Approaches for collecting data, investigating interventions, and/or analyzing data. - """ - Case_Control = "case_control" - Case_Set = "case_set" - Control_Set = "control_set" - Clinical_Trial = "clinical_trial" - Cross_Sectional = "cross_sectional" - FamilySOLIDUSTwinsSOLIDUSTrios = "family_twins_trios" - Interventional = "interventional" - Longitudinal = "longitudinal" - Trial_Readiness_Study = "trial_readiness_study" - Tumor_vs_Matched_Normal = "tumor_vs_matched_normal" - - -class EnumClinicalDataSourceType(str, Enum): - """ - Approaches to ascertain clinical information about a participant. - """ - Medical_Record = "medical_record" - """ - Data obtained directly from medical record - """ - Investigator_Assessment = "investigator_assessment" - """ - Data obtained by examination, interview, etc. with investigator - """ - Participant_or_Caregiver_Report = "participant_or_caregiver_report" - """ - Data obtained from survey, questionnaire, etc. filled out by participant or caregiver - """ - Other = "other" - """ - Data obtained from other source, such as tissue bank - """ - Unknown = "unknown" - - -class EnumDataCategory(str, Enum): - """ - Categories of data which may be collected about participants. - """ - Unharmonized_DemographicSOLIDUSClinical_Data = "unharmonized_demographic_clinical_data" - Harmonized_DemographicSOLIDUSClinical_Data = "harmonized_demographic_clinical_data" - Genomics = "genomics" - Transcriptomics = "transcriptomics" - Epigenomics = "epigenomics" - Proteomics = "proteomics" - Metabolomics = "metabolomics" - CognitiveSOLIDUSBehavioral = "cognitive_behavioral" - Immune_Profiling = "immune_profiling" - Imaging = "imaging" - Microbiome = "microbiome" - Fitness = "fitness" - Physical_Activity = "physical_activity" - Other = "other" - Sleep_Study = "sleep_study" - - -class EnumSubjectType(str, Enum): - """ - Types of Subject entities - """ - participant = "participant" - """ - Study participant with consent, assent, or waiver of consent. - """ - non_participant = "non_participant" - """ - An individual associated with a study who was not explictly consented, eg, the subject of a reported family history. - """ - cell_line = "cell_line" - """ - Cell Line - """ - animal_model = "animal_model" - """ - Animal model - """ - group = "group" - """ - A group of individuals or entities. - """ - other = "other" - """ - A different entity type- ideally this will be resolved! - """ - - -class EnumDownSyndromeStatus(str, Enum): - """ - Down syndrome / chromosome 21 status - """ - D21 = "d21" - """ - Disomy 21 (euploid) - """ - T21 = "t21" - """ - Trisomy 21 (Down syndrome) - """ - - -class EnumSex(str, Enum): - """ - Subject Sex - """ - Female = "female" - Male = "male" - Other = "other" - Unknown = "unknown" - - -class EnumRace(str, Enum): - """ - Participant Race - """ - American_Indian_or_Alaska_Native = "american_indian_or_alaska_native" - Asian = "asian" - Black_or_African_American = "black_or_african_american" - More_than_one_race = "more_than_one_race" - Native_Hawaiian_or_Other_Pacific_Islander = "native_hawaiian_or_other_pacific_islander" - Other = "other" - White = "white" - Prefer_not_to_answer = "prefer_not_to_answer" - Unknown = "unknown" - East_Asian = "east_asian" - """ - UK only; do not use for US data - """ - Latin_American = "latin_american" - """ - UK only; do not use for US data - """ - Middle_Eastern_or_North_African = "middle_eastern_or_north_african" - """ - UK only; do not use for US data - """ - South_Asian = "south_asian" - """ - UK only; do not use for US data - """ - - -class EnumEthnicity(str, Enum): - """ - Participant ethnicity, specific to Hispanic or Latino. - """ - Hispanic_or_Latino = "hispanic_or_latino" - Not_Hispanic_or_Latino = "not_hispanic_or_latino" - Prefer_not_to_answer = "prefer_not_to_answer" - Unknown = "unknown" - - -class EnumVitalStatus(str, Enum): - """ - Descriptions of a Subject's vital status - """ - Dead = "dead" - Alive = "alive" - - -class EnumNull(str, Enum): - """ - Base enumeration providing null options. - """ - Unknown = "unknown" - - -class EnumAssertionProvenance(str, Enum): - """ - Possible data sources for assertions. - """ - Medical_Record = "medical_record" - """ - Data obtained from a medical record - """ - Investigator_Assessment = "investigator_assessment" - """ - Data obtained by examination, interview, etc. with investigator - """ - Participant_or_Caregiver_Report = "participant_or_caregiver_report" - """ - Data obtained from survey, questionnaire, etc. filled out by participant or caregiver - """ - Other = "other" - """ - Data obtained from other source, such as tissue bank - """ - - -class EnumAvailabilityStatus(str, Enum): - """ - Is the biospecimen available for use? - """ - Available = "available" - """ - Biospecimen is Available - """ - Unavailable = "unavailable" - """ - Biospecimen is Unavailable - """ - - -class EnumSampleCollectionMethod(str): - """ - The approach used to collect the biospecimen. [LOINC](https://loinc.org) is recommended. - """ - pass - - -class EnumSite(str): - """ - The location of the specimen collection. [SNOMED Body Site](https://hl7.org/fhir/R4B/valueset-body-site.html) is recommended. - """ - pass - - -class EnumSpatialQualifiers(str): - """ - Any spatial/location qualifiers. - """ - pass - - -class EnumLaterality(str): - """ - Laterality information for the site - """ - pass - - -class EnumEDAMFormats(str): - """ - Data formats from the EDAM ontology. - """ - pass - - -class EnumEDAMDataTypes(str): - """ - Data types from the EDAM ontology. - """ - pass - - -class EnumFileHashType(str, Enum): - """ - Types of file hashes supported. - """ - MD5 = "md5" - ETag = "etag" - SHA_1 = "sha1" - - -class EnumAccessType(str, Enum): - """ - Types of file access levels. - """ - Open_Access = "open" - Controlled_Access = "controlled" - Registered_tier_Access = "registered" - - -class EnumExperimentalStrategy(str, Enum): - """ - Types of sequencing methods. - """ - Whole_Genome_Sequencing = "wgs" - RNA_Seq = "rnaseq" - Whole_Exome_Sequencing = "wxs" - Methylation = "methlyation" - Continuous_Long_Reads_WGS = "clr_wgs" - Proteomics = "proteomics" - Targeted_Sequencing = "targeted_seq" - Circular_Consensus_Sequencing_WGS = "ccs_wgs" - Panel = "panel" - Circular_Consensus_Sequencing_RNA_Se = "ccs_rnaseq" - Oxford_Nanopore_Technologies_WGS = "ont_wgs" - Continuous_Long_Reads_RNA_Seq = "clr_rnaseq" - - -class EnumAssayCenter(str, Enum): - """ - Organizations or centers producing raw or harmonized sequencing files. - """ - The_Broad_Institute = "broad" - HudsonAlpha_Institute_for_Biotechnology = "hudsonalpha" - StFULL_STOP_Jude = "stjude" - Baylor_College_of_Medicine = "baylor" - The_ChildrenAPOSTROPHEs_Hospital_of_Philadelphia = "chop" - Other = "other" - Unknown = "unknown" - - -class EnumRepository(str, Enum): - """ - specific drs service used for registration - """ - Cavatica_DRS = "cavatica" - NCI_DCF = "dcf" - Other = "other" - - -class EnumPlatform(str, Enum): - """ - names of instrument or platforms used for assay data generation - """ - Illumina = "illumina" - """ - Illumina Platform - """ - long_read = "long_read" - """ - Single-molecule sequencing technologies (PacBio, ONT). - """ - Unknown = "unknown" - """ - Unknown platform - """ - NovaSeq_X_Series = "novaseq_x" - """ - Ultra-high throughput (NovaSeq X, X Plus). - """ - NovaSeq_6000 = "novaseq_6000" - """ - Standard high-throughput production platform. - """ - NextSeq_1000 = "nextseq_1000" - """ - Mid-range sequencing (P1, P2, P3 flowcells). - """ - NextSeq_1000_2000 = "nextseq_2000" - """ - Mid-range sequencing (P1, P2, P3 flowcells). - """ - NextSeq_500_550 = "nextseq_500" - """ - Older mid-range 2-channel systems. - """ - NextSeq_550 = "nextseq_550" - """ - Older mid-range 2-channel systems. - """ - MiSeq_Series = "miseq" - """ - Benchtop low-throughput (MiSeq, MiSeqDx). - """ - MiniSeq_iSeq = "miniseq_iseq" - """ - Smallest entry-level sequencers. - """ - iscan_system = "iscan_system" - """ - Hardware for Infinium arrays (EPIC, GSA). - """ - PacBio_Revio = "pacbio_revio" - """ - Current flagship high-throughput HiFi system. - """ - PacBio_Sequel_IIe = "pacbio_sequel_iie" - """ - Reliable mid-to-high throughput HiFi system. - """ - PacBio_Onso = "pacbio_onso" - """ - Short-read SBB (Sequencing by Binding) platform from PacBio. - """ - ONT_PromethION = "ont_promethion" - """ - Ultra-high throughput scalable nanopore system. - """ - ONT_GridION = "ont_gridion" - """ - Benchtop nanopore system running up to 5 flow cells. - """ - ONT_MiniION = "ont_minion" - """ - Portable, pocket-sized nanopore sequencer. - """ - - - -class Record(ConfiguredBaseModel): - """ - One row / entity within the database - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, - 'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'Record'}) - - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Study(Record): - """ - Study Metadata - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'study_id': {'identifier': True, - 'name': 'study_id', - 'range': 'string', - 'required': True}}, - 'title': 'Research Study'}) - - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) - parent_study: Optional[str] = Field(default=None, title="Parent Study", description="""The parent study for this study, if it is a nested study.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - study_title: str = Field(default=..., description="""Full Study Title""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - study_code: str = Field(default=..., title="Study Code", description="""Unique identifier for the study (generally a short acronym)""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - study_short_name: Optional[str] = Field(default=None, title="Study Code", description="""Short name for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - program: list[EnumProgram] = Field(default=..., title="Program", description="""Funding source(s) for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - funding_source: Optional[list[str]] = Field(default=[], title="Funding Source", description="""The funding source(s) of the study.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - principal_investigator: list[Investigator] = Field(default=..., title="Principal Investigator", description="""The Principal Investigator(s) responsible for the study.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - contact: list[Investigator] = Field(default=..., title="Contact Person", description="""The individual to contact with questions about this record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository']} }) - study_description: str = Field(default=..., title="Study Description", description="""Brief description of the study (2-4 sentences)""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - website: Optional[str] = Field(default=None, title="Website", description="""Website for the Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository', 'Publication']} }) - publication: Optional[list[Publication]] = Field(default=[], title="Publication", description="""Publications associated with this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'Dataset']} }) - acknowledgments: Optional[str] = Field(default=None, title="Acknowledgments", description="""Funding statement and acknowledgments for this study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - citation_statement: Optional[str] = Field(default=None, title="Citation Statement", description="""Statement that secondary data users should use to acknowledge use of this study or dataset. E.g., \"The results analyzed and here are based in whole or in part upon data generated by the INCLUDE (INvestigation of Co-occurring conditions across the Lifespan to Understand Down syndromE) Project , and were accessed from the INCLUDE Data Hub and .\"""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study']} }) - do_id: Optional[str] = Field(default=None, title="DOI", description="""Digital Object Identifier (DOI) for this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'DOI', 'Dataset']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class StudyMetadata(Record): - """ - Additional features about studies that may not apply to all studies - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'data_category': {'multivalued': True, - 'name': 'data_category', - 'required': True}, - 'study_id': {'identifier': True, - 'name': 'study_id', - 'required': True}}, - 'title': 'Study Metadata'}) - - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) - participant_lifespan_stage: list[EnumParticipantLifespanStage] = Field(default=..., title="Participant Lifespan Stage", description="""Focus age group(s) of the study population""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - selection_criteria: Optional[str] = Field(default=None, title="Selection Criteria", description="""Brief description of inclusion and/or exclusion criteria for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - study_design: list[EnumStudyDesign] = Field(default=..., title="Study Design", description="""Overall design of study, including whether it is longitudinal and whether family members/unrelated controls are also enrolled""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - clinical_data_source_type: list[EnumClinicalDataSourceType] = Field(default=..., title="Clinical Data Source Type", description="""Source(s) of data collected from study participants""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - data_category: list[EnumDataCategory] = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) - vbr: Optional[VirtualBiorepository] = Field(default=None, title="Virtual Biorepository", description="""Information about the study's Virtual Biorepository, if participating""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - research_domain: list[EnumResearchDomain] = Field(default=..., description="""Main research domain(s) of the study, other than Down syndrome""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - expected_number_of_participants: int = Field(default=..., title="Expected Number of Participants", description="""Total expected number of participants to be recruited.""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - actual_number_of_participants: int = Field(default=..., title="Actual Number of Participants", description="""Total participants included at this time.""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class VirtualBiorepository(Record): - """ - An organization that can provide access to specimen for further analysis. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'Virtual BioRepository (VBR)'}) - - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - institution: Optional[str] = Field(default=None, title="Institution", description="""Name of the institution this record is associated with.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', 'Investigator']} }) - contact: list[Investigator] = Field(default=..., title="Contact Person", description="""The individual to contact with questions about this record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository']} }) - website: Optional[str] = Field(default=None, title="Website", description="""Website for the Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository', 'Publication']} }) - vbr_readme: Optional[str] = Field(default=None, title="VBR Readme", description="""Instructions for contacting or requesting samples from Virtual Biorepository, if participating""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class DOI(Record): - """ - A DOI is a permanent reference with metadata about a digital object. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'do_id': {'identifier': True, - 'name': 'do_id', - 'range': 'string', - 'required': True}}, - 'title': 'Digital Object Identifier (DOI)'}) - - do_id: str = Field(default=..., title="DOI", description="""Digital Object Identifier (DOI) for this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'DOI', 'Dataset']} }) - bibliographic_reference: Optional[str] = Field(default=None, title="Bibiliographic Reference", description="""Text use to reference this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DOI', 'Publication']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Investigator(Record): - """ - An individual who made contributions to the collection, analysis, or sharing of data. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'Investigator'}) - - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - institution: Optional[str] = Field(default=None, title="Institution", description="""Name of the institution this record is associated with.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', 'Investigator']} }) - investigator_title: Optional[str] = Field(default=None, title="Investigator Title", description="""The title of the Investigator, eg, \"Assistant Professor\"""", json_schema_extra = { "linkml_meta": {'domain_of': ['Investigator']} }) - email: Optional[str] = Field(default=None, title="Email Address", description="""An email address to reach the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Investigator']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Publication(Record): - """ - Information about a specific publication. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'Publication'}) - - bibliographic_reference: Optional[str] = Field(default=None, title="Bibiliographic Reference", description="""Text use to reference this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DOI', 'Publication']} }) - website: Optional[str] = Field(default=None, title="Website", description="""Website for the Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'VirtualBiorepository', 'Publication']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Subject(Record): - """ - This entity is the subject about which data or references are recorded. This includes the idea of a human participant in a study, a cell line, an animal model, or any other similar entity. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'subject_id': {'identifier': True, - 'name': 'subject_id', - 'range': 'string', - 'required': True}}, - 'title': 'Subject'}) - - subject_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - subject_type: EnumSubjectType = Field(default=..., title="Subject Type", description="""Type of entity this record represents""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject']} }) - organism_type: Optional[str] = Field(default=None, title="Organism Type", description="""Organism Type""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Demographics(Record): - """ - Basic participant demographics summary - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'subject_id': {'identifier': True, - 'name': 'subject_id', - 'required': True}}, - 'title': 'Demographics'}) - - subject_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - sex: EnumSex = Field(default=..., title="Sex", description="""Sex of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - race: list[EnumRace] = Field(default=..., title="Race", description="""Race of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - ethnicity: EnumEthnicity = Field(default=..., title="Ethnicity", description="""Ethnicity of Participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - down_syndrome_status: EnumDownSyndromeStatus = Field(default=..., title="Down Syndrome Status", description="""Down Syndrome status of participant""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - age_at_last_vital_status: Optional[int] = Field(default=None, title="Age at Last Vital Status", description="""Age in days when participant's vital status was last recorded""", ge=-365, le=32507, json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics'], 'unit': {'ucum_code': 'd'}} }) - vital_status: Optional[EnumVitalStatus] = Field(default=None, title="Vital Status", description="""Whether participant is alive or dead""", json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics']} }) - age_at_first_engagement: Optional[int] = Field(default=None, title="Age at First Participant Engagement", description="""Age in days of Participant at first recorded study event (enrollment, visit, observation, sample collection, survey completion, etc.). Age at enrollment is preferred, if available.""", ge=-365, le=32507, json_schema_extra = { "linkml_meta": {'domain_of': ['Demographics'], 'unit': {'ucum_code': 'd'}} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class SubjectAssertion(Record): - """ - Assertion about a particular Subject. May include Conditions, Measurements, etc. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'assertion_id': {'identifier': True, - 'name': 'assertion_id', - 'range': 'string', - 'required': True}}, - 'title': 'Subject Assertion'}) - - assertion_id: str = Field(default=..., title="Assertion ID", description="""INCLUDE Global ID for the Assertion""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - subject_id: Optional[str] = Field(default=None, title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - encounter_id: Optional[str] = Field(default=None, title="Encounter ID", description="""Unique identifier for this Encounter.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'BiospecimenCollection', 'Encounter']} }) - assertion_provenance: Optional[EnumAssertionProvenance] = Field(default=None, title="Assertion Provenance", description="""The original source of this assertion""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - age_at_assertion: Optional[int] = Field(default=None, title="Age at assertion", description="""The age in days of the Subject when the assertion was made.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion'], 'unit': {'ucum_code': 'd'}} }) - age_at_event: Optional[int] = Field(default=None, title="Age at event", description="""The age in days of the Subject at the time point which the assertion describes, eg, age of onset or when a measurement was performed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'Encounter'], 'unit': {'ucum_code': 'd'}} }) - age_at_resolution: Optional[int] = Field(default=None, title="Age at resolution", description="""The age in days of the Subject when the asserted state was resolved.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion'], 'unit': {'ucum_code': 'd'}} }) - concept: Optional[list[str]] = Field(default=[], title="Concept", description="""The structured term defining the meaning of the assertion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - concept_source: Optional[str] = Field(default=None, title="Concept Source Text", description="""The source text yielding the standardized concept.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_concept: Optional[list[str]] = Field(default=[], title="Value concept", description="""The structured term defining the value of the assertion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_number: Optional[float] = Field(default=None, title="Value Number", description="""The numeric value of the assertion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_source: Optional[str] = Field(default=None, title="Value Source Text", description="""The source text yielding the value.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_unit: Optional[str] = Field(default=None, title="Value Units", description="""The structured term defining the units of the value.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - value_unit_source: Optional[str] = Field(default=None, title="Value Units Source Text", description="""The source text yielding the value's units.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Concept(ConfiguredBaseModel): - """ - A standardized concept with display information. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'concept_curie': {'identifier': True, - 'name': 'concept_curie', - 'required': True}}, - 'title': 'Concept'}) - - concept_curie: str = Field(default=..., title="Concept Curie", description="""The standardized curie for the term.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Concept']} }) - display: Optional[str] = Field(default=None, title="Display String", description="""The friendly display string of the coded term.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Concept']} }) - - -class Sample(Record): - """ - A functionally equivalent specimen taken from a participant or processed from such a sample. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'biospecimen_collection_id': {'description': 'Biospecimen ' - 'Collection ' - 'during which ' - 'this sample was ' - 'generated.', - 'name': 'biospecimen_collection_id'}, - 'sample_id': {'identifier': True, - 'name': 'sample_id', - 'range': 'string', - 'required': True}}, - 'title': 'Sample'}) - - sample_id: str = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - biospecimen_collection_id: Optional[str] = Field(default=None, title="Biospecimen Collection ID", description="""Biospecimen Collection during which this sample was generated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'BiospecimenCollection']} }) - parent_sample_id: Optional[str] = Field(default=None, title="Parent Sample ID", description="""Sample from which this sample is derived""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) - sample_type: str = Field(default=..., title="Sample Type", description="""Type of material of which this Sample is comprised""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) - processing: Optional[list[str]] = Field(default=[], title="Sample Processing", description="""Processing that was applied to the Parent Sample or from the Biospecimen Collection that yielded this distinct sample""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) - availablity_status: Optional[EnumAvailabilityStatus] = Field(default=None, title="Sample Availability", description="""Can this Sample be requested for further analysis?""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - storage_method: Optional[list[str]] = Field(default=[], title="Sample Storage Method", description="""Sample storage method, eg, Frozen or with additives""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample']} }) - quantity_number: Optional[float] = Field(default=None, title="Quantity", description="""The total quantity of the specimen""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - quantity_unit: Optional[str] = Field(default=None, title="Quantity Units", description="""The structured term defining the units of the quantity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class BiospecimenCollection(Record): - """ - A biospecimen collection event which yields one or more Samples. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'biospecimen_collection_id': {'identifier': True, - 'name': 'biospecimen_collection_id', - 'range': 'string', - 'required': True}}, - 'title': 'BiospecimenCollection'}) - - biospecimen_collection_id: str = Field(default=..., title="Biospecimen Collection ID", description="""Unique identifier for this Biospecimen Collection.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'BiospecimenCollection']} }) - age_at_collection: Optional[float] = Field(default=None, title="Age at Biospecimen Collection", description="""The age at which this biospecimen was collected in decimal years.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection'], 'unit': {'ucum_code': 'a'}} }) - method: Optional[EnumSampleCollectionMethod] = Field(default=None, title="Biospecimen Collection Method", description="""The approach used to collect the biospecimen.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection']} }) - site: Optional[EnumSite] = Field(default=None, title="Biospecimen Collection Site", description="""The location of the specimen collection.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection']} }) - spatial_qualifier: Optional[EnumSpatialQualifiers] = Field(default=None, title="Spatial Qualifier", description="""Qualifier that further refine the specific location of biospecimen collection""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection']} }) - laterality: Optional[EnumLaterality] = Field(default=None, title="Location Laterality", description="""Laterality that further refine the specific location of biospecimen collection""", json_schema_extra = { "linkml_meta": {'domain_of': ['BiospecimenCollection']} }) - encounter_id: Optional[str] = Field(default=None, title="Encounter ID", description="""Unique identifier for this Encounter.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'BiospecimenCollection', 'Encounter']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Aliquot(Record): - """ - A specific tube or amount of a biospecimen associated with a Sample. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'aliquot_id': {'identifier': True, - 'name': 'aliquot_id', - 'range': 'string', - 'required': True}}, - 'title': 'Aliquot'}) - - aliquot_id: str = Field(default=..., title="Aliquot ID", description="""Unique identifier for an Aliquot.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Aliquot']} }) - sample_id: Optional[str] = Field(default=None, title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - availablity_status: Optional[EnumAvailabilityStatus] = Field(default=None, title="Sample Availability", description="""Can this Sample be requested for further analysis?""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - quantity_number: Optional[float] = Field(default=None, title="Quantity", description="""The total quantity of the specimen""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - quantity_unit: Optional[str] = Field(default=None, title="Quantity Units", description="""The structured term defining the units of the quantity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot']} }) - concentration_number: Optional[float] = Field(default=None, title="Concentration", description="""What is the concentration of the analyte in the Aliquot?""", json_schema_extra = { "linkml_meta": {'domain_of': ['Aliquot']} }) - concentration_unit: Optional[str] = Field(default=None, title="Concentration Units", description="""Units associated with the concentration of the analyte in the Aliquot.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Aliquot']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class Encounter(Record): - """ - An event at which data was collected about a participant, an intervention was made, or information about a participant was recorded. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'encounter_id': {'identifier': True, - 'name': 'encounter_id', - 'range': 'string', - 'required': True}}, - 'title': 'Participant Encounter'}) - - encounter_id: str = Field(default=..., title="Encounter ID", description="""Unique identifier for this Encounter.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'BiospecimenCollection', 'Encounter']} }) - subject_id: Optional[str] = Field(default=None, title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - encounter_definition_id: Optional[str] = Field(default=None, title="Encounter Definition ID", description="""Unique identifier for this Encounter Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Encounter', 'EncounterDefinition']} }) - age_at_event: Optional[int] = Field(default=None, title="Age at event", description="""The age in days of the Subject at the time point which the assertion describes, eg, age of onset or when a measurement was performed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SubjectAssertion', 'Encounter'], 'unit': {'ucum_code': 'd'}} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class EncounterDefinition(Record): - """ - A definition of an encounter type in this study, ie, an event at which data was collected about a participant, an intervention was made, or information about a participant was recorded. This may be something planned by a study or a type of data collection. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'activity_definition_id': {'multivalued': True, - 'name': 'activity_definition_id'}, - 'encounter_definition_id': {'identifier': True, - 'name': 'encounter_definition_id', - 'range': 'string', - 'required': True}}, - 'title': 'Encounter Definition'}) - - encounter_definition_id: str = Field(default=..., title="Encounter Definition ID", description="""Unique identifier for this Encounter Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Encounter', 'EncounterDefinition']} }) - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - description: Optional[str] = Field(default=None, title="Description", description="""Description for this entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition', 'Dataset']} }) - activity_definition_id: Optional[list[str]] = Field(default=[], title="Activity Definition ID", description="""Unique identifier for this Activity Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class ActivityDefinition(Record): - """ - A definition of an activity in this study, eg, a biospecimen collection, intervention, survey, or assessment. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'activity_definition_id': {'identifier': True, - 'name': 'activity_definition_id', - 'range': 'string', - 'required': True}}, - 'title': 'Activity Definition'}) - - activity_definition_id: str = Field(default=..., title="Activity Definition ID", description="""Unique identifier for this Activity Definition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition']} }) - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - description: Optional[str] = Field(default=None, title="Description", description="""Description for this entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition', 'Dataset']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class File(Record): - """ - Required information for portal use. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'data_category': {'name': 'data_category', 'required': True}, - 'file_id': {'identifier': True, - 'name': 'file_id', - 'range': 'string', - 'required': True}, - 'sample_id': {'multivalued': True, - 'name': 'sample_id', - 'required': True}, - 'study_id': {'name': 'study_id', 'required': True}, - 'subject_id': {'multivalued': True, - 'name': 'subject_id', - 'required': True}}, - 'title': 'File'}) - - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) - file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) - subject_id: list[str] = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - sample_id: list[str] = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - s3_file_path: str = Field(default=..., title="S3 File Path", description="""The full s3 url of a file's location in aws""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - filename: str = Field(default=..., title="Filename", description="""The name of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File']} }) - size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) - format: EnumEDAMFormats = Field(default=..., title="File Format", description="""The format of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) - data_category: EnumDataCategory = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) - data_type: EnumEDAMDataTypes = Field(default=..., title="Data Type", description="""The type of data within this file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) - staging_url: Optional[str] = Field(default=None, title="Staging Location", description="""URL for internal access to the data. May be temporary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - release_url: Optional[str] = Field(default=None, title="Release Location", description="""URL for controlled or open access to the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - drs_uri: Optional[str] = Field(default=None, title="DRS URI", description="""DRS location to access the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - hash: FileHash = Field(default=..., title="File Hash", description="""File hash information""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - external_id: Optional[list[str]] = Field(default=[], title="External Identifiers", description="""Other identifiers for this entity, eg, from the submitting study or in systems like dbGaP""", json_schema_extra = { "linkml_meta": {'domain_of': ['Record']} }) - - -class FileHash(ConfiguredBaseModel): - """ - Type and value of a file content hash. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'title': 'File Hash'}) - - hash_type: EnumFileHashType = Field(default=..., title="File Hash Type", description="""The type of file hash, eg, md5""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileHash']} }) - hash_value: str = Field(default=..., title="File Hash Value", description="""The value of the file hash""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileHash']} }) - - -class Dataset(ConfiguredBaseModel): - """ - Set of files grouped together for release. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'dataset_id': {'identifier': True, - 'name': 'dataset_id', - 'range': 'string', - 'required': True}, - 'file_id': {'description': 'The list of files comprising this ' - 'dataset.', - 'multivalued': True, - 'name': 'file_id'}}, - 'title': 'Dataset'}) - - dataset_id: str = Field(default=..., title="Dataset ID", description="""Unique identifier for a Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset']} }) - name: Optional[str] = Field(default=None, title="Name", description="""Name of the entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['VirtualBiorepository', - 'Investigator', - 'EncounterDefinition', - 'ActivityDefinition', - 'Dataset']} }) - description: Optional[str] = Field(default=None, title="Description", description="""Description for this entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EncounterDefinition', 'ActivityDefinition', 'Dataset']} }) - do_id: Optional[str] = Field(default=None, title="DOI", description="""Digital Object Identifier (DOI) for this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'DOI', 'Dataset']} }) - file_id: Optional[list[str]] = Field(default=[], title="File ID", description="""The list of files comprising this dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) - publication: Optional[list[Publication]] = Field(default=[], title="Publication", description="""Publications associated with this Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'Dataset']} }) - data_collection_start: Optional[str] = Field(default=None, title="Data Collection Start", description="""The date that data collection started. May include only a year.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset']} }) - data_collection_end: Optional[str] = Field(default=None, title="Data Collection End", description="""The date that data collection started. May include only a year.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset']} }) - - -class FileAdmin(ConfiguredBaseModel): - """ - File unvierse; contains all information about a file that may be needed for operational work - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'file_id': {'identifier': True, - 'name': 'file_id', - 'required': True}, - 'study_id': {'name': 'study_id', 'required': True}}}) - - study_id: str = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the study""", json_schema_extra = { "linkml_meta": {'domain_of': ['Study', 'StudyMetadata', 'File', 'FileAdmin']} }) - file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) - subject_id: Optional[str] = Field(default=None, title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - sample_id: Optional[str] = Field(default=None, title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - s3_file_path: str = Field(default=..., title="S3 File Path", description="""The full s3 url of a file's location in aws""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - file_category: str = Field(default=..., title="File Category", description="""A high level classification of the file used for operations.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) - s3_key: str = Field(default=..., title="S3 Key", description="""The unique identifier for an object within a bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - file_extension: str = Field(default=..., title="File Extension", description="""A 3-4 letter code at the end of a filename that identifies the file format.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - data_transfer_id: Optional[str] = Field(default=None, title="Data Transfer ID", description="""A jira ticket number associated with a file transfer request to production bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - aws_account_id: str = Field(default=..., title="AWS Account ID", description="""A 12-digit number that uniquely identifies a specific AWS account""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - account_name: str = Field(default=..., title="AWS Account Name", description="""A user-defined label used to define an AWS accoun.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - account_alias: str = Field(default=..., title="Account Alias", description="""A unique user-defined string that replaces the AWS Account ID in the IAM user sign-in URL""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - bucket_study_id: str = Field(default=..., title="Bucket Study ID", description="""The global study ID used to create the bucket""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - bucket: str = Field(default=..., title="Bucket", description="""Cloud storage container in AWS used to manage and store s3 objects""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - s3_created_at: datetime = Field(default=..., title="S3 Created At", description="""Timestamp of when a file was uploaded to an s3 bucket.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - s3_modified_at: datetime = Field(default=..., title="S3 Modified At", description="""Timestamp of when a file was modified in an s3 bucket.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - intelligent_tiering_access_tier: str = Field(default=..., title="Intelligent Tiering Access Tier", description="""Storage access tier assigned by AWS intelliegnt tiering, indicating the current access frequency classification of the object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_delete_marker: bool = Field(default=..., title="Is Delete Marker", description="""A flag that notes whether a file has been deleted from s3""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_latest: bool = Field(default=..., title="Is Latest", description="""Specifies whether an object version is the most recent version of that object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - storage_class: str = Field(default=..., title="Storage Class", description="""Storage tier of the object in AWS reflecting cost and access characteristics.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - manifest_hash_value: Optional[str] = Field(default=None, title="Manifest Hash Value", description="""The provided hash value from external users to be validated against internal hash values""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - file_hash_validation_status: Optional[str] = Field(default=None, title="File Hash Validation Status", description="""Notes whether hashes have been generated and verified against manifest hash values.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - file_type: str = Field(default=..., title="File Type", description="""An internal type or classification of the files based on its operational usuage.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - encryption_status: str = Field(default=..., title="Encryption Status", description="""Indicates whether the object in AWS is encrypted and the type of encryption applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_multipart_uploaded: str = Field(default=..., title="Is Multipart Uploaded", description="""Indicates whether the object was uploaded using a multipart upload process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - object_lock_level_hold_status: str = Field(default=..., title="Object Lock Level Hold Status", description="""Whether a legal hold is applied to prevent deletion of the object.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - object_lock_mode: str = Field(default=..., title="Object Lock Mode", description="""Retention mode applied to the object that restricts deletion or modification.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - object_lock_retain_until_date: datetime = Field(default=..., title="Object Lock Retain Until Date", description="""Specifies exact date and time when an object's Object Lock rentention period expires.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - replication_status: str = Field(default=..., title="Replication Status", description="""Status of the object's replication to another storage location.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - version_id: str = Field(default=..., title="Version ID", description="""Identifier for a specific version of the object""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - staging_url: Optional[str] = Field(default=None, title="Staging Location", description="""URL for internal access to the data. May be temporary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - release_url: Optional[str] = Field(default=None, title="Release Location", description="""URL for controlled or open access to the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - hash: FileHash = Field(default=..., title="File Hash", description="""File hash information""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - access_type: EnumAccessType = Field(default=..., title="Access Type", description="""Notes wheter a file is controlled, open, or registered-tier access""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) - access_url: Optional[str] = Field(default=None, title="Access URL", description="""HTTPS endpoint for accessing a file via a specific data repository service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - drs_uri: Optional[str] = Field(default=None, title="DRS URI", description="""DRS location to access the data.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin']} }) - acl: str = Field(default=..., title="ACL", description="""The object access control list.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_released: bool = Field(default=..., title="Is Released", description="""A flag that notes whether a file has been released to the public""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - is_registered: bool = Field(default=..., title="Is Registered", description="""A flag that notes whether a file has been registered to a drs service""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - repository: Optional[EnumRepository] = Field(default=None, title="Repository", description="""The name of the drs service which files are registered to""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin']} }) - experimental_strategy: EnumExperimentalStrategy = Field(default=..., title="Experimental Strategy", description="""Method or assay used to generate the data""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) - - -class FileAssay(ConfiguredBaseModel): - """ - A file produced by or associated with an assay or data acquisition process including omics, imaging, actigraphy, and other experimental or observational data. - """ - linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://includedcc.org/include-access-model', - 'slot_usage': {'data_category': {'name': 'data_category', 'required': True}, - 'file_id': {'identifier': True, - 'name': 'file_id', - 'required': True}, - 'sample_id': {'multivalued': True, - 'name': 'sample_id', - 'required': True}, - 'subject_id': {'multivalued': True, - 'name': 'subject_id', - 'required': True}}, - 'title': 'File Assay'}) - - file_id: str = Field(default=..., title="File ID", description="""Unique identifier for this File.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'Dataset', 'FileAdmin', 'FileAssay']} }) - subject_id: list[str] = Field(default=..., title="Study ID", description="""INCLUDE Global ID for the Subject""", json_schema_extra = { "linkml_meta": {'domain_of': ['Subject', - 'Demographics', - 'SubjectAssertion', - 'Encounter', - 'File', - 'FileAdmin', - 'FileAssay']} }) - sample_id: list[str] = Field(default=..., title="Sample ID", description="""The unique identifier for this Sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Sample', 'Aliquot', 'File', 'FileAdmin', 'FileAssay']} }) - data_category: EnumDataCategory = Field(default=..., title="Data Category", description="""General category of data in this Record (e.g. Clinical, Genomics, etc)""", json_schema_extra = { "linkml_meta": {'domain_of': ['StudyMetadata', 'File', 'FileAssay']} }) - experimental_strategy: EnumExperimentalStrategy = Field(default=..., title="Experimental Strategy", description="""Method or assay used to generate the data""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) - data_type: EnumEDAMDataTypes = Field(default=..., title="Data Type", description="""The type of data within this file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) - format: EnumEDAMFormats = Field(default=..., title="File Format", description="""The format of the file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAssay']} }) - size: int = Field(default=..., title="File Size", description="""Size of the file, in Bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['File', 'FileAdmin', 'FileAssay'], 'unit': {'ucum_code': 'By'}} }) - access_type: EnumAccessType = Field(default=..., title="Access Type", description="""Notes wheter a file is controlled, open, or registered-tier access""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAdmin', 'FileAssay']} }) - assay_center: Optional[EnumAssayCenter] = Field(default=None, title="Assay Center", description="""The organization or center that generated the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) - platform: EnumPlatform = Field(default=..., title="Platform", description="""Instrument or platform family name""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) - workflow_name: Optional[str] = Field(default=None, title="Workflow Name", description="""Processing tool that produced the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) - workflow_version: Optional[str] = Field(default=None, title="Workflow Version", description="""Version of the process tool that produced the file""", json_schema_extra = { "linkml_meta": {'domain_of': ['FileAssay']} }) - - -# Model rebuild -# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model -Record.model_rebuild() -Study.model_rebuild() -StudyMetadata.model_rebuild() -VirtualBiorepository.model_rebuild() -DOI.model_rebuild() -Investigator.model_rebuild() -Publication.model_rebuild() -Subject.model_rebuild() -Demographics.model_rebuild() -SubjectAssertion.model_rebuild() -Concept.model_rebuild() -Sample.model_rebuild() -BiospecimenCollection.model_rebuild() -Aliquot.model_rebuild() -Encounter.model_rebuild() -EncounterDefinition.model_rebuild() -ActivityDefinition.model_rebuild() -File.model_rebuild() -FileHash.model_rebuild() -Dataset.model_rebuild() -FileAdmin.model_rebuild() -FileAssay.model_rebuild() From 39c8e210ba5f3aa77a3821b6979fb8a5142567bd Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Fri, 17 Apr 2026 14:14:12 -0500 Subject: [PATCH 18/20] =?UTF-8?q?=F0=9F=93=9D=20Add=20FileAdmin=20title?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/include_access_model/schema/include_access_model.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 27298c8..e22b3bf 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -323,7 +323,7 @@ classes: - data_type - format - size -#TODO: I'm not convinced this is the right strategy- access model vs operations + #TODO: I'm not convinced this is the right strategy- access model vs operations - staging_url - release_url - drs_uri @@ -375,7 +375,8 @@ classes: multivalued: true description: The list of files comprising this dataset. - FileAdmin: # names are TBD; can change - idea is this is operational or file universe model title: File Admin + FileAdmin: # names are TBD; can change - idea is this is operational or file universe model + title: File Admin description: File unvierse; contains all information about a file that may be needed for operational work slots: - study_id From 9adeeeefc1e66401726658f7ac4d634658c78c9d Mon Sep 17 00:00:00 2001 From: Robert Carroll Date: Fri, 17 Apr 2026 14:16:23 -0500 Subject: [PATCH 19/20] Delete docs/.DS_Store --- docs/.DS_Store | Bin 10244 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/.DS_Store diff --git a/docs/.DS_Store b/docs/.DS_Store deleted file mode 100644 index 5d3ce1185e203f39619f06b3933abc60df8544e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 zcmeHMU2GIp6uxI#V8#ygf*=KV!q$R9U1(_=utCGJUC;_x?6&j|SY~%dI(Bwu*_qv< zwbJ-xK#cmJD8|GXHNF_5f~arC7^4p+QZev^`iA;q;=hTWd+#jLZNV2zfXpN_XYM`c z+^e4n54)KYX8TInhtiz5F zfe?WZfe?WZfe?YK0RjAGvqP>CGQ5Tegb0KPTtI-mAEJ0N84u)yko?tw7rq5RS&iNN zzR7>>`;Kuj($;Y zP9QF1cnuK<5txpE*xZ}M#=U#);{AKZb~9*xGLyG0&u?x%4N_J0tl4v9S+0?Hr-t3p zl&||mFQFHPSgXf%?M(Sz&+N3!(KKDy;X1xTCt?S0e6?suZ(}wQ!h@ErXLn0IiUI%1uMQDey zEn_@W;Ql|aIjJ3aL z`47|&@>os+kfs5Gg8f+GW9+z<(oP9;TrVTMoN5RCa5jd=B)YKjiqosOaxTZ-} zdq(itQ;#hHU0d5!t=HBwrcDh+%yUP(s`Zrw;B;%ydDlW!>(9Em9ERuxeVY=Rwueo- zP51n+yy@VQK4o)bXj^be15CHcF!+L&)-9>kwrbmD`lUSR4eJH7YZOU28T8*T%lzSD zKO1ecVfpR_WiL}w%PCpNcYKb5_Hsk~rK6m44e^zNdktj@a-bXH&7!R!4>i(4l4Kj% zOA2I+93e-^%j8{hg1kpQAzzTQk;KggftFPH^2un07`6;{G3XoOaXLjpP= z3EN=+24M&cuwVpi$UzClU>qKWgYY;!2~WY(@C+P-SKw864PJ-0;C=W2K7^0q6nq7z z;cGYt=iz(!0e*&G;5YbPs+Q(T^Q2m-UTTzXmtxXJDK2$N-O`Y>SF%I^QaQ(Vmjev? zA4EA*j^#y;Nylc+vB;LY@9DhvD$cPp^F&rHx@mEAMPpMN=Gq1J3A&aUdNJ=g*{7rk zCp#xY1yLtO`l-vxsactay_hBD0huK$og=JoQJ2e@C3Kc(-lndSF+b>R(Tqjb$e58- z;!SmJq*cMZqgA3Ai_~D&uu0W+b%TQWN2^6sQ#UFKCA<+yM3OS*5S6bKxj!SP$Qkkt z`4P$eH&lZHbx@C#Zi05$h@@te-U3~)1G*svy|4$;phE`fodXB*upc~l1nGScCg3qR z3{Sujcov?6=ivo-F`)Px@HV^y$KeE=M6!PbpTi`afp06QyKO3U;k%irTS^ri+jaJ# zj!}L#@ko{o^ADrWO4`@KCvi$l74cFm-LoG7dHiVV{N5w0@!rCs{s{Kl*9ivy8D|A9 zQ>hcSLIgqtLIgqtLIkdH1ggaPqpbeF`O^RYU*l1R%MTF<5x5)zP@POA6KGN1=vNxE zT6+}Fy?C;N*-Z$^UGTz8SU)evV}sQdd0hnif Date: Fri, 17 Apr 2026 14:21:45 -0500 Subject: [PATCH 20/20] =?UTF-8?q?=E2=9C=A8=20Ignore=20DS=5FStore=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 16efa4d..49bdf81 100644 --- a/.gitignore +++ b/.gitignore @@ -148,3 +148,6 @@ dmypy.json .idea # Local vscode editor config .vscode + +# Mac local configuration +**/.DS_Store \ No newline at end of file