diff --git a/.gitignore b/.gitignore
index b6e4761..75cb1b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+.DS_Store
+.idea
+
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
diff --git a/Diagnosis.yaml b/Diagnosis.yaml
new file mode 100644
index 0000000..c56abed
--- /dev/null
+++ b/Diagnosis.yaml
@@ -0,0 +1,23 @@
+stage:
+- method_type:
+ - coding:
+ - code: C125738
+ system: http://ncithesaurus.nci.nih.gov/
+ label: FIGO Stage
+ tag:
+ - harmonized
+ observations:
+ - observation_type:
+ coding:
+ - code: C25605
+ system: http://ncithesaurus.nci.nih.gov/
+ label: Overall
+ tag:
+ - harmonized
+ value_codeable_concept:
+ coding:
+ - code: C96258
+ system: http://ncithesaurus.nci.nih.gov/
+ label: FIGO Stage IIIC
+ tag:
+ - harmonized
diff --git a/Diagnosis_id.yaml b/Diagnosis_id.yaml
new file mode 100644
index 0000000..5005762
--- /dev/null
+++ b/Diagnosis_id.yaml
@@ -0,0 +1,59 @@
+id: "pdc-diagnosis:ff2f0efb-70ca-11e8-bcf1-0a2705229b82"
+#identifier: # type = Identifier
+# - value: "tcga:TCGA-13-1409-DX"
+age_at_diagnosis: # type = Quantity
+ value_decimal: 26836
+ unit: # type = CodeableConcept
+ coding: # type = Coding
+ - code: C25301
+ label: Day
+ system: http://ncithesaurus.nci.nih.gov/
+ tag:
+ - harmonized
+morphology: # type = CodeableConcept
+ coding: # type = Coding
+ - code: C3778
+ label: Serous Cystadenocarcinoma
+ system: https://ncithesaurus.nci.nih.gov/
+ tag:
+ - harmonized
+condition: # type = CodeableConcept
+ coding: # type = Coding
+ - code: C3778
+ label: Serous Cystadenocarcinoma
+ system: https://ncithesaurus.nci.nih.gov/
+ tag:
+ - harmonized
+#primary_site: # type = BodySite
+# - site: # type = CodeableConcept
+# coding: # type = Coding
+# - code: C12404
+# label: Ovary
+# system: https://ncithesaurus.nci.nih.gov/
+# tag:
+# - harmonized
+stage: # type = CancerStageObservationSet
+ - method_type: # type = CodeableConcept
+ - coding: # type = Coding
+ - code: C125738
+ label: FIGO Stage
+ system: https://ncithesaurus.nci.nih.gov/
+ tag:
+ - harmonized
+# - observations: # type = CancerStageObservation
+# - observation_type: # type = CodeableConcept
+# coding: # type = Coding
+# - code: C25605
+# label: Overall
+# system: http://ncithesaurus.nci.nih.gov/
+# tag:
+# - harmonized
+# value_codeable_concept: # type = CodeableConcept
+# coding: # type = Coding
+# - code: C96258
+# label: FIGO Stage IIIC
+# system: http://ncithesaurus.nci.nih.gov/
+# tag:
+# - harmonized
+#diagnosis_date:
+# date_time: 2008
diff --git a/GDC to CCDH conversion.ipynb b/GDC to CCDH conversion.ipynb
index 13e8d8b..3c6d57b 100644
--- a/GDC to CCDH conversion.ipynb
+++ b/GDC to CCDH conversion.ipynb
@@ -38,7 +38,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 1,
"id": "0b848016",
"metadata": {},
"outputs": [],
@@ -72,7 +72,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 2,
"id": "8e146c12",
"metadata": {
"scrolled": false
@@ -591,7 +591,7 @@
"[560 rows x 25 columns]"
]
},
- "execution_count": 3,
+ "execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
@@ -620,7 +620,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 3,
"id": "a16e6db1",
"metadata": {
"scrolled": false
@@ -634,6 +634,36 @@
" Any material taken as a sample from a biological entity (living or dead), or from a physical object or the\n",
" environment. Specimens are usually collected as an example of their kind, often for use in some investigation.\n",
" \n",
+ "Documentation for BodySite: \n",
+ " A site in the body of an organism, typically described in terms of an anatomical location and optional qualifiers\n",
+ " (e.g. left/right, upper/lower). But body sites as defined here may include 'non-anatomic' sites, such as the\n",
+ " location of an implanted medical device.\n",
+ " \n"
+ ]
+ }
+ ],
+ "source": [
+ "# from ccdh import ccdhmodel as ccdh\n",
+ "import crdch_model as ccdh\n",
+ "\n",
+ "# Documentation for an entity.\n",
+ "print(f\"Documentation for Specimen: {ccdh.Specimen.__doc__}\")\n",
+ "\n",
+ "\n",
+ "# Documentation for an entity.\n",
+ "print(f\"Documentation for BodySite: {ccdh.BodySite.__doc__}\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "df14d2c6",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
"Documentation for Specimen.specimen_type: \n",
" A high-level type of specimen, based on its derivation provenance (i.e. how far removed it is from the original\n",
" sample extracted from a source).\n",
@@ -643,22 +673,20 @@
" - Value \"aliquot\": A specimen that results from the division of some parent specimen into equal amounts for downstream analysis.\n",
" - Value \"analyte\": A specimen generated through the extraction of a specified class of substance/chemical (e.g. DNA, RNA, protein) from a parent specimen, which is stored in solution as an analyte.\n",
" - Value \"slide\": A specimen that is mounted on a slide or coverslip for microscopic analysis.\n",
- " - Value \"initial sample\": A specimen representing the material that was directly collected from a subject (i.e. not generated through portioning, aliquoting, or analyte extraction from an existing specimen).\n"
+ " - Value \"Fresh Specimen\": A specimen representing the material that was directly collected from a subject (i.e. not generated through portioning, aliquoting, or analyte extraction from an existing specimen).\n"
]
}
],
"source": [
- "from ccdh import ccdhmodel as ccdh\n",
- "\n",
- "# Documentation for an entity.\n",
- "print(f\"Documentation for Specimen: {ccdh.Specimen.__doc__}\")\n",
- "\n",
"# Documentation for an enumeration.\n",
- "print(f\"Documentation for Specimen.specimen_type: {ccdh.EnumCCDHSpecimenSpecimenType.__doc__}\")\n",
+ "# print(f\"Documentation for Specimen.specimen_type: {ccdh.EnumCCDHSpecimenSpecimenType.__doc__}\")\n",
+ "print(f\"Documentation for Specimen.specimen_type: {ccdh.EnumCRDCHSpecimenSpecimenType.__doc__}\")\n",
"\n",
"# List of permissible values for Specimen.specimen_type\n",
+ "# wiht move to codeable concepts,this may be of limited usefulness now\n",
"print(\"Permissible values in enumeration Specimen.specimen_type:\")\n",
- "pvalues = [pv for key, pv in ccdh.EnumCCDHSpecimenSpecimenType.__dict__.items() if isinstance(pv, ccdh.PermissibleValue)]\n",
+ "# pvalues = [pv for key, pv in ccdh.EnumCCDHSpecimenSpecimenType.__dict__.items() if isinstance(pv, ccdh.PermissibleValue)]\n",
+ "pvalues = [pv for key, pv in ccdh.EnumCRDCHSpecimenSpecimenType.__dict__.items() if isinstance(pv, ccdh.PermissibleValue)]\n",
"for pv in pvalues:\n",
" print(f' - Value \"{pv.text}\": {pv.description}')"
]
@@ -683,56 +711,176 @@
"execution_count": 5,
"id": "76578a61",
"metadata": {},
+ "outputs": [],
+ "source": [
+ "import requests\n",
+ "import pandas as pd\n",
+ "import difflib\n",
+ "\n",
+ "# use terminology.ccdh.io to drive mapping strings to codable concepts\n",
+ "# paramterize the URL below\n",
+ "response = requests.get(\n",
+ " \"https://terminology.ccdh.io/models/CRDC-H/entities/BodySite/attributes/site\"\n",
+ ")\n",
+ "resp_struct = response.json()\n",
+ "BodyPart_frame = pd.DataFrame(resp_struct[\"concept_references\"])\n",
+ "\n",
+ "# could also use\n",
+ "# https://terminology.ccdh.io/enumerations/CRDC-H.BodySite.site\n",
+ "\n",
+ "\n",
+ "def create_body_site(site_name):\n",
+ " \"\"\"Create a CCDH BodySite based on the name of a site in the human body.\"\"\"\n",
+ "\n",
+ " # Accept 'None'.\n",
+ " if site_name is None:\n",
+ " return None\n",
+ " #\n",
+ " # # Some body sites are not currently included in the CCDH model. We will need to translate these sites\n",
+ " # # into values that *are* included in the CCDH model.\n",
+ " # # site_mappings = {\n",
+ " # # 'Larynx, NOS': ccdh.EnumCCDHBodySiteSite.Larynx\n",
+ " # # }\n",
+ " # site_mappings = {\n",
+ " # 'Larynx, NOS': ccdh.CodeableConcept(coding=[ccdh.Coding(code=\"UBERON:0001737\", system=\"http://purl.obolibrary.org/obo/uberon.owl\", label=\"larynx\")])\n",
+ " # }\n",
+ " #\n",
+ " # # previously: Map values if needed. Otherwise, pass them through unmapped.\n",
+ " # # now: can't pass through text because the site has to be a codable concept.\n",
+ " # # should the mapping be done here in the application, via the CCDH terminology serivce?\n",
+ " # # mock up for now with some other lookup service?\n",
+ " # if site_name in site_mappings:\n",
+ " # return ccdh.BodySite(site=(site_mappings[site_name]))\n",
+ " # else:\n",
+ " # return None\n",
+ " #\n",
+ " # # return ccdh.BodySite(site=site_name)\n",
+ " \n",
+ " # blindly get closest match\n",
+ " closest_BodyPart_label = difflib.get_close_matches(\n",
+ " site_name, list(BodyPart_frame[\"designation\"])\n",
+ " )[0]\n",
+ " # send to logger or wrap as an optional debug mode\n",
+ " print(\"input site: \" + site_name)\n",
+ " print(\"closest match: \" + closest_BodyPart_label)\n",
+ " closest_BodyPart = BodyPart_frame.loc[\n",
+ " BodyPart_frame[\"designation\"] == closest_BodyPart_label\n",
+ " ]\n",
+ " closest_BodyPart = closest_BodyPart.to_dict(orient=\"records\")[0]\n",
+ " print(closest_BodyPart)\n",
+ " # this doesn't really say what the \"system\" should be\n",
+ " mapped = ccdh.BodySite(\n",
+ " site=ccdh.CodeableConcept(\n",
+ " coding=[\n",
+ " ccdh.Coding(\n",
+ " code=closest_BodyPart[\"code\"],\n",
+ " system=\"https://terminology.ccdh.io/models/CRDC-H/entities/BodySite/attributes/site\",\n",
+ " label=closest_BodyPart[\"designation\"]\n",
+ " )\n",
+ " ], text = site_name\n",
+ " )\n",
+ " )\n",
+ " return mapped\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "56ff4218",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# # Try to create a body site for a site name not currently included in the CCDH model.\n",
+ "# try:\n",
+ "# created = create_body_site('Laryn') # Note misspelling.\n",
+ "# except ValueError as v:\n",
+ "# print(f'Could not create BodySite: {v}')\n",
+ "# print(created)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "9b6d02c5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# # Using a valid name generates no errors.\n",
+ "# create_body_site('Larynx') \n",
+ "\n",
+ "# # Using a mapped name generates no errors, as it is mapped to a valid name.\n",
+ "# create_body_site('Larynx, NOS')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "7db02802",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "PermissibleValue(text='Larynx', description='Larynx', meaning=None, is_a=None, mixins=[], extensions={}, annotations={}, alt_descriptions={}, deprecated=None, todos=[], notes=[], comments=[], examples=[], in_subset=[], from_schema=None, imported_from=None, see_also=[], deprecated_element_has_exact_replacement=None, deprecated_element_has_possible_replacement=None)"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# how is this still useful? why is it still in the model?\n",
+ "ccdh.EnumCRDCHBodySiteSite.Larynx"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "b0b9747b",
+ "metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Could not create BodySite: Unknown EnumCCDHBodySiteSite enumeration code: Laryn\n"
+ "input site: Laryn\n",
+ "closest match: Larynx\n",
+ "{'code': 'C12420', 'uri': 'http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C12420', 'designation': 'Larynx', 'definition': 'The cartilaginous structure of the respiratory tract between the pharynx and the trachea. It contains elastic vocal cords required for sound production.', 'reference': 'https://ncit.nci.nih.gov/ncitbrowser/pages/concept_details.jsf?dictionary=NCI%20Thesaurus&code=C12420'}\n"
]
- },
+ }
+ ],
+ "source": [
+ "created_body_site = create_body_site(\"Laryn\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "41ef6178",
+ "metadata": {},
+ "outputs": [
{
"data": {
"text/plain": [
- "BodySite(site=(text='Larynx', description='Larynx'), qualifier=[])"
+ "BodySite(site=CodeableConcept(coding=[Coding(code='C12420', system='https://terminology.ccdh.io/models/CRDC-H/entities/BodySite/attributes/site', label='Larynx', system_version=None, value_set=None, value_set_version=None, tag=[])], text='Laryn'), qualifier=[])"
]
},
- "execution_count": 5,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "def create_body_site(site_name):\n",
- " \"\"\" Create a CCDH BodySite based on the name of a site in the human body.\"\"\"\n",
- " \n",
- " # Accept 'None'.\n",
- " if site_name is None:\n",
- " return None\n",
- " \n",
- " # Some body sites are not currently included in the CCDH model. We will need to translate these sites\n",
- " # into values that *are* included in the CCDH model.\n",
- " site_mappings = {\n",
- " 'Larynx, NOS': ccdh.EnumCCDHBodySiteSite.Larynx\n",
- " }\n",
- " \n",
- " # Map values if needed. Otherwise, pass them through unmapped.\n",
- " if site_name in site_mappings:\n",
- " return ccdh.BodySite(site=(site_mappings[site_name]))\n",
- " \n",
- " return ccdh.BodySite(site=site_name)\n",
- "\n",
- "# Try to create a body site for a site name not currently included in the CCDH model.\n",
- "try:\n",
- " create_body_site('Laryn') # Note misspelling.\n",
- "except ValueError as v:\n",
- " print(f'Could not create BodySite: {v}')\n",
- "\n",
- "# Using a valid name generates no errors.\n",
- "create_body_site('Larynx') \n",
- "\n",
- "# Using a mapped name generates no errors, as it is mapped to a valid name.\n",
- "create_body_site('Larynx, NOS')"
+ "created_body_site"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "83a7dfe9",
+ "metadata": {},
+ "source": [
+ "---"
]
},
{
@@ -743,25 +891,620 @@
"We need a more sophisticated transformation method for transforming the GDC cancer stage information into [CCDH Cancer Stage Observation Set](https://cancerdhc.github.io/ccdhmodel/latest/CancerStageObservationSet/). Each observation set is made up of a number of [CCDH Cancer Stage Observations](https://cancerdhc.github.io/ccdhmodel/latest/CancerStageObservation/), each of which represents a different type of observation."
]
},
+ {
+ "cell_type": "markdown",
+ "id": "66a25c65",
+ "metadata": {},
+ "source": [
+ "https://terminology.ccdh.io/models/CRDC-H/entities/CancerStageObservation/attributes\n",
+ "\n",
+ "```\n",
+ "[\n",
+ " {\n",
+ " \"name\": \"category\"\n",
+ " },\n",
+ " {\n",
+ " \"name\": \"observation_type\"\n",
+ " },\n",
+ " {\n",
+ " \"name\": \"method_type\"\n",
+ " },\n",
+ " {\n",
+ " \"name\": \"valueCodeableConcept\"\n",
+ " },\n",
+ " {\n",
+ " \"name\": \"id\"\n",
+ " },\n",
+ " {\n",
+ " \"name\": \"focus\"\n",
+ " },\n",
+ " {\n",
+ " \"name\": \"subject\"\n",
+ " },\n",
+ " {\n",
+ " \"name\": \"performed_by\"\n",
+ " },\n",
+ " {\n",
+ " \"name\": \"valueEntity\"\n",
+ " }\n",
+ "]\n",
+ "```\n",
+ "\n",
+ "`enum_CRDCH_CancerStageObservation_observation_type` still has `permissible_values` but I don't see a codeable concept endpoint for these like I showed for the BodySites above."
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 6,
- "id": "2d661175",
- "metadata": {
- "scrolled": true
- },
+ "execution_count": 11,
+ "id": "4dec653c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# pvalues = [pv for key, pv in ccdh.EnumCRDCHCancerStageObservationObservationType.__dict__.items() if isinstance(pv, ccdh.PermissibleValue)]\n",
+ "# csoot_list = []\n",
+ "# for pv in pvalues:\n",
+ "# csoot_list.append(pv.text)\n",
+ "# csoot_list.sort()\n",
+ "# csoot_list\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "c08d80b5",
+ "metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "CancerStageObservationSet(id=None, category=None, focus=[], subject=None, method_type=[(text='AJCC staging system 7th edition', description='The 7th edition of the criteria developed by the American Joint Committee on Cancer (AJCC) in 2010, used for the classification and staging of neoplastic diseases.')], performed_by=None, observations=[CancerStageObservation(observation_type=(text='Overall', description='The overall stage of the disease'), valueCodeableConcept=(text='Stage IVC', description='Stage IVC'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None), CancerStageObservation(observation_type=(text='Clinical Overall', description='The overall stage of the disease; clinical stage is determined from evidence acquired before treatment (including clinical examination, imaging, endoscopy, biopsy, surgical exploration)'), valueCodeableConcept=(text='Stage IVC', description='Stage IVC'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None), CancerStageObservation(observation_type=(text='Clinical Tumor (T)', description='T classifies the size or direct extent of the primary tumor; clinical stage is determined from evidence acquired before treatment (including clinical examination, imaging, endoscopy, biopsy, surgical exploration)'), valueCodeableConcept=(text='T3', description='T3 Stage Finding'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None), CancerStageObservation(observation_type=(text='Clinical Node (N)', description='N classifies the degree of spread to regional lymph nodes; clinical stage is determined from evidence acquired before treatment (including clinical examination, imaging, endoscopy, biopsy, surgical exploration)'), valueCodeableConcept=(text='N1', description='N1 Stage Finding'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None), CancerStageObservation(observation_type=(text='Clinical Metastasis (M)', description='M classifies the presence of distant metastasis; clinical stage is determined from evidence acquired before treatment (including clinical examination, imaging, endoscopy, biopsy, surgical exploration)'), valueCodeableConcept=(text='M1', description='M1 Stage Finding'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None), CancerStageObservation(observation_type=(text='Pathological Overall', description='The overall stage of the disease; stage given by histopathologic examination of a surgical specimen'), valueCodeableConcept=(text='Stage IVC', description='Stage IVC'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None), CancerStageObservation(observation_type=(text='Pathological Tumor (T)', description='T classifies the size or direct extent of the primary tumor; stage given by histopathologic examination of a surgical specimen'), valueCodeableConcept=(text='T3', description='T3 Stage Finding'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None), CancerStageObservation(observation_type=(text='Pathological Node (N)', description='N classifies the degree of spread to regional lymph nodes; stage given by histopathologic examination of a surgical specimen'), valueCodeableConcept=(text='N1', description='N1 Stage Finding'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None), CancerStageObservation(observation_type=(text='Pathological Metastasis (M)', description='M classifies the presence of distant metastasis; stage given by histopathologic examination of a surgical specimen'), valueCodeableConcept=(text='M1', description='M1 Stage Finding'), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, valueEntity=None)])"
+ "'M classifies the presence of distant metastasis; stage given by histopathologic examination of a surgical specimen'"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pvalues = [pv for key, pv in ccdh.EnumCRDCHCancerStageObservationObservationType.__dict__.items() if isinstance(pv, ccdh.PermissibleValue)]\n",
+ "# pvalues\n",
+ "ccdh.EnumCRDCHCancerStageObservationObservationType['Pathological Metastasis (M)'].description"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "e10411e7",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "age_at_diagnosis\n",
+ " 22107\n",
+ "ajcc_clinical_m\n",
+ " M1\n",
+ "ajcc_clinical_n\n",
+ " N1\n",
+ "ajcc_clinical_stage\n",
+ " Stage IVC\n",
+ "ajcc_clinical_t\n",
+ " T3\n",
+ "ajcc_pathologic_m\n",
+ " M1\n",
+ "ajcc_pathologic_n\n",
+ " N1\n",
+ "ajcc_pathologic_stage\n",
+ " Stage IVC\n",
+ "ajcc_pathologic_t\n",
+ " T3\n",
+ "ajcc_staging_system_edition\n",
+ " 7th\n",
+ "classification_of_tumor\n",
+ " not reported\n",
+ "created_datetime\n",
+ " None\n",
+ "days_to_diagnosis\n",
+ " 0\n",
+ "days_to_last_follow_up\n",
+ " None\n",
+ "days_to_last_known_disease_status\n",
+ " None\n",
+ "days_to_recurrence\n",
+ " None\n",
+ "diagnosis_id\n",
+ " 9e30aa6c-91e6-5dd3-9512-75c162a89913\n",
+ "icd_10_code\n",
+ " C32.9\n",
+ "last_known_disease_status\n",
+ " not reported\n",
+ "morphology\n",
+ " 8070/3\n",
+ "primary_diagnosis\n",
+ " Squamous cell carcinoma, NOS\n",
+ "prior_malignancy\n",
+ " no\n",
+ "prior_treatment\n",
+ " No\n",
+ "progression_or_recurrence\n",
+ " not reported\n",
+ "site_of_resection_or_biopsy\n",
+ " Larynx, NOS\n",
+ "state\n",
+ " released\n",
+ "submitter_id\n",
+ " TCGA-QK-A8Z8_diagnosis\n",
+ "synchronous_malignancy\n",
+ " No\n",
+ "tissue_or_organ_of_origin\n",
+ " Larynx, NOS\n",
+ "tumor_grade\n",
+ " not reported\n",
+ "tumor_stage\n",
+ " stage ivc\n",
+ "updated_datetime\n",
+ " 2019-08-08T16:48:06.888156-05:00\n",
+ "year_of_diagnosis\n",
+ " 2013\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "temp = gdc_head_and_mouth[131]['diagnoses'][0]\n",
+ "for k,v in temp.items():\n",
+ " print(k)\n",
+ " print(\" \" + str(v))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "4dc921d7",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "gdc_to_crdch_csoot_dict = [\n",
+ " {\"GDC\": \"ajcc_clinical_m\", \"CRDC-H\": \"Clinical Metastasis (M)\"},\n",
+ " {\"GDC\": \"ajcc_clinical_n\", \"CRDC-H\": \"Clinical Node (N)\"},\n",
+ " {\"GDC\": \"ajcc_clinical_stage\", \"CRDC-H\": \"Clinical Overall\"},\n",
+ " {\"GDC\": \"ajcc_clinical_t\", \"CRDC-H\": \"Clinical Tumor (T)\"},\n",
+ " {\"GDC\": \"tumor_stage\", \"CRDC-H\": \"Overall\"},\n",
+ " {\"GDC\": \"ajcc_pathologic_m\", \"CRDC-H\": \"Pathological Metastasis (M)\"},\n",
+ " {\"GDC\": \"ajcc_pathologic_n\", \"CRDC-H\": \"Pathological Node (N)\"},\n",
+ " {\"GDC\": \"ajcc_pathologic_stage\", \"CRDC-H\": \"Pathological Overall\"},\n",
+ " {\"GDC\": \"ajcc_pathologic_t\", \"CRDC-H\": \"Pathological Tumor (T)\"},\n",
+ " {\"GDC\": \"age_at_diagnosis\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"ajcc_staging_system_edition\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"classification_of_tumor\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"created_datetime\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"days_to_diagnosis\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"days_to_last_follow_up\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"days_to_last_known_disease_status\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"days_to_recurrence\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"diagnosis_id\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"icd_10_code\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"last_known_disease_status\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"morphology\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"primary_diagnosis\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"prior_malignancy\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"prior_treatment\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"progression_or_recurrence\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"site_of_resection_or_biopsy\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"state\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"submitter_id\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"synchronous_malignancy\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"tissue_or_organ_of_origin\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"tumor_grade\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"updated_datetime\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"year_of_diagnosis\", \"CRDC-H\": None},\n",
+ "]\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "0748f138",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "gdc_to_crdch_csoot_frame = pd.DataFrame(gdc_to_crdch_csoot_dict)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "b11fc7cd",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "gdc_to_crdch_csoot_frame_complete = gdc_to_crdch_csoot_frame.loc[ ~ gdc_to_crdch_csoot_frame['CRDC-H'].isnull()]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "cddb36a5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " GDC | \n",
+ " CRDC-H | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " ajcc_clinical_m | \n",
+ " Clinical Metastasis (M) | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " ajcc_clinical_n | \n",
+ " Clinical Node (N) | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " ajcc_clinical_stage | \n",
+ " Clinical Overall | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " ajcc_clinical_t | \n",
+ " Clinical Tumor (T) | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " tumor_stage | \n",
+ " Overall | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " ajcc_pathologic_m | \n",
+ " Pathological Metastasis (M) | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " ajcc_pathologic_n | \n",
+ " Pathological Node (N) | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " ajcc_pathologic_stage | \n",
+ " Pathological Overall | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " ajcc_pathologic_t | \n",
+ " Pathological Tumor (T) | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " GDC CRDC-H\n",
+ "0 ajcc_clinical_m Clinical Metastasis (M)\n",
+ "1 ajcc_clinical_n Clinical Node (N)\n",
+ "2 ajcc_clinical_stage Clinical Overall\n",
+ "3 ajcc_clinical_t Clinical Tumor (T)\n",
+ "4 tumor_stage Overall\n",
+ "5 ajcc_pathologic_m Pathological Metastasis (M)\n",
+ "6 ajcc_pathologic_n Pathological Node (N)\n",
+ "7 ajcc_pathologic_stage Pathological Overall\n",
+ "8 ajcc_pathologic_t Pathological Tumor (T)"
]
},
- "execution_count": 6,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
+ "source": [
+ "gdc_to_crdch_csoot_frame_complete"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "c7c33259",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from linkml_runtime.dumpers import yaml_dumper\n",
+ "\n",
+ "cancer_stage_method_type = None\n",
+ "# if diagnosis.get('ajcc_staging_system_edition') == '7th':\n",
+ "# cancer_stage_method_type = 'AJCC staging system 7th edition'\n",
+ "\n",
+ "# Create an observation set\n",
+ "obs = ccdh.CancerStageObservationSet(method_type=cancer_stage_method_type)\n",
+ "\n",
+ "\n",
+ "def diag_cc_mapper(diag_info_type, diag_info_val):\n",
+ " if diag_info_val is not None:\n",
+ " crdch_diag_info_type = gdc_to_crdch_csoot_frame_complete[\"CRDC-H\"].loc[\n",
+ " gdc_to_crdch_csoot_frame_complete[\"GDC\"] == diag_info_type\n",
+ " ]\n",
+ " crdch_diag_info_type = list(crdch_diag_info_type)\n",
+ " if len(crdch_diag_info_type) == 1:\n",
+ " crdch_diag_info_type = crdch_diag_info_type[0]\n",
+ " # we could look up the sescription for the mapped type enum\n",
+ " # but where would we put it in the obs structure?\n",
+ " crdch_diag_info_type_desc = (\n",
+ " ccdh.EnumCRDCHCancerStageObservationObservationType[\n",
+ " crdch_diag_info_type\n",
+ " ].description\n",
+ " )\n",
+ " current_observation = ccdh.CancerStageObservation(\n",
+ " observation_type=ccdh.CodeableConcept(\n",
+ " coding=[\n",
+ " ccdh.Coding(\n",
+ " code=crdch_diag_info_type,\n",
+ " system=\"crdch-model 1.1.5 legacy enums\",\n",
+ " )\n",
+ " ],\n",
+ " text=diag_info_type,\n",
+ " ),\n",
+ " # valueCodeableConcept ?\n",
+ " value_codeable_concept=ccdh.CodeableConcept(\n",
+ " coding=[\n",
+ " ccdh.Coding(\n",
+ " code=diag_info_val, system=\"crdch-model 1.1.5 legacy enums\"\n",
+ " )\n",
+ " ]\n",
+ " ),\n",
+ " )\n",
+ " obs.observations.append(current_observation)\n",
+ "\n",
+ "\n",
+ "diagnosis_dict = gdc_head_and_mouth[131][\"diagnoses\"][0]\n",
+ "for k, v in diagnosis_dict.items():\n",
+ " diag_cc_mapper(k, v)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "9c531670",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CancerStageObservation(observation_type=CodeableConcept(coding=[Coding(code='Clinical Metastasis (M)', system='crdch-model 1.1.5 legacy enums', label=None, system_version=None, value_set=None, value_set_version=None, tag=[])], text='ajcc_clinical_m'), value_codeable_concept=CodeableConcept(coding=[Coding(code='M1', system='crdch-model 1.1.5 legacy enums', label=None, system_version=None, value_set=None, value_set_version=None, tag=[])], text=None), id=None, category=None, method_type=None, focus=None, subject=None, performed_by=None, value_entity=None)\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(obs.observations[0])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "482376b6",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "observations:\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Clinical Metastasis (M)\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: ajcc_clinical_m\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: M1\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Clinical Node (N)\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: ajcc_clinical_n\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: N1\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Clinical Overall\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: ajcc_clinical_stage\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: Stage IVC\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Clinical Tumor (T)\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: ajcc_clinical_t\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: T3\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Pathological Metastasis (M)\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: ajcc_pathologic_m\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: M1\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Pathological Node (N)\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: ajcc_pathologic_n\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: N1\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Pathological Overall\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: ajcc_pathologic_stage\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: Stage IVC\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Pathological Tumor (T)\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: ajcc_pathologic_t\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: T3\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "- observation_type:\n",
+ " coding:\n",
+ " - code: Overall\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ " text: tumor_stage\n",
+ " value_codeable_concept:\n",
+ " coding:\n",
+ " - code: stage ivc\n",
+ " system: crdch-model 1.1.5 legacy enums\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(yaml_dumper.dumps(obs))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "104a932f",
+ "metadata": {},
+ "source": [
+ "## Expecting something like this:\n",
+ "\n",
+ "```\n",
+ "observations:\n",
+ "- observation_type:\n",
+ " text: Overall\n",
+ " description: The overall stage of the disease\n",
+ " valueCodeableConcept:\n",
+ " text: Stage IVC\n",
+ " description: Stage IVC\n",
+ "- observation_type:\n",
+ " text: Clinical Overall\n",
+ " description: The overall stage of the disease; clinical stage is determined from\n",
+ " evidence acquired before treatment (including clinical examination, imaging,\n",
+ " endoscopy, biopsy, surgical exploration)\n",
+ " valueCodeableConcept:\n",
+ " text: Stage IVC\n",
+ " description: Stage IVC\n",
+ "- observation_type:\n",
+ " text: Clinical Tumor (T)\n",
+ " description: T classifies the size or direct extent of the primary tumor; clinical\n",
+ " stage is determined from evidence acquired before treatment (including clinical\n",
+ " examination, imaging, endoscopy, biopsy, surgical exploration)\n",
+ " valueCodeableConcept:\n",
+ " text: T3\n",
+ " description: T3 Stage Finding\n",
+ "- observation_type:\n",
+ " text: Clinical Node (N)\n",
+ " description: N classifies the degree of spread to regional lymph nodes; clinical\n",
+ " stage is determined from evidence acquired before treatment (including clinical\n",
+ " examination, imaging, endoscopy, biopsy, surgical exploration)\n",
+ " valueCodeableConcept:\n",
+ " text: N1\n",
+ " description: N1 Stage Finding\n",
+ "- observation_type:\n",
+ " text: Clinical Metastasis (M)\n",
+ " description: M classifies the presence of distant metastasis; clinical stage is\n",
+ " determined from evidence acquired before treatment (including clinical examination,\n",
+ " imaging, endoscopy, biopsy, surgical exploration)\n",
+ " valueCodeableConcept:\n",
+ " text: M1\n",
+ " description: M1 Stage Finding\n",
+ "- observation_type:\n",
+ " text: Pathological Overall\n",
+ " description: The overall stage of the disease; stage given by histopathologic\n",
+ " examination of a surgical specimen\n",
+ " valueCodeableConcept:\n",
+ " text: Stage IVC\n",
+ " description: Stage IVC\n",
+ "- observation_type:\n",
+ " text: Pathological Tumor (T)\n",
+ " description: T classifies the size or direct extent of the primary tumor; stage\n",
+ " given by histopathologic examination of a surgical specimen\n",
+ " valueCodeableConcept:\n",
+ " text: T3\n",
+ " description: T3 Stage Finding\n",
+ "- observation_type:\n",
+ " text: Pathological Node (N)\n",
+ " description: N classifies the degree of spread to regional lymph nodes; stage\n",
+ " given by histopathologic examination of a surgical specimen\n",
+ " valueCodeableConcept:\n",
+ " text: N1\n",
+ " description: N1 Stage Finding\n",
+ "- observation_type:\n",
+ " text: Pathological Metastasis (M)\n",
+ " description: M classifies the presence of distant metastasis; stage given by histopathologic\n",
+ " examination of a surgical specimen\n",
+ " valueCodeableConcept:\n",
+ " text: M1\n",
+ " description: M1 Stage Finding\n",
+ "\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "2d661175",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "ename": "TypeError",
+ "evalue": "type object argument after ** must be a mapping, not str",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m/tmp/ipykernel_338501/868770706.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;31m# Note that the resulting CancerStageObservationSet contains descriptions for the concepts included in it.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0;31m# example_observation_set = create_stage_from_gdc(gdc_head_and_mouth[131]['diagnoses'][0], ccdh.Subject(id='1234'))\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0mexample_observation_set\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcreate_stage_from_gdc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgdc_head_and_mouth\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m131\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'diagnoses'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 71\u001b[0m \u001b[0mexample_observation_set\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/tmp/ipykernel_338501/868770706.py\u001b[0m in \u001b[0;36mcreate_stage_from_gdc\u001b[0;34m(diagnosis)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 32\u001b[0m \u001b[0;31m# Create an observation set\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 33\u001b[0;31m obs = ccdh.CancerStageObservationSet(\n\u001b[0m\u001b[1;32m 34\u001b[0m \u001b[0mmethod_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcancer_stage_method_type\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 35\u001b[0m )\n",
+ "\u001b[0;32m~/.local/share/virtualenvs/example-data-8chtNU61/lib/python3.8/site-packages/crdch_model.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, id, category, focus, subject, method_type, performed_by, observations, **kwargs)\u001b[0m\n",
+ "\u001b[0;32m~/.local/share/virtualenvs/example-data-8chtNU61/lib/python3.8/site-packages/crdch_model.py\u001b[0m in \u001b[0;36m__post_init__\u001b[0;34m(self, *_, **kwargs)\u001b[0m\n\u001b[1;32m 436\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 438\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mCodeableConcept\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mCodeableConcept\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mas_dict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 439\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 440\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mperformed_by\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mperformed_by\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mOrganization\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/share/virtualenvs/example-data-8chtNU61/lib/python3.8/site-packages/crdch_model.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 436\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 438\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mCodeableConcept\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mCodeableConcept\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mas_dict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod_type\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 439\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 440\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mperformed_by\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mperformed_by\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mOrganization\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mTypeError\u001b[0m: type object argument after ** must be a mapping, not str"
+ ]
+ }
+ ],
"source": [
"def create_stage_observation(type, value):\n",
" \"\"\" Create a CCDHCancerStageObservation from a type of observation and a codeable concept.\"\"\"\n",
@@ -846,91 +1589,24 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": null,
"id": "14d23f3f",
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "observations:\n",
- "- observation_type:\n",
- " text: Overall\n",
- " description: The overall stage of the disease\n",
- " valueCodeableConcept:\n",
- " text: Stage IVC\n",
- " description: Stage IVC\n",
- "- observation_type:\n",
- " text: Clinical Overall\n",
- " description: The overall stage of the disease; clinical stage is determined from\n",
- " evidence acquired before treatment (including clinical examination, imaging,\n",
- " endoscopy, biopsy, surgical exploration)\n",
- " valueCodeableConcept:\n",
- " text: Stage IVC\n",
- " description: Stage IVC\n",
- "- observation_type:\n",
- " text: Clinical Tumor (T)\n",
- " description: T classifies the size or direct extent of the primary tumor; clinical\n",
- " stage is determined from evidence acquired before treatment (including clinical\n",
- " examination, imaging, endoscopy, biopsy, surgical exploration)\n",
- " valueCodeableConcept:\n",
- " text: T3\n",
- " description: T3 Stage Finding\n",
- "- observation_type:\n",
- " text: Clinical Node (N)\n",
- " description: N classifies the degree of spread to regional lymph nodes; clinical\n",
- " stage is determined from evidence acquired before treatment (including clinical\n",
- " examination, imaging, endoscopy, biopsy, surgical exploration)\n",
- " valueCodeableConcept:\n",
- " text: N1\n",
- " description: N1 Stage Finding\n",
- "- observation_type:\n",
- " text: Clinical Metastasis (M)\n",
- " description: M classifies the presence of distant metastasis; clinical stage is\n",
- " determined from evidence acquired before treatment (including clinical examination,\n",
- " imaging, endoscopy, biopsy, surgical exploration)\n",
- " valueCodeableConcept:\n",
- " text: M1\n",
- " description: M1 Stage Finding\n",
- "- observation_type:\n",
- " text: Pathological Overall\n",
- " description: The overall stage of the disease; stage given by histopathologic\n",
- " examination of a surgical specimen\n",
- " valueCodeableConcept:\n",
- " text: Stage IVC\n",
- " description: Stage IVC\n",
- "- observation_type:\n",
- " text: Pathological Tumor (T)\n",
- " description: T classifies the size or direct extent of the primary tumor; stage\n",
- " given by histopathologic examination of a surgical specimen\n",
- " valueCodeableConcept:\n",
- " text: T3\n",
- " description: T3 Stage Finding\n",
- "- observation_type:\n",
- " text: Pathological Node (N)\n",
- " description: N classifies the degree of spread to regional lymph nodes; stage\n",
- " given by histopathologic examination of a surgical specimen\n",
- " valueCodeableConcept:\n",
- " text: N1\n",
- " description: N1 Stage Finding\n",
- "- observation_type:\n",
- " text: Pathological Metastasis (M)\n",
- " description: M classifies the presence of distant metastasis; stage given by histopathologic\n",
- " examination of a surgical specimen\n",
- " valueCodeableConcept:\n",
- " text: M1\n",
- " description: M1 Stage Finding\n",
- "\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"from linkml_runtime.dumpers import yaml_dumper\n",
"\n",
"print(yaml_dumper.dumps(example_observation_set))"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "adfafac7",
+ "metadata": {},
+ "source": [
+ "## Trying to replicate up to this ^ point today"
+ ]
+ },
{
"cell_type": "markdown",
"id": "7d65dc11",
@@ -941,21 +1617,10 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": null,
"id": "d5e41d21",
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Specimen(id='69a89590-eb61-41d5-b33e-e7bc5adb92bf', identifier=[], description=None, specimen_type=None, analyte_type=None, associated_project=None, data_provider=None, source_material_type='Solid Tissue Normal', parent_specimen=[], source_subject=None, tumor_status_at_collection=None, creation_activity=SpecimenCreationActivity(activity_type=None, date_started=None, date_ended=TimePoint(id=None, dateTime=None, indexTimePoint=None, offsetFromIndex=None, eventType=[]), performed_by=None, collection_method_type=None, derivation_method_type=None, additive=[], collection_site=None, quantity_collected=None, execution_time_observation=[], execution_condition_observation=[], specimen_order=None), processing_activity=[], storage_activity=[], transport_activity=[], contained_in=None, dimensional_measures=None, quantity_measure=[], quality_measure=[], cellular_composition_type=None, histological_composition_measures=[], general_tissue_morphology='Not Reported', specific_tissue_morphology=None, preinvasive_tissue_morphology=None, morphology_pathologically_confirmed=None, morphology_assessor_role=None, morphlogy_assessment_method=None, degree_of_dysplasia=None, dysplasia_fraction=None, related_document=[], section_location=None, derived_product=[], distance_from_paired_specimen=None)"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"def transform_sample_to_specimen(sample):\n",
" \"\"\"\n",
@@ -988,112 +1653,10 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": null,
"id": "bf62937c",
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "id: 9e30aa6c-91e6-5dd3-9512-75c162a89913\n",
- "identifier:\n",
- "- value: TCGA-QK-A8Z8_diagnosis\n",
- " system: GDC-submitter-id\n",
- "year_at_diagnosis: 2013\n",
- "condition:\n",
- " text: Squamous cell carcinoma, NOS\n",
- "metastatic_site:\n",
- "- site:\n",
- " text: Larynx\n",
- " description: Larynx\n",
- "stage:\n",
- "- observations:\n",
- " - observation_type:\n",
- " text: Overall\n",
- " description: The overall stage of the disease\n",
- " valueCodeableConcept:\n",
- " text: Stage IVC\n",
- " description: Stage IVC\n",
- " - observation_type:\n",
- " text: Clinical Overall\n",
- " description: The overall stage of the disease; clinical stage is determined\n",
- " from evidence acquired before treatment (including clinical examination, imaging,\n",
- " endoscopy, biopsy, surgical exploration)\n",
- " valueCodeableConcept:\n",
- " text: Stage IVC\n",
- " description: Stage IVC\n",
- " - observation_type:\n",
- " text: Clinical Tumor (T)\n",
- " description: T classifies the size or direct extent of the primary tumor; clinical\n",
- " stage is determined from evidence acquired before treatment (including clinical\n",
- " examination, imaging, endoscopy, biopsy, surgical exploration)\n",
- " valueCodeableConcept:\n",
- " text: T3\n",
- " description: T3 Stage Finding\n",
- " - observation_type:\n",
- " text: Clinical Node (N)\n",
- " description: N classifies the degree of spread to regional lymph nodes; clinical\n",
- " stage is determined from evidence acquired before treatment (including clinical\n",
- " examination, imaging, endoscopy, biopsy, surgical exploration)\n",
- " valueCodeableConcept:\n",
- " text: N1\n",
- " description: N1 Stage Finding\n",
- " - observation_type:\n",
- " text: Clinical Metastasis (M)\n",
- " description: M classifies the presence of distant metastasis; clinical stage\n",
- " is determined from evidence acquired before treatment (including clinical\n",
- " examination, imaging, endoscopy, biopsy, surgical exploration)\n",
- " valueCodeableConcept:\n",
- " text: M1\n",
- " description: M1 Stage Finding\n",
- " - observation_type:\n",
- " text: Pathological Overall\n",
- " description: The overall stage of the disease; stage given by histopathologic\n",
- " examination of a surgical specimen\n",
- " valueCodeableConcept:\n",
- " text: Stage IVC\n",
- " description: Stage IVC\n",
- " - observation_type:\n",
- " text: Pathological Tumor (T)\n",
- " description: T classifies the size or direct extent of the primary tumor; stage\n",
- " given by histopathologic examination of a surgical specimen\n",
- " valueCodeableConcept:\n",
- " text: T3\n",
- " description: T3 Stage Finding\n",
- " - observation_type:\n",
- " text: Pathological Node (N)\n",
- " description: N classifies the degree of spread to regional lymph nodes; stage\n",
- " given by histopathologic examination of a surgical specimen\n",
- " valueCodeableConcept:\n",
- " text: N1\n",
- " description: N1 Stage Finding\n",
- " - observation_type:\n",
- " text: Pathological Metastasis (M)\n",
- " description: M classifies the presence of distant metastasis; stage given by\n",
- " histopathologic examination of a surgical specimen\n",
- " valueCodeableConcept:\n",
- " text: M1\n",
- " description: M1 Stage Finding\n",
- "morphology:\n",
- " text: 8070/3\n",
- "related_specimen:\n",
- "- id: a118da56-784d-4b67-aade-d9a7a8b49f18\n",
- " source_material_type: Primary Tumor\n",
- " general_tissue_morphology: Not Reported\n",
- "- id: cff6967e-e8f7-4a25-aa31-9328e4b42816\n",
- " source_material_type: Primary Tumor\n",
- " creation_activity:\n",
- " date_ended:\n",
- " dateTime: '2018-05-17T12:19:46.292188-05:00'\n",
- " general_tissue_morphology: Not Reported\n",
- "- id: 1efb2d28-ac51-4d70-a24d-667a2b53467a\n",
- " source_material_type: Blood Derived Normal\n",
- " general_tissue_morphology: Not Reported\n",
- "\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"def transform_diagnosis(diagnosis, case):\n",
" ccdh_diagnosis = ccdh.Diagnosis(\n",
@@ -1139,816 +1702,12 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": null,
"id": "c9d31519",
"metadata": {
"scrolled": true
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "{\n",
- " \"id\": \"9e30aa6c-91e6-5dd3-9512-75c162a89913\",\n",
- " \"identifier\": [\n",
- " {\n",
- " \"value\": \"TCGA-QK-A8Z8_diagnosis\",\n",
- " \"system\": \"GDC-submitter-id\"\n",
- " }\n",
- " ],\n",
- " \"year_at_diagnosis\": 2013,\n",
- " \"condition\": {\n",
- " \"text\": \"Squamous cell carcinoma, NOS\"\n",
- " },\n",
- " \"metastatic_site\": [\n",
- " {\n",
- " \"site\": {\n",
- " \"text\": \"Larynx\",\n",
- " \"description\": \"Larynx\"\n",
- " }\n",
- " }\n",
- " ],\n",
- " \"stage\": [\n",
- " {\n",
- " \"observations\": [\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Overall\",\n",
- " \"description\": \"The overall stage of the disease\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"Stage IVC\",\n",
- " \"description\": \"Stage IVC\"\n",
- " }\n",
- " },\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Clinical Overall\",\n",
- " \"description\": \"The overall stage of the disease; clinical stage is determined from evidence acquired before treatment (including clinical examination, imaging, endoscopy, biopsy, surgical exploration)\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"Stage IVC\",\n",
- " \"description\": \"Stage IVC\"\n",
- " }\n",
- " },\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Clinical Tumor (T)\",\n",
- " \"description\": \"T classifies the size or direct extent of the primary tumor; clinical stage is determined from evidence acquired before treatment (including clinical examination, imaging, endoscopy, biopsy, surgical exploration)\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"T3\",\n",
- " \"description\": \"T3 Stage Finding\"\n",
- " }\n",
- " },\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Clinical Node (N)\",\n",
- " \"description\": \"N classifies the degree of spread to regional lymph nodes; clinical stage is determined from evidence acquired before treatment (including clinical examination, imaging, endoscopy, biopsy, surgical exploration)\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"N1\",\n",
- " \"description\": \"N1 Stage Finding\"\n",
- " }\n",
- " },\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Clinical Metastasis (M)\",\n",
- " \"description\": \"M classifies the presence of distant metastasis; clinical stage is determined from evidence acquired before treatment (including clinical examination, imaging, endoscopy, biopsy, surgical exploration)\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"M1\",\n",
- " \"description\": \"M1 Stage Finding\"\n",
- " }\n",
- " },\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Pathological Overall\",\n",
- " \"description\": \"The overall stage of the disease; stage given by histopathologic examination of a surgical specimen\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"Stage IVC\",\n",
- " \"description\": \"Stage IVC\"\n",
- " }\n",
- " },\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Pathological Tumor (T)\",\n",
- " \"description\": \"T classifies the size or direct extent of the primary tumor; stage given by histopathologic examination of a surgical specimen\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"T3\",\n",
- " \"description\": \"T3 Stage Finding\"\n",
- " }\n",
- " },\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Pathological Node (N)\",\n",
- " \"description\": \"N classifies the degree of spread to regional lymph nodes; stage given by histopathologic examination of a surgical specimen\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"N1\",\n",
- " \"description\": \"N1 Stage Finding\"\n",
- " }\n",
- " },\n",
- " {\n",
- " \"observation_type\": {\n",
- " \"text\": \"Pathological Metastasis (M)\",\n",
- " \"description\": \"M classifies the presence of distant metastasis; stage given by histopathologic examination of a surgical specimen\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"text\": \"M1\",\n",
- " \"description\": \"M1 Stage Finding\"\n",
- " }\n",
- " }\n",
- " ]\n",
- " }\n",
- " ],\n",
- " \"morphology\": {\n",
- " \"text\": \"8070/3\"\n",
- " },\n",
- " \"related_specimen\": [\n",
- " {\n",
- " \"id\": \"a118da56-784d-4b67-aade-d9a7a8b49f18\",\n",
- " \"source_material_type\": \"Primary Tumor\",\n",
- " \"general_tissue_morphology\": \"Not Reported\"\n",
- " },\n",
- " {\n",
- " \"id\": \"cff6967e-e8f7-4a25-aa31-9328e4b42816\",\n",
- " \"source_material_type\": \"Primary Tumor\",\n",
- " \"creation_activity\": {\n",
- " \"date_ended\": {\n",
- " \"dateTime\": \"2018-05-17T12:19:46.292188-05:00\"\n",
- " }\n",
- " },\n",
- " \"general_tissue_morphology\": \"Not Reported\"\n",
- " },\n",
- " {\n",
- " \"id\": \"1efb2d28-ac51-4d70-a24d-667a2b53467a\",\n",
- " \"source_material_type\": \"Blood Derived Normal\",\n",
- " \"general_tissue_morphology\": \"Not Reported\"\n",
- " }\n",
- " ],\n",
- " \"@type\": \"Diagnosis\",\n",
- " \"@context\": {\n",
- " \"GDC\": \"http://example.org/gdc/\",\n",
- " \"HTAN\": \"http://example.org/htan/\",\n",
- " \"ICDC\": \"http://example.org/icdc/\",\n",
- " \"NCIT\": {\n",
- " \"@id\": \"http://purl.obolibrary.org/obo/NCIT_\",\n",
- " \"@prefix\": true\n",
- " },\n",
- " \"PDC\": \"http://example.org/pdc/\",\n",
- " \"ccdh\": \"https://example.org/ccdh/\",\n",
- " \"linkml\": \"https://w3id.org/linkml/\",\n",
- " \"skos\": \"http://www.w3.org/2004/02/skos/core#\",\n",
- " \"@vocab\": \"https://example.org/ccdh/\",\n",
- " \"category\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"focus\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"method_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"observation_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"performed_by\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"subject\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"valueCodeableConcept\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"valueInteger\": {\n",
- " \"@type\": \"xsd:integer\"\n",
- " },\n",
- " \"identifier\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"passage_number\": {\n",
- " \"@type\": \"xsd:integer\"\n",
- " },\n",
- " \"product_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"qualifier\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"site\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"observations\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"valueEntity\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"coding\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"age_at_diagnosis\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"condition\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"disease_status\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"grade\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"metastatic_site\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"method_of_diagnosis\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"morphology\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"primary_site\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"primary_tumor_dimensional_measures\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"prior_diagnosis\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"related_specimen\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"stage\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"supporting_observation\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"year_at_diagnosis\": {\n",
- " \"@type\": \"xsd:integer\"\n",
- " },\n",
- " \"valueQuantity\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"document_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"alcohol_exposure\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"environmental_exposure\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"tobacco_exposure\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"valueBoolean\": {\n",
- " \"@type\": \"xsd:boolean\"\n",
- " },\n",
- " \"valueDateTime\": {\n",
- " \"@type\": \"xsd:dateTime\"\n",
- " },\n",
- " \"valueDecimal\": {\n",
- " \"@type\": \"xsd:decimal\"\n",
- " },\n",
- " \"unit\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"associated_timepoint\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"date_ended\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"date_started\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"part_of\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"primary_anatomic_site\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"research_project_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"age_at_enrollment\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"associated_subject\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"comorbid_diagnosis\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"index_timepoint\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"member_of_research_project\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"originating_site\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"primary_diagnosis\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"primary_diagnosis_condition\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"primary_diagnosis_site\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"analyte_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"associated_project\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"cellular_composition_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"contained_in\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"creation_activity\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"data_provider\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"degree_of_dysplasia\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"derived_product\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"dimensional_measures\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"distance_from_paired_specimen\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"general_tissue_morphology\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"histological_composition_measures\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"morphlogy_assessment_method\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"morphology_assessor_role\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"morphology_pathologically_confirmed\": {\n",
- " \"@type\": \"xsd:boolean\"\n",
- " },\n",
- " \"parent_specimen\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"preinvasive_tissue_morphology\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"processing_activity\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"quality_measure\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"quantity_measure\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"related_document\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"section_location\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"source_material_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"source_subject\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"specific_tissue_morphology\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"specimen_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"storage_activity\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"transport_activity\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"tumor_status_at_collection\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"additive\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"container_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"parent_container\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"activity_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"collection_method_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"collection_site\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"derivation_method_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"execution_condition_observation\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"execution_time_observation\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"quantity_collected\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"specimen_order\": {\n",
- " \"@type\": \"xsd:integer\"\n",
- " },\n",
- " \"duration\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"container\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"transport_destination\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"transport_origin\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"age_at_death\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"breed\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"cause_of_death\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"ethnicity\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"race\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"sex\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"species\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"vital_status\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"year_of_birth\": {\n",
- " \"@type\": \"xsd:integer\"\n",
- " },\n",
- " \"year_of_death\": {\n",
- " \"@type\": \"xsd:integer\"\n",
- " },\n",
- " \"role\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"substance_quantity\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"substance_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"periodEnd_end\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"periodStart_start\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"dateTime\": {\n",
- " \"@type\": \"xsd:dateTime\"\n",
- " },\n",
- " \"eventType\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"indexTimePoint\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"offsetFromIndex\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"concurrent_treatment\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"number_of_cycles\": {\n",
- " \"@type\": \"xsd:integer\"\n",
- " },\n",
- " \"regimen\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"therapeutic_agent\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"treatment_anatomic_site\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"treatment_effect\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"treatment_end_reason\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"treatment_for_diagnosis\": {\n",
- " \"@type\": \"@id\"\n",
- " },\n",
- " \"treatment_frequency\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"treatment_intent\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"treatment_outcome\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " },\n",
- " \"treatment_type\": {\n",
- " \"@context\": {\n",
- " \"@vocab\": \"@null\",\n",
- " \"text\": \"skos:notation\",\n",
- " \"description\": \"skos:prefLabel\",\n",
- " \"meaning\": \"@id\"\n",
- " }\n",
- " }\n",
- " }\n",
- "}\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"from linkml.generators.jsonldcontextgen import ContextGenerator\n",
"from linkml_runtime.dumpers import json_dumper\n",
@@ -1970,7 +1729,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": null,
"id": "1aa40681",
"metadata": {},
"outputs": [],
@@ -2002,34 +1761,10 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": null,
"id": "3300fabd",
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "@prefix : .\n",
- "@prefix ccdh: .\n",
- "\n",
- "[] ccdh:condition [ ccdh:text \"Squamous cell carcinoma, NOS\" ] ;\n",
- " ccdh:id \"4dbbefaa-8e8e-4a44-943b-48687f123673\" ;\n",
- " ccdh:identifier [ ccdh:system \"GDC-submitter-id\" ;\n",
- " ccdh:value \"GENIE-MSK-P-0010088-T01-IM5_diagnosis\" ] ;\n",
- " ccdh:metastatic_site [ ccdh:site [ ccdh:description \"Oropharynx\" ;\n",
- " ccdh:text \"Oropharynx\" ] ] ;\n",
- " ccdh:morphology [ ccdh:text \"8070/3\" ] ;\n",
- " ccdh:related_specimen [ ccdh:creation_activity [ ccdh:date_ended [ ccdh:dateTime \"2018-10-03T04:13:38.880466-05:00\"^^ ] ] ;\n",
- " ccdh:general_tissue_morphology \"Not Reported\" ;\n",
- " ccdh:id \"b5da1115-1fe3-49a4-892b-ef43e64dbee4\" ;\n",
- " ccdh:source_material_type \"Metastatic\" ] ;\n",
- " ccdh:stage [ ccdh:observations [ ccdh:observation_type [ ccdh:description \"The overall stage of the disease\" ;\n",
- " ccdh:text \"Overall\" ] ;\n",
- " ccdh:\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# We can read this JSON-LD in Turtle.\n",
"from rdflib import Graph\n",
@@ -2041,6 +1776,96 @@
"with open('head-and-mouth/diagnoses.ttl', 'w') as file:\n",
" file.write(rdfAsTurtle)"
]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "372dbf27",
+ "metadata": {},
+ "source": [
+ "---"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f7a21993",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# maybe not that helpful\n",
+ "# ccdh.BodySite.__dict__\n",
+ "# see also https://cancerdhc.github.io/ccdhmodel/v1.1/BodySite/\n",
+ "# takes a CodeableConcept in the mandatory site and optional qualifier 0 slots\n",
+ "# CodeableConcept takes the following slots\n",
+ "# \n",
+ "# coding 0..*\n",
+ "# Description: A reference to a code defined by a terminology system\n",
+ "# Range: Coding\n",
+ "# text 0..1\n",
+ "# Description: A human language representation of the concept represented by the Coding.\n",
+ "# Range: CrdchString\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "add2ee49",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "uberon_larynx_coding = ccdh.Coding(code=\"UBERON:0001737\", system=\"http://purl.obolibrary.org/obo/uberon.owl\")\n",
+ "uberon_larynx_coding"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f1711256",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "uberon_larynx__cc = ccdh.CodeableConcept(coding=[test_coding])\n",
+ "uberon_larynx__cc"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e8898458",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "uberon_larynx_bs = ccdh.BodySite(site=test_cc)\n",
+ "uberon_larynx_bs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4bf85ea1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ccdh.CodeableConcept(\n",
+ " coding=[\n",
+ " ccdh.Coding(\n",
+ " code=\"UBERON:0001737\",\n",
+ " system=\"http://purl.obolibrary.org/obo/uberon.owl\",\n",
+ " label=\"larynx\",\n",
+ " )\n",
+ " ]\n",
+ ")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a5f085c6",
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
@@ -2059,7 +1884,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.6"
+ "version": "3.8.10"
}
},
"nbformat": 4,
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..9d0c7d0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,17 @@
+.PHONY: all clean instantiate
+
+all: clean gen_diag_with_stage_obs_set.yaml instantiate
+
+clean:
+ rm -rf gen_diag_with_stage_obs_set.yaml
+ rm -rf Pipfile.lock
+ pipenv --rm
+ pipenv install
+ pipenv run pip list
+
+gen_diag_with_stage_obs_set.yaml: gen_diag_with_stage_obs_set.py
+ pipenv run python $<
+ cat $@
+
+instantiate: instantiate_diag_with_stage_obs_set.py
+ pipenv run python $<
diff --git a/Pipfile b/Pipfile
index a32e02f..16c6c16 100644
--- a/Pipfile
+++ b/Pipfile
@@ -13,4 +13,7 @@ pip = "*"
crdch-model = "*"
pandas = "*"
+# conflicts?
+# black = "*"
+
[dev-packages]
diff --git a/Pipfile.lock b/Pipfile.lock
index 7a24b85..9d6625e 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -23,9 +23,17 @@
},
"antlr4-python3-runtime": {
"hashes": [
- "sha256:31f5abdc7faf16a1a6e9bf2eb31565d004359b821b09944436a34361929ae85a"
+ "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"
],
- "version": "==4.9.2"
+ "version": "==4.9.3"
+ },
+ "appnope": {
+ "hashes": [
+ "sha256:93aa393e9d6c54c5cd570ccadd8edad61ea0c4b9ea7a01409020c9aa019eb442",
+ "sha256:dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a"
+ ],
+ "markers": "platform_system == 'Darwin'",
+ "version": "==0.1.2"
},
"argon2-cffi": {
"hashes": [
@@ -41,6 +49,7 @@
"sha256:f710b61103d1a1f692ca3ecbd1373e28aa5e545ac625ba067ff2feca1b2bb870",
"sha256:fa7e7d1fc22514a32b1761fdfa1882b6baa5c36bb3ef557bdd69e6fc9ba14a41"
],
+ "markers": "python_version >= '3.5'",
"version": "==21.1.0"
},
"argparse": {
@@ -55,6 +64,7 @@
"sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1",
"sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==21.2.0"
},
"babel": {
@@ -62,6 +72,7 @@
"sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9",
"sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.9.1"
},
"backcall": {
@@ -76,6 +87,7 @@
"sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da",
"sha256:4d2651ab93271d1129ac9cbc679f524565cc8a1b791909c4a51eac4446a15994"
],
+ "markers": "python_version >= '3.6'",
"version": "==4.1.0"
},
"cachetools": {
@@ -83,64 +95,70 @@
"sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693",
"sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1"
],
+ "markers": "python_version ~= '3.5'",
"version": "==4.2.4"
},
"certifi": {
"hashes": [
- "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee",
- "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"
+ "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872",
+ "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"
],
- "version": "==2021.5.30"
+ "version": "==2021.10.8"
},
"cffi": {
"hashes": [
- "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d",
- "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771",
- "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872",
- "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c",
- "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc",
- "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762",
- "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202",
- "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5",
- "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548",
- "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a",
- "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f",
- "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20",
- "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218",
- "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c",
- "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e",
- "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56",
- "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224",
- "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a",
- "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2",
- "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a",
- "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819",
- "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346",
- "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b",
- "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e",
- "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534",
- "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb",
- "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0",
- "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156",
- "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd",
- "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87",
- "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc",
- "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195",
- "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33",
- "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f",
- "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d",
- "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd",
- "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728",
- "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7",
- "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca",
- "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99",
- "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf",
- "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e",
- "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c",
- "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5",
- "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"
- ],
- "version": "==1.14.6"
+ "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3",
+ "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2",
+ "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636",
+ "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20",
+ "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728",
+ "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27",
+ "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66",
+ "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443",
+ "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0",
+ "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7",
+ "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39",
+ "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605",
+ "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a",
+ "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37",
+ "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029",
+ "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139",
+ "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc",
+ "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df",
+ "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14",
+ "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880",
+ "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2",
+ "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a",
+ "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e",
+ "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474",
+ "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024",
+ "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8",
+ "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0",
+ "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e",
+ "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a",
+ "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e",
+ "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032",
+ "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6",
+ "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e",
+ "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b",
+ "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e",
+ "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954",
+ "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962",
+ "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c",
+ "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4",
+ "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55",
+ "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962",
+ "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023",
+ "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c",
+ "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6",
+ "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8",
+ "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382",
+ "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7",
+ "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc",
+ "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997",
+ "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"
+ ],
+ "version": "==1.15.0"
},
"cfgraph": {
"hashes": [
@@ -150,58 +168,61 @@
},
"charset-normalizer": {
"hashes": [
- "sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6",
- "sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f"
+ "sha256:735e240d9a8506778cd7a453d97e817e536bb1fc29f4f6961ce297b9c7a917b0",
+ "sha256:83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405"
],
"markers": "python_version >= '3'",
- "version": "==2.0.6"
+ "version": "==2.0.8"
},
"click": {
"hashes": [
"sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
"sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==7.1.2"
},
"crdch-model": {
"hashes": [
- "sha256:0d432d832aa64f3c9f8250b2b4d3559c1299f74af24de3d827afa5cfa9f484ef",
- "sha256:287a5e6f9cdb3eceee3aeaf9eece170c6e3e692ec85b888660eaf3f17b5cac3b"
+ "sha256:47ba08d7158e852f50a474aacc0b8d8ff73ff3a73022336c15bc27744c0b032c",
+ "sha256:b101fa148f33678a0fa49de39c1d3496e4e6ec30c90b38379392e09ef6188b74"
],
"index": "pypi",
- "version": "==1.1.3"
+ "version": "==1.1.5"
},
"debugpy": {
"hashes": [
- "sha256:098753d30232d1e4264eee37e1ddd5d106dc5c4bc6d8d7f4dadad9e44736cd48",
- "sha256:1283e418f595262d11abc5fae6a3ac629c5fc3b44d3988511ea755414aab3062",
- "sha256:33e8a9b4949be8b4f5fcfff07e24bd63c565060659f1c79773c08d19eee012f2",
- "sha256:72093ea83226d5264b3697b948c07a3cfcc4953da14a78a50c4e623a2bb99ad8",
- "sha256:77b5233b23a248cd930bf03ecd684da065c6e7d2a57d137516b6fa1698a58317",
- "sha256:82c4fa1293981a28c435d196a3714e06df761daff0da3336234475ceff1b042c",
- "sha256:86febd61fc351cee926060eef008e242b7259957d71d25eef82860d0cc59b4dc",
- "sha256:8e7391a08a351adce6e5154ed35e4cf90c5f3c10dbf7c8f6a234faef300588d6",
- "sha256:990228f15de4ccbc52c2accf41a63b3b8d0a01e3de9876e02e77e487c4b1ffab",
- "sha256:9f3bed64027bd80a8fe1f35491ec0ec2d2c85f1e63dac7c0311e400bfe58cf05",
- "sha256:a03051ba4fdf6720ee83a42e9f803e3a0b69a48b00436b97d16aeda49d28a8bf",
- "sha256:be7ca2baef5a634dfbd086d9c1d6b5e0783c6d0f6d0a004b43d36f625d4fc0a9",
- "sha256:c3184666cfe1768bf110f8075bafea59d2afce3cc54f4c501f2371c7238bc69d",
- "sha256:cdaf6baaf8176644e752aed321b3f810dcf8b0439709f7edd9ae542f849a639b",
- "sha256:ce0794d50391c87813bb148548c34dc638fb4d58198d275334968f63c088aa69",
- "sha256:dacdb0a3377063d638bd8736c80b7274ae341ce778fec0f883ef1cbb79538bf2",
- "sha256:dd0e8d5e099444c22b27511dafd48e8bdcd7051b811ddd0ab2062965fe36ac80",
- "sha256:de56775b3dbbfc02bc9fb0682da4a960e0a5bada699eac5e22e0723c4107ec9f",
- "sha256:ef71eb8eb276370f8e74ab3f8c7648bbdc9aabac814a5b2840c8dd38a7bc7251",
- "sha256:f058c204341fd7ff800ee0edafc106ca0fb1c9857e8a8895a6e04cca3ddcb7bf",
- "sha256:fda623aa1036b34d554a1225a09cae6bf02b06c0ad903a9f0b8ac3cb74eddc15"
- ],
- "version": "==1.5.0"
+ "sha256:01e98c594b3e66d529e40edf314f849cd1a21f7a013298df58cd8e263bf8e184",
+ "sha256:16db27b4b91991442f91d73604d32080b30de655aca9ba821b1972ea8171021b",
+ "sha256:17a25ce9d7714f92fc97ef00cc06269d7c2b163094990ada30156ed31d9a5030",
+ "sha256:194f95dd3e84568b5489aab5689a3a2c044e8fdc06f1890b8b4f70b6b89f2778",
+ "sha256:1ec3a086e14bba6c472632025b8fe5bdfbaef2afa1ebd5c6615ce6ed8d89bc67",
+ "sha256:23df67fc56d59e386c342428a7953c2c06cc226d8525b11319153e96afb65b0c",
+ "sha256:26fbe53cca45a608679094791ce587b6e2798acd1d4777a8b303b07622e85182",
+ "sha256:2b073ad5e8d8c488fbb6a116986858bab0c9c4558f28deb8832c7a5a27405bd6",
+ "sha256:318f81f37341e4e054b4267d39896b73cddb3612ca13b39d7eea45af65165e1d",
+ "sha256:3a457ad9c0059a21a6c7d563c1f18e924f5cf90278c722bd50ede6f56b77c7fe",
+ "sha256:4404a62fb5332ea5c8c9132290eef50b3a0ba38cecacad5529e969a783bcbdd7",
+ "sha256:5d76a4fd028d8009c3faf1185b4b78ceb2273dd2499447664b03939e0368bb90",
+ "sha256:70b422c63a833630c33e3f9cdbd9b6971f8c5afd452697e464339a21bbe862ba",
+ "sha256:82f5f9ce93af6861a0713f804e62ab390bb12a17f113153e47fea8bbb1dfbe36",
+ "sha256:a2aa64f6d2ca7ded8a7e8a4e7cae3bc71866b09876b7b05cecad231779cb9156",
+ "sha256:b2df2c373e85871086bd55271c929670cd4e1dba63e94a08d442db830646203b",
+ "sha256:b5b3157372e0e0a1297a8b6b5280bcf1d35a40f436c7973771c972726d1e32d5",
+ "sha256:d2b09e91fbd1efa4f4fda121d49af89501beda50c18ed7499712c71a4bf3452e",
+ "sha256:d876db8c312eeb02d85611e0f696abe66a2c1515e6405943609e725d5ff36f2a",
+ "sha256:f3a3dca9104aa14fd4210edcce6d9ce2b65bd9618c0b222135a40b9d6e2a9eeb",
+ "sha256:f73988422b17f071ad3c4383551ace1ba5ed810cbab5f9c362783d22d40a08dc"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==1.5.1"
},
"decorator": {
"hashes": [
"sha256:7b12e7c3c6ab203a29e157335e9122cb03de9ab7264b137594103fd4a683b374",
"sha256:e59913af105b9860aa2c8d3272d9de5a56a4e608db9a2f167a8480b323d529a7"
],
+ "markers": "python_version >= '3.5'",
"version": "==5.1.0"
},
"defusedxml": {
@@ -209,6 +230,7 @@
"sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69",
"sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==0.7.1"
},
"deprecated": {
@@ -216,6 +238,7 @@
"sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d",
"sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.2.13"
},
"docutils": {
@@ -223,6 +246,7 @@
"sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125",
"sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==0.17.1"
},
"entrypoints": {
@@ -230,6 +254,7 @@
"sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19",
"sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"
],
+ "markers": "python_version >= '2.7'",
"version": "==0.3"
},
"et-xmlfile": {
@@ -237,21 +262,24 @@
"sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c",
"sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"
],
+ "markers": "python_version >= '3.6'",
"version": "==1.1.0"
},
"frozendict": {
"hashes": [
- "sha256:3f00de72805cf4c9e81b334f3f04809278b967d2fed84552313a0fcce511beb1",
- "sha256:5d3f75832c35d4df041f0e19c268964cbef29c1eb34cd3517cf883f1c2d089b9"
+ "sha256:655b879217dd445a2023e16154cc231febef802b5c812d5c2e822280ad69e1dc",
+ "sha256:bbad8ef1a428f5e6f7e195742fd739f56a5a602f9cf9bbe86f55a4848b1fabd6"
],
- "version": "==2.0.6"
+ "markers": "python_version >= '3.6'",
+ "version": "==2.1.1"
},
"graphviz": {
"hashes": [
- "sha256:5dadec94046d82adaae6019311a30e0487536d9d5a60d85451f0ba32f9fc6559",
- "sha256:ef6e2c5deb9cdcc0c7eece1d89625fd07b0f2208ea2bcb483520907ddf8b4e12"
+ "sha256:60704af002770700b099e5d684b7f2bd59c06bbaec8f575def7fba7a31a1a27a",
+ "sha256:b42554a1c47f24a9473b7f4e380d17b228586a067c97ea69d5354d6074be8dfd"
],
- "version": "==0.17"
+ "markers": "python_version >= '3.6'",
+ "version": "==0.19"
},
"greenlet": {
"hashes": [
@@ -306,7 +334,7 @@
"sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c",
"sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"
],
- "markers": "python_version >= '3' and (platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32'))))))",
+ "markers": "python_version >= '3' and platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))",
"version": "==1.1.2"
},
"hbreader": {
@@ -314,22 +342,24 @@
"sha256:9a6e76c9d1afc1b977374a5dc430a1ebb0ea0488205546d4678d6e31cc5f6801",
"sha256:d2c132f8ba6276d794c66224c3297cec25c8079d0a4cf019c061611e0a3b94fa"
],
+ "markers": "python_version >= '3.7'",
"version": "==0.9.1"
},
"idna": {
"hashes": [
- "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a",
- "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"
+ "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
+ "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
],
"markers": "python_version >= '3'",
- "version": "==3.2"
+ "version": "==3.3"
},
"imagesize": {
"hashes": [
- "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1",
- "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"
+ "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c",
+ "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"
],
- "version": "==1.2.0"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==1.3.0"
},
"iniconfig": {
"hashes": [
@@ -340,17 +370,19 @@
},
"ipykernel": {
"hashes": [
- "sha256:a3f6c2dda2ecf63b37446808a70ed825fea04790779ca524889c596deae0def8",
- "sha256:df3355e5eec23126bc89767a676c5f0abfc7f4c3497d118c592b83b316e8c0cd"
+ "sha256:3a227788216b43982d9ac28195949467627b0d16e6b8af9741d95dcaa8c41a89",
+ "sha256:82ded8919fa7f5483be2b6219c3b13380d93faab1fc49cc2cfcd10e9e24cc158"
],
- "version": "==6.4.1"
+ "markers": "python_version >= '3.7'",
+ "version": "==6.6.0"
},
"ipython": {
"hashes": [
- "sha256:2097be5c814d1b974aea57673176a924c4c8c9583890e7a5f082f547b9975b11",
- "sha256:f16148f9163e1e526f1008d7c8d966d9c15600ca20d1a754287cf96d00ba6f1d"
+ "sha256:c8f3e07aefb9cf9e067f39686f035ce09b27a1ee602116a3030b91b6fc138ee4",
+ "sha256:d41f8e80b99690122400f9b2069b12f670246a1b4cc5d332bd6c4e2500e6d6fb"
],
- "version": "==7.28.0"
+ "markers": "python_version >= '3.7'",
+ "version": "==7.30.0"
},
"ipython-genutils": {
"hashes": [
@@ -375,37 +407,41 @@
},
"jedi": {
"hashes": [
- "sha256:18456d83f65f400ab0c2d3319e48520420ef43b23a086fdc05dff34132f0fb93",
- "sha256:92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707"
+ "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d",
+ "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"
],
- "version": "==0.18.0"
+ "markers": "python_version >= '3.6'",
+ "version": "==0.18.1"
},
"jinja2": {
"hashes": [
- "sha256:827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45",
- "sha256:8569982d3f0889eed11dd620c706d39b60c36d6d25843961f33f77fb6bc6b20c"
+ "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8",
+ "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"
],
- "version": "==3.0.2"
+ "markers": "python_version >= '3.6'",
+ "version": "==3.0.3"
},
"json-flattener": {
"hashes": [
"sha256:9a3d7c45e0b3636268efdb1a9d78734f0573e2a05ec4f00b6a677c69a63d1e3f",
"sha256:af41c05fb15b6b9881faa95191e942e1387e305574b2269ebbecb4289173395b"
],
+ "markers": "python_version >= '3.7'",
"version": "==0.1.7"
},
"jsonasobj": {
"hashes": [
- "sha256:221af946bbe4171505e81ea1f0c31d652e69c68e02fff742e37543abe08ff7d9",
- "sha256:e87c47ec5ec3db65a212e15236fdefc38dd01bdcf563b0d53021095066cd5963"
+ "sha256:b9e329dc1ceaae7cf5d5b214684a0b100e0dad0be6d5bbabac281ec35ddeca65",
+ "sha256:d52e0544a54a08f6ea3f77fa3387271e3648655e0eace2f21e825c26370e44a2"
],
- "version": "==2.0.1"
+ "version": "==1.3.1"
},
"jsonasobj2": {
"hashes": [
"sha256:12e86f86324d54fcf60632db94ea74488d5314e3da554c994fe1e2c6f29acb79",
"sha256:f50b1668ef478004aa487b2d2d094c304e5cb6b79337809f4a1f2975cc7fbb4e"
],
+ "markers": "python_version >= '3.6'",
"version": "==1.0.4"
},
"jsonpatch": {
@@ -413,6 +449,7 @@
"sha256:26ac385719ac9f54df8a2f0827bb8253aa3ea8ab7b3368457bcdb8c14595a397",
"sha256:b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==1.32"
},
"jsonpath-ng": {
@@ -425,18 +462,19 @@
},
"jsonpointer": {
"hashes": [
- "sha256:150f80c5badd02c757da6644852f612f88e8b4bc2f9852dcbf557c8738919686",
- "sha256:5a34b698db1eb79ceac454159d3f7c12a451a91f6334a4f638454327b7a89962"
+ "sha256:26d9a47a72d4dc3e3ae72c4c6cd432afd73c680164cd2540772eab53cb3823b6",
+ "sha256:f09f8deecaaa5aea65b5eb4f67ca4e54e1a61f7a11c75085e360fe6feb6a48bf"
],
- "version": "==2.1"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==2.2"
},
"jsonschema": {
"hashes": [
- "sha256:48f4e74f8bec0c2f75e9fcfffa264e78342873e1b57e2cfeae54864cc5e9e4dd",
- "sha256:9938802041347f2c62cad2aef59e9a0826cd34584f3609db950efacb4dbf6518"
+ "sha256:2a0f162822a64d95287990481b45d82f096e99721c86534f48201b64ebca6e8c",
+ "sha256:390713469ae64b8a58698bb3cbc3859abe6925b565a973f87323ef21b09a27a8"
],
"index": "pypi",
- "version": "==4.0.1"
+ "version": "==4.2.1"
},
"jupyter": {
"hashes": [
@@ -449,24 +487,27 @@
},
"jupyter-client": {
"hashes": [
- "sha256:074bdeb1ffaef4a3095468ee16313938cfdc48fc65ca95cc18980b956c2e5d79",
- "sha256:8b6e06000eb9399775e0a55c52df6c1be4766666209c22f90c2691ded0e338dc"
+ "sha256:64d93752d8cbfba0c1030c3335c3f0d9797cd1efac012652a14aac1653db11a3",
+ "sha256:a5f995a73cffb314ed262713ae6dfce53c6b8216cea9f332071b8ff44a6e1654"
],
- "version": "==7.0.6"
+ "markers": "python_full_version >= '3.6.1'",
+ "version": "==7.1.0"
},
"jupyter-console": {
"hashes": [
"sha256:242248e1685039cd8bff2c2ecb7ce6c1546eb50ee3b08519729e6e881aec19c7",
"sha256:7799c4ea951e0e96ba8260575423cb323ea5a03fcf5503560fa3e15748869e27"
],
+ "markers": "python_version >= '3.6'",
"version": "==6.4.0"
},
"jupyter-core": {
"hashes": [
- "sha256:8dd262ec8afae95bd512518eb003bc546b76adbf34bf99410e9accdf4be9aa3a",
- "sha256:ef210dcb4fca04de07f2ead4adf408776aca94d17151d6f750ad6ded0b91ea16"
+ "sha256:1c091f3bbefd6f2a8782f2c1db662ca8478ac240e962ae2c66f0b87c818154ea",
+ "sha256:dce8a7499da5a53ae3afd5a9f4b02e5df1d57250cf48f3ad79da23b4778cd6fa"
],
- "version": "==4.8.1"
+ "markers": "python_version >= '3.6'",
+ "version": "==4.9.1"
},
"jupyterlab-pygments": {
"hashes": [
@@ -485,84 +526,100 @@
},
"linkml": {
"hashes": [
- "sha256:2b00e45bae6da5eecb9fc0060544ab5885cfbda2c75e3cb66ce05f70f19122bb",
- "sha256:999a4b64cd6cc983a75f23ad12b09c8e3e0bcafafdb4f44b22bbf1ecda9a1d0f"
+ "sha256:8d0eec8968900fed7079030f803d712936acb59d056ba8a2bcf1abca3357f285",
+ "sha256:ecb86e4cb3e1e129647028ff9a78c1b94943b65adb7b7697645f6781aa736985"
],
"index": "pypi",
- "version": "==1.1.8"
+ "version": "==1.1.13"
},
"linkml-runtime": {
"hashes": [
- "sha256:9479bac297aa3b30f053f663406603c3c4d27f58c2ed5f5728f1061530905334",
- "sha256:a5d23cd8ab1d3fbc3567eb41e003abb5cc54fdf17bfda6ee7828a9a52e52cc4a"
+ "sha256:67f16cec969456489d025a707456774c163415010fbf7f6568aa783bfc015784",
+ "sha256:d8f4a6ed685b31f1bb8f242a40e890ccd39d049b93b35777a9b3aa1c22c39b36"
],
- "version": "==1.1.2"
+ "markers": "python_version >= '3.7'",
+ "version": "==1.1.7"
},
"linkml-runtime-api": {
"hashes": [
"sha256:b18541410dabedfe61bb90ad2830e794c72417a4451563a2a02c486783df2ef4",
"sha256:fb619e0e10a878502051eb316af431bd81849dc1966a926ee09c83b90ba24e59"
],
+ "markers": "python_version >= '3.7'",
"version": "==0.0.4"
},
"lxml": {
"hashes": [
- "sha256:079f3ae844f38982d156efce585bc540c16a926d4436712cf4baee0cce487a3d",
- "sha256:0fbcf5565ac01dff87cbfc0ff323515c823081c5777a9fc7703ff58388c258c3",
- "sha256:122fba10466c7bd4178b07dba427aa516286b846b2cbd6f6169141917283aae2",
- "sha256:1b38116b6e628118dea5b2186ee6820ab138dbb1e24a13e478490c7db2f326ae",
- "sha256:1b7584d421d254ab86d4f0b13ec662a9014397678a7c4265a02a6d7c2b18a75f",
- "sha256:26e761ab5b07adf5f555ee82fb4bfc35bf93750499c6c7614bd64d12aaa67927",
- "sha256:289e9ca1a9287f08daaf796d96e06cb2bc2958891d7911ac7cae1c5f9e1e0ee3",
- "sha256:2a9d50e69aac3ebee695424f7dbd7b8c6d6eb7de2a2eb6b0f6c7db6aa41e02b7",
- "sha256:3082c518be8e97324390614dacd041bb1358c882d77108ca1957ba47738d9d59",
- "sha256:33bb934a044cf32157c12bfcfbb6649807da20aa92c062ef51903415c704704f",
- "sha256:3439c71103ef0e904ea0a1901611863e51f50b5cd5e8654a151740fde5e1cade",
- "sha256:36108c73739985979bf302006527cf8a20515ce444ba916281d1c43938b8bb96",
- "sha256:39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468",
- "sha256:4289728b5e2000a4ad4ab8da6e1db2e093c63c08bdc0414799ee776a3f78da4b",
- "sha256:4bff24dfeea62f2e56f5bab929b4428ae6caba2d1eea0c2d6eb618e30a71e6d4",
- "sha256:4c61b3a0db43a1607d6264166b230438f85bfed02e8cff20c22e564d0faff354",
- "sha256:542d454665a3e277f76954418124d67516c5f88e51a900365ed54a9806122b83",
- "sha256:5a0a14e264069c03e46f926be0d8919f4105c1623d620e7ec0e612a2e9bf1c04",
- "sha256:5c8c163396cc0df3fd151b927e74f6e4acd67160d6c33304e805b84293351d16",
- "sha256:64812391546a18896adaa86c77c59a4998f33c24788cadc35789e55b727a37f4",
- "sha256:66e575c62792c3f9ca47cb8b6fab9e35bab91360c783d1606f758761810c9791",
- "sha256:6f12e1427285008fd32a6025e38e977d44d6382cf28e7201ed10d6c1698d2a9a",
- "sha256:74f7d8d439b18fa4c385f3f5dfd11144bb87c1da034a466c5b5577d23a1d9b51",
- "sha256:7610b8c31688f0b1be0ef882889817939490a36d0ee880ea562a4e1399c447a1",
- "sha256:76fa7b1362d19f8fbd3e75fe2fb7c79359b0af8747e6f7141c338f0bee2f871a",
- "sha256:7728e05c35412ba36d3e9795ae8995e3c86958179c9770e65558ec3fdfd3724f",
- "sha256:8157dadbb09a34a6bd95a50690595e1fa0af1a99445e2744110e3dca7831c4ee",
- "sha256:820628b7b3135403540202e60551e741f9b6d3304371712521be939470b454ec",
- "sha256:884ab9b29feaca361f7f88d811b1eea9bfca36cf3da27768d28ad45c3ee6f969",
- "sha256:89b8b22a5ff72d89d48d0e62abb14340d9e99fd637d046c27b8b257a01ffbe28",
- "sha256:92e821e43ad382332eade6812e298dc9701c75fe289f2a2d39c7960b43d1e92a",
- "sha256:b007cbb845b28db4fb8b6a5cdcbf65bacb16a8bd328b53cbc0698688a68e1caa",
- "sha256:bc4313cbeb0e7a416a488d72f9680fffffc645f8a838bd2193809881c67dd106",
- "sha256:bccbfc27563652de7dc9bdc595cb25e90b59c5f8e23e806ed0fd623755b6565d",
- "sha256:c1a40c06fd5ba37ad39caa0b3144eb3772e813b5fb5b084198a985431c2f1e8d",
- "sha256:c47ff7e0a36d4efac9fd692cfa33fbd0636674c102e9e8d9b26e1b93a94e7617",
- "sha256:c4f05c5a7c49d2fb70223d0d5bcfbe474cf928310ac9fa6a7c6dddc831d0b1d4",
- "sha256:cdaf11d2bd275bf391b5308f86731e5194a21af45fbaaaf1d9e8147b9160ea92",
- "sha256:ce256aaa50f6cc9a649c51be3cd4ff142d67295bfc4f490c9134d0f9f6d58ef0",
- "sha256:d2e35d7bf1c1ac8c538f88d26b396e73dd81440d59c1ef8522e1ea77b345ede4",
- "sha256:d916d31fd85b2f78c76400d625076d9124de3e4bda8b016d25a050cc7d603f24",
- "sha256:df7c53783a46febb0e70f6b05df2ba104610f2fb0d27023409734a3ecbb78fb2",
- "sha256:e1cbd3f19a61e27e011e02f9600837b921ac661f0c40560eefb366e4e4fb275e",
- "sha256:efac139c3f0bf4f0939f9375af4b02c5ad83a622de52d6dfa8e438e8e01d0eb0",
- "sha256:efd7a09678fd8b53117f6bae4fa3825e0a22b03ef0a932e070c0bdbb3a35e654",
- "sha256:f2380a6376dfa090227b663f9678150ef27543483055cc327555fb592c5967e2",
- "sha256:f8380c03e45cf09f8557bdaa41e1fa7c81f3ae22828e1db470ab2a6c96d8bc23",
- "sha256:f90ba11136bfdd25cae3951af8da2e95121c9b9b93727b1b896e3fa105b2f586"
- ],
- "version": "==4.6.3"
+ "sha256:08eb9200d88b376a8ed5e50f1dc1d1a45b49305169674002a3b5929943390591",
+ "sha256:0b12c95542f04d10cba46b3ff28ea52ea56995b78cf918f0b11b05e75812bb79",
+ "sha256:0c15e1cd55055956e77b0732270f1c6005850696bc3ef3e03d01e78af84eaa42",
+ "sha256:15d0381feb56f08f78c5cc4fc385ddfe0bde1456e37f54a9322833371aec4060",
+ "sha256:197b7cb7a753cf553a45115739afd8458464a28913da00f5c525063f94cd3f48",
+ "sha256:20d7c8d90d449c6a353b15ee0459abae8395dbe59ad01e406ccbf30cd81c6f98",
+ "sha256:240db6f3228d26e3c6f4fad914b9ddaaf8707254e8b3efd564dc680c8ec3c264",
+ "sha256:2901625f4a878a055d275beedc20ba9cb359cefc4386a967222fee29eb236038",
+ "sha256:2b06a91cf7b8acea7793006e4ae50646cef0fe35ce5acd4f5cb1c77eb228e4a1",
+ "sha256:2eb90f6ec3c236ef2f1bb38aee7c0d23e77d423d395af6326e7cca637519a4cb",
+ "sha256:351482da8dd028834028537f08724b1de22d40dcf3bb723b469446564f409074",
+ "sha256:35752ee40f7bbf6adc9ff4e1f4b84794a3593736dcce80db32e3c2aa85e294ac",
+ "sha256:38b9de0de3aa689fe9fb9877ae1be1e83b8cf9621f7e62049d0436b9ecf4ad64",
+ "sha256:433df8c7dde0f9e41cbf4f36b0829d50a378116ef5e962ba3881f2f5f025c7be",
+ "sha256:4341d135f5660db10184963d9c3418c3e28d7f868aaf8b11a323ebf85813f7f4",
+ "sha256:45fdb2899c755138722797161547a40b3e2a06feda620cc41195ee7e97806d81",
+ "sha256:4717123f7c11c81e0da69989e5a64079c3f402b0efeb4c6241db6c369d657bd8",
+ "sha256:47e955112ce64241fdb357acf0216081f9f3255b3ac9c502ca4b3323ec1ca558",
+ "sha256:48eaac2991b3036175b42ee8d3c23f4cca13f2be8426bf29401a690ab58c88f4",
+ "sha256:4aa349c5567651f34d4eaae7de6ed5b523f6d70a288f9c6fbac22d13a0784e04",
+ "sha256:4ba74afe5ee5cb5e28d83b513a6e8f0875fda1dc1a9aea42cc0065f029160d2a",
+ "sha256:4ec9a80dd5704ecfde54319b6964368daf02848c8954d3bacb9b64d1c7659159",
+ "sha256:50790313df028aa05cf22be9a8da033b86c42fa32523e4fd944827b482b17bf0",
+ "sha256:51a0e5d243687596f46e24e464121d4b232ad772e2d1785b2a2c0eb413c285d4",
+ "sha256:523f195948a1ba4f9f5b7294d83c6cd876547dc741820750a7e5e893a24bbe38",
+ "sha256:543b239b191bb3b6d9bef5f09f1fb2be5b7eb09ab4d386aa655e4d53fbe9ff47",
+ "sha256:5ff5bb2a198ea67403bb6818705e9a4f90e0313f2215428ec51001ce56d939fb",
+ "sha256:601f0ab75538b280aaf1e720eb9d68d4fa104ac274e1e9e6971df488f4dcdb0f",
+ "sha256:6020c70ff695106bf80651953a23e37718ef1fee9abd060dcad8e32ab2dc13f3",
+ "sha256:619c6d2b552bba00491e96c0518aad94002651c108a0f7364ff2d7798812c00e",
+ "sha256:6298f5b42a26581206ef63fffa97c754245d329414108707c525512a5197f2ba",
+ "sha256:662523cd2a0246740225c7e32531f2e766544122e58bee70e700a024cfc0cf81",
+ "sha256:6764998345552b1dfc9326a932d2bad6367c6b37a176bb73ada6b9486bf602f7",
+ "sha256:6d422b3c729737d8a39279a25fa156c983a56458f8b2f97661ee6fb22b80b1d6",
+ "sha256:72e730d33fe2e302fd07285f14624fca5e5e2fb2bb4fb2c3941e318c41c443d1",
+ "sha256:75d3c5bbc0ddbad03bb68b9be638599f67e4b98ed3dcd0fec9f6f39e41ee96cb",
+ "sha256:7ae7089d81fc502df4b217ad77f03c54039fe90dac0acbe70448d7e53bfbc57e",
+ "sha256:80d10d53d3184837445ff8562021bdd37f57c4cadacbf9d8726cc16220a00d54",
+ "sha256:877666418598f6cb289546c77ff87590cfd212f903b522b0afa0b9fb73b3ccfb",
+ "sha256:9b87727561c1150c0cc91c5d9d389448b37a7d15f0ba939ed3d1acb2f11bf6c5",
+ "sha256:9c91a73971a922c13070fd8fa5a114c858251791ba2122a941e6aa781c713e44",
+ "sha256:9db24803fa71e3305fe4a7812782b708da21a0b774b130dd1860cf40a6d7a3ee",
+ "sha256:a75c1ad05eedb1a3ff2a34a52a4f0836cfaa892e12796ba39a7732c82701eff4",
+ "sha256:a77a3470ba37e11872c75ca95baf9b3312133a3d5a5dc720803b23098c653976",
+ "sha256:ab6db93a2b6b66cbf62b4e4a7135f476e708e8c5c990d186584142c77d7f975a",
+ "sha256:afd60230ad9d8bcba005945ec3a343722f09e0b7f8ae804246e5d2cfc6bd71a6",
+ "sha256:b0ca0ada9d3bc18bd6f611bd001a28abdd49ab9698bd6d717f7f5394c8e94628",
+ "sha256:b567178a74a2261345890eac66fbf394692a6e002709d329f28a673ca6042473",
+ "sha256:b667c51682fe9b9788c69465956baa8b6999531876ccedcafc895c74ad716cd8",
+ "sha256:bbf2dc330bd44bfc0254ab37677ec60f7c7ecea55ad8ba1b8b2ea7bf20c265f5",
+ "sha256:bdc224f216ead849e902151112efef6e96c41ee1322e15d4e5f7c8a826929aee",
+ "sha256:cf201bf5594d1aab139fe53e3fca457e4f8204a5bbd65d48ab3b82a16f517868",
+ "sha256:d43bd68714049c84e297c005456a15ecdec818f7b5aa5868c8b0a865cfb78a44",
+ "sha256:daf9bd1fee31f1c7a5928b3e1059e09a8d683ea58fb3ffc773b6c88cb8d1399c",
+ "sha256:e678a643177c0e5ec947b645fa7bc84260dfb9b6bf8fb1fdd83008dfc2ca5928",
+ "sha256:e91d24623e747eeb2d8121f4a94c6a7ad27dc48e747e2dc95bfe88632bd028a2",
+ "sha256:e95da348d57eb448d226a44b868ff2ca5786fbcbe417ac99ff62d0a7d724b9c7",
+ "sha256:ee9e4b07b0eba4b6a521509e9e1877476729c1243246b6959de697ebea739643",
+ "sha256:f5dd358536b8a964bf6bd48de038754c1609e72e5f17f5d21efe2dda17594dbf",
+ "sha256:ffd65cfa33fed01735c82aca640fde4cc63f0414775cba11e06f84fae2085a6e"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==4.6.4"
},
"markdown-it-py": {
"hashes": [
"sha256:36be6bb3ad987bfdb839f5ba78ddf094552ca38ccbd784ae4f74a4e1419fc6e3",
"sha256:98080fc0bc34c4f2bcf0846a096a9429acbd9d5d8e67ed34026c03c61c464389"
],
+ "markers": "python_version ~= '3.6'",
"version": "==1.1.0"
},
"markupsafe": {
@@ -570,6 +627,7 @@
"sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298",
"sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64",
"sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b",
+ "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194",
"sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567",
"sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff",
"sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724",
@@ -577,6 +635,7 @@
"sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646",
"sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35",
"sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6",
+ "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a",
"sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6",
"sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad",
"sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26",
@@ -584,27 +643,36 @@
"sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac",
"sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7",
"sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6",
+ "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047",
"sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75",
"sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f",
+ "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b",
"sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135",
"sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8",
"sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a",
"sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a",
+ "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1",
"sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9",
"sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864",
"sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914",
+ "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee",
+ "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f",
"sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18",
"sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8",
"sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2",
"sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d",
"sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b",
"sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b",
+ "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86",
+ "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6",
"sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f",
"sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb",
"sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833",
"sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28",
+ "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e",
"sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415",
"sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902",
+ "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f",
"sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d",
"sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9",
"sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d",
@@ -612,16 +680,21 @@
"sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066",
"sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c",
"sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1",
+ "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a",
+ "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207",
"sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f",
"sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53",
+ "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd",
"sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134",
"sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85",
+ "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9",
"sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5",
"sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94",
"sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509",
"sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51",
"sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"
],
+ "markers": "python_version >= '3.6'",
"version": "==2.0.1"
},
"matplotlib-inline": {
@@ -629,6 +702,7 @@
"sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee",
"sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c"
],
+ "markers": "python_version >= '3.5'",
"version": "==0.1.3"
},
"mdit-py-plugins": {
@@ -636,6 +710,7 @@
"sha256:1833bf738e038e35d89cb3a07eb0d227ed647ce7dd357579b65343740c6d249c",
"sha256:5991cef645502e80a5388ec4fc20885d2313d4871e8b8e320ca2de14ac0c015f"
],
+ "markers": "python_version ~= '3.6'",
"version": "==0.2.8"
},
"mistune": {
@@ -650,124 +725,137 @@
"sha256:40124b6f27a4c42ac7f06b385e23a9dcd03d84801e9c7130b59b3729a554b1f9",
"sha256:f7f3b2d62db7655cde658eb5d62b2ec2a4631308137bd8d10f296a40d57bbbeb"
],
+ "markers": "python_version >= '3.6'",
"version": "==0.15.2"
},
"nbclient": {
"hashes": [
- "sha256:6c8ad36a28edad4562580847f9f1636fe5316a51a323ed85a24a4ad37d4aefce",
- "sha256:95a300c6fbe73721736cf13972a46d8d666f78794b832866ed7197a504269e11"
+ "sha256:8a307be4129cce5f70eb83a57c3edbe45656623c31de54e38bb6fdfbadc428b3",
+ "sha256:99e46ddafacd0b861293bf246fed8540a184adfa3aa7d641f89031ec070701e0"
],
- "version": "==0.5.4"
+ "markers": "python_full_version >= '3.6.1'",
+ "version": "==0.5.9"
},
"nbconvert": {
"hashes": [
- "sha256:16ceecd0afaa8fd26c245fa32e2c52066c02f13aa73387fffafd84750baea863",
- "sha256:b1b9dc4f1ff6cafae0e6d91f42fb9046fdc32e6beb6d7e2fa2cd7191ad535240"
+ "sha256:5e77d6203854944520105e38f2563a813a4a3708e8563aa598928a3b5ee1081a",
+ "sha256:8f23fbeabda4a500685d788ee091bf22cf34119304314304fb39f16e2fc32f37"
],
- "version": "==6.2.0"
+ "markers": "python_version >= '3.7'",
+ "version": "==6.3.0"
},
"nbformat": {
"hashes": [
"sha256:b516788ad70771c6250977c1374fcca6edebe6126fd2adb5a69aa5c2356fd1c8",
"sha256:eb8447edd7127d043361bc17f2f5a807626bc8e878c7709a1c647abda28a9171"
],
+ "markers": "python_version >= '3.5'",
"version": "==5.1.3"
},
"nest-asyncio": {
"hashes": [
- "sha256:76d6e972265063fe92a90b9cc4fb82616e07d586b346ed9d2c89a4187acea39c",
- "sha256:afc5a1c515210a23c461932765691ad39e8eba6551c055ac8d5546e69250d0aa"
+ "sha256:21b4e6b9ee3fe9108a048e6f6f2f1bdc5d9926022c6c4592d668ea3493784d46",
+ "sha256:5df9667bed073cb93b299fd2f4e0c9372a370c237ec59ee24aa552867818d10e"
],
- "version": "==1.5.1"
+ "markers": "python_version >= '3.5'",
+ "version": "==1.5.2"
},
"notebook": {
"hashes": [
- "sha256:26b0095c568e307a310fd78818ad8ebade4f00462dada4c0e34cbad632b9085d",
- "sha256:33488bdcc5cbef23c3cfa12cd51b0b5459a211945b5053d17405980611818149"
+ "sha256:5cad068fa82cd4fb98d341c052100ed50cd69fbfb4118cb9b8ab5a346ef27551",
+ "sha256:7bcdf79bd1cda534735bd9830d2cbedab4ee34d8fe1df6e7b946b3aab0902ba3"
],
- "version": "==6.4.4"
+ "markers": "python_version >= '3.6'",
+ "version": "==6.4.6"
},
"numpy": {
"hashes": [
- "sha256:09858463db6dd9f78b2a1a05c93f3b33d4f65975771e90d2cf7aadb7c2f66edf",
- "sha256:209666ce9d4a817e8a4597cd475b71b4878a85fa4b8db41d79fdb4fdee01dde2",
- "sha256:298156f4d3d46815eaf0fcf0a03f9625fc7631692bd1ad851517ab93c3168fc6",
- "sha256:30fc68307c0155d2a75ad19844224be0f2c6f06572d958db4e2053f816b859ad",
- "sha256:423216d8afc5923b15df86037c6053bf030d15cc9e3224206ef868c2d63dd6dc",
- "sha256:426a00b68b0d21f2deb2ace3c6d677e611ad5a612d2c76494e24a562a930c254",
- "sha256:466e682264b14982012887e90346d33435c984b7fead7b85e634903795c8fdb0",
- "sha256:51a7b9db0a2941434cd930dacaafe0fc9da8f3d6157f9d12f761bbde93f46218",
- "sha256:52a664323273c08f3b473548bf87c8145b7513afd63e4ebba8496ecd3853df13",
- "sha256:550564024dc5ceee9421a86fc0fb378aa9d222d4d0f858f6669eff7410c89bef",
- "sha256:5de64950137f3a50b76ce93556db392e8f1f954c2d8207f78a92d1f79aa9f737",
- "sha256:640c1ccfd56724f2955c237b6ccce2e5b8607c3bc1cc51d3933b8c48d1da3723",
- "sha256:7fdc7689daf3b845934d67cb221ba8d250fdca20ac0334fea32f7091b93f00d3",
- "sha256:805459ad8baaf815883d0d6f86e45b3b0b67d823a8f3fa39b1ed9c45eaf5edf1",
- "sha256:92a0ab128b07799dd5b9077a9af075a63467d03ebac6f8a93e6440abfea4120d",
- "sha256:9f2dc79c093f6c5113718d3d90c283f11463d77daa4e83aeeac088ec6a0bda52",
- "sha256:a5109345f5ce7ddb3840f5970de71c34a0ff7fceb133c9441283bb8250f532a3",
- "sha256:a55e4d81c4260386f71d22294795c87609164e22b28ba0d435850fbdf82fc0c5",
- "sha256:a9da45b748caad72ea4a4ed57e9cd382089f33c5ec330a804eb420a496fa760f",
- "sha256:b160b9a99ecc6559d9e6d461b95c8eec21461b332f80267ad2c10394b9503496",
- "sha256:b342064e647d099ca765f19672696ad50c953cac95b566af1492fd142283580f",
- "sha256:b5e8590b9245803c849e09bae070a8e1ff444f45e3f0bed558dd722119eea724",
- "sha256:bf75d5825ef47aa51d669b03ce635ecb84d69311e05eccea083f31c7570c9931",
- "sha256:c01b59b33c7c3ba90744f2c695be571a3bd40ab2ba7f3d169ffa6db3cfba614f",
- "sha256:d96a6a7d74af56feb11e9a443150216578ea07b7450f7c05df40eec90af7f4a7",
- "sha256:dd0e3651d210068d13e18503d75aaa45656eef51ef0b261f891788589db2cc38",
- "sha256:e167b9805de54367dcb2043519382be541117503ce99e3291cc9b41ca0a83557",
- "sha256:e42029e184008a5fd3d819323345e25e2337b0ac7f5c135b7623308530209d57",
- "sha256:f545c082eeb09ae678dd451a1b1dbf17babd8a0d7adea02897a76e639afca310",
- "sha256:fde50062d67d805bc96f1a9ecc0d37bfc2a8f02b937d2c50824d186aa91f2419"
- ],
- "version": "==1.21.2"
+ "sha256:0b78ecfa070460104934e2caf51694ccd00f37d5e5dbe76f021b1b0b0d221823",
+ "sha256:1247ef28387b7bb7f21caf2dbe4767f4f4175df44d30604d42ad9bd701ebb31f",
+ "sha256:1403b4e2181fc72664737d848b60e65150f272fe5a1c1cbc16145ed43884065a",
+ "sha256:170b2a0805c6891ca78c1d96ee72e4c3ed1ae0a992c75444b6ab20ff038ba2cd",
+ "sha256:2e4ed57f45f0aa38beca2a03b6532e70e548faf2debbeb3291cfc9b315d9be8f",
+ "sha256:32fe5b12061f6446adcbb32cf4060a14741f9c21e15aaee59a207b6ce6423469",
+ "sha256:34f3456f530ae8b44231c63082c8899fe9c983fd9b108c997c4b1c8c2d435333",
+ "sha256:4c9c23158b87ed0e70d9a50c67e5c0b3f75bcf2581a8e34668d4e9d7474d76c6",
+ "sha256:5d95668e727c75b3f5088ec7700e260f90ec83f488e4c0aaccb941148b2cd377",
+ "sha256:615d4e328af7204c13ae3d4df7615a13ff60a49cb0d9106fde07f541207883ca",
+ "sha256:69077388c5a4b997442b843dbdc3a85b420fb693ec8e33020bb24d647c164fa5",
+ "sha256:74b85a17528ca60cf98381a5e779fc0264b4a88b46025e6bcbe9621f46bb3e63",
+ "sha256:81225e58ef5fce7f1d80399575576fc5febec79a8a2742e8ef86d7b03beef49f",
+ "sha256:8890b3360f345e8360133bc078d2dacc2843b6ee6059b568781b15b97acbe39f",
+ "sha256:92aafa03da8658609f59f18722b88f0a73a249101169e28415b4fa148caf7e41",
+ "sha256:9864424631775b0c052f3bd98bc2712d131b3e2cd95d1c0c68b91709170890b0",
+ "sha256:9e6f5f50d1eff2f2f752b3089a118aee1ea0da63d56c44f3865681009b0af162",
+ "sha256:a3deb31bc84f2b42584b8c4001c85d1934dbfb4030827110bc36bfd11509b7bf",
+ "sha256:ad010846cdffe7ec27e3f933397f8a8d6c801a48634f419e3d075db27acf5880",
+ "sha256:b1e2312f5b8843a3e4e8224b2b48fe16119617b8fc0a54df8f50098721b5bed2",
+ "sha256:bc988afcea53e6156546e5b2885b7efab089570783d9d82caf1cfd323b0bb3dd",
+ "sha256:c449eb870616a7b62e097982c622d2577b3dbc800aaf8689254ec6e0197cbf1e",
+ "sha256:c74c699b122918a6c4611285cc2cad4a3aafdb135c22a16ec483340ef97d573c",
+ "sha256:c885bfc07f77e8fee3dc879152ba993732601f1f11de248d4f357f0ffea6a6d4",
+ "sha256:e3c3e990274444031482a31280bf48674441e0a5b55ddb168f3a6db3e0c38ec8",
+ "sha256:e4799be6a2d7d3c33699a6f77201836ac975b2e1b98c2a07f66a38f499cb50ce",
+ "sha256:e6c76a87633aa3fa16614b61ccedfae45b91df2767cf097aa9c933932a7ed1e0",
+ "sha256:e89717274b41ebd568cd7943fc9418eeb49b1785b66031bc8a7f6300463c5898",
+ "sha256:f5162ec777ba7138906c9c274353ece5603646c6965570d82905546579573f73",
+ "sha256:fde96af889262e85aa033f8ee1d3241e32bf36228318a61f1ace579df4e8170d"
+ ],
+ "markers": "python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64'",
+ "version": "==1.21.4"
},
"openpyxl": {
"hashes": [
"sha256:40f568b9829bf9e446acfffce30250ac1fa39035124d55fc024025c41481c90f",
"sha256:8f3b11bd896a95468a4ab162fc4fcd260d46157155d1f8bfaabb99d88cfcf79f"
],
+ "markers": "python_version >= '3.6'",
"version": "==3.0.9"
},
"packaging": {
"hashes": [
- "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7",
- "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"
+ "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
+ "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
],
- "version": "==21.0"
+ "markers": "python_version >= '3.6'",
+ "version": "==21.3"
},
"pandas": {
"hashes": [
- "sha256:272c8cb14aa9793eada6b1ebe81994616e647b5892a370c7135efb2924b701df",
- "sha256:3334a5a9eeaca953b9db1b2b165dcdc5180b5011f3bec3a57a3580c9c22eae68",
- "sha256:37d63e78e87eb3791da7be4100a65da0383670c2b59e493d9e73098d7a879226",
- "sha256:3f5020613c1d8e304840c34aeb171377dc755521bf5e69804991030c2a48aec3",
- "sha256:45649503e167d45360aa7c52f18d1591a6d5c70d2f3a26bc90a3297a30ce9a66",
- "sha256:49fd2889d8116d7acef0709e4c82b8560a8b22b0f77471391d12c27596e90267",
- "sha256:4def2ef2fb7fcd62f2aa51bacb817ee9029e5c8efe42fe527ba21f6a3ddf1a9f",
- "sha256:53e2fb11f86f6253bb1df26e3aeab3bf2e000aaa32a953ec394571bec5dc6fd6",
- "sha256:629138b7cf81a2e55aa29ce7b04c1cece20485271d1f6c469c6a0c03857db6a4",
- "sha256:68408a39a54ebadb9014ee5a4fae27b2fe524317bc80adf56c9ac59e8f8ea431",
- "sha256:7326b37de08d42dd3fff5b7ef7691d0fd0bf2428f4ba5a2bdc3b3247e9a52e4c",
- "sha256:7557b39c8e86eb0543a17a002ac1ea0f38911c3c17095bc9350d0a65b32d801c",
- "sha256:86b16b1b920c4cb27fdd65a2c20258bcd9c794be491290660722bb0ea765054d",
- "sha256:a800df4e101b721e94d04c355e611863cc31887f24c0b019572e26518cbbcab6",
- "sha256:a9f1b54d7efc9df05320b14a48fb18686f781aa66cc7b47bb62fabfc67a0985c",
- "sha256:c399200631db9bd9335d013ec7fce4edb98651035c249d532945c78ad453f23a",
- "sha256:e574c2637c9d27f322e911650b36e858c885702c5996eda8a5a60e35e6648cf2",
- "sha256:e9bc59855598cb57f68fdabd4897d3ed2bc3a3b3bef7b868a0153c4cd03f3207",
- "sha256:ebbed7312547a924df0cbe133ff1250eeb94cdff3c09a794dc991c5621c8c735",
- "sha256:ed2f29b4da6f6ae7c68f4b3708d9d9e59fa89b2f9e87c2b64ce055cbd39f729e",
- "sha256:f7d84f321674c2f0f31887ee6d5755c54ca1ea5e144d6d54b3bbf566dd9ea0cc"
+ "sha256:003ba92db58b71a5f8add604a17a059f3068ef4e8c0c365b088468d0d64935fd",
+ "sha256:10e10a2527db79af6e830c3d5842a4d60383b162885270f8cffc15abca4ba4a9",
+ "sha256:22808afb8f96e2269dcc5b846decacb2f526dd0b47baebc63d913bf847317c8f",
+ "sha256:2d1dc09c0013d8faa7474574d61b575f9af6257ab95c93dcf33a14fd8d2c1bab",
+ "sha256:35c77609acd2e4d517da41bae0c11c70d31c87aae8dd1aabd2670906c6d2c143",
+ "sha256:372d72a3d8a5f2dbaf566a5fa5fa7f230842ac80f29a931fb4b071502cf86b9a",
+ "sha256:42493f8ae67918bf129869abea8204df899902287a7f5eaf596c8e54e0ac7ff4",
+ "sha256:4acc28364863127bca1029fb72228e6f473bb50c32e77155e80b410e2068eeac",
+ "sha256:5298a733e5bfbb761181fd4672c36d0c627320eb999c59c65156c6a90c7e1b4f",
+ "sha256:5ba0aac1397e1d7b654fccf263a4798a9e84ef749866060d19e577e927d66e1b",
+ "sha256:9707bdc1ea9639c886b4d3be6e2a45812c1ac0c2080f94c31b71c9fa35556f9b",
+ "sha256:a2aa18d3f0b7d538e21932f637fbfe8518d085238b429e4790a35e1e44a96ffc",
+ "sha256:a388960f979665b447f0847626e40f99af8cf191bce9dc571d716433130cb3a7",
+ "sha256:a51528192755f7429c5bcc9e80832c517340317c861318fea9cea081b57c9afd",
+ "sha256:b528e126c13816a4374e56b7b18bfe91f7a7f6576d1aadba5dee6a87a7f479ae",
+ "sha256:c1aa4de4919358c5ef119f6377bc5964b3a7023c23e845d9db7d9016fa0c5b1c",
+ "sha256:c2646458e1dce44df9f71a01dc65f7e8fa4307f29e5c0f2f92c97f47a5bf22f5",
+ "sha256:c2f44425594ae85e119459bb5abb0748d76ef01d9c08583a667e3339e134218e",
+ "sha256:d47750cf07dee6b55d8423471be70d627314277976ff2edd1381f02d52dbadf9",
+ "sha256:d99d2350adb7b6c3f7f8f0e5dfb7d34ff8dd4bc0a53e62c445b7e43e163fce63",
+ "sha256:dd324f8ee05925ee85de0ea3f0d66e1362e8c80799eb4eb04927d32335a3e44a",
+ "sha256:eaca36a80acaacb8183930e2e5ad7f71539a66805d6204ea88736570b2876a7b",
+ "sha256:f567e972dce3bbc3a8076e0b675273b4a9e8576ac629149cf8286ee13c259ae5",
+ "sha256:fe48e4925455c964db914b958f6e7032d285848b7538a5e1b19aeb26ffaea3ec"
],
"index": "pypi",
- "version": "==1.3.3"
+ "version": "==1.3.4"
},
"pandocfilters": {
"hashes": [
"sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38",
"sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.5.0"
},
"parse": {
@@ -778,10 +866,11 @@
},
"parso": {
"hashes": [
- "sha256:12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398",
- "sha256:a8c4922db71e4fdb90e0d0bc6e50f9b273d3397925e5e60a717e719201778d22"
+ "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0",
+ "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"
],
- "version": "==0.8.2"
+ "markers": "python_version >= '3.6'",
+ "version": "==0.8.3"
},
"pexpect": {
"hashes": [
@@ -798,11 +887,20 @@
],
"version": "==0.7.5"
},
+ "pip": {
+ "hashes": [
+ "sha256:deaf32dcd9ab821e359cd8330786bcd077604b5c5730c0b096eda46f95c24a2d",
+ "sha256:fd11ba3d0fdb4c07fbc5ecbba0b1b719809420f25038f8ee3cd913d3faa3033a"
+ ],
+ "index": "pypi",
+ "version": "==21.3.1"
+ },
"pluggy": {
"hashes": [
"sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159",
"sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"
],
+ "markers": "python_version >= '3.6'",
"version": "==1.0.0"
},
"ply": {
@@ -829,45 +927,76 @@
},
"prometheus-client": {
"hashes": [
- "sha256:3a8baade6cb80bcfe43297e33e7623f3118d660d41387593758e2fb1ea173a86",
- "sha256:b014bc76815eb1399da8ce5fc84b7717a3e63652b0c0f8804092c9363acab1b2"
+ "sha256:1b12ba48cee33b9b0b9de64a1047cbd3c5f2d0ab6ebcead7ddda613a750ec3c5",
+ "sha256:317453ebabff0a1b02df7f708efbab21e3489e7072b61cb6957230dd004a0af0"
],
- "version": "==0.11.0"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==0.12.0"
},
"prompt-toolkit": {
"hashes": [
- "sha256:6076e46efae19b1e0ca1ec003ed37a933dc94b4d20f486235d436e64771dcd5c",
- "sha256:eb71d5a6b72ce6db177af4a7d4d7085b99756bf656d98ffcc4fecd36850eea6c"
+ "sha256:5f29d62cb7a0ecacfa3d8ceea05a63cd22500543472d64298fc06ddda906b25d",
+ "sha256:7053aba00895473cb357819358ef33f11aa97e4ac83d38efb123e5649ceeecaf"
],
- "version": "==3.0.20"
+ "markers": "python_full_version >= '3.6.2'",
+ "version": "==3.0.23"
},
"ptyprocess": {
"hashes": [
"sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35",
"sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
],
- "markers": "os_name != 'nt'",
"version": "==0.7.0"
},
"py": {
"hashes": [
- "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3",
- "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"
+ "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719",
+ "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"
],
- "version": "==1.10.0"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==1.11.0"
},
"pycparser": {
"hashes": [
- "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0",
- "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"
- ],
- "version": "==2.20"
+ "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
+ "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"
+ ],
+ "version": "==2.21"
+ },
+ "pydantic": {
+ "hashes": [
+ "sha256:021ea0e4133e8c824775a0cfe098677acf6fa5a3cbf9206a376eed3fc09302cd",
+ "sha256:05ddfd37c1720c392f4e0d43c484217b7521558302e7069ce8d318438d297739",
+ "sha256:05ef5246a7ffd2ce12a619cbb29f3307b7c4509307b1b49f456657b43529dc6f",
+ "sha256:10e5622224245941efc193ad1d159887872776df7a8fd592ed746aa25d071840",
+ "sha256:18b5ea242dd3e62dbf89b2b0ec9ba6c7b5abaf6af85b95a97b00279f65845a23",
+ "sha256:234a6c19f1c14e25e362cb05c68afb7f183eb931dd3cd4605eafff055ebbf287",
+ "sha256:244ad78eeb388a43b0c927e74d3af78008e944074b7d0f4f696ddd5b2af43c62",
+ "sha256:26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b",
+ "sha256:41b542c0b3c42dc17da70554bc6f38cbc30d7066d2c2815a94499b5684582ecb",
+ "sha256:4a03cbbe743e9c7247ceae6f0d8898f7a64bb65800a45cbdc52d65e370570820",
+ "sha256:4be75bebf676a5f0f87937c6ddb061fa39cbea067240d98e298508c1bda6f3f3",
+ "sha256:54cd5121383f4a461ff7644c7ca20c0419d58052db70d8791eacbbe31528916b",
+ "sha256:589eb6cd6361e8ac341db97602eb7f354551482368a37f4fd086c0733548308e",
+ "sha256:8621559dcf5afacf0069ed194278f35c255dc1a1385c28b32dd6c110fd6531b3",
+ "sha256:8b223557f9510cf0bfd8b01316bf6dd281cf41826607eada99662f5e4963f316",
+ "sha256:99a9fc39470010c45c161a1dc584997f1feb13f689ecf645f59bb4ba623e586b",
+ "sha256:a7c6002203fe2c5a1b5cbb141bb85060cbff88c2d78eccbc72d97eb7022c43e4",
+ "sha256:a83db7205f60c6a86f2c44a61791d993dff4b73135df1973ecd9eed5ea0bda20",
+ "sha256:ac8eed4ca3bd3aadc58a13c2aa93cd8a884bcf21cb019f8cfecaae3b6ce3746e",
+ "sha256:e710876437bc07bd414ff453ac8ec63d219e7690128d925c6e82889d674bb505",
+ "sha256:ea5cb40a3b23b3265f6325727ddfc45141b08ed665458be8c6285e7b85bd73a1",
+ "sha256:fec866a0b59f372b7e776f2d7308511784dace622e0992a0b59ea3ccee0ae833"
+ ],
+ "markers": "python_full_version >= '3.6.1'",
+ "version": "==1.8.2"
},
"pygments": {
"hashes": [
"sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380",
"sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"
],
+ "markers": "python_version >= '3.5'",
"version": "==2.10.0"
},
"pyjsg": {
@@ -892,10 +1021,11 @@
},
"pyparsing": {
"hashes": [
- "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
- "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
+ "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4",
+ "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"
],
- "version": "==2.4.7"
+ "markers": "python_version >= '3.6'",
+ "version": "==3.0.6"
},
"pyrsistent": {
"hashes": [
@@ -921,6 +1051,7 @@
"sha256:f3ef98d7b76da5eb19c37fda834d50262ff9167c65658d1d8f974d2e4d90676b",
"sha256:f4c8cabb46ff8e5d61f56a037974228e978f26bfefce4f61a4b1ac0ba7a2ab72"
],
+ "markers": "python_version >= '3.6'",
"version": "==0.18.0"
},
"pyshex": {
@@ -928,6 +1059,7 @@
"sha256:3ea61c2a3f7436bac725bd5001072ba08d2dff5b836d5388ce9ff6f5251c2707",
"sha256:6c9cecd7726461c2105330a9b2d5fd054f0e7966bfc9e3a73e7136b8be63d089"
],
+ "markers": "python_version >= '3.6'",
"version": "==0.7.20"
},
"pyshexc": {
@@ -935,6 +1067,7 @@
"sha256:6f75e26dfda605c994031a72ca74b2b0079e1f7b12ab713e030078d8fa05dc3a",
"sha256:ad83bb2a645f64becbf946d4bd170e35fd9b903616c7ee25d5a4ed188cf2d1dd"
],
+ "markers": "python_version >= '3.7'",
"version": "==0.8.3"
},
"pytest": {
@@ -950,6 +1083,7 @@
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.8.2"
},
"pytz": {
@@ -991,10 +1125,12 @@
"sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6",
"sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
"version": "==5.4.1"
},
"pyzmq": {
"hashes": [
+ "sha256:08c4e315a76ef26eb833511ebf3fa87d182152adf43dedee8d79f998a2162a0b",
"sha256:0ca6cd58f62a2751728016d40082008d3b3412a7f28ddfb4a2f0d3c130f69e74",
"sha256:1621e7a2af72cced1f6ec8ca8ca91d0f76ac236ab2e8828ac8fe909512d566cb",
"sha256:18cd854b423fce44951c3a4d3e686bac8f1243d954f579e120a1714096637cc0",
@@ -1003,7 +1139,10 @@
"sha256:3a4c9886d61d386b2b493377d980f502186cd71d501fffdba52bd2a0880cef4f",
"sha256:3c1895c95be92600233e476fe283f042e71cf8f0b938aabf21b7aafa62a8dac9",
"sha256:42abddebe2c6a35180ca549fadc7228d23c1e1f76167c5ebc8a936b5804ea2df",
+ "sha256:468bd59a588e276961a918a3060948ae68f6ff5a7fa10bb2f9160c18fe341067",
"sha256:480b9931bfb08bf8b094edd4836271d4d6b44150da051547d8c7113bf947a8b0",
+ "sha256:53f4fd13976789ffafedd4d46f954c7bb01146121812b72b4ddca286034df966",
+ "sha256:62bcade20813796c426409a3e7423862d50ff0639f5a2a95be4b85b09a618666",
"sha256:67db33bea0a29d03e6eeec55a8190e033318cee3cbc732ba8fd939617cbf762d",
"sha256:6b217b8f9dfb6628f74b94bdaf9f7408708cb02167d644edca33f38746ca12dd",
"sha256:7661fc1d5cb73481cf710a1418a4e1e301ed7d5d924f91c67ba84b2a1b89defd",
@@ -1014,39 +1153,48 @@
"sha256:80e043a89c6cadefd3a0712f8a1322038e819ebe9dbac7eca3bce1721bcb63bf",
"sha256:851977788b9caa8ed011f5f643d3ee8653af02c5fc723fa350db5125abf2be7b",
"sha256:8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c",
+ "sha256:902319cfe23366595d3fa769b5b751e6ee6750a0a64c5d9f757d624b2ac3519e",
"sha256:954e73c9cd4d6ae319f1c936ad159072b6d356a92dcbbabfd6e6204b9a79d356",
"sha256:ab888624ed68930442a3f3b0b921ad7439c51ba122dbc8c386e6487a658e4a4e",
"sha256:acebba1a23fb9d72b42471c3771b6f2f18dcd46df77482612054bd45c07dfa36",
"sha256:b4ebed0977f92320f6686c96e9e8dd29eed199eb8d066936bac991afc37cbb70",
+ "sha256:badb868fff14cfd0e200eaa845887b1011146a7d26d579aaa7f966c203736b92",
"sha256:be4e0f229cf3a71f9ecd633566bd6f80d9fa6afaaff5489492be63fe459ef98c",
"sha256:c0f84360dcca3481e8674393bdf931f9f10470988f87311b19d23cda869bb6b7",
"sha256:c1e41b32d6f7f9c26bc731a8b529ff592f31fc8b6ef2be9fa74abd05c8a342d7",
+ "sha256:c88fa7410e9fc471e0858638f403739ee869924dd8e4ae26748496466e27ac59",
"sha256:cf98fd7a6c8aaa08dbc699ffae33fd71175696d78028281bc7b832b26f00ca57",
"sha256:d072f7dfbdb184f0786d63bda26e8a0882041b1e393fbe98940395f7fab4c5e2",
+ "sha256:d1b5d457acbadcf8b27561deeaa386b0217f47626b29672fa7bd31deb6e91e1b",
"sha256:d3dcb5548ead4f1123851a5ced467791f6986d68c656bc63bfff1bf9e36671e2",
"sha256:d6157793719de168b199194f6b6173f0ccd3bf3499e6870fac17086072e39115",
"sha256:d728b08448e5ac3e4d886b165385a262883c34b84a7fe1166277fe675e1c197a",
"sha256:de8df0684398bd74ad160afdc2a118ca28384ac6f5e234eb0508858d8d2d9364",
"sha256:e6a02cf7271ee94674a44f4e62aa061d2d049001c844657740e156596298b70b",
"sha256:ea12133df25e3a6918718fbb9a510c6ee5d3fdd5a346320421aac3882f4feeea",
+ "sha256:ea5a79e808baef98c48c884effce05c31a0698c1057de8fc1c688891043c1ce1",
"sha256:f43b4a2e6218371dd4f41e547bd919ceeb6ebf4abf31a7a0669cd11cd91ea973",
"sha256:f762442bab706fd874064ca218b33a1d8e40d4938e96c24dafd9b12e28017f45",
- "sha256:f89468059ebc519a7acde1ee50b779019535db8dcf9b8c162ef669257fef7a93"
+ "sha256:f89468059ebc519a7acde1ee50b779019535db8dcf9b8c162ef669257fef7a93",
+ "sha256:f907c7359ce8bf7f7e63c82f75ad0223384105f5126f313400b7e8004d9b33c3"
],
+ "markers": "python_version >= '3.6'",
"version": "==22.3.0"
},
"qtconsole": {
"hashes": [
- "sha256:73994105b0369bb99f4164df4a131010f3c7b33a7b5169c37366358d8744675b",
- "sha256:bbc34bca14f65535afcb401bc74b752bac955e5313001ba640383f7e5857dc49"
+ "sha256:37317e9ee7faa2faaa927b09a6ec24a45cd7b19c9975d97ab6fd8985354839f1",
+ "sha256:bb3b9f0d674055e627c1097779c0d5e028176706d3b6be39cf52235f6ddcc88e"
],
- "version": "==5.1.1"
+ "markers": "python_version >= '3.6'",
+ "version": "==5.2.1"
},
"qtpy": {
"hashes": [
"sha256:83c502973e9fdd7b648d8267a421229ea3d9a0651c22e4c65a4d9228479c39b6",
"sha256:d6e4ae3a41f1fcb19762b58f35ad6dd443b4bdc867a4cb81ef10ccd85403c92b"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
"version": "==1.11.2"
},
"rdflib": {
@@ -1075,14 +1223,16 @@
"sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24",
"sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
"version": "==2.26.0"
},
"ruamel.yaml": {
"hashes": [
- "sha256:1a771fc92d3823682b7f0893ad56cb5a5c87c48e62b5399d6f42c8759a583b33",
- "sha256:ea21da1198c4b41b8e7a259301cc9710d3b972bf8ba52f06218478e6802dd1f1"
+ "sha256:9751de4cbb57d4bfbf8fc394e125ed4a2f170fbff3dc3d78abf50be85924f8be",
+ "sha256:9af3ec5d7f8065582f3aa841305465025d0afd26c5fb54e15b964e11838fc74f"
],
- "version": "==0.17.16"
+ "markers": "python_version >= '3'",
+ "version": "==0.17.17"
},
"ruamel.yaml.clib": {
"hashes": [
@@ -1108,7 +1258,7 @@
"sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed",
"sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"
],
- "markers": "platform_python_implementation == 'CPython' and python_version < '3.10'",
+ "markers": "python_version < '3.10' and platform_python_implementation == 'CPython'",
"version": "==0.2.6"
},
"send2trash": {
@@ -1118,6 +1268,14 @@
],
"version": "==1.8.0"
},
+ "setuptools": {
+ "hashes": [
+ "sha256:b4c634615a0cf5b02cf83c7bedffc8da0ca439f00e79452699454da6fbd4153d",
+ "sha256:feb5ff19b354cde9efd2344ef6d5e79880ce4be643037641b49508bbb850d060"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==59.4.0"
+ },
"shexjsg": {
"hashes": [
"sha256:788991c4df2ca9b24258fb68c94107c3e140c70bbe398fb15f00338d2a9155e5",
@@ -1130,20 +1288,22 @@
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
},
"snowballstemmer": {
"hashes": [
- "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2",
- "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"
+ "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1",
+ "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"
],
- "version": "==2.1.0"
+ "version": "==2.2.0"
},
"sparqlslurper": {
"hashes": [
"sha256:0808cf53923c9ffbf069f80310c73a41d3ae170c266d805b56b6978a066f63e3",
"sha256:e1decb006837c5b8f1f404710d86a36a6cd09301910c79165094a1354ddae487"
],
+ "markers": "python_version >= '3.6'",
"version": "==0.4.1"
},
"sparqlwrapper": {
@@ -1158,23 +1318,26 @@
},
"sphinx": {
"hashes": [
- "sha256:94078db9184491e15bce0a56d9186e0aec95f16ac20b12d00e06d4e36f1058a6",
- "sha256:98a535c62a4fcfcc362528592f69b26f7caec587d32cd55688db580be0287ae0"
+ "sha256:048dac56039a5713f47a554589dc98a442b39226a2b9ed7f82797fcb2fe9253f",
+ "sha256:32a5b3e9a1b176cc25ed048557d4d3d01af635e6b76c5bc7a43b0a34447fbd45"
],
- "version": "==4.2.0"
+ "markers": "python_version >= '3.6'",
+ "version": "==4.3.1"
},
"sphinx-click": {
"hashes": [
- "sha256:9b24c46f3b8f25fc639f47c97ac0361d9f80d48c2ed6b3917de2865bbdbe1785",
- "sha256:e9ee2237e5a6b6620e9996b8214934afdf8f7f9f9fc082482c77be0e4379038e"
+ "sha256:29896dd12bfaacb566a8c7af2e2b675d010d69b0c5aad3b52495d4842358b15b",
+ "sha256:8529a02bea8cd2cd47daba2f71d7935c727c89d70baabec7fca31af49a0c379f"
],
- "version": "==3.0.1"
+ "markers": "python_version >= '3.6'",
+ "version": "==3.0.2"
},
"sphinx-rtd-theme": {
"hashes": [
"sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8",
"sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.0.0"
},
"sphinxcontrib-applehelp": {
@@ -1182,6 +1345,7 @@
"sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a",
"sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"
],
+ "markers": "python_version >= '3.5'",
"version": "==1.0.2"
},
"sphinxcontrib-devhelp": {
@@ -1189,6 +1353,7 @@
"sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e",
"sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"
],
+ "markers": "python_version >= '3.5'",
"version": "==1.0.2"
},
"sphinxcontrib-htmlhelp": {
@@ -1196,6 +1361,7 @@
"sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07",
"sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"
],
+ "markers": "python_version >= '3.6'",
"version": "==2.0.0"
},
"sphinxcontrib-jsmath": {
@@ -1203,6 +1369,7 @@
"sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178",
"sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"
],
+ "markers": "python_version >= '3.5'",
"version": "==1.0.1"
},
"sphinxcontrib-qthelp": {
@@ -1210,6 +1377,7 @@
"sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72",
"sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"
],
+ "markers": "python_version >= '3.5'",
"version": "==1.0.3"
},
"sphinxcontrib-serializinghtml": {
@@ -1217,48 +1385,57 @@
"sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd",
"sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"
],
+ "markers": "python_version >= '3.5'",
"version": "==1.1.5"
},
"sqlalchemy": {
"hashes": [
- "sha256:0566a6e90951590c0307c75f9176597c88ef4be2724958ca1d28e8ae05ec8822",
- "sha256:08d9396a2a38e672133266b31ed39b2b1f2b5ec712b5bff5e08033970563316a",
- "sha256:0b08a53e40b34205acfeb5328b832f44437956d673a6c09fce55c66ab0e54916",
- "sha256:16ef07e102d2d4f974ba9b0d4ac46345a411ad20ad988b3654d59ff08e553b1c",
- "sha256:1adf3d25e2e33afbcd48cfad8076f9378793be43e7fec3e4334306cac6bec138",
- "sha256:1b38db2417b9f7005d6ceba7ce2a526bf10e3f6f635c0f163e6ed6a42b5b62b2",
- "sha256:1ebd69365717becaa1b618220a3df97f7c08aa68e759491de516d1c3667bba54",
- "sha256:26b0cd2d5c7ea96d3230cb20acac3d89de3b593339c1447b4d64bfcf4eac1110",
- "sha256:2ed67aae8cde4d32aacbdba4f7f38183d14443b714498eada5e5a7a37769c0b7",
- "sha256:33a1e86abad782e90976de36150d910748b58e02cd7d35680d441f9a76806c18",
- "sha256:41a916d815a3a23cb7fff8d11ad0c9b93369ac074e91e428075e088fe57d5358",
- "sha256:6003771ea597346ab1e97f2f58405c6cacbf6a308af3d28a9201a643c0ac7bb3",
- "sha256:6400b22e4e41cc27623a9a75630b7719579cd9a3a2027bcf16ad5aaa9a7806c0",
- "sha256:6b602e3351f59f3999e9fb8b87e5b95cb2faab6a6ecdb482382ac6fdfbee5266",
- "sha256:75cd5d48389a7635393ff5a9214b90695c06b3d74912109c3b00ce7392b69c6c",
- "sha256:7ad59e2e16578b6c1a2873e4888134112365605b08a6067dd91e899e026efa1c",
- "sha256:7b7778a205f956755e05721eebf9f11a6ac18b2409bff5db53ce5fe7ede79831",
- "sha256:842c49dd584aedd75c2ee05f6c950730c3ffcddd21c5824ed0f820808387e1e3",
- "sha256:90fe429285b171bcc252e21515703bdc2a4721008d1f13aa5b7150336f8a8493",
- "sha256:91cd87d1de0111eaca11ccc3d31af441c753fa2bc22df72e5009cfb0a1af5b03",
- "sha256:9a1df8c93a0dd9cef0839917f0c6c49f46c75810cf8852be49884da4a7de3c59",
- "sha256:9ebe49c3960aa2219292ea2e5df6acdc425fc828f2f3d50b4cfae1692bcb5f02",
- "sha256:a28fe28c359835f3be20c89efd517b35e8f97dbb2ca09c6cf0d9ac07f62d7ef6",
- "sha256:a36ea43919e51b0de0c0bc52bcfdad7683f6ea9fb81b340cdabb9df0e045e0f7",
- "sha256:a505ecc0642f52e7c65afb02cc6181377d833b7df0994ecde15943b18d0fa89c",
- "sha256:a79abdb404d9256afb8aeaa0d3a4bc7d3b6d8b66103d8b0f2f91febd3909976e",
- "sha256:c211e8ec81522ce87b0b39f0cf0712c998d4305a030459a0e115a2b3dc71598f",
- "sha256:dd4ed12a775f2cde4519f4267d3601990a97d8ecde5c944ab06bfd6e8e8ea177",
- "sha256:e37621b37c73b034997b5116678862f38ee70e5a054821c7b19d0e55df270dec",
- "sha256:e93978993a2ad0af43f132be3ea8805f56b2f2cd223403ec28d3e7d5c6d39ed1"
- ],
- "version": "==1.4.25"
+ "sha256:015511c52c650eebf1059ed8a21674d9d4ae567ebfd80fc73f8252faccd71864",
+ "sha256:0438bccc16349db2d5203598be6073175ce16d4e53b592d6e6cef880c197333e",
+ "sha256:10230364479429437f1b819a8839f1edc5744c018bfeb8d01320930f97695bc9",
+ "sha256:2146ef996181e3d4dd20eaf1d7325eb62d6c8aa4dc1677c1872ddfa8561a47d9",
+ "sha256:24828c5e74882cf41516740c0b150702bee4c6817d87d5c3d3bafef2e6896f80",
+ "sha256:2717ceae35e71de1f58b0d1ee7e773d3aab5c403c6e79e8d262277c7f7f95269",
+ "sha256:2e93624d186ea7a738ada47314701c8830e0e4b021a6bce7fbe6f39b87ee1516",
+ "sha256:435b1980c1333ffe3ab386ad28d7b209590b0fa83ea8544d853e7a22f957331b",
+ "sha256:486f7916ef77213103467924ef25f5ea1055ae901f385fe4d707604095fdf6a9",
+ "sha256:4ac8306e04275d382d6393e557047b0a9d7ddf9f7ca5da9b3edbd9323ea75bd9",
+ "sha256:4d1d707b752137e6bf45720648e1b828d5e4881d690df79cca07f7217ea06365",
+ "sha256:52f23a76544ed29573c0f3ee41f0ca1aedbab3a453102b60b540cc6fa55448ad",
+ "sha256:5beeff18b4e894f6cb73c8daf2c0d8768844ef40d97032bb187d75b1ec8de24b",
+ "sha256:6510f4a5029643301bdfe56b61e806093af2101d347d485c42a5535847d2c699",
+ "sha256:6afa9e4e63f066e0fd90a21db7e95e988d96127f52bfb298a0e9bec6999357a9",
+ "sha256:771eca9872b47a629010665ff92de1c248a6979b8d1603daced37773d6f6e365",
+ "sha256:78943451ab3ffd0e27876f9cea2b883317518b418f06b90dadf19394534637e9",
+ "sha256:8327e468b1775c0dfabc3d01f39f440585bf4d398508fcbbe2f0d931c502337d",
+ "sha256:8dbe5f639e6d035778ebf700be6d573f82a13662c3c2c3aa0f1dba303b942806",
+ "sha256:9134e5810262203388b203c2022bbcbf1a22e89861eef9340e772a73dd9076fa",
+ "sha256:9369f927f4d19b58322cfea8a51710a3f7c47a0e7f3398d94a4632760ecd74f6",
+ "sha256:987fe2f84ceaf744fa0e48805152abe485a9d7002c9923b18a4b2529c7bff218",
+ "sha256:a5881644fc51af7b232ab8d64f75c0f32295dfe88c2ee188023795cdbd4cf99b",
+ "sha256:a81e40dfa50ed3c472494adadba097640bfcf43db160ed783132045eb2093cb1",
+ "sha256:aadc6d1e58e14010ae4764d1ba1fd0928dbb9423b27a382ea3a1444f903f4084",
+ "sha256:ad8ec6b69d03e395db48df8991aa15fce3cd23e378b73e01d46a26a6efd5c26d",
+ "sha256:b02eee1577976acb4053f83d32b7826424f8b9f70809fa756529a52c6537eda4",
+ "sha256:bac949be7579fed824887eed6672f44b7c4318abbfb2004b2c6968818b535a2f",
+ "sha256:c035184af4e58e154b0977eea52131edd096e0754a88f7d5a847e7ccb3510772",
+ "sha256:c7d0a1b1258efff7d7f2e6cfa56df580d09ba29d35a1e3f604f867e1f685feb2",
+ "sha256:cc49fb8ff103900c20e4a9c53766c82a7ebbc183377fb357a8298bad216e9cdd",
+ "sha256:d768359daeb3a86644f3854c6659e4496a3e6bba2b4651ecc87ce7ad415b320c",
+ "sha256:d81c84c9d2523b3ea20f8e3aceea68615768a7464c0f9a9899600ce6592ec570",
+ "sha256:ec1c908fa721f2c5684900cc8ff75555b1a5a2ae4f5a5694eb0e37a5263cea44",
+ "sha256:fa52534076394af7315306a8701b726a6521b591d95e8f4e5121c82f94790e8d",
+ "sha256:fd421a14edf73cfe01e8f51ed8966294ee3b3db8da921cacc88e497fd6e977af"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
+ "version": "==1.4.27"
},
"terminado": {
"hashes": [
"sha256:09fdde344324a1c9c6e610ee4ca165c4bb7f5bbf982fceeeb38998a988ef8452",
"sha256:b20fd93cc57c1678c799799d117874367cc07a3d2d55be95205b1a88fa08393f"
],
+ "markers": "python_version >= '3.6'",
"version": "==0.12.1"
},
"testfixtures": {
@@ -1273,6 +1450,7 @@
"sha256:1acf7a0bcd3004ae8357409fc33751e16d37ccc650921da1094a86581ad1e417",
"sha256:8044f9a0bab6567fc644a3593164e872543bb44225b0e24846e2c89237937589"
],
+ "markers": "python_version >= '3.5'",
"version": "==0.5.0"
},
"toml": {
@@ -1280,6 +1458,7 @@
"sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b",
"sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"
],
+ "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==0.10.2"
},
"tornado": {
@@ -1326,20 +1505,31 @@
"sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68",
"sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5"
],
+ "markers": "python_version >= '3.5'",
"version": "==6.1"
},
"traitlets": {
"hashes": [
- "sha256:03f172516916220b58c9f19d7f854734136dd9528103d04e9bf139a92c9f54c4",
- "sha256:bd382d7ea181fbbcce157c133db9a829ce06edffe097bcf3ab945b435452b46d"
+ "sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7",
+ "sha256:2d313cc50a42cd6c277e7d7dc8d4d7fedd06a2c215f78766ae7b1a66277e0033"
],
- "version": "==5.1.0"
+ "markers": "python_version >= '3.7'",
+ "version": "==5.1.1"
+ },
+ "typing-extensions": {
+ "hashes": [
+ "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e",
+ "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==4.0.1"
},
"urllib3": {
"hashes": [
"sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece",
"sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"
],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
"version": "==1.26.7"
},
"watchdog": {
@@ -1368,6 +1558,7 @@
"sha256:e0f30db709c939cabf64a6dc5babb276e6d823fd84464ab916f9b9ba5623ca15",
"sha256:e92c2d33858c8f560671b448205a268096e17870dcf60a9bb3ac7bfbafb7f5f9"
],
+ "markers": "python_version >= '3.6'",
"version": "==2.1.6"
},
"wcwidth": {
@@ -1386,60 +1577,67 @@
},
"widgetsnbextension": {
"hashes": [
- "sha256:079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7",
- "sha256:bd314f8ceb488571a5ffea6cc5b9fc6cba0adaf88a9d2386b93a489751938bcd"
+ "sha256:763a9fdc836d141fa080005a886d63f66f73d56dba1fb5961afc239c77708569",
+ "sha256:e0731a60ba540cd19bbbefe771a9076dcd2dde90713a8f87f27f53f2d1db7727"
],
- "version": "==3.5.1"
+ "version": "==3.5.2"
},
"wrapt": {
"hashes": [
- "sha256:04312fbf51e9dd15261228e6b4bed0c0ed5723ccf986645d2c7308511dccba35",
- "sha256:04a00cef5d1b9e0e8db997816437b436e859106283c4771a40c4de4759344765",
- "sha256:0b2cbe418beeff3aadb3afc39a67d3f5f6a3eb020ceb5f2bcf56bef14b33629a",
- "sha256:19b2c992668c9ca764899bae52987a04041ebc21859d2646db0b27e089c2fd6b",
- "sha256:1b46e4fe0f9efbfaf1ee82fc79f9cb044c69b67b181c58370440d396fe40736e",
- "sha256:21c1710f61aa95b4be83a32b6d6facbb0efdfac22dee65e1caa72a83deed7cda",
- "sha256:2d18618440df6bc072762625e9c843d32a7328347c321b89f8df3a7c4a72ce6c",
- "sha256:2f6fbea8936ba862425664fc689182a8ef50a6d88cd49f3cd073eccd3e78c930",
- "sha256:3658ae9c704906cab5865a00c1aa9e1fd3555074d1a4462fa1742d7fea8260ae",
- "sha256:3816922f0941f1637869a04e25d1e5261dfa55cc6b39c73872cbf192ea562443",
- "sha256:40fd2cebad4010787de4221ec27a650635eed3e49e4bbfa8244fc34836cc2457",
- "sha256:4f3f99bb8eed5d394bbb898c5191ed91ebf21187d52b2c45895733ae2798f373",
- "sha256:5dc6c8cfaf4ff2a4632f8f97d29f555d6951eb0f905d3d47b3fd69bddb653214",
- "sha256:6aa687da5565674c9696fafd2b8d44a04fb697ec2431af21c3def9cbedc4082a",
- "sha256:6b81913fdba96e286f0c6007eb61f0158e64a1941bfc72fee61b34a4f8f9877f",
- "sha256:6c241b4ef0744590ae0ee89305743977e478200cff961bdcc6b3d0530aea3377",
- "sha256:77fef0bfdc612f5f30e43392a9f67dddaf4f48f299421bf25f910d0f47173f3d",
- "sha256:7929ce97be2f7c49f454a6f8e014225e53cc3767fe48cce94b188de2225232ac",
- "sha256:8055f8cc9a80dc1db01f31af6399b83f597ec164f07b7251d2a1bf1c6c025190",
- "sha256:836c73f53a0cefc7ba10c6f4a0d78894cb4876f56035fe500b029e0a1ae0ffe9",
- "sha256:8a184c655bb41295a9b0c28745a1b762c0c86025e43808b7e814f9cedc6c563d",
- "sha256:8a6ba1b00d07f5a90a2d2eb1804a42e2067a6145b7745a8297664a75a8a232ba",
- "sha256:909a80ce028821c7ad01bdcaa588126825931d177cdccd00b3545818d4a195ce",
- "sha256:947a8d9d7829364e11eca88af18394713c8f98571cbc672b12545977d837f054",
- "sha256:95c9fcfc326fdd3e2fd264e808f6474ca7ffd253feb3a505ee5ceb4d78216ef7",
- "sha256:972099fa9cf4e43c255701c78ec5098c2fec4d6ea669a110b3414a158e772b0a",
- "sha256:97f016514ceac524832e7d1bd41cf928b992ebe0324d59736f84ad5f4bbe0632",
- "sha256:9d200716eb4bb1d73f47f3ccc4f98fdf979dcc82d752183828f1be2e332b6874",
- "sha256:9f839c47698052ef5c2c094e21f8a06d0828aebe52d20cdb505faa318c62e886",
- "sha256:aa637733f1d599077522f6a1f0c6c40389aa90a44cba37afcefef26f8e53d28f",
- "sha256:b0eed9b295039a619f64667f27cffbffcfc0559073d562700912ca6266bc8b28",
- "sha256:b1137e6aef3ac267c2af7d3af0266ef3f8dd1e5cde67b8eac9fa3b94e7fa0ada",
- "sha256:b41ce8ee3825634e67883dd4dab336f95d0cc9d223fb7e224dcd36d66af93694",
- "sha256:bc42803987eb46b5fc67ec9a072df15a72ee9db61e3b7dd955d82581bf141f60",
- "sha256:bd705e341baccc3d1ef20e790b1f6383bd4ae92a77ba87a86ece8189fab8793c",
- "sha256:c803526c0d3fa426e06de379b4eb56102234f2dc3c3a24a500d7962a83ca6166",
- "sha256:cb0b12b365b054bee2a53078a67df81781be0686cc3f3ab8bbdd16b2e188570a",
- "sha256:d0ae90fd60c7473e437b0dd48ae323c11f631fe47c243056f9e7505d26e8e2f6",
- "sha256:db0daf2afca9f3b3a76e96ecb5f55ba82615ec584471d7aa27c1bdeb9e3888bb",
- "sha256:e2eb4f38441b56698b4d40d48fd331e4e8a0477264785d08cbced63813d4bd29",
- "sha256:e5a0727ea56de6e9a17693589bcf913d6bf1ec49f12d4671993321f3325fda4f",
- "sha256:ec803c9d6e4ce037201132d903ff8b0dd26c9688be50ce4c77c420c076e78ff7",
- "sha256:f1e2cea943192e24070b65bda862901c02bdf7c6abcd66ef5381ad6511921067",
- "sha256:f4377eda306b488255ea4336662cd9015a902d6dc2ed77a3e4c1e3b42387453a",
- "sha256:fd5320bf61a2e8d3b46d9e183323293c9a695df8f38c98d17c45e1846758f9a9"
- ],
- "version": "==1.13.1"
+ "sha256:086218a72ec7d986a3eddb7707c8c4526d677c7b35e355875a0fe2918b059179",
+ "sha256:0877fe981fd76b183711d767500e6b3111378ed2043c145e21816ee589d91096",
+ "sha256:0a017a667d1f7411816e4bf214646d0ad5b1da2c1ea13dec6c162736ff25a374",
+ "sha256:0cb23d36ed03bf46b894cfec777eec754146d68429c30431c99ef28482b5c1df",
+ "sha256:1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185",
+ "sha256:220a869982ea9023e163ba915077816ca439489de6d2c09089b219f4e11b6785",
+ "sha256:25b1b1d5df495d82be1c9d2fad408f7ce5ca8a38085e2da41bb63c914baadff7",
+ "sha256:2dded5496e8f1592ec27079b28b6ad2a1ef0b9296d270f77b8e4a3a796cf6909",
+ "sha256:2ebdde19cd3c8cdf8df3fc165bc7827334bc4e353465048b36f7deeae8ee0918",
+ "sha256:43e69ffe47e3609a6aec0fe723001c60c65305784d964f5007d5b4fb1bc6bf33",
+ "sha256:46f7f3af321a573fc0c3586612db4decb7eb37172af1bc6173d81f5b66c2e068",
+ "sha256:47f0a183743e7f71f29e4e21574ad3fa95676136f45b91afcf83f6a050914829",
+ "sha256:498e6217523111d07cd67e87a791f5e9ee769f9241fcf8a379696e25806965af",
+ "sha256:4b9c458732450ec42578b5642ac53e312092acf8c0bfce140ada5ca1ac556f79",
+ "sha256:51799ca950cfee9396a87f4a1240622ac38973b6df5ef7a41e7f0b98797099ce",
+ "sha256:5601f44a0f38fed36cc07db004f0eedeaadbdcec90e4e90509480e7e6060a5bc",
+ "sha256:5f223101f21cfd41deec8ce3889dc59f88a59b409db028c469c9b20cfeefbe36",
+ "sha256:610f5f83dd1e0ad40254c306f4764fcdc846641f120c3cf424ff57a19d5f7ade",
+ "sha256:6a03d9917aee887690aa3f1747ce634e610f6db6f6b332b35c2dd89412912bca",
+ "sha256:705e2af1f7be4707e49ced9153f8d72131090e52be9278b5dbb1498c749a1e32",
+ "sha256:766b32c762e07e26f50d8a3468e3b4228b3736c805018e4b0ec8cc01ecd88125",
+ "sha256:77416e6b17926d953b5c666a3cb718d5945df63ecf922af0ee576206d7033b5e",
+ "sha256:778fd096ee96890c10ce96187c76b3e99b2da44e08c9e24d5652f356873f6709",
+ "sha256:78dea98c81915bbf510eb6a3c9c24915e4660302937b9ae05a0947164248020f",
+ "sha256:7dd215e4e8514004c8d810a73e342c536547038fb130205ec4bba9f5de35d45b",
+ "sha256:7dde79d007cd6dfa65afe404766057c2409316135cb892be4b1c768e3f3a11cb",
+ "sha256:81bd7c90d28a4b2e1df135bfbd7c23aee3050078ca6441bead44c42483f9ebfb",
+ "sha256:85148f4225287b6a0665eef08a178c15097366d46b210574a658c1ff5b377489",
+ "sha256:865c0b50003616f05858b22174c40ffc27a38e67359fa1495605f96125f76640",
+ "sha256:87883690cae293541e08ba2da22cacaae0a092e0ed56bbba8d018cc486fbafbb",
+ "sha256:8aab36778fa9bba1a8f06a4919556f9f8c7b33102bd71b3ab307bb3fecb21851",
+ "sha256:8c73c1a2ec7c98d7eaded149f6d225a692caa1bd7b2401a14125446e9e90410d",
+ "sha256:936503cb0a6ed28dbfa87e8fcd0a56458822144e9d11a49ccee6d9a8adb2ac44",
+ "sha256:944b180f61f5e36c0634d3202ba8509b986b5fbaf57db3e94df11abee244ba13",
+ "sha256:96b81ae75591a795d8c90edc0bfaab44d3d41ffc1aae4d994c5aa21d9b8e19a2",
+ "sha256:981da26722bebb9247a0601e2922cedf8bb7a600e89c852d063313102de6f2cb",
+ "sha256:ae9de71eb60940e58207f8e71fe113c639da42adb02fb2bcbcaccc1ccecd092b",
+ "sha256:b73d4b78807bd299b38e4598b8e7bd34ed55d480160d2e7fdaabd9931afa65f9",
+ "sha256:d4a5f6146cfa5c7ba0134249665acd322a70d1ea61732723c7d3e8cc0fa80755",
+ "sha256:dd91006848eb55af2159375134d724032a2d1d13bcc6f81cd8d3ed9f2b8e846c",
+ "sha256:e05e60ff3b2b0342153be4d1b597bbcfd8330890056b9619f4ad6b8d5c96a81a",
+ "sha256:e6906d6f48437dfd80464f7d7af1740eadc572b9f7a4301e7dd3d65db285cacf",
+ "sha256:e92d0d4fa68ea0c02d39f1e2f9cb5bc4b4a71e8c442207433d8db47ee79d7aa3",
+ "sha256:e94b7d9deaa4cc7bac9198a58a7240aaf87fe56c6277ee25fa5b3aa1edebd229",
+ "sha256:ea3e746e29d4000cd98d572f3ee2a6050a4f784bb536f4ac1f035987fc1ed83e",
+ "sha256:ec7e20258ecc5174029a0f391e1b948bf2906cd64c198a9b8b281b811cbc04de",
+ "sha256:ec9465dd69d5657b5d2fa6133b3e1e989ae27d29471a672416fd729b429eb554",
+ "sha256:f122ccd12fdc69628786d0c947bdd9cb2733be8f800d88b5a37c57f1f1d73c10",
+ "sha256:f99c0489258086308aad4ae57da9e8ecf9e1f3f30fa35d5e170b4d4896554d80",
+ "sha256:f9c51d9af9abb899bd34ace878fbec8bf357b3194a10c4e8e0a25512826ef056",
+ "sha256:fd76c47f20984b43d93de9a82011bb6e5f8325df6c9ed4d8310029a55fa361ea"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==1.13.3"
}
},
"develop": {}
diff --git a/bottom_up.py b/bottom_up.py
new file mode 100644
index 0000000..e69de29
diff --git a/gen_diag_with_stage_obs_set.py b/gen_diag_with_stage_obs_set.py
new file mode 100644
index 0000000..863dcb9
--- /dev/null
+++ b/gen_diag_with_stage_obs_set.py
@@ -0,0 +1,31 @@
+import crdch_model as cm
+from linkml_runtime.dumpers import yaml_dumper
+
+ncit_sys_url = "http://ncithesaurus.nci.nih.gov/"
+harmonized_tag = "harmonized"
+diagnosis_fn = "gen_diag_with_stage_obs_set.yaml"
+
+stage_obs_set = cm.CancerStageObservationSet()
+
+obs_type_coding = cm.Coding(code="C25605", system=ncit_sys_url, label="Overall")
+obs_type_coding.tag.append(harmonized_tag)
+obs_type_cc = cm.CodeableConcept(coding=obs_type_coding)
+
+stage_value_coding = cm.Coding(code="C96258", system=ncit_sys_url, label="FIGO Stage IIIC")
+stage_value_coding.tag.append(harmonized_tag)
+stage_value_cc = cm.CodeableConcept(coding=stage_value_coding)
+
+stage_obs = cm.CancerStageObservation(id=1, observation_type=obs_type_cc, value_codeable_concept=stage_value_cc)
+
+stage_obs_set.observations.append(stage_obs)
+
+meth_type_coding = cm.Coding(code="C125738", system=ncit_sys_url, label="FIGO Stage")
+meth_type_coding.tag.append(harmonized_tag)
+meth_type_cc = cm.CodeableConcept(coding=meth_type_coding)
+
+stage_obs_set.method_type.append(meth_type_cc)
+
+diag = cm.Diagnosis(id=1)
+diag.stage.append(stage_obs_set)
+
+yaml_dumper.dump(diag, to_file=diagnosis_fn)
diff --git a/instantiate_diag_with_stage_obs_set.py b/instantiate_diag_with_stage_obs_set.py
new file mode 100644
index 0000000..a6febaf
--- /dev/null
+++ b/instantiate_diag_with_stage_obs_set.py
@@ -0,0 +1,8 @@
+from crdch_model import Diagnosis
+from linkml_runtime.loaders import yaml_loader
+
+diagnosis_fn = "gen_diag_with_stage_obs_set.yaml"
+
+diag = yaml_loader.load(diagnosis_fn, Diagnosis)
+
+print(diag)
diff --git a/linkml_linkml_issue_463_test.py b/linkml_linkml_issue_463_test.py
new file mode 100644
index 0000000..a27e863
--- /dev/null
+++ b/linkml_linkml_issue_463_test.py
@@ -0,0 +1,32 @@
+from crdch_model import Coding, CodeableConcept, CancerStageObservation, CancerStageObservationSet
+from linkml_runtime.loaders import yaml_loader
+
+Coding_fn = "linkml_linkml_issue_463_test_data/Coding.yaml"
+CodeableConcept_fn = "linkml_linkml_issue_463_test_data/CodeableConcept.yaml"
+CancerStageObservation_fn = "linkml_linkml_issue_463_test_data/CancerStageObservation.yaml"
+CancerStageObservationSet_fn = "linkml_linkml_issue_463_test_data/CancerStageObservationSet.yaml"
+
+
+def load_and_type(fn, expected_type):
+ obj = None
+ try:
+ obj = yaml_loader.load(fn, expected_type)
+ except Exception:
+ print(f"Exception on loading {fn} vs crdch_model")
+ assert isinstance(obj, expected_type)
+
+
+def test_Coding():
+ load_and_type(Coding_fn, Coding)
+
+
+def test_CodeableConcept():
+ load_and_type(CodeableConcept_fn, CodeableConcept)
+
+
+def test_CancerStageObservation():
+ load_and_type(CancerStageObservation_fn, CancerStageObservation)
+
+
+def test_CancerStageObservationSet():
+ load_and_type(CancerStageObservationSet_fn, CancerStageObservationSet)
diff --git a/linkml_linkml_issue_463_test_data/CancerStageObservation.yaml b/linkml_linkml_issue_463_test_data/CancerStageObservation.yaml
new file mode 100644
index 0000000..190242f
--- /dev/null
+++ b/linkml_linkml_issue_463_test_data/CancerStageObservation.yaml
@@ -0,0 +1,13 @@
+id: 1
+observation_type:
+ coding:
+ - code: 'abc1'
+ system: 'xxx'
+ - code: 'abc2'
+ system: 'xxx'
+value_codeable_concept:
+ coding:
+ - code: 'abc1'
+ system: 'xxx'
+ - code: 'abc2'
+ system: 'xxx'
diff --git a/linkml_linkml_issue_463_test_data/CancerStageObservationSet.yaml b/linkml_linkml_issue_463_test_data/CancerStageObservationSet.yaml
new file mode 100644
index 0000000..8039600
--- /dev/null
+++ b/linkml_linkml_issue_463_test_data/CancerStageObservationSet.yaml
@@ -0,0 +1,28 @@
+id: '1'
+observations:
+- observation_type:
+ coding:
+ - code: abc1
+ system: xxx
+ - code: abc2
+ system: xxx
+ value_codeable_concept:
+ coding:
+ - code: abc1
+ system: xxx
+ - code: abc2
+ system: xxx
+ id: '1'
+- observation_type:
+ coding:
+ - code: abc1
+ system: xxx
+ - code: abc2
+ system: xxx
+ value_codeable_concept:
+ coding:
+ - code: abc1
+ system: xxx
+ - code: abc2
+ system: xxx
+ id: '2'
diff --git a/linkml_linkml_issue_463_test_data/CodeableConcept.yaml b/linkml_linkml_issue_463_test_data/CodeableConcept.yaml
new file mode 100644
index 0000000..46b137c
--- /dev/null
+++ b/linkml_linkml_issue_463_test_data/CodeableConcept.yaml
@@ -0,0 +1,5 @@
+coding:
+ - code: 'abc1'
+ system: 'xxx'
+ - code: 'abc2'
+ system: 'xxx'
\ No newline at end of file
diff --git a/linkml_linkml_issue_463_test_data/Coding.yaml b/linkml_linkml_issue_463_test_data/Coding.yaml
new file mode 100644
index 0000000..520c448
--- /dev/null
+++ b/linkml_linkml_issue_463_test_data/Coding.yaml
@@ -0,0 +1,2 @@
+code: 'abc'
+system: 'xxx'
diff --git a/tobacco_expo.py b/tobacco_expo.py
new file mode 100644
index 0000000..b7c1201
--- /dev/null
+++ b/tobacco_expo.py
@@ -0,0 +1,17 @@
+import crdch_model as cm
+from linkml_runtime.dumpers import yaml_dumper
+from linkml_runtime.loaders import yaml_loader
+
+obs_type_coding = cm.Coding(code="123", system="http://example.com/system")
+obs_type_cc = cm.CodeableConcept(coding=obs_type_coding)
+tobacco_expo = cm.TobaccoExposureObservation(observation_type=obs_type_cc)
+
+print(tobacco_expo)
+
+tobacco_expo_file = "tobacco_expo.yaml"
+
+yaml_dumper.dump(tobacco_expo, to_file=tobacco_expo_file)
+
+instantiated = yaml_loader.load(tobacco_expo_file, cm.TobaccoExposureObservation)
+
+print(instantiated)
diff --git a/via_terminology_server.ipynb b/via_terminology_server.ipynb
new file mode 100644
index 0000000..6a17d14
--- /dev/null
+++ b/via_terminology_server.ipynb
@@ -0,0 +1,580 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "f0aa79f9",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import requests\n",
+ "import pandas as pd\n",
+ "import json\n",
+ "import crdch_model as ccdh\n",
+ "from linkml_runtime.dumpers import yaml_dumper"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "74625ec4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "with open('head-and-mouth/gdc-head-and-mouth.json') as file:\n",
+ " gdc_head_and_mouth = json.load(file)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "ae7fb14c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "suggested_row_num = 131\n",
+ "suggested_diag_num = 0\n",
+ "suggested_row = gdc_head_and_mouth[suggested_row_num]\n",
+ "# suggested_row"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "536f4e1f",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "suggested_diagnosis_dict = suggested_row[\"diagnoses\"][suggested_diag_num]\n",
+ "# suggested_diagnosis_dict"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "cae20189",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# derrived from Gaurav's code\n",
+ "# how to DISCOVER?\n",
+ "# close_mappings ?\n",
+ "# how to convert these legacy CRDC-H strings to codable concepts?\n",
+ "gdc_to_crdch_csoot_dict = [\n",
+ " {\"GDC\": \"ajcc_clinical_m\", \"CRDC-H\": \"Clinical Metastasis (M)\"},\n",
+ " {\"GDC\": \"ajcc_clinical_n\", \"CRDC-H\": \"Clinical Node (N)\"},\n",
+ " {\"GDC\": \"ajcc_clinical_stage\", \"CRDC-H\": \"Clinical Overall\"},\n",
+ " {\"GDC\": \"ajcc_clinical_t\", \"CRDC-H\": \"Clinical Tumor (T)\"},\n",
+ " {\"GDC\": \"tumor_stage\", \"CRDC-H\": \"Overall\"},\n",
+ " {\"GDC\": \"ajcc_pathologic_m\", \"CRDC-H\": \"Pathological Metastasis (M)\"},\n",
+ " {\"GDC\": \"ajcc_pathologic_n\", \"CRDC-H\": \"Pathological Node (N)\"},\n",
+ " {\"GDC\": \"ajcc_pathologic_stage\", \"CRDC-H\": \"Pathological Overall\"},\n",
+ " {\"GDC\": \"ajcc_pathologic_t\", \"CRDC-H\": \"Pathological Tumor (T)\"},\n",
+ " {\"GDC\": \"age_at_diagnosis\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"ajcc_staging_system_edition\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"classification_of_tumor\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"created_datetime\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"days_to_diagnosis\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"days_to_last_follow_up\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"days_to_last_known_disease_status\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"days_to_recurrence\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"diagnosis_id\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"icd_10_code\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"last_known_disease_status\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"morphology\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"primary_diagnosis\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"prior_malignancy\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"prior_treatment\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"progression_or_recurrence\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"site_of_resection_or_biopsy\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"state\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"submitter_id\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"synchronous_malignancy\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"tissue_or_organ_of_origin\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"tumor_grade\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"updated_datetime\", \"CRDC-H\": None},\n",
+ " {\"GDC\": \"year_of_diagnosis\", \"CRDC-H\": None},\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "a1b0bb2d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " GDC | \n",
+ " CRDC-H | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " ajcc_clinical_m | \n",
+ " Clinical Metastasis (M) | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " ajcc_clinical_n | \n",
+ " Clinical Node (N) | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " ajcc_clinical_stage | \n",
+ " Clinical Overall | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " ajcc_clinical_t | \n",
+ " Clinical Tumor (T) | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " tumor_stage | \n",
+ " Overall | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " ajcc_pathologic_m | \n",
+ " Pathological Metastasis (M) | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " ajcc_pathologic_n | \n",
+ " Pathological Node (N) | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " ajcc_pathologic_stage | \n",
+ " Pathological Overall | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " ajcc_pathologic_t | \n",
+ " Pathological Tumor (T) | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " GDC CRDC-H\n",
+ "0 ajcc_clinical_m Clinical Metastasis (M)\n",
+ "1 ajcc_clinical_n Clinical Node (N)\n",
+ "2 ajcc_clinical_stage Clinical Overall\n",
+ "3 ajcc_clinical_t Clinical Tumor (T)\n",
+ "4 tumor_stage Overall\n",
+ "5 ajcc_pathologic_m Pathological Metastasis (M)\n",
+ "6 ajcc_pathologic_n Pathological Node (N)\n",
+ "7 ajcc_pathologic_stage Pathological Overall\n",
+ "8 ajcc_pathologic_t Pathological Tumor (T)"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "gdc_to_crdch_csoot_frame = pd.DataFrame(gdc_to_crdch_csoot_dict)\n",
+ "gdc_to_crdch_csoot_frame_complete = gdc_to_crdch_csoot_frame.loc[ ~ gdc_to_crdch_csoot_frame['CRDC-H'].isnull()]\n",
+ "gdc_to_crdch_csoot_frame_complete"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "cb104514",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# initialize\n",
+ "global_mapping_table = pd.DataFrame()\n",
+ "\n",
+ "def get_mapping_table(model_name, class_name, slot_name):\n",
+ " global global_mapping_table\n",
+ " current_url = f\"https://terminology.ccdh.io/models/{model_name}/entities/{class_name}/attributes/{slot_name}/mappings\"\n",
+ " response = requests.get(current_url)\n",
+ " resp_struct = response.json()\n",
+ " current_mappings = pd.DataFrame(resp_struct[\"mappings\"])\n",
+ " global_mapping_table = global_mapping_table.append(current_mappings)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "5949bcf5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# add suggestion to pull new content into global_mapping_table if no hits\n",
+ "# add required predicate handling\n",
+ "# add handling for len(results.index) == 0 or > 1\n",
+ "# add option for closest match via difflib.get_close_matches \n",
+ "# or something more quantitative\n",
+ "def get_mapping(model_name, mf, sl, required_pred=\"\"):\n",
+ " prefixed_mf = model_name + \".\" + mf\n",
+ " # print(prefixed_mf)\n",
+ " results = global_mapping_table.loc[\n",
+ " global_mapping_table['subject_match_field'].eq(prefixed_mf) &\n",
+ " global_mapping_table['subject_label'].eq(sl)\n",
+ " ]\n",
+ " if len(results.index) == 1:\n",
+ " return results.to_dict(orient=\"records\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "d6494aad",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "global_mapping_table = pd.DataFrame()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "9019eece",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(0, 0)\n",
+ "(1402, 9)\n",
+ "(2081, 9)\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "print(global_mapping_table.shape)\n",
+ "get_mapping_table(\"CRDC-H\", \"BodySite\", \"site\")\n",
+ "print(global_mapping_table.shape)\n",
+ "get_mapping_table(\"CRDC-H\", \"CancerStageObservation\", \"valueCodeableConcept\")\n",
+ "print(global_mapping_table.shape)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "4cb0009b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# global_mapping_table"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "18f879c7",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# get_mapping(\"GDC.Case\", \"primary_site\", \"Brain\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "21a48c20",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# suggested_row['samples'][0]['sample_id']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "17d589e7",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# suggested_row['primary_site']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "31005b07",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def transform_sample_to_specimen(sample):\n",
+ " \"\"\"\n",
+ " A method for transforming a GDC Sample into CCDH Specimen.\n",
+ " \"\"\"\n",
+ "\n",
+ " specimen = ccdh.Specimen(id = sample.get('sample_id'))\n",
+ " specimen.source_material_type = sample.get('sample_type')\n",
+ " specimen.general_tissue_morphology = sample.get('tissue_type')\n",
+ " specimen.specific_tissue_morphology = sample.get('tumor_code')\n",
+ " specimen.tumor_status_at_collection = sample.get('tumor_descriptor')\n",
+ " # we don't consistentely have created_datetimes\n",
+ " # need to check their format too\n",
+ "# if 'created_datetime' in sample and sample['created_datetime'] is not None :\n",
+ "# specimen.creation_activity = ccdh.SpecimenCreationActivity(\n",
+ "# date_ended=ccdh.TimePoint(\n",
+ "# dateTime=sample.get('created_datetime')\n",
+ "# )\n",
+ "# )\n",
+ "# else:\n",
+ "# print(\"creation_activity not created because created_datetime absent or equals None\")\n",
+ " return specimen\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "d065d4cd",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Specimen(id='a118da56-784d-4b67-aade-d9a7a8b49f18', identifier=[], description=None, specimen_type=None, analyte_type=None, associated_project=None, data_provider=None, source_material_type='Primary Tumor', parent_specimen=[], source_subject=None, tumor_status_at_collection=None, creation_activity=None, processing_activity=[], storage_activity=[], transport_activity=[], contained_in=None, dimensional_measures=None, quantity_measure=[], quality_measure=[], cellular_composition_type=None, histological_composition_measures=[], general_tissue_pathology=None, specific_tissue_pathology=None, preinvasive_tissue_morphology=None, morphology_pathologically_confirmed=None, morphology_assessor_role=None, morphology_assessment_method=None, degree_of_dysplasia=None, dysplasia_fraction=None, related_document=[], section_location=None, derived_product=[], distance_from_paired_specimen=None)"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Let's try creating a test specimen.\n",
+ "test_specimen = transform_sample_to_specimen(suggested_row['samples'][0])\n",
+ "test_specimen"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "id": "53cad32f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Diagnosis(id=None, identifier=[], subject=None, age_at_diagnosis=Quantity(value_decimal=Decimal('123'), value_codeable_concept=None, unit=None), diagnosis_date=None, condition=None, primary_site=[], metastatic_site=[], stage=[], grade=[], morphology=None, disease_status=None, prior_diagnosis=None, method_of_diagnosis=None, related_specimen=[], primary_tumor_dimensional_measures=None, supporting_observation=[])"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ccdh.Diagnosis(age_at_diagnosis = ccdh.Quantity(value_decimal=\"123\"))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "id": "107150ad",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'age_at_diagnosis': 22107, 'ajcc_clinical_m': 'M1', 'ajcc_clinical_n': 'N1', 'ajcc_clinical_stage': 'Stage IVC', 'ajcc_clinical_t': 'T3', 'ajcc_pathologic_m': 'M1', 'ajcc_pathologic_n': 'N1', 'ajcc_pathologic_stage': 'Stage IVC', 'ajcc_pathologic_t': 'T3', 'ajcc_staging_system_edition': '7th', 'classification_of_tumor': 'not reported', 'created_datetime': None, 'days_to_diagnosis': 0, 'days_to_last_follow_up': None, 'days_to_last_known_disease_status': None, 'days_to_recurrence': None, 'diagnosis_id': '9e30aa6c-91e6-5dd3-9512-75c162a89913', 'icd_10_code': 'C32.9', 'last_known_disease_status': 'not reported', 'morphology': '8070/3', 'primary_diagnosis': 'Squamous cell carcinoma, NOS', 'prior_malignancy': 'no', 'prior_treatment': 'No', 'progression_or_recurrence': 'not reported', 'site_of_resection_or_biopsy': 'Larynx, NOS', 'state': 'released', 'submitter_id': 'TCGA-QK-A8Z8_diagnosis', 'synchronous_malignancy': 'No', 'tissue_or_organ_of_origin': 'Larynx, NOS', 'tumor_grade': 'not reported', 'tumor_stage': 'stage ivc', 'updated_datetime': '2019-08-08T16:48:06.888156-05:00', 'year_of_diagnosis': 2013}\n",
+ "primary_diagnosis = Squamous cell carcinoma, NOS\n",
+ "morphology = 8070/3\n",
+ "grade = None\n",
+ "year_of_diagnosis = 2013\n"
+ ]
+ },
+ {
+ "ename": "ValueError",
+ "evalue": " Unknown argument: year_at_diagnosis = Quantity(value_decimal=Decimal('2013'), ",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m/tmp/ipykernel_383721/3442452710.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m example_diagnosis = transform_diagnosis(\n\u001b[0m\u001b[1;32m 113\u001b[0m \u001b[0mgdc_head_and_mouth\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m131\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"diagnoses\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgdc_head_and_mouth\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m131\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m )\n",
+ "\u001b[0;32m/tmp/ipykernel_383721/3442452710.py\u001b[0m in \u001b[0;36mtransform_diagnosis\u001b[0;34m(diagnosis, case)\u001b[0m\n\u001b[1;32m 77\u001b[0m \u001b[0mlist_to_pii\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdiagnosis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m\"primary_diagnosis\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"morphology\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"grade\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"year_of_diagnosis\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 79\u001b[0;31m ccdh_diagnosis = ccdh.Diagnosis(\n\u001b[0m\u001b[1;32m 80\u001b[0m \u001b[0mid\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdiagnosis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"diagnosis_id\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 81\u001b[0m related_specimen=[\n",
+ "\u001b[0;32m~/.local/share/virtualenvs/example-data-8chtNU61/lib/python3.8/site-packages/crdch_model.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, id, identifier, subject, age_at_diagnosis, diagnosis_date, condition, primary_site, metastatic_site, stage, grade, morphology, disease_status, prior_diagnosis, method_of_diagnosis, related_specimen, primary_tumor_dimensional_measures, supporting_observation, **kwargs)\u001b[0m\n",
+ "\u001b[0;32m~/.local/share/virtualenvs/example-data-8chtNU61/lib/python3.8/site-packages/crdch_model.py\u001b[0m in \u001b[0;36m__post_init__\u001b[0;34m(self, *_, **kwargs)\u001b[0m\n\u001b[1;32m 604\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_normalize_inlined_as_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mslot_name\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"supporting_observation\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslot_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mObservation\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey_name\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"observation_type\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeyed\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 605\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 606\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__post_init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 607\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 608\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m~/.local/share/virtualenvs/example-data-8chtNU61/lib/python3.8/site-packages/linkml_runtime/utils/yamlutils.py\u001b[0m in \u001b[0;36m__post_init__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrepr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m40\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'\\n'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'\\\\n'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[0mmessages\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"{TypedNode.yaml_loc(k)} Unknown argument: {k} = {v}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 48\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'\\n'\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmessages\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 49\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_default\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfiltr\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mCallable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdict\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mValueError\u001b[0m: Unknown argument: year_at_diagnosis = Quantity(value_decimal=Decimal('2013'), "
+ ]
+ }
+ ],
+ "source": [
+ "def create_body_site(site_input):\n",
+ " the_mapping = get_mapping(\"GDC.Case\", \"primary_site\", site_input)\n",
+ " mapped = ccdh.BodySite(\n",
+ " site=ccdh.CodeableConcept(\n",
+ " coding=[\n",
+ " ccdh.Coding(\n",
+ " code=the_mapping[0][\"object_id\"],\n",
+ " system=\"undefined\",\n",
+ " label=the_mapping[0][\"object_label\"],\n",
+ " )\n",
+ " ],\n",
+ " text=site_input,\n",
+ " )\n",
+ " )\n",
+ " return mapped\n",
+ "\n",
+ "\n",
+ "def create_stage_from_gdc(current_prefix, diagnosis):\n",
+ " cancer_stage_method_type = None\n",
+ " \n",
+ " # if diagnosis.get('ajcc_staging_system_edition') == '7th':\n",
+ " # cancer_stage_method_type = 'AJCC staging system 7th edition'\n",
+ " \n",
+ " # Create an observation set\n",
+ " obs = ccdh.CancerStageObservationSet(method_type=cancer_stage_method_type)\n",
+ " for k, v in diagnosis.items():\n",
+ " # print(f\"trying {k} of {v}\")\n",
+ " qk = current_prefix + str(k)\n",
+ " current_mapping = get_mapping(current_prefix, k, v)\n",
+ " # print(current_mapping)\n",
+ " if current_mapping is not None:\n",
+ " crdch_diag_info_type = gdc_to_crdch_csoot_frame_complete[\"CRDC-H\"].loc[\n",
+ " gdc_to_crdch_csoot_frame_complete[\"GDC\"] == k\n",
+ " ]\n",
+ " crdch_diag_info_type = list(crdch_diag_info_type)\n",
+ " if len(crdch_diag_info_type) == 1:\n",
+ " crdch_diag_info_type = crdch_diag_info_type[0]\n",
+ " current_observation = ccdh.CancerStageObservation(\n",
+ " observation_type=ccdh.CodeableConcept(\n",
+ " coding=[\n",
+ " ccdh.Coding(\n",
+ " code=crdch_diag_info_type,\n",
+ " system=\"undefined\",\n",
+ " )\n",
+ " ],\n",
+ " text=k,\n",
+ " ),\n",
+ " value_codeable_concept=ccdh.CodeableConcept(\n",
+ " coding=[\n",
+ " ccdh.Coding(\n",
+ " code=current_mapping[0][\"object_id\"],\n",
+ " system=\"undefined\",\n",
+ " label=current_mapping[0][\"object_label\"],\n",
+ " )\n",
+ " ],\n",
+ " text=v,\n",
+ " ),\n",
+ " )\n",
+ " # print(current_observation)\n",
+ " obs.observations.append(current_observation)\n",
+ " # print(obs)\n",
+ " return obs\n",
+ "\n",
+ "def printifin(current_dict, current_key):\n",
+ " if current_key in current_dict:\n",
+ " print(f\"{current_key} = {current_dict[current_key]}\")\n",
+ " else:\n",
+ " print(f\"{current_key} = {None}\")\n",
+ " \n",
+ "def list_to_pii(current_dict, key_list):\n",
+ " for i in key_list:\n",
+ " printifin(current_dict, i)\n",
+ "\n",
+ "\n",
+ "def transform_diagnosis(diagnosis, case):\n",
+ " print(diagnosis)\n",
+ " list_to_pii(diagnosis, [\"primary_diagnosis\", \"morphology\", \"grade\", \"year_of_diagnosis\"])\n",
+ " \n",
+ " ccdh_diagnosis = ccdh.Diagnosis(\n",
+ " id=diagnosis.get(\"diagnosis_id\"),\n",
+ " related_specimen=[\n",
+ " transform_sample_to_specimen(sample) for sample in case.get(\"samples\")\n",
+ " ],\n",
+ " stage=create_stage_from_gdc(\"GDC.Diagnosis\", diagnosis),\n",
+ "# age_at_diagnosis = ccdh.Quantity(value_decimal=diagnosis['year_of_diagnosis'])\n",
+ " )\n",
+ "\n",
+ " # ccdh_diagnosis = ccdh.Diagnosis(\n",
+ " # condition=diagnosis.get('primary_diagnosis'),\n",
+ " # morphology=diagnosis.get('morphology'),\n",
+ " # grade=diagnosis.get('grade'),\n",
+ " # year_at_diagnosis=diagnosis.get('year_of_diagnosis'),\n",
+ " # )\n",
+ "\n",
+ " ccdh_diagnosis.identifier = [\n",
+ " ccdh.Identifier(system=\"GDC-submitter-id\", value=diagnosis.get(\"submitter_id\"))\n",
+ " ]\n",
+ "\n",
+ " if \"primary_site\" in case and case[\"primary_site\"] != \"\":\n",
+ " body_site = create_body_site(case[\"primary_site\"])\n",
+ " if body_site is not None:\n",
+ " ccdh_diagnosis.metastatic_site.append(body_site)\n",
+ " else:\n",
+ " print(\"returned body_site is None\")\n",
+ " else:\n",
+ " print(\"case didn't seem to have a populated primary_site\")\n",
+ "\n",
+ " return ccdh_diagnosis\n",
+ " pass\n",
+ "\n",
+ "\n",
+ "example_diagnosis = transform_diagnosis(\n",
+ " gdc_head_and_mouth[131][\"diagnoses\"][0], gdc_head_and_mouth[131]\n",
+ ")\n",
+ "print(\"\\n\")\n",
+ "print(yaml_dumper.dumps(example_diagnosis))\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1be21d55",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}