{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true, "pycharm": { "name": "#%% md\n" } }, "source": [ "# How to extend a biolink modeling language (BiolinkML) model\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: yamlmagic in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (0.2.0)\n", "Processing /Users/solbrig/git/biolink/biolinkml\n", "Requirement already satisfied: argparse>=1.4.0 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (1.4.0)\n", "Requirement already satisfied: click>=7.0 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (7.0)\n", "Requirement already satisfied: graphviz>=0.10.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (0.13)\n", "Requirement already satisfied: jsonasobj>=1.2.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (1.2.1)\n", "Requirement already satisfied: jsonschema>=3.0.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (3.1.1)\n", "Requirement already satisfied: prefixcommons>=0.1.7 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (0.1.7)\n", "Requirement already satisfied: prologterms in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (0.0.6)\n", "Requirement already satisfied: pyjsg>=0.9.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (0.9.1)\n", "Requirement already satisfied: pyshex>=0.7.11 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (0.7.12)\n", "Requirement already satisfied: pyshexc in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (0.7.0)\n", "Requirement already satisfied: pyyaml>=5.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (5.1.2)\n", "Requirement already satisfied: rdflib-jsonld in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (0.4.0)\n", "Requirement already satisfied: rdflib>=4.2.2 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (4.2.2)\n", "Requirement already satisfied: requests>=2.22 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from biolinkml==1.4.5.dev50) (2.22.0)\n", "Requirement already satisfied: six>=1.11.0 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from jsonschema>=3.0.1->biolinkml==1.4.5.dev50) (1.12.0)\n", "Requirement already satisfied: attrs>=17.4.0 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from jsonschema>=3.0.1->biolinkml==1.4.5.dev50) (19.3.0)\n", "Requirement already satisfied: pyrsistent>=0.14.0 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from jsonschema>=3.0.1->biolinkml==1.4.5.dev50) (0.15.4)\n", "Requirement already satisfied: setuptools in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from jsonschema>=3.0.1->biolinkml==1.4.5.dev50) (41.4.0)\n", "Requirement already satisfied: importlib-metadata in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from jsonschema>=3.0.1->biolinkml==1.4.5.dev50) (0.23)\n", "Requirement already satisfied: cachier in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from prefixcommons>=0.1.7->biolinkml==1.4.5.dev50) (1.2.6)\n", "Requirement already satisfied: antlr4-python3-runtime>=4.7 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from pyjsg>=0.9.1->biolinkml==1.4.5.dev50) (4.7.2)\n", "Requirement already satisfied: sparqlwrapper in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from pyshex>=0.7.11->biolinkml==1.4.5.dev50) (1.8.4)\n", "Requirement already satisfied: shexjsg>=0.6.5 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from pyshex>=0.7.11->biolinkml==1.4.5.dev50) (0.6.8)\n", "Requirement already satisfied: urllib3 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from pyshex>=0.7.11->biolinkml==1.4.5.dev50) (1.25.6)\n", "Requirement already satisfied: cfgraph>=0.2.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from pyshex>=0.7.11->biolinkml==1.4.5.dev50) (0.2.1)\n", "Requirement already satisfied: sparql-slurper>=0.2.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from pyshex>=0.7.11->biolinkml==1.4.5.dev50) (0.2.2)\n", "Requirement already satisfied: certifi in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from pyshexc->biolinkml==1.4.5.dev50) (2019.9.11)\n", "Requirement already satisfied: isodate in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from rdflib>=4.2.2->biolinkml==1.4.5.dev50) (0.6.0)\n", "Requirement already satisfied: pyparsing in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from rdflib>=4.2.2->biolinkml==1.4.5.dev50) (2.4.2)\n", "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from requests>=2.22->biolinkml==1.4.5.dev50) (3.0.4)\n", "Requirement already satisfied: idna<2.9,>=2.5 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from requests>=2.22->biolinkml==1.4.5.dev50) (2.8)\n", "Requirement already satisfied: zipp>=0.5 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from importlib-metadata->jsonschema>=3.0.1->biolinkml==1.4.5.dev50) (0.6.0)\n", "Requirement already satisfied: watchdog in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from cachier->prefixcommons>=0.1.7->biolinkml==1.4.5.dev50) (0.9.0)\n", "Requirement already satisfied: portalocker in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from cachier->prefixcommons>=0.1.7->biolinkml==1.4.5.dev50) (1.5.1)\n", "Requirement already satisfied: more-itertools in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from zipp>=0.5->importlib-metadata->jsonschema>=3.0.1->biolinkml==1.4.5.dev50) (7.2.0)\n", "Requirement already satisfied: argh>=0.24.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from watchdog->cachier->prefixcommons>=0.1.7->biolinkml==1.4.5.dev50) (0.26.2)\n", "Requirement already satisfied: pathtools>=0.1.1 in /Users/solbrig/.local/share/virtualenvs/biolinkml_notebooks-E0eie4i6/lib/python3.7/site-packages (from watchdog->cachier->prefixcommons>=0.1.7->biolinkml==1.4.5.dev50) (0.1.2)\n", "Building wheels for collected packages: biolinkml\n", " Building wheel for biolinkml (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for biolinkml: filename=biolinkml-1.4.5.dev50-cp37-none-any.whl size=83751 sha256=350a703fd7fec786c2bd82de64cb8fb8e26c273af010dd032be88e8568e157dd\n", " Stored in directory: /private/var/folders/5f/82515x2x1cl_5c4zqvyd15nm0000gp/T/pip-ephem-wheel-cache-sm36oig8/wheels/6c/69/a8/bacbeba530bdf1dbbc4c414a00b26a368f2e430da2819d3e13\n", "Successfully built biolinkml\n", "Installing collected packages: biolinkml\n", " Found existing installation: biolinkml 1.4.5.dev50\n", " Uninstalling biolinkml-1.4.5.dev50:\n", " Successfully uninstalled biolinkml-1.4.5.dev50\n", "Successfully installed biolinkml-1.4.5.dev50\n" ] } ], "source": [ "!pip install -q yamlmagic\n", "!pip install -q .." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%load_ext yamlmagic" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "pycharm": { "is_executing": false, "name": "#%% \n" } }, "outputs": [ { "data": { "application/javascript": [ "\n", " require(\n", " [\n", " \"notebook/js/codecell\",\n", " \"codemirror/mode/yaml/yaml\"\n", " ],\n", " function(cc){\n", " cc.CodeCell.options_default.highlight_modes.magic_yaml = {\n", " reg: [\"^%%yaml\"]\n", " }\n", " }\n", " );\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%yaml model\n", "\n", "# Every model must have a globally unique URI. This is the external name of the model\n", "id: http://example.org/examples/distributeExample \n", "\n", "# Every model should also have a globally unique name (well, global within the context of the particular modeling environment)\n", "name: dist1\n", "\n", "# Descriptions are always useful, but not required\n", "description: A toy extension to the base biolink model\n", "\n", "# Versions are recommended but not required. The version is copied into the output artifacts. An error will be raised\n", "# if two different versions of the same model are imported\n", "version: 0.0.1\n", "\n", "# A license is not required at this point -- should it be?\n", "license: https://creativecommons.org/publicdomain/zero/1.0/\n", " \n", "# Prefixes can be assigned specifically. We define two below:\n", "# biolink -- the prefix used by the biolink-model\n", "# dist1 -- the URI prefix used by this example. Note that the dist1 prefix may or may not align with the model id\n", "prefixes:\n", " biolink: https://w3id.org/biolink/vocab/\n", " biolinkml: https://w3id.org/biolink/biolinkml/\n", " dist: http://example.org/examples/dist1#\n", "\n", "# Prefixes can also be pulled from a prefixcommons compliant site. The map below uses the definitions found in\n", "# https://github.com/prefixcommons/biocontext/blob/master/registry/semweb_context.yaml.\n", "default_curi_maps:\n", " - semweb_context\n", "\n", "# The default prefix is what is used in the subsets, types, slots, classes sections below if not otherwise supplied\n", "default_prefix: dist\n", "default_range: string\n", "\n", "# The list of prefixes to emit target files. Note that all prefixes that are used elsewhere in the model are automatically\n", "# emitted, with the exception of \n", "emit_prefixes:\n", " - skos\n", " - rdf\n", " - dist\n", "\n", "# List of models to import. Note that import specifications can (currently) be URI's, absolute (file://...file), curies\n", "# (biolink:model), or relative (includes/myfile) file names. Note, however, that this latter form is being deprecated. \n", "# The location of imported files can now be specified in an accompanying mapping file. The imports below reference:\n", "# https://w3id.org/biolink/biolink-model -- the biolink model\n", "# https://w3id.org/biolink/biolinkml/types -- the biolink modeling language types definitions\n", "imports: \n", " - https://w3id.org/biolink/biolink-model\n", " - biolinkml:types\n", "\n", "# Subsets that are defined in this model extension\n", "subsets:\n", " experimental:\n", " # A subset should have a description\n", " description: model elements that have not yet been tested\n", "\n", "# Types that are defined in this model extension\n", "types:\n", " gene sequence:\n", " uri: dist:seq\n", " typeof: string\n", " description: A gene sequence\n", " \n", "# Slots that are defined in this model extension\n", "slots:\n", " gene has sequence:\n", " description: A gene pattern\n", " domain: gene\n", " range: gene sequence\n", " slot_uri: dist:hasSeq\n", " required: true\n", "\n", "# Classes that are defined in this model extension\n", "classes:\n", " # The class name. For most generators, this will be transformed to CamelCase (MyGene)\n", " my gene:\n", " description: This is an example extension. Doesn't do a lot\n", " is_a: gene\n", " slots:\n", " - gene has sequence\n", " \n", " " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Auto generated from None by pythongen.py version: 0.3.0\n", "# Generation date: 2019-10-23 14:25\n", "# Schema: dist1\n", "#\n", "# id: http://example.org/examples/distributeExample\n", "# description: A toy extension to the base biolink model\n", "# license: https://creativecommons.org/publicdomain/zero/1.0/\n", "\n", "from typing import Optional, List, Union, Dict, ClassVar\n", "from dataclasses import dataclass\n", "from biolinkml.utils.metamodelcore import empty_list, empty_dict, bnode\n", "from biolinkml.utils.yamlutils import YAMLRoot\n", "from biolinkml.utils.formatutils import camelcase, underscore, sfx\n", "from rdflib import Namespace, URIRef\n", "from biolinkml.utils.curienamespace import CurieNamespace\n", "from biolink.model import AnatomicalEntityId, BiologicalSequence, DiseaseOrPhenotypicFeatureId, Gene, GeneId, GeneOrGeneProductId, GeneProductId, GenomicEntityId, IdentifierType, IriType, LabelType, MolecularEntityId, NamedThingId, NarrativeText, OrganismTaxonId, PhenotypicFeatureId, SymbolType, TranscriptId\n", "from biolinkml.utils.metamodelcore import ElementIdentifier, URIorCURIE\n", "from includes.types import String, Uriorcurie\n", "\n", "metamodel_version = \"1.4.4\"\n", "\n", "\n", "# Namespaces\n", "BFO = CurieNamespace('BFO', 'http://purl.obolibrary.org/obo/BFO_')\n", "BIOSAMPLE = CurieNamespace('BioSample', 'http://example.org/UNKNOWN/BioSample/')\n", "CHEBI = CurieNamespace('CHEBI', 'http://purl.obolibrary.org/obo/CHEBI_')\n", "CHEMBL_COMPOUND = CurieNamespace('CHEMBL_COMPOUND', 'http://identifiers.org/chembl.compound/')\n", "CHEMBL_TARGET = CurieNamespace('CHEMBL_TARGET', 'http://identifiers.org/chembl.target/')\n", "CIO = CurieNamespace('CIO', 'http://purl.obolibrary.org/obo/CIO_')\n", "CIVIC = CurieNamespace('CIViC', 'http://example.org/UNKNOWN/CIViC/')\n", "CL = CurieNamespace('CL', 'http://purl.obolibrary.org/obo/CL_')\n", "CLO = CurieNamespace('CLO', 'http://purl.obolibrary.org/obo/CLO_')\n", "CLINVAR = CurieNamespace('ClinVar', 'http://www.ncbi.nlm.nih.gov/clinvar/')\n", "ECO = CurieNamespace('ECO', 'http://purl.obolibrary.org/obo/ECO_')\n", "ECTO = CurieNamespace('ECTO', 'http://example.org/UNKNOWN/ECTO/')\n", "EFO = CurieNamespace('EFO', 'http://purl.obolibrary.org/obo/EFO_')\n", "ENSEMBL = CurieNamespace('ENSEMBL', 'http://ensembl.org/id/')\n", "EXO = CurieNamespace('ExO', 'http://example.org/UNKNOWN/ExO/')\n", "FAO = CurieNamespace('FAO', 'http://purl.obolibrary.org/obo/FAO_')\n", "GENO = CurieNamespace('GENO', 'http://purl.obolibrary.org/obo/GENO_')\n", "GO = CurieNamespace('GO', 'http://purl.obolibrary.org/obo/GO_')\n", "GOLD_META = CurieNamespace('GOLD_META', 'http://identifiers.org/gold.meta/')\n", "HANCESTRO = CurieNamespace('HANCESTRO', 'http://example.org/UNKNOWN/HANCESTRO/')\n", "HGNC = CurieNamespace('HGNC', 'http://www.genenames.org/cgi-bin/gene_symbol_report?hgnc_id=')\n", "HP = CurieNamespace('HP', 'http://purl.obolibrary.org/obo/HP_')\n", "IAO = CurieNamespace('IAO', 'http://purl.obolibrary.org/obo/IAO_')\n", "INTACT = CurieNamespace('IntAct', 'http://example.org/UNKNOWN/IntAct/')\n", "MGI = CurieNamespace('MGI', 'http://www.informatics.jax.org/accession/MGI:')\n", "MIR = CurieNamespace('MIR', 'http://identifiers.org/mir/')\n", "MONDO = CurieNamespace('MONDO', 'http://purl.obolibrary.org/obo/MONDO_')\n", "NCBIGENE = CurieNamespace('NCBIGene', 'http://www.ncbi.nlm.nih.gov/gene/')\n", "NCIT = CurieNamespace('NCIT', 'http://purl.obolibrary.org/obo/NCIT_')\n", "OBAN = CurieNamespace('OBAN', 'http://purl.org/oban/')\n", "OBI = CurieNamespace('OBI', 'http://purl.obolibrary.org/obo/OBI_')\n", "OGMS = CurieNamespace('OGMS', 'http://purl.obolibrary.org/obo/OGMS_')\n", "PANTHER = CurieNamespace('PANTHER', 'http://www.pantherdb.org/panther/family.do?clsAccession=')\n", "PMID = CurieNamespace('PMID', 'http://www.ncbi.nlm.nih.gov/pubmed/')\n", "PO = CurieNamespace('PO', 'http://purl.obolibrary.org/obo/PO_')\n", "PR = CurieNamespace('PR', 'http://purl.obolibrary.org/obo/PR_')\n", "PW = CurieNamespace('PW', 'http://purl.obolibrary.org/obo/PW_')\n", "POMBASE = CurieNamespace('PomBase', 'https://www.pombase.org/spombe/result/')\n", "RHEA = CurieNamespace('RHEA', 'http://identifiers.org/rhea/')\n", "RNACENTRAL = CurieNamespace('RNAcentral', 'http://example.org/UNKNOWN/RNAcentral/')\n", "RO = CurieNamespace('RO', 'http://purl.obolibrary.org/obo/RO_')\n", "REACTOME = CurieNamespace('Reactome', 'http://example.org/UNKNOWN/Reactome/')\n", "SEMMEDDB = CurieNamespace('SEMMEDDB', 'http://example.org/UNKNOWN/SEMMEDDB/')\n", "SGD = CurieNamespace('SGD', 'https://www.yeastgenome.org/locus/')\n", "SIO = CurieNamespace('SIO', 'http://semanticscience.org/resource/SIO_')\n", "SO = CurieNamespace('SO', 'http://purl.obolibrary.org/obo/SO_')\n", "UBERON = CurieNamespace('UBERON', 'http://purl.obolibrary.org/obo/UBERON_')\n", "UMLSSC = CurieNamespace('UMLSSC', 'https://uts-ws.nlm.nih.gov/rest/semantic-network/semantic-network/current/TUI/')\n", "UMLSSG = CurieNamespace('UMLSSG', 'https://uts-ws.nlm.nih.gov/rest/semantic-network/semantic-network/current/GROUP/')\n", "UMLSST = CurieNamespace('UMLSST', 'https://uts-ws.nlm.nih.gov/rest/semantic-network/semantic-network/current/STY/')\n", "UO = CurieNamespace('UO', 'http://purl.obolibrary.org/obo/UO_')\n", "UPHENO = CurieNamespace('UPHENO', 'http://purl.obolibrary.org/obo/UPHENO_')\n", "UNIPROTKB = CurieNamespace('UniProtKB', 'http://identifiers.org/uniprot/')\n", "VMC = CurieNamespace('VMC', 'http://example.org/UNKNOWN/VMC/')\n", "WB = CurieNamespace('WB', 'http://identifiers.org/wb/')\n", "WD = CurieNamespace('WD', 'http://example.org/UNKNOWN/WD/')\n", "ZFIN = CurieNamespace('ZFIN', 'http://zfin.org/')\n", "BIOLINK = CurieNamespace('biolink', 'https://w3id.org/biolink/vocab/')\n", "DCT = CurieNamespace('dct', 'http://example.org/UNKNOWN/dct/')\n", "DCTERMS = CurieNamespace('dcterms', 'http://purl.org/dc/terms/')\n", "DICTYBASE = CurieNamespace('dictyBase', 'http://dictybase.org/gene/')\n", "DIST = CurieNamespace('dist', 'http://example.org/examples/dist1#')\n", "FALDO = CurieNamespace('faldo', 'http://biohackathon.org/resource/faldo#')\n", "OWL = CurieNamespace('owl', 'http://www.w3.org/2002/07/owl#')\n", "PAV = CurieNamespace('pav', 'http://purl.org/pav/')\n", "QUD = CurieNamespace('qud', 'http://qudt.org/1.1/schema/qudt#')\n", "RDF = CurieNamespace('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')\n", "RDFS = CurieNamespace('rdfs', 'http://www.w3.org/2000/01/rdf-schema#')\n", "SHEX = CurieNamespace('shex', 'http://www.w3.org/ns/shex#')\n", "SKOS = CurieNamespace('skos', 'https://www.w3.org/TR/skos-reference/#')\n", "VOID = CurieNamespace('void', 'http://rdfs.org/ns/void#')\n", "WGS = CurieNamespace('wgs', 'http://www.w3.org/2003/01/geo/wgs84_pos')\n", "XSD = CurieNamespace('xsd', 'http://www.w3.org/2001/XMLSchema#')\n", "DEFAULT_ = DIST\n", "\n", "\n", "# Types\n", "class GeneSequence(String):\n", " \"\"\" A gene sequence \"\"\"\n", " type_class_uri = DIST.seq\n", " type_class_curie = \"dist:seq\"\n", " type_name = \"gene sequence\"\n", " type_model_uri = DIST.GeneSequence\n", "\n", "\n", "# Class references\n", "class MyGeneId(GeneId):\n", " pass\n", "\n", "\n", "@dataclass\n", "class MyGene(Gene):\n", " \"\"\"\n", " This is an example extension. Doesn't do a lot\n", " \"\"\"\n", " _inherited_slots: ClassVar[List[str]] = [\"related_to\", \"interacts_with\", \"has_phenotype\", \"molecularly_interacts_with\", \"affects_abundance_of\", \"increases_abundance_of\", \"decreases_abundance_of\", \"affects_activity_of\", \"increases_activity_of\", \"decreases_activity_of\", \"affects_expression_of\", \"increases_expression_of\", \"decreases_expression_of\", \"affects_folding_of\", \"increases_folding_of\", \"decreases_folding_of\", \"affects_localization_of\", \"increases_localization_of\", \"decreases_localization_of\", \"affects_metabolic_processing_of\", \"increases_metabolic_processing_of\", \"decreases_metabolic_processing_of\", \"affects_molecular_modification_of\", \"increases_molecular_modification_of\", \"decreases_molecular_modification_of\", \"affects_synthesis_of\", \"increases_synthesis_of\", \"decreases_synthesis_of\", \"affects_degradation_of\", \"increases_degradation_of\", \"decreases_degradation_of\", \"affects_mutation_rate_of\", \"increases_mutation_rate_of\", \"decreases_mutation_rate_of\", \"affects_response_to\", \"increases_response_to\", \"decreases_response_to\", \"affects_splicing_of\", \"increases_splicing_of\", \"decreases_splicing_of\", \"affects_stability_of\", \"increases_stability_of\", \"decreases_stability_of\", \"affects_transport_of\", \"increases_transport_of\", \"decreases_transport_of\", \"affects_secretion_of\", \"increases_secretion_of\", \"decreases_secretion_of\", \"affects_uptake_of\", \"increases_uptake_of\", \"decreases_uptake_of\", \"regulates_entity_to_entity\", \"biomarker_for\", \"in_taxon\", \"in_pathway_with\", \"in_complex_with\", \"in_cell_population_with\", \"expressed_in\", \"genetically_interacts_with\", \"has_gene_product\", \"gene_associated_with_condition\"]\n", "\n", " class_class_uri: ClassVar[URIRef] = DIST.MyGene\n", " class_class_curie: ClassVar[str] = \"dist:MyGene\"\n", " class_name: ClassVar[str] = \"my gene\"\n", " class_model_uri: ClassVar[URIRef] = DIST.MyGene\n", "\n", " id: Union[ElementIdentifier, MyGeneId] = None\n", " name: Union[str, SymbolType] = None\n", " category: List[Union[str, IriType]] = empty_list()\n", " gene_has_sequence: Union[str, GeneSequence] = None\n", "\n", " def __post_init__(self):\n", " if self.id is None:\n", " raise ValueError(f\"id must be supplied\")\n", " if not isinstance(self.id, MyGeneId):\n", " self.id = MyGeneId(self.id)\n", " super().__post_init__()\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "No namespace defined for URI: http://bio2rdf.org/wormbase_vocabulary:Gene-GO-Association\n", "No namespace defined for URI: http://bio2rdf.org/wormbase_vocabulary:Gene-Phenotype-Association\n" ] } ], "source": [ "\n", "from biolinkml.generators.pythongen import PythonGenerator\n", "from logging import ERROR\n", "\n", "# Note: Jupyter appears to generate output even if the log_level is set. \n", "gen = PythonGenerator(model, log_level=ERROR)\n", "print(gen.serialize())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.4" }, "pycharm": { "stem_cell": { "cell_type": "raw", "metadata": { "collapsed": false }, "source": [] } } }, "nbformat": 4, "nbformat_minor": 1 }