From bf463c96b03fccc85f4506a8429dc5eb7e3e7efd Mon Sep 17 00:00:00 2001 From: Stephen Richard Date: Fri, 11 Apr 2025 11:23:10 -0700 Subject: [PATCH 1/4] Merge branch 'main' of https://github.com/isamplesorg/metadata From 466db4e2262758d788c1d43df779ee1222572428 Mon Sep 17 00:00:00 2001 From: Stephen Richard Date: Fri, 11 Apr 2025 11:23:48 -0700 Subject: [PATCH 2/4] brain examples --- examples/brainExample1.json | 123 ++++++++++++++++++++++++++++++++++ examples/brainSubSample1.json | 110 ++++++++++++++++++++++++++++++ 2 files changed, 233 insertions(+) create mode 100644 examples/brainExample1.json create mode 100644 examples/brainSubSample1.json diff --git a/examples/brainExample1.json b/examples/brainExample1.json new file mode 100644 index 0000000..3075561 --- /dev/null +++ b/examples/brainExample1.json @@ -0,0 +1,123 @@ +{ + "$schema": "../src/schemas/iSamplesSchemaCore1.0.json", + "@id": "https://isamples.org/metadata/4327q543jh", + "@context": "https://isamples.org/metadata", + "@type": "schema:DigitalDocument", + "dct:conformsTo": "https://isamples.org/metadata", + "registrant": { + "name": "name", + "affiliation": "affiliation", + "contact_information": "contact_information", + "identifier": "identifier", + "role": "role" + }, + "about": { + "@id":"xxx:metadataabout/NYBB-MS1", + "@type":"schema:Thing", + "sample_identifier": "NYBB-MS1", + "label": "Brain, Spinal Cord from Male adult", + "description": "Brain and spinal cord tissue from male adult, age 65 at death, affected by multiple sclerosis", + "alternate_identifiers": [], + "produced_by": { + "identifier": "identifier", + "label": "post-mortem analysis", + "description": "description", + "has_feature_of_interest": "Human Body", + "project": "Brain inventory", + "responsibility": [ + { + "name": "Dr. Who did the dissection", + "affiliation": "affiliation", + "contact_information": "contact_information", + "identifier": "identifier", + "role": "role" + } + ], + "result_time": "2020-09-24", + "sampling_site": { + "description": "Post mortem dissection, St. Mary's hospital, Tucson, AZ", + "label": "Post mortem dissection, patient MYBB-MS1", + "place_name": ["St. Mary's Hospital, Tucson, AZ"] + }, + "authorized_by": ["appropriate documentation authorizing collection of body parts for research"] + }, + "sampling_purpose": "pathology analysis", + "has_context_category": [ + { + "label": "Human Body", + "identifier": "http://example.com/resource/humanbody/brain", + "scheme_name": "scheme_name" + }, + { + "label": "Biological entity", + "identifier": "https://w3id.org/isample/vocabulary/sampledfeature/biologicalentity", + "scheme_name": "iSamples Sampled Feature Type vocabulary" + } + ], + "has_material_category": [ + { + "label": "Organic material", + "identifier": "https://w3id.org/isample/vocabulary/material/organicmaterial", + "scheme_name": "iSamples Materials Vocabulary" + } + ], + "has_sample_object_type": [ + { + "label": "Organism part", + "identifier": "https://w3id.org/isample/vocabulary/materialsampleobjecttype/organismpart", + "scheme_name": "iSamples Material Sample Object Type Vocabulary" + }, + { + "label": "Human brain", + "identifier": "\t\nhttp://purl.org/sig/ont/fma/fma50801", + "scheme_name": "Foundational Model of Anatomy" + }, + { + "label": "Human spinal cord", + "identifier": "http://purl.org/sig/ont/fma/fma7647", + "scheme_name": "Foundational Model of Anatomy" + } + ], + "keywords": [ + { + "keyword": "brain", + "keyword_uri": "keyword_uri", + "scheme_name": "scheme_name", + "scheme_uri": "scheme_uri" + }, + { + "keyword": "spinal cord" + }, + { + "keyword": "Multiple Sclerosis" + } + ], + "related_resource": [ + { + "description": "Tissue thin section from NYBB_MS1, BA9", + "label": "SBB1.3", + "relationship": "Child sample", + "target": "http://medsamples.org/research/nybbms1/sbb1.3" + }, + { + "description": "many other child samples...." + } + ], + "complies_with": ["links or descriptions of protocols for collection and use of human body parts for research"], + "curation": { + "access_constraints": ["access_constraints0"], + "curation_location": "curation_location", + "description": "How and where is this tissue material preserverd; who to contact about access to sample?", + "label": "label", + "responsibility": [ + { + "name": "name", + "affiliation": "affiliation", + "contact_information": "contact_information", + "identifier": "identifier", + "role": "role" + } + ] + } + } +} \ No newline at end of file diff --git a/examples/brainSubSample1.json b/examples/brainSubSample1.json new file mode 100644 index 0000000..aa5aa19 --- /dev/null +++ b/examples/brainSubSample1.json @@ -0,0 +1,110 @@ +{ + "$schema": "../src/schemas/iSamplesSchemaCore1.0.json", + "@id": "https://isamples.org/metadata/4327q543jh", + "@context": "https://isamples.org/metadata", + "@type": "schema:DigitalDocument", + "dct:conformsTo": "https://isamples.org/metadata", + "registrant": { + "name": "name", + "affiliation": "affiliation", + "contact_information": "contact_information", + "identifier": "identifier", + "role": "role" + }, + "about": { + "@id":"xxx:metadataabout/NYBB-MS1/SBB5.1", + "@type":"schema:Thing", + "sample_identifier": "NYBB-MS1/SBB5.1", + "label": "Hippocampal formation from Male adult", + "description": "Hippocampal formation extracted from brain of male adult, age 65 at death, affected by multiple sclerosis", + "alternate_identifiers": [], + "produced_by": { + "identifier": "identifier", + "label": "label", + "description": "Post mortem dissection", + "has_feature_of_interest": "Human brain", + "project": "Brain inventory", + "responsibility": [ + { + "name": "Dr. Who did the dissection", + "affiliation": "affiliation", + "contact_information": "contact_information", + "identifier": "identifier", + "role": "collector" + } + ], + "result_time": "2020-09-24", + "sampling_site": { + "description": "Hippocampal formation (HF), Post mortem dissection, St. Mary's hospital, Tucson, AZ", + "label": "Hippocampal formation (HF)", + "place_name": ["Hippocampal formation (HF)"] + }, + "authorized_by": ["appropriate documentation authorizing collection of body parts for research"] + }, + "sampling_purpose": "pathology analysis", + "has_context_category": [ + { + "label": "Human brain", + "identifier": "\t\nhttp://purl.org/sig/ont/fma/fma50801", + "scheme_name": "Foundational Model of Anatomy" + }, + { + "label": "Biological entity", + "identifier": "https://w3id.org/isample/vocabulary/sampledfeature/biologicalentity", + "scheme_name": "iSamples Sampled Feature Type vocabulary" + } + ], + "has_material_category": [ + { + "label": "Organic material", + "identifier": "https://w3id.org/isample/vocabulary/material/organicmaterial", + "scheme_name": "iSamples Materials Vocabulary" + } + ], + "has_sample_object_type": [ + { + "label": "Organism part", + "identifier": "https://w3id.org/isample/vocabulary/materialsampleobjecttype/organismpart", + "scheme_name": "iSamples Material Sample Object Type Vocabulary" + } + ], + "keywords": [ + { + "keyword": "brain", + "keyword_uri": "keyword_uri", + "scheme_name": "scheme_name", + "scheme_uri": "scheme_uri" + }, + { + "keyword": "Hippocampal formation" + }, + { + "keyword": "Multiple Sclerosis" + } + ], + "related_resource": [ + { + "description": "Brain and spinal cord from MYBB_MS1", + "label": "MYBB_MS1", + "relationship": "Parent sample", + "target": "http://medsamples.org/research/nybbms1" + } + ], + "complies_with": ["links or descriptions of protocols for collection and use of human body parts for research"], + "curation": { + "access_constraints": ["access_constraints0"], + "curation_location": "curation_location", + "description": "How and where is this tissue material preserverd; who to contact about access to sample?", + "label": "label", + "responsibility": [ + { + "name": "name", + "affiliation": "affiliation", + "contact_information": "contact_information", + "identifier": "identifier", + "role": "role" + } + ] + } + } +} \ No newline at end of file From bee49964ace2e4af2a611ededae715400ab1f031 Mon Sep 17 00:00:00 2001 From: Stephen Richard Date: Fri, 11 Apr 2025 11:24:03 -0700 Subject: [PATCH 3/4] django template for creating iSamples JSON --- .../test1.0Valid/SESARDjango-Template.json | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 examples/SESAR/test1.0Valid/SESARDjango-Template.json diff --git a/examples/SESAR/test1.0Valid/SESARDjango-Template.json b/examples/SESAR/test1.0Valid/SESARDjango-Template.json new file mode 100644 index 0000000..cf5608c --- /dev/null +++ b/examples/SESAR/test1.0Valid/SESARDjango-Template.json @@ -0,0 +1,69 @@ +{ + "@schema": "iSamplesSchemaCore1.0.json", + "@id":"{{data.metadataid}}", + "label": "{{data.label}}", +"sample_identifier": "{{data.igsn}}", + "description": "{{data.description}}", + {% if data.featuretype %} + "has_context_category": [ + {% for feat in data.featuretype %} + {"label":"","identifier":""}, + {% endfor %} + ], + {% endif %} + {% if data.materials %} + "has_material_category": [ + {% for mat in data.materials %} + {"label":"","identifier":""}, + {% endfor %} + ], + {% endif %} + {% if data.objecttype %} + "has_sample_object_type": [ + {% for obj in data.objecttype %} + {"label":"","identifier":""}, + {% endfor %} + ], + {% endif %} + + {% endif %} + {% if data.keywords %} + "keywords": [ + {% for word in data.kewords %} + {% if word.uri%} + { + "keyword": "{{word.label}}", + "keyword_uri": "{{word.uri}}", + {% if word.uri%} + "scheme_name": "{{word.schemename}}", + {% endif %} + {% if word.uri%} + "scheme_uri": "word.schemeuri" + }, {% endif %} + {% else %} + {"keyword":"{{word.label}"}, + {% endif %} + {% endfor %} + ], + {% endif %} + + "produced_by": { + "label": "", + "description": "", + "has_feature_of_interest": "{{data.locality_type}}", + "responsibility": [{"role":"collector","name":"{{individual_name}}"}], + "sampling_site": { + "description": "{{locality_detail}}", + "label": "", + "sample_location": { + "elevation": "", + "latitude": 0, + "longitude": 0 + }, + "place_name": [""] + } + }, + "registrant": {"name":"{{registrant}}"}, + "last_modified_time":"2024-09-13T09:20:00-07:00", + "sampling_purpose": "" +} \ No newline at end of file From 1ea7cbd9c0dca7ec79d3df3c93a5bb1661f9767d Mon Sep 17 00:00:00 2001 From: Stephen Richard Date: Fri, 11 Apr 2025 11:24:13 -0700 Subject: [PATCH 4/4] ODIS mapping --- .../schema.org-iSamplesMapping-ODIS.docx | Bin 0 -> 32411 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 schemaMapping/schema.org-iSamplesMapping-ODIS.docx diff --git a/schemaMapping/schema.org-iSamplesMapping-ODIS.docx b/schemaMapping/schema.org-iSamplesMapping-ODIS.docx new file mode 100644 index 0000000000000000000000000000000000000000..faebfd17c4ff9c28dc08ec946097716e811e70dd GIT binary patch literal 32411 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