hca-metadata-schema 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ """The HCA metadata schema: LinkML YAML definitions and the Pydantic models generated from them.
2
+
3
+ `CORE_SCHEMA_PATH` is the root schema; it imports every other YAML file shipped here. The models are in
4
+ `hca_metadata_schema.generated.core`, regenerated from the YAML by `make gen-schema`.
5
+ """
6
+
7
+ from pathlib import Path
8
+
9
+ __version__ = "0.2.0" # x-release-please-version
10
+
11
+ CORE_SCHEMA_PATH = Path(__file__).parent / "core.yaml"
@@ -0,0 +1,32 @@
1
+ id: https://github.com/clevercanary/hca-validation-tools/schema/bionetwork/adipose
2
+ name: hca-validation-adipose
3
+ title: Adipose BioNetwork Extensions
4
+ description: Adipose network–specific refinements to the HCA dataset schema
5
+ license: MIT
6
+
7
+ prefixes:
8
+ linkml: https://w3id.org/linkml/
9
+ hca: https://github.com/clevercanary/hca-validation-tools/schema/
10
+
11
+ default_prefix: hca
12
+ default_range: string
13
+
14
+ imports:
15
+ - linkml:types
16
+ - ../dataset
17
+ - ../slots
18
+ - ../enums
19
+
20
+ classes:
21
+ AdiposeDataset:
22
+ is_a: Dataset
23
+ description: Dataset with Adipose BioNetwork–specific metadata requirements.
24
+ slots:
25
+ - ambient_count_correction
26
+ - doublet_detection
27
+
28
+ AdiposeSample:
29
+ is_a: Sample
30
+ description: Sample with Adipose BioNetwork–specific metadata requirements.
31
+ slots:
32
+ - dissociation_protocol
@@ -0,0 +1,35 @@
1
+ id: https://github.com/clevercanary/hca-validation-tools/schema/bionetwork/gut
2
+ name: hca-validation-gut
3
+ title: Gut BioNetwork Extensions
4
+ description: Gut network–specific refinements to the HCA dataset schema
5
+ license: MIT
6
+
7
+ prefixes:
8
+ linkml: https://w3id.org/linkml/
9
+ hca: https://github.com/clevercanary/hca-validation-tools/schema/
10
+
11
+ default_prefix: hca
12
+ default_range: string
13
+
14
+ imports:
15
+ - linkml:types
16
+ - ../dataset
17
+ - ../slots
18
+ - ../enums
19
+ classes:
20
+ GutDataset:
21
+ is_a: Dataset
22
+ description: Dataset with Gut BioNetwork–specific metadata requirements.
23
+ slots:
24
+ - ambient_count_correction
25
+ - doublet_detection
26
+
27
+ GutSample:
28
+ is_a: Sample
29
+ description: Sample with Gut BioNetwork–specific metadata requirements.
30
+ slots:
31
+ - radial_tissue_term
32
+ - dissociation_protocol
33
+
34
+
35
+
@@ -0,0 +1,25 @@
1
+ id: https://github.com/clevercanary/hca-validation-tools/schema/bionetwork/musculoskeletal
2
+ name: hca-validation-musculoskeletal
3
+ title: Musculoskeletal BioNetwork Extensions
4
+ description: Musculoskeletal network–specific refinements to the HCA dataset schema
5
+ license: MIT
6
+
7
+ prefixes:
8
+ linkml: https://w3id.org/linkml/
9
+ hca: https://github.com/clevercanary/hca-validation-tools/schema/
10
+
11
+ default_prefix: hca
12
+ default_range: string
13
+
14
+ imports:
15
+ - linkml:types
16
+ - ../dataset
17
+ - ../slots
18
+ - ../enums
19
+ classes:
20
+ MusculoskeletalDataset:
21
+ is_a: Dataset
22
+ description: Dataset with Musculoskeletal BioNetwork–specific metadata requirements.
23
+ slots:
24
+ - ambient_count_correction
25
+ - doublet_detection
@@ -0,0 +1,69 @@
1
+ id: https://github.com/clevercanary/hca-validation-tools/schema/cell
2
+ name: hca-validation-cell
3
+ title: HCA Validation Cell Schema
4
+ description: Schema for validating Human Cell Atlas (HCA) cell metadata
5
+ license: MIT
6
+
7
+ prefixes:
8
+ linkml: https://w3id.org/linkml/
9
+ hca: https://github.com/clevercanary/hca-validation-tools/schema/
10
+
11
+ default_prefix: hca
12
+ default_range: string
13
+
14
+ imports:
15
+ - linkml:types
16
+
17
+ classes:
18
+ Cell:
19
+ description: >-
20
+ A single cell derived from a sample
21
+ slots:
22
+ - author_cell_type
23
+ - cell_type_ontology_term_id
24
+
25
+ slots:
26
+ author_cell_type:
27
+ title: Author Cell Type
28
+ description: Encoding of author intuition of cellular annotation in the dataset.
29
+ examples:
30
+ - value: Goblet cell; microglia
31
+ annotations:
32
+ annDataLocation: obs
33
+ tier: Tier 1
34
+ range: string
35
+ required: false
36
+ multivalued: false
37
+ comments:
38
+ - Encoding of author intuition of cellular annotation in their dataset.
39
+ - >-
40
+ Retained alongside the ontology term so the author's original naming is not lost
41
+ when terms are mapped to CL.
42
+
43
+ cell_type_ontology_term_id:
44
+ title: Cell Type Ontology Term ID
45
+ description: Cell Ontology (CL) term.
46
+ examples:
47
+ - value: CL:0001204
48
+ annotations:
49
+ annDataLocation: obs
50
+ tier: Tier 1
51
+ cxg: cell_type_ontology_term_id
52
+ range: string
53
+ required: false
54
+ multivalued: false
55
+ notes:
56
+ - |
57
+ This must be a Cell Ontology (CL) term (http://www.ebi.ac.uk/ols4/ontologies/cl).
58
+
59
+ If no appropriate high-level term can be found or the cell type is unknown, then it is strongly recommended to use 'unknown'.
60
+
61
+ The following terms must not be used: "CL:0000255" for eukaryotic cell; "CL:0000257" for Eumycetozoan cell; "CL:0000548" for animal cell.
62
+ - >-
63
+ ZFA, FBbt, and WBbt terms are allowed depending on the organism, and "na" is
64
+ allowed if tissue_type is "cell line" — per the h5ad validator's curie_constraints.
65
+ comments:
66
+ - Encoding of cell type to help alignment with other datasets.
67
+ - >-
68
+ Unrecoverable once dropped — populate_labels derives cell_type from this column,
69
+ not the reverse. Optional here to match the h5ad validator's requirement_level.
@@ -0,0 +1,23 @@
1
+ id: https://github.com/clevercanary/hca-validation-tools/schema/core
2
+ name: hca-validation-core
3
+ title: HCA Validation Core Schema
4
+ description: Core schema for validating Human Cell Atlas (HCA) data
5
+ license: MIT
6
+ version: 0.2.0 # x-release-please-version
7
+
8
+ prefixes:
9
+ linkml: https://w3id.org/linkml/
10
+ hca: https://github.com/clevercanary/hca-validation-tools/schema/
11
+
12
+ default_prefix: hca
13
+ default_range: string
14
+
15
+ imports:
16
+ - linkml:types
17
+ - dataset
18
+ - bionetwork/adipose
19
+ - bionetwork/gut
20
+ - bionetwork/musculoskeletal
21
+ - donor
22
+ - sample
23
+ - cell
@@ -0,0 +1,297 @@
1
+ id: https://github.com/clevercanary/hca-validation-tools/schema/dataset
2
+ name: hca-validation-dataset
3
+ title: HCA Validation Dataset Schema
4
+ description: Schema for validating Human Cell Atlas (HCA) dataset metadata
5
+ license: MIT
6
+
7
+ prefixes:
8
+ linkml: https://w3id.org/linkml/
9
+ hca: https://github.com/clevercanary/hca-validation-tools/schema/
10
+
11
+ default_prefix: hca
12
+ default_range: string
13
+
14
+ imports:
15
+ - linkml:types
16
+ - ./enums
17
+ - ./slots
18
+
19
+ classes:
20
+ Dataset:
21
+ description: >-
22
+ A collection of data from a single experiment or study in the Human Cell Atlas
23
+ slots:
24
+ - alignment_software
25
+ - assay_ontology_term_id
26
+ - assay_ontology_term
27
+ - batch_condition
28
+ - comments
29
+ - consortia
30
+ - contact_email
31
+ - default_embedding
32
+ - description
33
+ - gene_annotation_version
34
+ - intron_inclusion
35
+ - protocol_url
36
+ - publication_doi
37
+ - reference_genome
38
+ - sequenced_fragment
39
+ - sequencing_platform
40
+ - study_pi
41
+ - title
42
+ - dataset_id
43
+ slot_usage:
44
+ dataset_id:
45
+ range: string
46
+ identifier: true
47
+
48
+ slots:
49
+ alignment_software:
50
+ title: Alignment Software
51
+ description: Protocol used for alignment analysis, please specify which version was used e.g. cell ranger 2.0, 2.1.1 etc.
52
+ range: string
53
+ required: true
54
+ examples:
55
+ - value: "cellranger_8.0.0"
56
+ comments:
57
+ - Affects which cells are filtered per dataset, and which reads (introns and exons or only exons) are counted as part of the reported transcriptome. This can convey batch effects.
58
+ annotations:
59
+ annDataLocation: obs
60
+
61
+ assay_ontology_term_id:
62
+ title: Assay Ontology Term Id
63
+ description: Platform used for single cell library construction.
64
+ range: string
65
+ required: true
66
+ examples:
67
+ - value: "EFO:0009922"
68
+ notes:
69
+ - |
70
+ This must be an EFO term and either:
71
+ - "EFO:0002772" for assay by molecule or preferably its most accurate child
72
+ - "EFO:0010183" for single cell library construction or preferably its most accurate child
73
+ - An assay based on 10X Genomics products should either be "EFO:0008995" for 10x technology or preferably its most accurate child.
74
+ - An assay based on SMART (Switching Mechanism at the 5' end of the RNA Template) or SMARTer technology SHOULD either be "EFO:0010184" for Smart-like or preferably its most accurate child.
75
+ Recommended:
76
+ - 10x 3' v2 "EFO:0009899"
77
+ - 10x 3' v3 "EFO:0009922"
78
+ - 10x 5' v1 "EFO:0011025"
79
+ - 10x 5' v2 "EFO:0009900"
80
+ - Smart-seq2 "EFO:0008931"
81
+ - Visium Spatial Gene Expression "EFO:0010961"
82
+ comments:
83
+ - Major source of batch effect and dataset filtering criterion
84
+ annotations:
85
+ cxg: assay_ontology_term_id
86
+ annDataLocation: obs
87
+
88
+ assay_ontology_term:
89
+ is_a: deprecated_slot
90
+ title: Assay Ontology Term
91
+ description: Deprecated placeholder for assay ontology term.
92
+
93
+ batch_condition:
94
+ title: Batch Condition
95
+ description: >-
96
+ Name of the covariate that confers the dominant batch effect in the data as judged by the data contributor.
97
+ The name provided here should be the label by which this covariate is stored in the AnnData object.
98
+ range: string
99
+ multivalued: true
100
+ required: false
101
+ examples:
102
+ - value: '["patient", "seqBatch"]'
103
+ description: "Multiple batch conditions as a JSON array"
104
+ notes:
105
+ - Values must refer to cell metadata keys in obs. Together, these keys define the batches that a normalisation or integration
106
+ algorithm should be aware of. For example if "patient" and "seqBatch" are keys of vectors of cell metadata, either
107
+ ["patient"], ["seqBatch"], or ["patient", "seqBatch"] are valid values.
108
+ annotations:
109
+ cxg: batch_condition
110
+ annDataLocation: uns
111
+
112
+ comments:
113
+ title: Comments
114
+ description: >
115
+ Other technical or experimental covariates that could affect the quality or batch of the sample.
116
+ Must not contain identifiers. This field is designed to capture potential challenges for data integration not captured elsewhere.
117
+ range: string
118
+ required: false
119
+ annotations:
120
+ annDataLocation: uns
121
+
122
+ contact_email:
123
+ title: Contact Email
124
+ description: Contact name and email of the submitting person
125
+ range: Email
126
+ required: true
127
+
128
+ consortia:
129
+ is_a: deprecated_slot
130
+ title: Consortia
131
+ description: Deprecated placeholder for consortia information.
132
+
133
+ default_embedding:
134
+ title: Default Embedding
135
+ description: The value must match a key to an embedding in obsm for the embedding to display by default in CELLxGENE Explorer.
136
+ range: string
137
+ required: false
138
+ annotations:
139
+ cxg: default_embedding
140
+ annDataLocation: uns
141
+
142
+ description:
143
+ title: Description
144
+ description: Short description of the dataset
145
+ range: string
146
+ required: true
147
+ annotations:
148
+ annDataLocation: uns
149
+
150
+ gene_annotation_version:
151
+ title: Gene Annotation Version
152
+ description: >
153
+ Ensembl release version accession number. Some common codes include:
154
+ GRCh38.p12 = GCF_000001405.38
155
+ GRCh38.p13 = GCF_000001405.39
156
+ GRCh38.p14 = GCF_000001405.40
157
+ range: string
158
+ required: true
159
+ examples:
160
+ - value: "GCF_000001405.40"
161
+ notes:
162
+ - http://www.ensembl.org/info/website/archives/index.html or NCBI/RefSeq
163
+ comments:
164
+ - Possible source of batch effect and confounder for some biological analysis
165
+ annotations:
166
+ annDataLocation: obs
167
+
168
+ intron_inclusion:
169
+ title: Intron Inclusion
170
+ description: Were introns included during read counting in the alignment process?
171
+ range: YesNoEnum
172
+ required: false
173
+ examples:
174
+ - value: "yes"
175
+ - value: "no"
176
+ annotations:
177
+ annDataLocation: obs
178
+
179
+ protocol_url:
180
+ title: Protocol URL
181
+ description: >
182
+ The protocols.io URL (if none exists, please use the BioRxiv URL) for the full experimental protocol;
183
+ or if multiple protocols exist please list them e.g. sample preparation protocol / sequencing protocol.
184
+ range: string
185
+ required: false
186
+ examples:
187
+ - value: "https://www.biorxiv.org/content/early/2017/09/24/193219"
188
+ comments:
189
+ - Useful to look up protocol data that can provide insight on batch effects. As protocols can sometimes apply to a subset of the study, we capture this at a sample level. This information may not always be available.
190
+ annotations:
191
+ annDataLocation: obs
192
+
193
+ publication_doi:
194
+ title: Publication DOI
195
+ description: >
196
+ The publication digital object identifier (doi) for the protocol. If no pre-print nor publication exists, please write 'not applicable'.
197
+ range: string
198
+ required: false
199
+ examples:
200
+ - value: "10.1016/j.cell.2016.07.054"
201
+
202
+ reference_genome:
203
+ title: Reference Genome
204
+ description: Reference genome used for alignment.
205
+ range: ReferenceGenomeEnum
206
+ required: true
207
+ examples:
208
+ - value: "GRCm37"
209
+ - value: "GRCh37"
210
+ comments:
211
+ - Possible source of batch effect and confounder for some biological analysis
212
+ annotations:
213
+ annDataLocation: obs
214
+
215
+ sequenced_fragment:
216
+ title: Sequenced Fragment
217
+ description: Which part of the RNA transcript was targeted for sequencing.
218
+ range: SequencedFragmentEnum
219
+ required: true
220
+ examples:
221
+ - value: "3 prime tag"
222
+ - value: "full length"
223
+ comments:
224
+ - May be a source of batch effect that has to be tested.
225
+ annotations:
226
+ annDataLocation: obs
227
+
228
+ sequencing_platform:
229
+ title: Sequencing Platform
230
+ description: Platform used for sequencing.
231
+ range: string
232
+ required: false
233
+ examples:
234
+ - value: "EFO:0008563"
235
+ notes:
236
+ - Values should be "subClassOf" ["EFO:0002699"] - https://www.ebi.ac.uk/ols/ontologies/efo/terms?iri=http%3A%2F%2Fwww.ebi.ac.uk%2Fefo%2FEFO_0002699
237
+ comments:
238
+ - This captures potential strand hopping which may cause data quality issues.
239
+ annotations:
240
+ annDataLocation: obs
241
+
242
+ study_pi:
243
+ title: Study Pi
244
+ description: Principal Investigator(s) leading the study where the data is/was used.
245
+ range: string
246
+ multivalued: true
247
+ required: true
248
+ examples:
249
+ - value: '["Teichmann,Sarah,A."]'
250
+ description: "Principal Investigator in Last Name,MiddleInitial, FirstName format"
251
+ annotations:
252
+ annDataLocation: uns
253
+
254
+ title:
255
+ is_a: deprecated_slot
256
+ title: Title
257
+ description: >
258
+ This text describes and differentiates the dataset from other datasets in the same collection.
259
+ It is strongly recommended that each dataset title in a collection is unique and does not depend on other metadata
260
+ such as a different assay to disambiguate it from other datasets in the collection.
261
+ range: string
262
+ examples:
263
+ - value: "Cells of the adult human heart collection is 'All — Cells of the adult human heart'"
264
+ comments:
265
+ - Useful to look up protocol data that can provide insight on batch effects. As protocols can sometimes apply to a subset of the study, we capture this at a sample level. This information may not always be available.
266
+ annotations:
267
+ cxg: title
268
+ annDataLocation: uns
269
+
270
+ enums:
271
+ ReferenceGenomeEnum:
272
+ permissible_values:
273
+ GRCh37:
274
+ description: Human reference genome version 37
275
+ GRCh38:
276
+ description: Human reference genome version 38
277
+ GRCm37:
278
+ description: Mouse reference genome version 37
279
+ GRCm38:
280
+ description: Mouse reference genome version 38
281
+ GRCm39:
282
+ description: Mouse reference genome version 39
283
+ "not applicable":
284
+ description: No reference genome was used
285
+
286
+ SequencedFragmentEnum:
287
+ permissible_values:
288
+ "3 prime tag":
289
+ description: 3' end of the transcript
290
+ "5 prime tag":
291
+ description: 5' end of the transcript
292
+ "full length":
293
+ description: Entire transcript
294
+ "not applicable":
295
+ description: Not applicable to this dataset
296
+ "probe-based":
297
+ description: Probe-based sequencing
@@ -0,0 +1,91 @@
1
+ id: https://github.com/clevercanary/hca-validation-tools/schema/donor
2
+ name: hca-validation-donor
3
+ title: HCA Validation Donor Schema
4
+ description: Schema for validating Human Cell Atlas (HCA) donor metadata
5
+ license: MIT
6
+
7
+ prefixes:
8
+ linkml: https://w3id.org/linkml/
9
+ hca: https://github.com/clevercanary/hca-validation-tools/schema/
10
+
11
+ default_prefix: hca
12
+ default_range: string
13
+
14
+ imports:
15
+ - linkml:types
16
+ - ./slots
17
+
18
+ classes:
19
+ Donor:
20
+ description: >-
21
+ An individual organism from which biological samples have been derived
22
+ slots:
23
+ - donor_id
24
+ - organism_ontology_term_id
25
+ - sex_ontology_term_id
26
+ - sex_ontology_term
27
+ - manner_of_death
28
+ - dataset_id
29
+ slot_usage:
30
+ donor_id:
31
+ range: string
32
+ identifier: true
33
+ # Annotations are duplicated here to get around an apparent bug in inheriting them (https://github.com/linkml/linkml/issues/2805)
34
+ annotations:
35
+ annDataLocation: obs
36
+ tier: Tier 1
37
+ cxg: donor_id
38
+
39
+ slots:
40
+ sex_ontology_term_id:
41
+ title: Sex Ontology Term ID
42
+ description: Reported sex of the donor.
43
+ range: string
44
+ required: true
45
+ notes: >
46
+ This must be a child of PATO:0001894 for phenotypic sex
47
+ or "unknown" if unavailable.
48
+ examples:
49
+ - value: "PATO:0000383"
50
+ description: female
51
+ - value: "PATO:0000384"
52
+ description: male
53
+ annotations:
54
+ annDataLocation: obs
55
+ cxg: sex_ontology_term_id
56
+
57
+ sex_ontology_term:
58
+ is_a: deprecated_slot
59
+ title: Sex Ontology Term
60
+ description: Deprecated placeholder for sex ontology term.
61
+
62
+ manner_of_death:
63
+ title: Manner of Death
64
+ description: |
65
+ Manner of death classification based on the Hardy Scale or "unknown" or "not applicable":
66
+ * Category 1 = Violent and fast death — deaths due to accident, blunt force trauma or suicide, terminal phase < 10 min.
67
+ * Category 2 = Fast death of natural causes — sudden unexpected deaths of reasonably healthy people, terminal phase < 1 h.
68
+ * Category 3 = Intermediate death — terminal phase 1–24 h, patients ill but death unexpected.
69
+ * Category 4 = Slow death — terminal phase > 1 day (e.g. cancer, chronic pulmonary disease).
70
+ * Category 0 = Ventilator case — on a ventilator immediately before death.
71
+ * Unknown = The cause of death is unknown.
72
+ * Not applicable = Subject is alive.
73
+ [Leave blank for embryonic/fetal tissue.]
74
+ range: MannerOfDeath
75
+ required: true
76
+ examples:
77
+ - value: "1"
78
+ notes: "1; 2; 3; 4; 0; unknown; not applicable"
79
+ annotations:
80
+ annDataLocation: obs
81
+
82
+ organism_ontology_term_id:
83
+ title: Organism Ontology Term ID
84
+ description: The name given to the type of organism, collected in NCBITaxon:0000 format.
85
+ range: Organism
86
+ required: true
87
+ notes: "\"NCBITaxon:9606\" for Homo sapiens or \"NCBITaxon:10090\" for Mus musculus."
88
+ annotations:
89
+ annDataLocation: obs
90
+ cxg: organism_ontology_term_id
91
+ tier: Tier 1