From a6fe6d062981059d48995aa655bbfd2da2411db5 Mon Sep 17 00:00:00 2001 From: glass-ships Date: Thu, 3 Nov 2022 23:15:08 -0600 Subject: [PATCH 1/5] update makefile and depends for biolink, logging fixes, start multi-file test --- .github/workflows/build.yml | 2 +- .github/workflows/publish.yml | 15 +- Makefile | 35 +- docs/Usage/configuring_ingests.md | 2 +- .../declarative-protein-links-detailed.py | 5 +- .../custom-map-protein-links-detailed.py | 5 +- .../map-protein-links-detailed.py | 2 +- examples/string/protein-links-detailed.py | 5 +- koza/__init__.py | 2 - koza/app.py | 7 +- koza/cli_runner.py | 21 +- koza/converter/biolink_converter.py | 2 +- koza/converter/kgx_converter.py | 3 +- koza/io/reader/csv_reader.py | 10 +- koza/io/reader/json_reader.py | 8 +- koza/io/reader/jsonl_reader.py | 2 +- koza/main.py | 75 +- koza/model/config/source_config.py | 7 +- koza/model/map_dict.py | 2 +- koza/model/source.py | 9 +- koza/utils/__init__ | 0 koza/{ => utils}/exceptions.py | 0 koza/utils/log_utils.py | 67 + koza/{ => utils}/row_filter.py | 0 multifile.py | 19 + poetry.lock | 2221 +++++++ pyproject.toml | 89 +- tests/integration/test_archives.py | 4 +- tests/integration/test_validator.py | 1 - tests/resources/biolink-model.yaml | 5309 ++++++++--------- tests/resources/multifile.yaml | 35 + tests/resources/source-files/multifile1.tsv | 5 + tests/resources/source-files/multifile2.tsv | 16 + tests/unit/test_custom_dict.py | 2 +- tests/unit/test_filter.py | 2 +- tests/unit/test_kgx_converter.py | 24 +- tests/unit/test_tsvwriter_node_and_edge.py | 6 +- tests/unit/test_tsvwriter_node_only.py | 2 +- tests/unit/test_validation.py | 18 +- 39 files changed, 4864 insertions(+), 3175 deletions(-) create mode 100644 koza/utils/__init__ rename koza/{ => utils}/exceptions.py (100%) create mode 100644 koza/utils/log_utils.py rename koza/{ => utils}/row_filter.py (100%) create mode 100644 multifile.py create mode 100644 poetry.lock create mode 100644 tests/resources/multifile.yaml create mode 100644 tests/resources/source-files/multifile1.tsv create mode 100644 tests/resources/source-files/multifile2.tsv diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 67d7724..75fa944 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.8', '3.9', '3.10'] + python-version: ['3.8', '3.9', '3.10', '3.11'] env: PYTHON: ${{ matrix.python-version }} OS: ubuntu diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9091f58..4b9c305 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,14 +14,19 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: "3.9" + python-version: "3.10" - name: Install dependencies run: | - make + pip install poetry && poetry install + + - name: Build + run: | + poetry build + - name: Publish to PyPi env: - FLIT_USERNAME: ${{ secrets.PYPI_USERNAME }} - FLIT_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }} run: | - make publish + poetry config http-basic.pypi "__token__" "${PYPI_API_TOKEN}" + poetry publish diff --git a/Makefile b/Makefile index 63554ab..a540f92 100644 --- a/Makefile +++ b/Makefile @@ -4,42 +4,35 @@ MAKEFLAGS += --warn-undefined-variables MAKEFLAGS += --no-builtin-rules MAKEFLAGS += --no-builtin-variables +ifneq (,$(wildcard ./.env)) + include .env + export +endif + .DEFAULT_GOAL := all SHELL := bash .PHONY: all -all: install-flit install-koza install-dev test - -.PHONY: install-flit -install-flit: - pip install flit - -.PHONY: install-koza -install-koza: install-flit - flit install --deps production --symlink +all: install test clean -.PHONY: install-dev -install-dev: install-flit - flit install --deps develop --symlink - -.PHONY: test -test: install-flit install-dev - python -m pytest +.PHONY: install +install: + poetry install .PHONY: build build: - flit build + poetry build -.PHONY: publish -publish: - flit publish +.PHONY: test +test: install + poetry run python -m pytest .PHONY: clean clean: rm -rf `find . -name __pycache__` rm -f `find . -type f -name '*.py[co]' ` rm -rf .pytest_cache - rm -rf test-output + rm -rf output test-output rm -rf dist .PHONY: lint diff --git a/docs/Usage/configuring_ingests.md b/docs/Usage/configuring_ingests.md index 45b650c..f797945 100644 --- a/docs/Usage/configuring_ingests.md +++ b/docs/Usage/configuring_ingests.md @@ -204,7 +204,7 @@ This Python script is where you'll define the specific steps of your data transf ```python import uuid - from biolink_model_pydantic.model import Gene, PairwiseGeneToGeneInteraction + from biolink.pydanticmodel import Gene, PairwiseGeneToGeneInteraction # Get the KozaApp for your ingest from koza.cli_runner import get_koza_app diff --git a/examples/string-declarative/declarative-protein-links-detailed.py b/examples/string-declarative/declarative-protein-links-detailed.py index 44e870b..a6cbf4a 100644 --- a/examples/string-declarative/declarative-protein-links-detailed.py +++ b/examples/string-declarative/declarative-protein-links-detailed.py @@ -1,7 +1,7 @@ import re import uuid -from biolink_model_pydantic.model import PairwiseGeneToGeneInteraction, Predicate, Protein +from biolink.pydanticmodel import PairwiseGeneToGeneInteraction, Protein from koza.cli_runner import get_koza_app @@ -16,8 +16,7 @@ id="uuid:" + str(uuid.uuid1()), subject=protein_a.id, object=protein_b.id, - predicate=Predicate.interacts_with, - relation=koza_app.translation_table.global_table['interacts with'], + predicate="biolink:interacts_with", ) koza_app.write(protein_a, protein_b, pairwise_gene_to_gene_interaction) diff --git a/examples/string-w-custom-map/custom-map-protein-links-detailed.py b/examples/string-w-custom-map/custom-map-protein-links-detailed.py index 65a6dfd..57130c7 100644 --- a/examples/string-w-custom-map/custom-map-protein-links-detailed.py +++ b/examples/string-w-custom-map/custom-map-protein-links-detailed.py @@ -1,6 +1,6 @@ import uuid -from biolink_model_pydantic.model import Gene, PairwiseGeneToGeneInteraction#, Predicate +from biolink.pydanticmodel import Gene, PairwiseGeneToGeneInteraction from koza.cli_runner import get_koza_app @@ -16,8 +16,7 @@ id="uuid:" + str(uuid.uuid1()), subject=gene_a.id, object=gene_b.id, - predicate="biolink:interacts_with"#Predicate.interacts_with, - #relation=koza_app.translation_table.global_table['interacts with'], + predicate="biolink:interacts_with" ) koza_app.write(gene_a, gene_b, pairwise_gene_to_gene_interaction) diff --git a/examples/string-w-map/map-protein-links-detailed.py b/examples/string-w-map/map-protein-links-detailed.py index e33cad9..50d64a1 100644 --- a/examples/string-w-map/map-protein-links-detailed.py +++ b/examples/string-w-map/map-protein-links-detailed.py @@ -1,6 +1,6 @@ import uuid -from biolink_model_pydantic.model import Gene, PairwiseGeneToGeneInteraction +from biolink.pydanticmodel import Gene, PairwiseGeneToGeneInteraction from koza.cli_runner import get_koza_app diff --git a/examples/string/protein-links-detailed.py b/examples/string/protein-links-detailed.py index 898475c..238ba62 100644 --- a/examples/string/protein-links-detailed.py +++ b/examples/string/protein-links-detailed.py @@ -1,7 +1,7 @@ import re import uuid -from biolink_model_pydantic.model import PairwiseGeneToGeneInteraction, Predicate, Protein +from biolink.pydanticmodel import PairwiseGeneToGeneInteraction, Protein from koza.cli_runner import get_koza_app @@ -16,8 +16,7 @@ id="uuid:" + str(uuid.uuid1()), subject=protein_a.id, object=protein_b.id, - predicate=Predicate.interacts_with, - relation=koza_app.translation_table.global_table['interacts with'], + predicate="biolink:interacts_with", ) koza_app.write(protein_a, protein_b, pairwise_gene_to_gene_interaction) diff --git a/koza/__init__.py b/koza/__init__.py index f0e0453..e69de29 100644 --- a/koza/__init__.py +++ b/koza/__init__.py @@ -1,2 +0,0 @@ -"""Koza, an ETL framework for LinkML data models""" -__version__ = '0.2.1' diff --git a/koza/app.py b/koza/app.py index a5b3825..4b4f1a3 100644 --- a/koza/app.py +++ b/koza/app.py @@ -1,5 +1,4 @@ import importlib -import logging import sys from pathlib import Path from typing import Dict, Union @@ -11,7 +10,7 @@ from linkml_validator.validator import Validator from koza.converter.kgx_converter import KGXConverter -from koza.exceptions import MapItemException, NextRowException +from koza.utils.exceptions import MapItemException, NextRowException from koza.io.writer.jsonl_writer import JSONLWriter from koza.io.writer.tsv_writer import TSVWriter from koza.io.writer.writer import KozaWriter @@ -22,6 +21,7 @@ from koza.model.source import Source from koza.model.translation_table import TranslationTable +import logging logger = logging.getLogger(__name__) @@ -97,6 +97,7 @@ def process_sources(self): is_first = True transform_module = None + logger.info(f"Transforming source: {self.source.config.name}") if self.source.config.transform_mode == 'flat': while True: try: @@ -106,7 +107,7 @@ def process_sources(self): else: importlib.reload(transform_module) except MapItemException as mie: - logger.warning(f"{str(mie)} not found in map") + logger.debug(f"{str(mie)} not found in map") except NextRowException: continue except ValidationError as ve: diff --git a/koza/cli_runner.py b/koza/cli_runner.py index fbf1a06..1ff29ae 100644 --- a/koza/cli_runner.py +++ b/koza/cli_runner.py @@ -2,7 +2,6 @@ Module for managing koza runs through the CLI """ -import logging from pathlib import Path from typing import Dict, Optional, Union @@ -17,12 +16,15 @@ from koza.model.config.source_config import FormatType, OutputFormat, PrimaryFileConfig from koza.model.source import Source from koza.model.translation_table import TranslationTable +from koza.utils.log_utils import set_log_config +import logging logger = logging.getLogger(__name__) global koza_apps koza_apps = {} + def get_koza_app(source_name) -> Optional[KozaApp]: """ Getter for singleton koza app object @@ -32,6 +34,7 @@ def get_koza_app(source_name) -> Optional[KozaApp]: except: raise KeyError(f"{source_name} was not found in KozaApp dictionary") + def set_koza_app( source: Source, translation_table: TranslationTable = None, @@ -43,9 +46,10 @@ def set_koza_app( Setter for singleton koza app object """ koza_apps[source.config.name] = KozaApp(source, translation_table, output_dir, output_format, schema) - print(f"koza_apps entry created for: {source.config.name}\nkoza_app: {koza_apps[source.config.name]}") + logger.debug(f"koza_apps entry created for {source.config.name}: {koza_apps[source.config.name]}") return koza_apps[source.config.name] + def transform_source( source: str, output_dir: str, @@ -54,8 +58,10 @@ def transform_source( local_table: str = None, schema: str = None, row_limit: int = None, + verbose: bool = None, ): - + set_log_config(logging.INFO if (verbose is None) else logging.DEBUG if (verbose == True) else logging.WARNING) + with open(source, 'r') as source_fh: source_config = PrimaryFileConfig(**yaml.load(source_fh, Loader=UniqueIncludeLoader)) if not source_config.name: @@ -76,6 +82,7 @@ def transform_source( source_koza.process_maps() source_koza.process_sources() + def validate_file( file: str, format: FormatType = FormatType.csv, @@ -109,6 +116,7 @@ def validate_file( for _ in reader: pass + def get_translation_table( global_table: Union[str, Dict] = None, local_table: Union[str, Dict] = None ) -> TranslationTable: @@ -126,7 +134,7 @@ def get_translation_table( if local_table: raise ValueError("Local table without a global table not allowed") else: - logger.info("No global table used for transform") + logger.debug("No global table used for transform") else: if isinstance(global_table, str): @@ -143,11 +151,12 @@ def get_translation_table( local_tt = local_table else: - logger.info("No local table used for transform") + logger.debug("No local table used for transform") return TranslationTable(global_tt, local_tt) + def test_koza(koza: KozaApp): """Manually sets KozaApp (for testing)""" global koza_app - koza_app = koza \ No newline at end of file + koza_app = koza diff --git a/koza/converter/biolink_converter.py b/koza/converter/biolink_converter.py index fc44549..01c9d27 100644 --- a/koza/converter/biolink_converter.py +++ b/koza/converter/biolink_converter.py @@ -1,4 +1,4 @@ -from biolink_model_pydantic.model import Gene +from biolink.pydanticmodel import Gene from koza.cli_runner import koza_app diff --git a/koza/converter/kgx_converter.py b/koza/converter/kgx_converter.py index 42c4a72..b82e368 100644 --- a/koza/converter/kgx_converter.py +++ b/koza/converter/kgx_converter.py @@ -34,7 +34,8 @@ def convert(self, entities: Iterable) -> Tuple[dict, dict]: # otherwise, not a else: raise ValueError( - "Can only convert NamedThing or Association entities to KGX compatible dictionaries" + f"Cannot convert {entity}: Can only convert NamedThing or Association entities to KGX compatible dictionaries" + ) return nodes, edges diff --git a/koza/io/reader/csv_reader.py b/koza/io/reader/csv_reader.py index 2962dd9..3efbc59 100644 --- a/koza/io/reader/csv_reader.py +++ b/koza/io/reader/csv_reader.py @@ -1,10 +1,12 @@ -import logging from csv import reader from typing import IO, Any, Dict, Iterator, List, Union from koza.model.config.source_config import FieldType, HeaderMode +from koza.utils.log_utils import get_logger -LOG = logging.getLogger(__name__) +LOG = get_logger(__name__) +# import logging +# LOG = logging.getLogger(__name__) FIELDTYPE_CLASS = { @@ -115,7 +117,7 @@ def __next__(self) -> Dict[str, Any]: row = next(self.reader) self.line_count += 1 except StopIteration: - LOG.info(f"Finished processing {self.line_num} rows for {self.name}") + LOG.info(f"Finished processing {self.line_num} rows for {self.name} from file {self.io_str.name}") raise StopIteration self.line_num = self.reader.line_num @@ -187,7 +189,7 @@ def _set_header(self): elif self.header == 'infer': self._header = self._parse_header_line(skip_blank_or_commented_lines=True) - LOG.info(f"headers for {self.name} parsed as {self._header}") + LOG.debug(f"headers for {self.name} parsed as {self._header}") if self.field_type_map: self._compare_headers_to_supplied_columns() else: diff --git a/koza/io/reader/json_reader.py b/koza/io/reader/json_reader.py index 7f7432b..8806053 100644 --- a/koza/io/reader/json_reader.py +++ b/koza/io/reader/json_reader.py @@ -1,11 +1,13 @@ import json, yaml -import logging from typing import IO, Any, Dict, Iterator, List, Union #from xmlrpc.client import Boolean from koza.io.utils import check_data +from koza.utils.log_utils import get_logger -LOG = logging.getLogger(__name__) +LOG = get_logger(__name__) +# import logging +# LOG = logging.getLogger(__name__) class JSONReader: """ @@ -68,7 +70,7 @@ def __iter__(self) -> Iterator: def __next__(self) -> Dict[str, Any]: if self._line_num == self._line_limit: - LOG.info(f"Finished processing {self.name}") + LOG.info(f"Finished processing {self._line_num} rows for {self.name} from file {self.io_str.name}") raise StopIteration next_obj = self.json_obj[self._line_num] diff --git a/koza/io/reader/jsonl_reader.py b/koza/io/reader/jsonl_reader.py index 1ee7a31..de3a0be 100644 --- a/koza/io/reader/jsonl_reader.py +++ b/koza/io/reader/jsonl_reader.py @@ -37,7 +37,7 @@ def __iter__(self) -> Iterator: def __next__(self) -> Dict[str, Any]: next_line = self.io_str.readline() if not next_line: - LOG.info(f"Finished processing {self.line_num} lines") + LOG.info(f"Finished processing {self.line_num} lines for {self.name} from {self.io_str.name}") raise StopIteration self.line_num += 1 if self.line_limit: diff --git a/koza/main.py b/koza/main.py index f01d95b..4a743a0 100755 --- a/koza/main.py +++ b/koza/main.py @@ -3,21 +3,17 @@ CLI interface for Koza """ +import logging from pathlib import Path -import os -import typer +from typing import Optional from koza.cli_runner import transform_source, validate_file from koza.model.config.source_config import FormatType, OutputFormat +from koza.utils.log_utils import set_log_config, get_logger, add_log_fh +import typer typer_app = typer.Typer() -import logging - -logging.basicConfig() -# global LOG -# LOG = logging.getLogger(__name__) - @typer_app.command() def transform( @@ -27,13 +23,8 @@ def transform( global_table: str = typer.Option(None, help="Path to global translation table"), local_table: str = typer.Option(None, help="Path to local translation table"), schema: str = typer.Option(None, help='Path to schema YAML for validation in writer'), - row_limit: int = typer.Option( - None, help="Number of rows to process (if skipped, processes entire source file)" - ), - quiet: bool = typer.Option(False, help="Optional quiet mode - set true to suppress output"), - debug: bool = typer.Option( - False, help="Optional debug mode - set true for additional debug output" - ), + row_limit: int = typer.Option(None, help="Number of rows to process (if skipped, processes entire source file)"), + verbose: Optional[bool] = typer.Option(None, "--debug/--quiet"), log: bool = typer.Option(False, help='Optional log mode - set true to save output to ./logs'), ) -> None: """ @@ -44,11 +35,12 @@ def transform( # os.path.basename(source) # name of the file + extension # os.path.dirname(source) # name of the directory # os.path.splitext(os.path.basename(source))[0] # name of the yaml file without the yaml + + set_log_config(logging.INFO if (verbose is None) else logging.DEBUG if (verbose == True) else logging.WARNING) logfile = Path(f"logs/{source.split('/')[1]}_{source.split('/')[2][:-5]}.log") - if log: - Path("logs").mkdir(parents=True, exist_ok=True) - _set_log_level(quiet, debug, log, logfile) - + logger = get_logger(__name__, verbose) if not logging.getLogger().hasHandlers() else logging.getLogger() + if log: fh = add_log_fh(logger, logfile) + output_path = Path(output_dir) if output_path.exists() and not output_path.is_dir(): @@ -56,10 +48,9 @@ def transform( elif not output_path.exists(): output_path.mkdir(parents=True) - transform_source( - source, output_dir, output_format, global_table, local_table, schema, row_limit - ) - + transform_source(source, output_dir, output_format, global_table, local_table, schema, row_limit) + + if log: logger.removeHandler(fh) @typer_app.command() def validate( @@ -75,11 +66,9 @@ def validate( Given a file and configuration checks that the file is valid, ie format is as expected (tsv, json), required columns/fields are there """ - _set_log_level(debug=True) - + validate_file(file, format, delimiter, header_delimiter, skip_blank_lines) - # @typer_app.command() # def create(): # """ @@ -87,39 +76,5 @@ def validate( # Create a new koza project # """ - -def _set_log_level( - quiet: bool = False, debug: bool = False, log: bool = False, logfile: str = 'logs/transform.log' -): - - if log: - # Reset root logger in case it was configured elsewhere - logger = logging.getLogger() - logging.root.handlers = [] - - # Set a handler for console output - stream_handler = logging.StreamHandler() - stream_formatter = logging.Formatter(':%(name)-20s: %(levelname)-8s: %(message)s') - stream_handler.setFormatter(stream_formatter) - stream_handler.setLevel(logging.WARNING) - logger.addHandler(stream_handler) - - # Set a handler for file output - file_handler = logging.FileHandler(logfile, mode='w') - file_formatter = logging.Formatter("%(name)-26s: %(levelname)-8s: %(message)s") - file_handler.setFormatter(file_formatter) - file_handler.setLevel(logging.DEBUG) - logger.addHandler(file_handler) - - # Set root logger level - logger.setLevel(logging.DEBUG) - elif quiet: - logging.getLogger().setLevel(logging.WARNING) - elif debug: - logging.getLogger().setLevel(logging.DEBUG) - else: - logging.getLogger().setLevel(logging.INFO) - - if __name__ == "__main__": typer_app() diff --git a/koza/model/config/source_config.py b/koza/model/config/source_config.py index 9e1d3e7..faa68fd 100644 --- a/koza/model/config/source_config.py +++ b/koza/model/config/source_config.py @@ -2,7 +2,7 @@ source config data class map config data class """ -import logging + import os import tarfile import zipfile @@ -17,8 +17,11 @@ from koza.model.config.pydantic_config import PydanticConfig +import logging LOG = logging.getLogger(__name__) +# from koza.utils.log_utils import get_logger +# LOG = get_logger(__name__) class MapErrorEnum(str, Enum): """ @@ -225,7 +228,7 @@ def __post_init_post_parse__(self): ) except Exception: # TODO check for more explicit exceptions - LOG.warning("Could not load dataset description from metadata file") + LOG.debug("Could not load dataset description from metadata file") if self.delimiter in ['tab', '\\t']: object.__setattr__(self, 'delimiter', '\t') diff --git a/koza/model/map_dict.py b/koza/model/map_dict.py index 3199225..2aa51e3 100644 --- a/koza/model/map_dict.py +++ b/koza/model/map_dict.py @@ -1,4 +1,4 @@ -from koza.exceptions import MapItemException +from koza.utils.exceptions import MapItemException class MapDict(dict): diff --git a/koza/model/source.py b/koza/model/source.py index 8097217..4c9bb75 100644 --- a/koza/model/source.py +++ b/koza/model/source.py @@ -1,14 +1,13 @@ from typing import Any, Dict, Iterator, List, Optional, Union -import yaml - from koza.io.reader.csv_reader import CSVReader from koza.io.reader.json_reader import JSONReader from koza.io.reader.jsonl_reader import JSONLReader from koza.io.utils import open_resource -from koza.io.yaml_loader import UniqueIncludeLoader -from koza.model.config.source_config import MapFileConfig, PrimaryFileConfig, SourceConfig -from koza.row_filter import RowFilter +from koza.utils.row_filter import RowFilter +from koza.model.config.source_config import MapFileConfig, PrimaryFileConfig #, SourceConfig +# from koza.io.yaml_loader import UniqueIncludeLoader +# import yaml class Source: diff --git a/koza/utils/__init__ b/koza/utils/__init__ new file mode 100644 index 0000000..e69de29 diff --git a/koza/exceptions.py b/koza/utils/exceptions.py similarity index 100% rename from koza/exceptions.py rename to koza/utils/exceptions.py diff --git a/koza/utils/log_utils.py b/koza/utils/log_utils.py new file mode 100644 index 0000000..e16dd16 --- /dev/null +++ b/koza/utils/log_utils.py @@ -0,0 +1,67 @@ +import logging, sys +from pathlib import Path +from typing import Union + +FORMAT = "[%(asctime)s][%(levelname)-7s][%(name)-8s] %(message)s" +DATEFMT = "%Y-%m-%d %H:%M:%S" +LOG_FMT = logging.Formatter(fmt=FORMAT, datefmt=DATEFMT) + + +def set_log_config(level: Union[str, int] = logging.INFO) -> None: + """Sets basic logging config and format""" + + logging.basicConfig( + format = FORMAT, + datefmt = DATEFMT, + level = level, + stream = sys.stdout, + force = True + ) + + for logger in [logging.getLogger(name) for name in logging.root.manager.loggerDict]: + logger.setLevel(level) + + return + +def get_logger(name: str, verbose: bool = None) -> logging.Logger: + """Get the logger of a given name and level, adding a stream handler to stdout if none exists""" + + log_level = logging.INFO if verbose is None else \ + logging.DEBUG if verbose == True else \ + logging.WARNING + + # Reset root logger in case it was configured elsewhere + # logging.root.handlers = [] + # logging.getLogger().setLevel(log_level) + + logger = logging.getLogger(name) + logger.setLevel(log_level) + # logger.propagate = False + + if not logger.hasHandlers(): + stream_handler = logging.StreamHandler(sys.stdout) + stream_handler.setFormatter(LOG_FMT) + stream_handler.setLevel(log_level) + logger.addHandler(stream_handler) + + return logger + + +def add_log_fh(logger: logging.Logger, logfile: str = 'logs/transform.log') -> logging.Handler: + """Add a filehandler to a given logger""" + + Path("logs").mkdir(parents=True, exist_ok=True) + + log_fmt = logging.Formatter( + fmt = "[%(asctime)s][%(levelname)-7s][%(name)-8s] %(message)s", + datefmt = "%Y-%m-%d %H:%M:%S" + ) + + # Set a handler for file output + file_handler = logging.FileHandler(logfile, mode='w') + file_handler.setFormatter(log_fmt) + file_handler.setLevel(logging.DEBUG) + logger.addHandler(file_handler) + + logger.setLevel(logging.DEBUG) + return file_handler diff --git a/koza/row_filter.py b/koza/utils/row_filter.py similarity index 100% rename from koza/row_filter.py rename to koza/utils/row_filter.py diff --git a/multifile.py b/multifile.py new file mode 100644 index 0000000..149268c --- /dev/null +++ b/multifile.py @@ -0,0 +1,19 @@ +# from pathlib import Path + +# from koza.cli_runner import transform_source +# from koza.model.config.source_config import OutputFormat + +# def test_examples(): +# """ +# Use the string ingest to test ingests with multiple files and greatly different numbers of rows +# """ + +# transform_source( +# source="./tests/resources/multifile.yaml", +# output_dir="./test-output/multifile", +# output_format='tsv', +# global_table="examples/translation_table.yaml", +# local_table=None +# ) + +# test_examples() diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..52e646c --- /dev/null +++ b/poetry.lock @@ -0,0 +1,2221 @@ +[[package]] +name = "alabaster" +version = "0.7.12" +description = "A configurable sidebar-enabled Sphinx theme" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "antlr4-python3-runtime" +version = "4.9.3" +description = "ANTLR 4.9.3 runtime for Python 3.7" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "argparse" +version = "1.4.0" +description = "Python command-line parsing library" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "attrs" +version = "22.1.0" +description = "Classes Without Boilerplate" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] + +[[package]] +name = "autoflake" +version = "1.7.7" +description = "Removes unused imports and unused variables" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +pyflakes = ">=1.1.0" +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} + +[[package]] +name = "babel" +version = "2.11.0" +description = "Internationalization utilities" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pytz = ">=2015.7" + +[[package]] +name = "biolink-model" +version = "3.0.3" +description = "'A high level datamodel of biological entities and associations'" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +linkml = "*" + +[[package]] +name = "black" +version = "22.3.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "certifi" +version = "2022.9.24" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "cfgraph" +version = "0.2.1" +description = "rdflib collections flattening graph" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +rdflib = ">=0.4.2" + +[[package]] +name = "chardet" +version = "5.0.0" +description = "Universal encoding detector for Python 3" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "charset-normalizer" +version = "2.1.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" +optional = false +python-versions = ">=3.6.0" + +[package.extras] +unicode-backport = ["unicodedata2"] + +[[package]] +name = "click" +version = "8.0.4" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "cloudpickle" +version = "2.2.0" +description = "Extended pickling support for Python objects" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" + +[[package]] +name = "dask" +version = "2022.10.2" +description = "Parallel PyData with Task Scheduling" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +click = ">=7.0" +cloudpickle = ">=1.1.1" +fsspec = ">=0.6.0" +packaging = ">=20.0" +partd = ">=0.3.10" +pyyaml = ">=5.3.1" +toolz = ">=0.8.2" + +[package.extras] +array = ["numpy (>=1.18)"] +complete = ["bokeh (>=2.4.2,<3)", "distributed (==2022.10.2)", "jinja2", "numpy (>=1.18)", "pandas (>=1.0)"] +dataframe = ["numpy (>=1.18)", "pandas (>=1.0)"] +diagnostics = ["bokeh (>=2.4.2,<3)", "jinja2"] +distributed = ["distributed (==2022.10.2)"] +test = ["pandas[test]", "pre-commit", "pytest", "pytest-rerunfailures", "pytest-xdist"] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "deprecated" +version = "1.2.13" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest (<5)", "PyTest-Cov", "PyTest-Cov (<2.6)", "bump2version (<1)", "configparser (<5)", "importlib-metadata (<3)", "importlib-resources (<4)", "sphinx (<2)", "sphinxcontrib-websupport (<2)", "tox", "zipp (<2)"] + +[[package]] +name = "docutils" +version = "0.19" +description = "Docutils -- Python Documentation Utilities" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "et-xmlfile" +version = "1.1.0" +description = "An implementation of lxml.xmlfile for the standard library" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "exceptiongroup" +version = "1.0.0" +description = "Backport of PEP 654 (exception groups)" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fsspec" +version = "2022.10.0" +description = "File-system specification" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +entrypoints = ["importlib-metadata"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "requests"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +tqdm = ["tqdm"] + +[[package]] +name = "ghp-import" +version = "2.1.0" +description = "Copy your docs directly to the gh-pages branch." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +python-dateutil = ">=2.8.1" + +[package.extras] +dev = ["flake8", "markdown", "twine", "wheel"] + +[[package]] +name = "graphviz" +version = "0.20.1" +description = "Simple Python interface for Graphviz" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +dev = ["flake8", "pep8-naming", "tox (>=3)", "twine", "wheel"] +docs = ["sphinx (>=5)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"] +test = ["coverage", "mock (>=4)", "pytest (>=7)", "pytest-cov", "pytest-mock (>=3)"] + +[[package]] +name = "greenlet" +version = "2.0.0" +description = "Lightweight in-process concurrent programming" +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" + +[package.extras] +docs = ["Sphinx", "docutils (<0.18)"] +test = ["faulthandler", "objgraph"] + +[[package]] +name = "hbreader" +version = "0.9.1" +description = "Honey Badger reader - a generic file/url/string open and read tool" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "importlib-metadata" +version = "5.0.0" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] +perf = ["ipython"] +testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] + +[[package]] +name = "importlib-resources" +version = "5.10.0" +description = "Read resources from Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] +testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] + +[[package]] +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "isodate" +version = "0.6.1" +description = "An ISO 8601 date/time/duration parser and formatter" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[[package]] +name = "isort" +version = "5.10.1" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.6.1,<4.0" + +[package.extras] +colors = ["colorama (>=0.4.3,<0.5.0)"] +pipfile-deprecated-finder = ["pipreqs", "requirementslib"] +plugins = ["setuptools"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "json-flattener" +version = "0.1.9" +description = "Python library for denormalizing nested dicts or json objects to tables and back" +category = "main" +optional = false +python-versions = ">=3.7.0" + +[package.dependencies] +click = "*" +pyyaml = "*" + +[[package]] +name = "jsonasobj" +version = "1.3.1" +description = "JSON as python objects" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "jsonasobj2" +version = "1.0.4" +description = "JSON as python objects - version 2" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +hbreader = "*" + +[[package]] +name = "jsonpatch" +version = "1.32" +description = "Apply JSON-Patches (RFC 6902)" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +jsonpointer = ">=1.9" + +[[package]] +name = "jsonpath-ng" +version = "1.5.3" +description = "A final implementation of JSONPath for Python that aims to be standard compliant, including arithmetic and binary comparison operators and providing clear AST for metaprogramming." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +decorator = "*" +ply = "*" +six = "*" + +[[package]] +name = "jsonpointer" +version = "2.3" +description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "jsonschema" +version = "4.17.0" +description = "An implementation of JSON Schema validation for Python" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +attrs = ">=17.4.0" +importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "linkml" +version = "1.3.2" +description = "Linked Open Data Modeling Language" +category = "main" +optional = false +python-versions = ">=3.7.6,<4.0.0" + +[package.dependencies] +antlr4-python3-runtime = ">=4.9.0,<4.10" +argparse = ">=1.4.0" +click = ">=7.0" +graphviz = ">=0.10.1" +hbreader = "*" +isodate = ">=0.6.0" +jinja2 = "*" +jsonasobj2 = ">=1.0.3,<2.0.0" +jsonschema = ">=3.0.1" +linkml-dataops = "*" +linkml-runtime = ">=1.3.0,<2.0.0" +myst-parser = "*" +openpyxl = "*" +parse = "*" +prefixcommons = ">=0.1.7" +pydantic = "*" +pyjsg = ">=0.11.6" +pyshex = ">=0.7.20" +pyshexc = ">=0.8.3" +python-dateutil = "*" +pyyaml = "*" +rdflib = ">=6.0.0" +requests = ">=2.22" +sphinx-click = "*" +sqlalchemy = ">=1.4.31" +watchdog = ">=0.9.0" + +[package.extras] +docs = ["sphinx", "sphinx-rtd-theme"] + +[[package]] +name = "linkml-dataops" +version = "0.1.0" +description = "LinkML Data Operations API" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +jinja2 = "*" +jsonpatch = "*" +jsonpath-ng = "*" +linkml-runtime = ">=1.1.6" +"ruamel.yaml" = "*" + +[[package]] +name = "linkml-runtime" +version = "1.3.2" +description = "Runtime environment for LinkML, the Linked open data modeling language" +category = "main" +optional = false +python-versions = ">=3.7.1,<4.0.0" + +[package.dependencies] +click = "*" +deprecated = "*" +hbreader = "*" +json-flattener = ">=0.1.9" +jsonasobj2 = ">=1.0.4,<2.0.0" +jsonschema = ">=3.2.0" +prefixcommons = "0.1.11" +pyyaml = "*" +rdflib = ">=6.0.0" +requests = "*" + +[[package]] +name = "linkml-validator" +version = "0.4.3" +description = "LinkML Validator" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +click = ">=7.0.0" +linkml = ">=1.1.18" +linkml-runtime = ">=1.2.0" +pydantic = ">=1.8.2" +stringcase = ">=1.2.0" + +[package.extras] +dev = ["mkdocs", "mkdocs-material", "mkdocstrings", "mkdocstrings-python-legacy", "pytest", "pytest-cov"] + +[[package]] +name = "locket" +version = "1.0.0" +description = "File-based locks for Python on Linux and Windows" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "markdown" +version = "3.3.7" +description = "Python implementation of Markdown." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} + +[package.extras] +testing = ["coverage", "pyyaml"] + +[[package]] +name = "markdown-it-py" +version = "2.1.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark (>=3.2,<4.0)"] +code-style = ["pre-commit (==2.6)"] +compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.3.6,<3.4.0)", "mistletoe (>=0.8.1,<0.9.0)", "mistune (>=2.0.2,<2.1.0)", "panflute (>=2.1.3,<2.2.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "2.1.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "mdit-py-plugins" +version = "0.3.1" +description = "Collection of plugins for markdown-it-py" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +markdown-it-py = ">=1.0.0,<3.0.0" + +[package.extras] +code-style = ["pre-commit"] +rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "mergedeep" +version = "1.3.4" +description = "A deep merge function for 🐍." +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "mkdocs" +version = "1.4.2" +description = "Project documentation with Markdown." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} +ghp-import = ">=1.0" +importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""} +jinja2 = ">=2.11.1" +markdown = ">=3.2.1,<3.4" +mergedeep = ">=1.3.4" +packaging = ">=20.5" +pyyaml = ">=5.1" +pyyaml-env-tag = ">=0.1" +watchdog = ">=2.0" + +[package.extras] +i18n = ["babel (>=2.9.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] + +[[package]] +name = "mkdocs-material" +version = "8.5.7" +description = "Documentation that simply works" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +jinja2 = ">=3.0.2" +markdown = ">=3.2" +mkdocs = ">=1.4.0" +mkdocs-material-extensions = ">=1.0.3" +pygments = ">=2.12" +pymdown-extensions = ">=9.4" +requests = ">=2.26" + +[[package]] +name = "mkdocs-material-extensions" +version = "1.1" +description = "Extension pack for Python Markdown and MkDocs Material." +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "myst-parser" +version = "0.18.1" +description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +docutils = ">=0.15,<0.20" +jinja2 = "*" +markdown-it-py = ">=1.0.0,<3.0.0" +mdit-py-plugins = ">=0.3.1,<0.4.0" +pyyaml = "*" +sphinx = ">=4,<6" +typing-extensions = "*" + +[package.extras] +code-style = ["pre-commit (>=2.12,<3.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=6,<7)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx (<5.2)", "sphinx-pytest"] + +[[package]] +name = "openpyxl" +version = "3.0.10" +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +et-xmlfile = "*" + +[[package]] +name = "ordered-set" +version = "4.1.0" +description = "An OrderedSet is a custom MutableSet that remembers its order, so that every" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +dev = ["black", "mypy", "pytest"] + +[[package]] +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" + +[[package]] +name = "parse" +version = "1.19.0" +description = "parse() is the opposite of format()" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "partd" +version = "1.3.0" +description = "Appendable key-value storage" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +locket = "*" +toolz = "*" + +[package.extras] +complete = ["blosc", "numpy (>=1.9.0)", "pandas (>=0.19.0)", "pyzmq"] + +[[package]] +name = "pathspec" +version = "0.10.1" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pkgutil-resolve-name" +version = "1.3.10" +description = "Resolve a name to an object." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "platformdirs" +version = "2.5.2" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "ply" +version = "3.11" +description = "Python Lex & Yacc" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "prefixcommons" +version = "0.1.11" +description = "A python API for working with ID prefixes" +category = "main" +optional = false +python-versions = ">=3.7,<4.0" + +[package.dependencies] +requests = ">=2.28.1,<3.0.0" + +[[package]] +name = "pydantic" +version = "1.10.2" +description = "Data validation and settings management using python type hints" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +typing-extensions = ">=4.1.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + +[[package]] +name = "pyflakes" +version = "2.5.0" +description = "passive checker of Python programs" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "pygments" +version = "2.13.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pyjsg" +version = "0.11.10" +description = "Python JSON Schema Grammar interpreter" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +antlr4-python3-runtime = ">=4.9.3,<4.10.0" +jsonasobj = ">=1.2.1" + +[[package]] +name = "pymdown-extensions" +version = "9.7" +description = "Extension pack for Python Markdown." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +markdown = ">=3.2" + +[[package]] +name = "pyparsing" +version = "3.0.9" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" +optional = false +python-versions = ">=3.6.8" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pyrsistent" +version = "0.19.1" +description = "Persistent/Functional/Immutable data structures" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pyshex" +version = "0.8.1" +description = "Python ShEx Implementation" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cfgraph = ">=0.2.1" +chardet = "*" +pyshexc = "0.9.1" +rdflib-shim = "*" +requests = ">=2.22.0" +shexjsg = ">=0.8.2" +sparqlslurper = ">=0.5.1" +sparqlwrapper = ">=1.8.5" +urllib3 = "*" + +[[package]] +name = "pyshexc" +version = "0.9.1" +description = "PyShExC - Python ShEx compiler" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +antlr4-python3-runtime = ">=4.9.3,<4.10.0" +chardet = "*" +jsonasobj = ">=1.2.1" +pyjsg = ">=0.11.10" +rdflib-shim = "*" +shexjsg = ">=0.8.1" + +[[package]] +name = "pytest" +version = "7.2.0" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2022.6" +description = "World timezone definitions, modern and historical" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pyyaml" +version = "5.4.1" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +description = "A custom YAML tag for referencing environment variables in YAML files. " +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pyyaml = "*" + +[[package]] +name = "rdflib" +version = "6.2.0" +description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +isodate = "*" +pyparsing = "*" +setuptools = "*" + +[package.extras] +berkeleydb = ["berkeleydb"] +dev = ["black (==22.6.0)", "flake8", "flakeheaven", "isort", "mypy", "pep8-naming", "types-setuptools"] +docs = ["myst-parser", "sphinx (<6)", "sphinx-autodoc-typehints", "sphinxcontrib-apidoc", "sphinxcontrib-kroki"] +html = ["html5lib"] +networkx = ["networkx"] +tests = ["html5lib", "pytest", "pytest-cov"] + +[[package]] +name = "rdflib-jsonld" +version = "0.6.1" +description = "rdflib extension adding JSON-LD parser and serializer" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +rdflib = ">=5.0.0" + +[[package]] +name = "rdflib-shim" +version = "1.0.3" +description = "Shim for rdflib 5 and 6 incompatibilities" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +rdflib = ">=5.0.0" +rdflib-jsonld = "0.6.1" + +[[package]] +name = "requests" +version = "2.28.1" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=3.7, <4" + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<3" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<1.27" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "ruamel-yaml" +version = "0.17.21" +description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" +category = "main" +optional = false +python-versions = ">=3" + +[package.dependencies] +"ruamel.yaml.clib" = {version = ">=0.2.6", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.11\""} + +[package.extras] +docs = ["ryd"] +jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] + +[[package]] +name = "ruamel-yaml-clib" +version = "0.2.7" +description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "setuptools" +version = "65.5.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mock", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "shexjsg" +version = "0.8.2" +description = "ShExJSG - Astract Syntax Tree for the ShEx 2.0 language" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +pyjsg = ">=0.11.10" + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "sparqlslurper" +version = "0.5.1" +description = "SPARQL Slurper for rdflib" +category = "main" +optional = false +python-versions = ">=3.7.4" + +[package.dependencies] +rdflib = ">=5.0.0" +rdflib-shim = "*" +sparqlwrapper = ">=1.8.2" + +[[package]] +name = "sparqlwrapper" +version = "2.0.0" +description = "SPARQL Endpoint interface to Python" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +rdflib = ">=6.1.1" + +[package.extras] +dev = ["mypy (>=0.931)", "pandas (>=1.3.5)", "pandas-stubs (>=1.2.0.48)", "setuptools (>=3.7.1)"] +docs = ["sphinx (<5)", "sphinx-rtd-theme"] +keepalive = ["keepalive (>=0.5)"] +pandas = ["pandas (>=1.3.5)"] + +[[package]] +name = "sphinx" +version = "5.3.0" +description = "Python documentation generator" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.14,<0.20" +imagesize = ">=1.3" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.12" +requests = ">=2.5.0" +snowballstemmer = ">=2.0" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-bugbear", "flake8-comprehensions", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "types-requests", "types-typed-ast"] +test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] + +[[package]] +name = "sphinx-click" +version = "4.3.0" +description = "Sphinx extension that automatically documents click applications" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +click = ">=7.0" +docutils = "*" +sphinx = ">=2.0" + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.2" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.0" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sqlalchemy" +version = "1.4.42" +description = "Database Abstraction Library" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" + +[package.dependencies] +greenlet = {version = "!=0.4.17", 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\")"} + +[package.extras] +aiomysql = ["aiomysql", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] +mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=7)", "cx_oracle (>=7,<8)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +pymysql = ["pymysql", "pymysql (<1)"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "stringcase" +version = "1.2.0" +description = "String case converter." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "toolz" +version = "0.12.0" +description = "List processing tools and functional utilities" +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "typer" +version = "0.4.2" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +click = ">=7.1.1,<9.0.0" + +[package.extras] +all = ["colorama (>=0.4.3,<0.5.0)", "shellingham (>=1.3.0,<2.0.0)"] +dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] +doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)"] +test = ["black (>=22.3.0,<23.0.0)", "coverage (>=5.2,<6.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<5.4.0)", "pytest-cov (>=2.10.0,<3.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<2.0.0)", "shellingham (>=1.3.0,<2.0.0)"] + +[[package]] +name = "typing-extensions" +version = "4.4.0" +description = "Backported and Experimental Type Hints for Python 3.7+" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "urllib3" +version = "1.26.12" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "watchdog" +version = "2.1.9" +description = "Filesystem events monitoring" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + +[[package]] +name = "wrapt" +version = "1.14.1" +description = "Module for decorators, wrappers and monkey patching." +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[[package]] +name = "zipp" +version = "3.10.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] +testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] + +[metadata] +lock-version = "1.1" +python-versions = "^3.8" +content-hash = "270edeb51e6262d879e320577692bd5877540c56db9fe43ca7056f5ce4e0a981" + +[metadata.files] +alabaster = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] +antlr4-python3-runtime = [ + {file = "antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"}, +] +argparse = [ + {file = "argparse-1.4.0-py2.py3-none-any.whl", hash = "sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314"}, + {file = "argparse-1.4.0.tar.gz", hash = "sha256:62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4"}, +] +attrs = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] +autoflake = [ + {file = "autoflake-1.7.7-py3-none-any.whl", hash = "sha256:a9b43d08f8e455824e4f7b3f078399f59ba538ba53872f466c09e55c827773ef"}, + {file = "autoflake-1.7.7.tar.gz", hash = "sha256:c8e4fc41aa3eae0f5c94b939e3a3d50923d7a9306786a6cbf4866a077b8f6832"}, +] +babel = [ + {file = "Babel-2.11.0-py3-none-any.whl", hash = "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe"}, + {file = "Babel-2.11.0.tar.gz", hash = "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6"}, +] +biolink-model = [ + {file = "biolink-model-3.0.3.tar.gz", hash = "sha256:1a1b00936bd56d36d9d2b957e28877043e59cfad1ce446c20721e5972fe68e04"}, + {file = "biolink_model-3.0.3-py3-none-any.whl", hash = "sha256:9cc9e92c6c0a92f9099dd60635936d300558051420c15bb8d6b225ba005e0072"}, +] +black = [ + {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"}, + {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"}, + {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"}, + {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"}, + {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"}, + {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"}, + {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"}, + {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"}, + {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"}, + {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"}, + {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"}, + {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"}, + {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"}, + {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"}, + {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"}, + {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"}, + {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"}, + {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"}, +] +certifi = [ + {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, + {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, +] +cfgraph = [ + {file = "CFGraph-0.2.1.tar.gz", hash = "sha256:b57fe7044a10b8ff65aa3a8a8ddc7d4cd77bf511b42e57289cd52cbc29f8fe74"}, +] +chardet = [ + {file = "chardet-5.0.0-py3-none-any.whl", hash = "sha256:d3e64f022d254183001eccc5db4040520c0f23b1a3f33d6413e099eb7f126557"}, + {file = "chardet-5.0.0.tar.gz", hash = "sha256:0368df2bfd78b5fc20572bb4e9bb7fb53e2c094f60ae9993339e8671d0afb8aa"}, +] +charset-normalizer = [ + {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, + {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, +] +click = [ + {file = "click-8.0.4-py3-none-any.whl", hash = "sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1"}, + {file = "click-8.0.4.tar.gz", hash = "sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb"}, +] +cloudpickle = [ + {file = "cloudpickle-2.2.0-py3-none-any.whl", hash = "sha256:7428798d5926d8fcbfd092d18d01a2a03daf8237d8fcdc8095d256b8490796f0"}, + {file = "cloudpickle-2.2.0.tar.gz", hash = "sha256:3f4219469c55453cfe4737e564b67c2a149109dabf7f242478948b895f61106f"}, +] +colorama = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] +dask = [ + {file = "dask-2022.10.2-py3-none-any.whl", hash = "sha256:928003a97b890a14c8a09a01f15320d261053bda530a8bf191d84f33db4a63b8"}, + {file = "dask-2022.10.2.tar.gz", hash = "sha256:42cb43f601709575fa46ce09e74bea83fdd464187024f56954e09d9b428ceaab"}, +] +decorator = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] +deprecated = [ + {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, + {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, +] +docutils = [ + {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, + {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, +] +et-xmlfile = [ + {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, + {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, +] +exceptiongroup = [ + {file = "exceptiongroup-1.0.0-py3-none-any.whl", hash = "sha256:2ac84b496be68464a2da60da518af3785fff8b7ec0d090a581604bc870bdee41"}, + {file = "exceptiongroup-1.0.0.tar.gz", hash = "sha256:affbabf13fb6e98988c38d9c5650e701569fe3c1de3233cfb61c5f33774690ad"}, +] +fsspec = [ + {file = "fsspec-2022.10.0-py3-none-any.whl", hash = "sha256:6b7c6ab3b476cdf17efcfeccde7fca28ef5a48f73a71010aaceec5fc15bf9ebf"}, + {file = "fsspec-2022.10.0.tar.gz", hash = "sha256:cb6092474e90487a51de768170f3afa50ca8982c26150a59072b16433879ff1d"}, +] +ghp-import = [ + {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, + {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, +] +graphviz = [ + {file = "graphviz-0.20.1-py3-none-any.whl", hash = "sha256:587c58a223b51611c0cf461132da386edd896a029524ca61a1462b880bf97977"}, + {file = "graphviz-0.20.1.zip", hash = "sha256:8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8"}, +] +greenlet = [ + {file = "greenlet-2.0.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:4be4dedbd2fa9b7c35627f322d6d3139cb125bc18d5ef2f40237990850ea446f"}, + {file = "greenlet-2.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:75c022803de010294366f3608d4bba3e346693b1b7427b79d57e3d924ed03838"}, + {file = "greenlet-2.0.0-cp27-cp27m-win32.whl", hash = "sha256:4a1953465b7651073cffde74ed7d121e602ef9a9740d09ee137b01879ac15a2f"}, + {file = "greenlet-2.0.0-cp27-cp27m-win_amd64.whl", hash = "sha256:a65205e6778142528978b4acca76888e7e7f0be261e395664e49a5c21baa2141"}, + {file = "greenlet-2.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d71feebf5c8041c80dfda76427e14e3ca00bca042481bd3e9612a9d57b2cbbf7"}, + {file = "greenlet-2.0.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:f7edbd2957f72aea357241fe42ffc712a8e9b8c2c42f24e2ef5d97b255f66172"}, + {file = "greenlet-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79687c48e7f564be40c46b3afea6d141b8d66ffc2bc6147e026d491c6827954a"}, + {file = "greenlet-2.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a245898ec5e9ca0bc87a63e4e222cc633dc4d1f1a0769c34a625ad67edb9f9de"}, + {file = "greenlet-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adcf45221f253b3a681c99da46fa6ac33596fa94c2f30c54368f7ee1c4563a39"}, + {file = "greenlet-2.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3dc294afebf2acfd029373dbf3d01d36fd8d6888a03f5a006e2d690f66b153d9"}, + {file = "greenlet-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1cfeae4dda32eb5c64df05d347c4496abfa57ad16a90082798a2bba143c6c854"}, + {file = "greenlet-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:d58d4b4dc82e2d21ebb7dd7d3a6d370693b2236a1407fe3988dc1d4ea07575f9"}, + {file = "greenlet-2.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0d7efab8418c1fb3ea00c4abb89e7b0179a952d0d53ad5fcff798ca7440f8e8"}, + {file = "greenlet-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:f8a10e14238407be3978fa6d190eb3724f9d766655fefc0134fd5482f1fb0108"}, + {file = "greenlet-2.0.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:98b848a0b75e76b446dc71fdbac712d9078d96bb1c1607f049562dde1f8801e1"}, + {file = "greenlet-2.0.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:8e8dbad9b4f4c3e37898914cfccb7c4f00dbe3146333cfe52a1a3103cc2ff97c"}, + {file = "greenlet-2.0.0-cp35-cp35m-win32.whl", hash = "sha256:069a8a557541a04518dc3beb9a78637e4e6b286814849a2ecfac529eaa78562b"}, + {file = "greenlet-2.0.0-cp35-cp35m-win_amd64.whl", hash = "sha256:cc211c2ff5d3b2ba8d557a71e3b4f0f0a2020067515143a9516ea43884271192"}, + {file = "greenlet-2.0.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:d4e7642366e638f45d70c5111590a56fbd0ffb7f474af20c6c67c01270bcf5cf"}, + {file = "greenlet-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:e7a0dca752b4e3395890ab4085c3ec3838d73714261914c01b53ed7ea23b5867"}, + {file = "greenlet-2.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8c67ecda450ad4eac7837057f5deb96effa836dacaf04747710ccf8eeb73092"}, + {file = "greenlet-2.0.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3cc1abaf47cfcfdc9ac0bdff173cebab22cd54e9e3490135a4a9302d0ff3b163"}, + {file = "greenlet-2.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efdbbbf7b6c8d5be52977afa65b9bb7b658bab570543280e76c0fabc647175ed"}, + {file = "greenlet-2.0.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:7acaa51355d5b9549d474dc71be6846ee9a8f2cb82f4936e5efa7a50bbeb94ad"}, + {file = "greenlet-2.0.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2be628bca0395610da08921f9376dd14317f37256d41078f5c618358467681e1"}, + {file = "greenlet-2.0.0-cp36-cp36m-win32.whl", hash = "sha256:eca9c0473de053dcc92156dd62c38c3578628b536c7f0cd66e655e211c14ac32"}, + {file = "greenlet-2.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:9a4a9fea68fd98814999d91ea585e49ed68d7e199a70bef13a857439f60a4609"}, + {file = "greenlet-2.0.0-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:6b28420ae290bfbf5d827f976abccc2f74f0a3f5e4fb69b66acf98f1cbe95e7e"}, + {file = "greenlet-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:2b8e1c939b363292ecc93999fb1ad53ffc5d0aac8e933e4362b62365241edda5"}, + {file = "greenlet-2.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c5ddadfe40e903c6217ed2b95a79f49e942bb98527547cc339fc7e43a424aad"}, + {file = "greenlet-2.0.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e5ead803b11b60b347e08e0f37234d9a595f44a6420026e47bcaf94190c3cd6"}, + {file = "greenlet-2.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b89b78ffb516c2921aa180c2794082666e26680eef05996b91f46127da24d964"}, + {file = "greenlet-2.0.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:939963d0137ec92540d95b68b7f795e8dbadce0a1fca53e3e7ef8ddc18ee47cb"}, + {file = "greenlet-2.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c1e93ef863810fba75faf418f0861dbf59bfe01a7b5d0a91d39603df58d3d3fa"}, + {file = "greenlet-2.0.0-cp37-cp37m-win32.whl", hash = "sha256:6fd342126d825b76bf5b49717a7c682e31ed1114906cdec7f5a0c2ff1bc737a7"}, + {file = "greenlet-2.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:5392ddb893e7fba237b988f846c4a80576557cc08664d56dc1a69c5c02bdc80c"}, + {file = "greenlet-2.0.0-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b4fd73b62c1038e7ee938b1de328eaa918f76aa69c812beda3aff8a165494201"}, + {file = "greenlet-2.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:0ba0f2e5c4a8f141952411e356dba05d6fe0c38325ee0e4f2d0c6f4c2c3263d5"}, + {file = "greenlet-2.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8bacecee0c9348ab7c95df810e12585e9e8c331dfc1e22da4ed0bd635a5f483"}, + {file = "greenlet-2.0.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:341053e0a96d512315c27c34fad4672c4573caf9eb98310c39e7747645c88d8b"}, + {file = "greenlet-2.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49fcdd8ae391ffabb3b672397b58a9737aaff6b8cae0836e8db8ff386fcea802"}, + {file = "greenlet-2.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c3aa7d3bc545162a6676445709b24a2a375284dc5e2f2432d58b80827c2bd91c"}, + {file = "greenlet-2.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9d8dca31a39dd9f25641559b8cdf9066168c682dfcfbe0f797f03e4c9718a63a"}, + {file = "greenlet-2.0.0-cp38-cp38-win32.whl", hash = "sha256:aa2b371c3633e694d043d6cec7376cb0031c6f67029f37eef40bda105fd58753"}, + {file = "greenlet-2.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:0fa2a66fdf0d09929e79f786ad61529d4e752f452466f7ddaa5d03caf77a603d"}, + {file = "greenlet-2.0.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:e7ec3f2465ba9b7d25895307abe1c1c101a257c54b9ea1522bbcbe8ca8793735"}, + {file = "greenlet-2.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:99e9851e40150504474915605649edcde259a4cd9bce2fcdeb4cf33ad0b5c293"}, + {file = "greenlet-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20bf68672ae14ef2e2e6d3ac1f308834db1d0b920b3b0674eef48b2dce0498dd"}, + {file = "greenlet-2.0.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30198bccd774f9b6b1ba7564a0d02a79dd1fe926cfeb4107856fe16c9dfb441c"}, + {file = "greenlet-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d65d7d1ff64fb300127d2ffd27db909de4d21712a5dde59a3ad241fb65ee83d7"}, + {file = "greenlet-2.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2f5d396a5457458460b0c28f738fc8ab2738ee61b00c3f845c7047a333acd96c"}, + {file = "greenlet-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09f00f9938eb5ae1fe203558b56081feb0ca34a2895f8374cd01129ddf4d111c"}, + {file = "greenlet-2.0.0-cp39-cp39-win32.whl", hash = "sha256:089e123d80dbc6f61fff1ff0eae547b02c343d50968832716a7b0a33bea5f792"}, + {file = "greenlet-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:bc283f99a4815ef70cad537110e3e03abcef56ab7d005ba9a8c6ec33054ce9c0"}, + {file = "greenlet-2.0.0.tar.gz", hash = "sha256:6c66f0da8049ee3c126b762768179820d4c0ae0ca46ae489039e4da2fae39a52"}, +] +hbreader = [ + {file = "hbreader-0.9.1-py3-none-any.whl", hash = "sha256:9a6e76c9d1afc1b977374a5dc430a1ebb0ea0488205546d4678d6e31cc5f6801"}, + {file = "hbreader-0.9.1.tar.gz", hash = "sha256:d2c132f8ba6276d794c66224c3297cec25c8079d0a4cf019c061611e0a3b94fa"}, +] +idna = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] +imagesize = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] +importlib-metadata = [ + {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"}, + {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"}, +] +importlib-resources = [ + {file = "importlib_resources-5.10.0-py3-none-any.whl", hash = "sha256:ee17ec648f85480d523596ce49eae8ead87d5631ae1551f913c0100b5edd3437"}, + {file = "importlib_resources-5.10.0.tar.gz", hash = "sha256:c01b1b94210d9849f286b86bb51bcea7cd56dde0600d8db721d7b81330711668"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +isodate = [ + {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, + {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, +] +isort = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] +jinja2 = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] +json-flattener = [ + {file = "json_flattener-0.1.9-py3-none-any.whl", hash = "sha256:6b027746f08bf37a75270f30c6690c7149d5f704d8af1740c346a3a1236bc941"}, + {file = "json_flattener-0.1.9.tar.gz", hash = "sha256:84cf8523045ffb124301a602602201665fcb003a171ece87e6f46ed02f7f0c15"}, +] +jsonasobj = [ + {file = "jsonasobj-1.3.1-py3-none-any.whl", hash = "sha256:b9e329dc1ceaae7cf5d5b214684a0b100e0dad0be6d5bbabac281ec35ddeca65"}, + {file = "jsonasobj-1.3.1.tar.gz", hash = "sha256:d52e0544a54a08f6ea3f77fa3387271e3648655e0eace2f21e825c26370e44a2"}, +] +jsonasobj2 = [ + {file = "jsonasobj2-1.0.4-py3-none-any.whl", hash = "sha256:12e86f86324d54fcf60632db94ea74488d5314e3da554c994fe1e2c6f29acb79"}, + {file = "jsonasobj2-1.0.4.tar.gz", hash = "sha256:f50b1668ef478004aa487b2d2d094c304e5cb6b79337809f4a1f2975cc7fbb4e"}, +] +jsonpatch = [ + {file = "jsonpatch-1.32-py2.py3-none-any.whl", hash = "sha256:26ac385719ac9f54df8a2f0827bb8253aa3ea8ab7b3368457bcdb8c14595a397"}, + {file = "jsonpatch-1.32.tar.gz", hash = "sha256:b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2"}, +] +jsonpath-ng = [ + {file = "jsonpath-ng-1.5.3.tar.gz", hash = "sha256:a273b182a82c1256daab86a313b937059261b5c5f8c4fa3fc38b882b344dd567"}, + {file = "jsonpath_ng-1.5.3-py2-none-any.whl", hash = "sha256:f75b95dbecb8a0f3b86fd2ead21c2b022c3f5770957492b9b6196ecccfeb10aa"}, + {file = "jsonpath_ng-1.5.3-py3-none-any.whl", hash = "sha256:292a93569d74029ba75ac2dc3d3630fc0e17b2df26119a165fa1d498ca47bf65"}, +] +jsonpointer = [ + {file = "jsonpointer-2.3-py2.py3-none-any.whl", hash = "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9"}, + {file = "jsonpointer-2.3.tar.gz", hash = "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a"}, +] +jsonschema = [ + {file = "jsonschema-4.17.0-py3-none-any.whl", hash = "sha256:f660066c3966db7d6daeaea8a75e0b68237a48e51cf49882087757bb59916248"}, + {file = "jsonschema-4.17.0.tar.gz", hash = "sha256:5bfcf2bca16a087ade17e02b282d34af7ccd749ef76241e7f9bd7c0cb8a9424d"}, +] +linkml = [ + {file = "linkml-1.3.2-py3-none-any.whl", hash = "sha256:2fd6bc0ba9f40ec528185dbd3bfd1433659ae3feb4e82b4782371684c8a54f2b"}, + {file = "linkml-1.3.2.tar.gz", hash = "sha256:f296a9489a8d43a1ef06918ae055c1a3cce2c90e4f8720ee43500f0893e1a7ce"}, +] +linkml-dataops = [ + {file = "linkml_dataops-0.1.0-py3-none-any.whl", hash = "sha256:193cf7f659e5f07946d2c2761896910d5f7151d91282543b1363801f68307f4c"}, + {file = "linkml_dataops-0.1.0.tar.gz", hash = "sha256:4550eab65e78b70dc3b9c651724a94ac2b1d1edb2fbe576465f1d6951a54ed04"}, +] +linkml-runtime = [ + {file = "linkml-runtime-1.3.2.tar.gz", hash = "sha256:5ea9be2702323e5a3e2df924f5dfd4be88c0fc7041a4c71ccc6e33f45d319a36"}, + {file = "linkml_runtime-1.3.2-py3-none-any.whl", hash = "sha256:c5ab3b39e20fbb41360bb3fa16698f4b30adca752b9e47dc244e92fe633f2e6d"}, +] +linkml-validator = [ + {file = "linkml_validator-0.4.3-py3-none-any.whl", hash = "sha256:8d32157e8981174cdcd6350d60df680cdcde9158b840f6b812638e353baf879d"}, + {file = "linkml_validator-0.4.3.tar.gz", hash = "sha256:73a3c0d06a133d271c64426f2950a708042313f341e3fdce8c4913e6d6bf022a"}, +] +locket = [ + {file = "locket-1.0.0-py2.py3-none-any.whl", hash = "sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3"}, + {file = "locket-1.0.0.tar.gz", hash = "sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632"}, +] +markdown = [ + {file = "Markdown-3.3.7-py3-none-any.whl", hash = "sha256:f5da449a6e1c989a4cea2631aa8ee67caa5a2ef855d551c88f9e309f4634c621"}, + {file = "Markdown-3.3.7.tar.gz", hash = "sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874"}, +] +markdown-it-py = [ + {file = "markdown-it-py-2.1.0.tar.gz", hash = "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"}, + {file = "markdown_it_py-2.1.0-py3-none-any.whl", hash = "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27"}, +] +markupsafe = [ + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, + {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, +] +mdit-py-plugins = [ + {file = "mdit-py-plugins-0.3.1.tar.gz", hash = "sha256:3fc13298497d6e04fe96efdd41281bfe7622152f9caa1815ea99b5c893de9441"}, + {file = "mdit_py_plugins-0.3.1-py3-none-any.whl", hash = "sha256:606a7f29cf56dbdfaf914acb21709b8f8ee29d857e8f29dcc33d8cb84c57bfa1"}, +] +mdurl = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] +mergedeep = [ + {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, + {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, +] +mkdocs = [ + {file = "mkdocs-1.4.2-py3-none-any.whl", hash = "sha256:c8856a832c1e56702577023cd64cc5f84948280c1c0fcc6af4cd39006ea6aa8c"}, + {file = "mkdocs-1.4.2.tar.gz", hash = "sha256:8947af423a6d0facf41ea1195b8e1e8c85ad94ac95ae307fe11232e0424b11c5"}, +] +mkdocs-material = [ + {file = "mkdocs_material-8.5.7-py3-none-any.whl", hash = "sha256:07fc70dfa325a8019b99a124751c43e4c1c2a739ed1b0b82c00f823f31c9a1e2"}, + {file = "mkdocs_material-8.5.7.tar.gz", hash = "sha256:ff4c7851b2e5f9a6cfa0a8b247e973ebae753b9836a53bd68742827541ab73e5"}, +] +mkdocs-material-extensions = [ + {file = "mkdocs_material_extensions-1.1-py3-none-any.whl", hash = "sha256:bcc2e5fc70c0ec50e59703ee6e639d87c7e664c0c441c014ea84461a90f1e902"}, + {file = "mkdocs_material_extensions-1.1.tar.gz", hash = "sha256:96ca979dae66d65c2099eefe189b49d5ac62f76afb59c38e069ffc7cf3c131ec"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +myst-parser = [ + {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, + {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, +] +openpyxl = [ + {file = "openpyxl-3.0.10-py2.py3-none-any.whl", hash = "sha256:0ab6d25d01799f97a9464630abacbb34aafecdcaa0ef3cba6d6b3499867d0355"}, + {file = "openpyxl-3.0.10.tar.gz", hash = "sha256:e47805627aebcf860edb4edf7987b1309c1b3632f3750538ed962bbcc3bd7449"}, +] +ordered-set = [ + {file = "ordered-set-4.1.0.tar.gz", hash = "sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8"}, + {file = "ordered_set-4.1.0-py3-none-any.whl", hash = "sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562"}, +] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +parse = [ + {file = "parse-1.19.0.tar.gz", hash = "sha256:9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b"}, +] +partd = [ + {file = "partd-1.3.0-py3-none-any.whl", hash = "sha256:6393a0c898a0ad945728e34e52de0df3ae295c5aff2e2926ba7cc3c60a734a15"}, + {file = "partd-1.3.0.tar.gz", hash = "sha256:ce91abcdc6178d668bcaa431791a5a917d902341cb193f543fe445d494660485"}, +] +pathspec = [ + {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, + {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, +] +pkgutil-resolve-name = [ + {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, + {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, +] +platformdirs = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +ply = [ + {file = "ply-3.11-py2.py3-none-any.whl", hash = "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce"}, + {file = "ply-3.11.tar.gz", hash = "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3"}, +] +prefixcommons = [ + {file = "prefixcommons-0.1.11-py3-none-any.whl", hash = "sha256:e604328bc813e2da5bd1527a174f3296f82d1357ba2de64730826a98db0a34e0"}, + {file = "prefixcommons-0.1.11.tar.gz", hash = "sha256:5f2cc89d38e1dd9d31fcd71d5daa02b33a81a8116efe2e9957903b2a6772d368"}, +] +pydantic = [ + {file = "pydantic-1.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb6ad4489af1bac6955d38ebcb95079a836af31e4c4f74aba1ca05bb9f6027bd"}, + {file = "pydantic-1.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a1f5a63a6dfe19d719b1b6e6106561869d2efaca6167f84f5ab9347887d78b98"}, + {file = "pydantic-1.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:352aedb1d71b8b0736c6d56ad2bd34c6982720644b0624462059ab29bd6e5912"}, + {file = "pydantic-1.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19b3b9ccf97af2b7519c42032441a891a5e05c68368f40865a90eb88833c2559"}, + {file = "pydantic-1.10.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e9069e1b01525a96e6ff49e25876d90d5a563bc31c658289a8772ae186552236"}, + {file = "pydantic-1.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:355639d9afc76bcb9b0c3000ddcd08472ae75318a6eb67a15866b87e2efa168c"}, + {file = "pydantic-1.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae544c47bec47a86bc7d350f965d8b15540e27e5aa4f55170ac6a75e5f73b644"}, + {file = "pydantic-1.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a4c805731c33a8db4b6ace45ce440c4ef5336e712508b4d9e1aafa617dc9907f"}, + {file = "pydantic-1.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d49f3db871575e0426b12e2f32fdb25e579dea16486a26e5a0474af87cb1ab0a"}, + {file = "pydantic-1.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37c90345ec7dd2f1bcef82ce49b6235b40f282b94d3eec47e801baf864d15525"}, + {file = "pydantic-1.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b5ba54d026c2bd2cb769d3468885f23f43710f651688e91f5fb1edcf0ee9283"}, + {file = "pydantic-1.10.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:05e00dbebbe810b33c7a7362f231893183bcc4251f3f2ff991c31d5c08240c42"}, + {file = "pydantic-1.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2d0567e60eb01bccda3a4df01df677adf6b437958d35c12a3ac3e0f078b0ee52"}, + {file = "pydantic-1.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:c6f981882aea41e021f72779ce2a4e87267458cc4d39ea990729e21ef18f0f8c"}, + {file = "pydantic-1.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4aac8e7103bf598373208f6299fa9a5cfd1fc571f2d40bf1dd1955a63d6eeb5"}, + {file = "pydantic-1.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a7b66c3f499108b448f3f004801fcd7d7165fb4200acb03f1c2402da73ce4c"}, + {file = "pydantic-1.10.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bedf309630209e78582ffacda64a21f96f3ed2e51fbf3962d4d488e503420254"}, + {file = "pydantic-1.10.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9300fcbebf85f6339a02c6994b2eb3ff1b9c8c14f502058b5bf349d42447dcf5"}, + {file = "pydantic-1.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:216f3bcbf19c726b1cc22b099dd409aa371f55c08800bcea4c44c8f74b73478d"}, + {file = "pydantic-1.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:dd3f9a40c16daf323cf913593083698caee97df2804aa36c4b3175d5ac1b92a2"}, + {file = "pydantic-1.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b97890e56a694486f772d36efd2ba31612739bc6f3caeee50e9e7e3ebd2fdd13"}, + {file = "pydantic-1.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9cabf4a7f05a776e7793e72793cd92cc865ea0e83a819f9ae4ecccb1b8aa6116"}, + {file = "pydantic-1.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06094d18dd5e6f2bbf93efa54991c3240964bb663b87729ac340eb5014310624"}, + {file = "pydantic-1.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc78cc83110d2f275ec1970e7a831f4e371ee92405332ebfe9860a715f8336e1"}, + {file = "pydantic-1.10.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ee433e274268a4b0c8fde7ad9d58ecba12b069a033ecc4645bb6303c062d2e9"}, + {file = "pydantic-1.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7c2abc4393dea97a4ccbb4ec7d8658d4e22c4765b7b9b9445588f16c71ad9965"}, + {file = "pydantic-1.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:0b959f4d8211fc964772b595ebb25f7652da3f22322c007b6fed26846a40685e"}, + {file = "pydantic-1.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c33602f93bfb67779f9c507e4d69451664524389546bacfe1bee13cae6dc7488"}, + {file = "pydantic-1.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5760e164b807a48a8f25f8aa1a6d857e6ce62e7ec83ea5d5c5a802eac81bad41"}, + {file = "pydantic-1.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6eb843dcc411b6a2237a694f5e1d649fc66c6064d02b204a7e9d194dff81eb4b"}, + {file = "pydantic-1.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b8795290deaae348c4eba0cebb196e1c6b98bdbe7f50b2d0d9a4a99716342fe"}, + {file = "pydantic-1.10.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e0bedafe4bc165ad0a56ac0bd7695df25c50f76961da29c050712596cf092d6d"}, + {file = "pydantic-1.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2e05aed07fa02231dbf03d0adb1be1d79cabb09025dd45aa094aa8b4e7b9dcda"}, + {file = "pydantic-1.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:c1ba1afb396148bbc70e9eaa8c06c1716fdddabaf86e7027c5988bae2a829ab6"}, + {file = "pydantic-1.10.2-py3-none-any.whl", hash = "sha256:1b6ee725bd6e83ec78b1aa32c5b1fa67a3a65badddde3976bca5fe4568f27709"}, + {file = "pydantic-1.10.2.tar.gz", hash = "sha256:91b8e218852ef6007c2b98cd861601c6a09f1aa32bbbb74fab5b1c33d4a1e410"}, +] +pyflakes = [ + {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, + {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, +] +pygments = [ + {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, + {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, +] +pyjsg = [ + {file = "PyJSG-0.11.10-py3-none-any.whl", hash = "sha256:10af60ff42219be7e85bf7f11c19b648715b0b29eb2ddbd269e87069a7c3f26d"}, + {file = "PyJSG-0.11.10.tar.gz", hash = "sha256:4bd6e3ff2833fa2b395bbe803a2d72a5f0bab5b7285bccd0da1a1bc0aee88bfa"}, +] +pymdown-extensions = [ + {file = "pymdown_extensions-9.7-py3-none-any.whl", hash = "sha256:767d07d9dead0f52f5135545c01f4ed627f9a7918ee86c646d893e24c59db87d"}, + {file = "pymdown_extensions-9.7.tar.gz", hash = "sha256:651b0107bc9ee790aedea3673cb88832c0af27d2569cf45c2de06f1d65292e96"}, +] +pyparsing = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] +pyrsistent = [ + {file = "pyrsistent-0.19.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a34a2a8b220247658f7ced871197c390b3a6371d796a5869ab1c62abe0be527"}, + {file = "pyrsistent-0.19.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73b2db09fe15b6e444c0bd566a125a385ca6493456224ce8b367d734f079f576"}, + {file = "pyrsistent-0.19.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c58bd93c4d502f52938fccdbe6c9d70df3a585c6b39d900fab5f76b604282aa"}, + {file = "pyrsistent-0.19.1-cp310-cp310-win32.whl", hash = "sha256:bc33fc20ddfd89b86b7710142963490d8c4ee8307ed6cc5e189a58fa72390eb9"}, + {file = "pyrsistent-0.19.1-cp310-cp310-win_amd64.whl", hash = "sha256:06579d46d8ad69529b28f88711191a7fe7103c92d04a9f338dc754f71b92efa0"}, + {file = "pyrsistent-0.19.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:1d0620474d509172e1c50b79d5626bfe1899f174bf650186a50c6ce31289ff52"}, + {file = "pyrsistent-0.19.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:945297fc344fef4d540135180ce7babeb2291d124698cc6282f3eac624aa5e82"}, + {file = "pyrsistent-0.19.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16ac5ab3d9db78fed40c884d67079524e4cf8276639211ad9e6fa73e727727e"}, + {file = "pyrsistent-0.19.1-cp37-cp37m-win32.whl", hash = "sha256:327f99800d04a9abcf580daecfd6dd4bfdb4a7e61c71bf2cd1189ef1ca44bade"}, + {file = "pyrsistent-0.19.1-cp37-cp37m-win_amd64.whl", hash = "sha256:39f15ad754384e744ac8b00805913bfa66c41131faaa3e4c45c4af0731f3e8f6"}, + {file = "pyrsistent-0.19.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:73d4ec2997716af3c8f28f7e3d3a565d273a598982d2fe95639e07ce4db5da45"}, + {file = "pyrsistent-0.19.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62a41037387ae849a493cd945e22b34d167a843d57f75b07dbfad6d96cef485c"}, + {file = "pyrsistent-0.19.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6df99c3578dc4eb33f3eb26bc28277ab40a720b71649d940bff9c1f704377772"}, + {file = "pyrsistent-0.19.1-cp38-cp38-win32.whl", hash = "sha256:aaa869d9199d7d4c70a57678aff21654cc179c0c32bcfde87f1d65d0ff47e520"}, + {file = "pyrsistent-0.19.1-cp38-cp38-win_amd64.whl", hash = "sha256:2032d971711643049b4f2c3ca5155a855d507d73bad26dac8d4349e5c5dd6758"}, + {file = "pyrsistent-0.19.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6ef7430e45c5fa0bb6c361cada4a08ed9c184b5ed086815a85c3bc8c5054566b"}, + {file = "pyrsistent-0.19.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73e3e2fd9da009d558050697cc22ad689f89a14a2ef2e67304628a913e59c947"}, + {file = "pyrsistent-0.19.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c641111c3f110379bb9001dbb26b34eb8cafab3d0fa855dc161c391461a4aab"}, + {file = "pyrsistent-0.19.1-cp39-cp39-win32.whl", hash = "sha256:62b704f18526a8fc243152de8f3f40ae39c5172baff10f50c0c5d5331d6f2342"}, + {file = "pyrsistent-0.19.1-cp39-cp39-win_amd64.whl", hash = "sha256:890f577aec554f142e01daf890221d10e4f93a9b1107998d631d3f075b55e8f8"}, + {file = "pyrsistent-0.19.1-py3-none-any.whl", hash = "sha256:8bc23e9ddcb523c3ffb4d712aa0bd5bc67b34ff4e2b23fb557012171bdb4013a"}, + {file = "pyrsistent-0.19.1.tar.gz", hash = "sha256:cfe6d8b293d123255fd3b475b5f4e851eb5cbaee2064c8933aa27344381744ae"}, +] +pyshex = [ + {file = "PyShEx-0.8.1-py3-none-any.whl", hash = "sha256:6da1b10123e191abf8dcb6bf3e54aa3e1fcf771df5d1a0ed453217c8900c8e6a"}, + {file = "PyShEx-0.8.1.tar.gz", hash = "sha256:3c5c4d45fe27faaadae803cb008c41acf8ee784da7868b04fd84967e75be70d0"}, +] +pyshexc = [ + {file = "PyShExC-0.9.1-py2.py3-none-any.whl", hash = "sha256:efc55ed5cb2453e9df569b03e282505e96bb06597934288f3b23dd980ef10028"}, + {file = "PyShExC-0.9.1.tar.gz", hash = "sha256:35a9975d4b9afeb20ef710fb6680871756381d0c39fbb5470b3b506581a304d3"}, +] +pytest = [ + {file = "pytest-7.2.0-py3-none-any.whl", hash = "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71"}, + {file = "pytest-7.2.0.tar.gz", hash = "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59"}, +] +python-dateutil = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] +pytz = [ + {file = "pytz-2022.6-py2.py3-none-any.whl", hash = "sha256:222439474e9c98fced559f1709d89e6c9cbf8d79c794ff3eb9f8800064291427"}, + {file = "pytz-2022.6.tar.gz", hash = "sha256:e89512406b793ca39f5971bc999cc538ce125c0e51c27941bef4568b460095e2"}, +] +pyyaml = [ + {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, + {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, + {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, + {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"}, + {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"}, + {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"}, + {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"}, + {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"}, + {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"}, + {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"}, + {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"}, + {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"}, + {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"}, + {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"}, + {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"}, + {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"}, + {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"}, + {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"}, + {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"}, + {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, + {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, +] +pyyaml-env-tag = [ + {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, + {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, +] +rdflib = [ + {file = "rdflib-6.2.0-py3-none-any.whl", hash = "sha256:85c34a86dfc517a41e5f2425a41a0aceacc23983462b32e68610b9fad1383bca"}, + {file = "rdflib-6.2.0.tar.gz", hash = "sha256:62dc3c86d1712db0f55785baf8047f63731fa59b2682be03219cb89262065942"}, +] +rdflib-jsonld = [ + {file = "rdflib-jsonld-0.6.1.tar.gz", hash = "sha256:eda5a42a2e09f80d4da78e32b5c684bccdf275368f1541e6b7bcddfb1382a0e0"}, + {file = "rdflib_jsonld-0.6.1-py2.py3-none-any.whl", hash = "sha256:bcf84317e947a661bae0a3f2aee1eced697075fc4ac4db6065a3340ea0f10fc2"}, +] +rdflib-shim = [ + {file = "rdflib_shim-1.0.3-py3-none-any.whl", hash = "sha256:7a853e7750ef1e9bf4e35dea27d54e02d4ed087de5a9e0c329c4a6d82d647081"}, + {file = "rdflib_shim-1.0.3.tar.gz", hash = "sha256:d955d11e2986aab42b6830ca56ac6bc9c893abd1d049a161c6de2f1b99d4fc0d"}, +] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] +ruamel-yaml = [ + {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"}, + {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"}, +] +ruamel-yaml-clib = [ + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_12_6_arm64.whl", hash = "sha256:721bc4ba4525f53f6a611ec0967bdcee61b31df5a56801281027a3a6d1c2daf5"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4b3a93bb9bc662fc1f99c5c3ea8e623d8b23ad22f861eb6fce9377ac07ad6072"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_12_0_arm64.whl", hash = "sha256:a234a20ae07e8469da311e182e70ef6b199d0fbeb6c6cc2901204dd87fb867e8"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:15910ef4f3e537eea7fe45f8a5d19997479940d9196f357152a09031c5be59f3"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:370445fd795706fd291ab00c9df38a0caed0f17a6fb46b0f607668ecb16ce763"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win32.whl", hash = "sha256:ecdf1a604009bd35c674b9225a8fa609e0282d9b896c03dd441a91e5f53b534e"}, + {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win_amd64.whl", hash = "sha256:f34019dced51047d6f70cb9383b2ae2853b7fc4dce65129a5acd49f4f9256646"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aa261c29a5545adfef9296b7e33941f46aa5bbd21164228e833412af4c9c75f"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f01da5790e95815eb5a8a138508c01c758e5f5bc0ce4286c4f7028b8dd7ac3d0"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:40d030e2329ce5286d6b231b8726959ebbe0404c92f0a578c0e2482182e38282"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c3ca1fbba4ae962521e5eb66d72998b51f0f4d0f608d3c0347a48e1af262efa7"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win32.whl", hash = "sha256:7bdb4c06b063f6fd55e472e201317a3bb6cdeeee5d5a38512ea5c01e1acbdd93"}, + {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:be2a7ad8fd8f7442b24323d24ba0b56c51219513cfa45b9ada3b87b76c374d4b"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"}, + {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"}, +] +setuptools = [ + {file = "setuptools-65.5.0-py3-none-any.whl", hash = "sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356"}, + {file = "setuptools-65.5.0.tar.gz", hash = "sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17"}, +] +shexjsg = [ + {file = "ShExJSG-0.8.2-py2.py3-none-any.whl", hash = "sha256:3b0d8432dd313bee9e1343382c5e02e9908dd941a7dd7342bf8c0200fe523766"}, + {file = "ShExJSG-0.8.2.tar.gz", hash = "sha256:f17a629fc577fa344382bdee143cd9ff86588537f9f811f66cea6f63cdbcd0b6"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +snowballstemmer = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] +sparqlslurper = [ + {file = "sparqlslurper-0.5.1-py3-none-any.whl", hash = "sha256:ae49b2d8ce3dd38df7a40465b228ad5d33fb7e11b3f248d195f9cadfc9cfff87"}, + {file = "sparqlslurper-0.5.1.tar.gz", hash = "sha256:9282ebb064fc6152a58269d194cb1e7b275b0f095425a578d75b96dcc851f546"}, +] +sparqlwrapper = [ + {file = "SPARQLWrapper-2.0.0-py3-none-any.whl", hash = "sha256:c99a7204fff676ee28e6acef327dc1ff8451c6f7217dcd8d49e8872f324a8a20"}, + {file = "SPARQLWrapper-2.0.0.tar.gz", hash = "sha256:3fed3ebcc77617a4a74d2644b86fd88e0f32e7f7003ac7b2b334c026201731f1"}, +] +sphinx = [ + {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, + {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, +] +sphinx-click = [ + {file = "sphinx-click-4.3.0.tar.gz", hash = "sha256:bd4db5d3c1bec345f07af07b8e28a76cfc5006d997984e38ae246bbf8b9a3b38"}, + {file = "sphinx_click-4.3.0-py3-none-any.whl", hash = "sha256:23e85a3cb0b728a421ea773699f6acadefae171d1a764a51dd8ec5981503ccbe"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] +sqlalchemy = [ + {file = "SQLAlchemy-1.4.42-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:28e881266a172a4d3c5929182fde6bb6fba22ac93f137d5380cc78a11a9dd124"}, + {file = "SQLAlchemy-1.4.42-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ca9389a00f639383c93ed00333ed763812f80b5ae9e772ea32f627043f8c9c88"}, + {file = "SQLAlchemy-1.4.42-cp27-cp27m-win32.whl", hash = "sha256:1d0c23ecf7b3bc81e29459c34a3f4c68ca538de01254e24718a7926810dc39a6"}, + {file = "SQLAlchemy-1.4.42-cp27-cp27m-win_amd64.whl", hash = "sha256:6c9d004eb78c71dd4d3ce625b80c96a827d2e67af9c0d32b1c1e75992a7916cc"}, + {file = "SQLAlchemy-1.4.42-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:9e3a65ce9ed250b2f096f7b559fe3ee92e6605fab3099b661f0397a9ac7c8d95"}, + {file = "SQLAlchemy-1.4.42-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:2e56dfed0cc3e57b2f5c35719d64f4682ef26836b81067ee6cfad062290fd9e2"}, + {file = "SQLAlchemy-1.4.42-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b42c59ffd2d625b28cdb2ae4cde8488543d428cba17ff672a543062f7caee525"}, + {file = "SQLAlchemy-1.4.42-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22459fc1718785d8a86171bbe7f01b5c9d7297301ac150f508d06e62a2b4e8d2"}, + {file = "SQLAlchemy-1.4.42-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df76e9c60879fdc785a34a82bf1e8691716ffac32e7790d31a98d7dec6e81545"}, + {file = "SQLAlchemy-1.4.42-cp310-cp310-win32.whl", hash = "sha256:e7e740453f0149437c101ea4fdc7eea2689938c5760d7dcc436c863a12f1f565"}, + {file = "SQLAlchemy-1.4.42-cp310-cp310-win_amd64.whl", hash = "sha256:effc89e606165ca55f04f3f24b86d3e1c605e534bf1a96e4e077ce1b027d0b71"}, + {file = "SQLAlchemy-1.4.42-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:97ff50cd85bb907c2a14afb50157d0d5486a4b4639976b4a3346f34b6d1b5272"}, + {file = "SQLAlchemy-1.4.42-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e12c6949bae10f1012ab5c0ea52ab8db99adcb8c7b717938252137cdf694c775"}, + {file = "SQLAlchemy-1.4.42-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11b2ec26c5d2eefbc3e6dca4ec3d3d95028be62320b96d687b6e740424f83b7d"}, + {file = "SQLAlchemy-1.4.42-cp311-cp311-win32.whl", hash = "sha256:6045b3089195bc008aee5c273ec3ba9a93f6a55bc1b288841bd4cfac729b6516"}, + {file = "SQLAlchemy-1.4.42-cp311-cp311-win_amd64.whl", hash = "sha256:0501f74dd2745ec38f44c3a3900fb38b9db1ce21586b691482a19134062bf049"}, + {file = "SQLAlchemy-1.4.42-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:6e39e97102f8e26c6c8550cb368c724028c575ec8bc71afbbf8faaffe2b2092a"}, + {file = "SQLAlchemy-1.4.42-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15d878929c30e41fb3d757a5853b680a561974a0168cd33a750be4ab93181628"}, + {file = "SQLAlchemy-1.4.42-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fa5b7eb2051e857bf83bade0641628efe5a88de189390725d3e6033a1fff4257"}, + {file = "SQLAlchemy-1.4.42-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e1c5f8182b4f89628d782a183d44db51b5af84abd6ce17ebb9804355c88a7b5"}, + {file = "SQLAlchemy-1.4.42-cp36-cp36m-win32.whl", hash = "sha256:a7dd5b7b34a8ba8d181402d824b87c5cee8963cb2e23aa03dbfe8b1f1e417cde"}, + {file = "SQLAlchemy-1.4.42-cp36-cp36m-win_amd64.whl", hash = "sha256:5ede1495174e69e273fad68ad45b6d25c135c1ce67723e40f6cf536cb515e20b"}, + {file = "SQLAlchemy-1.4.42-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:9256563506e040daddccaa948d055e006e971771768df3bb01feeb4386c242b0"}, + {file = "SQLAlchemy-1.4.42-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4948b6c5f4e56693bbeff52f574279e4ff972ea3353f45967a14c30fb7ae2beb"}, + {file = "SQLAlchemy-1.4.42-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1811a0b19a08af7750c0b69e38dec3d46e47c4ec1d74b6184d69f12e1c99a5e0"}, + {file = "SQLAlchemy-1.4.42-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b01d9cd2f9096f688c71a3d0f33f3cd0af8549014e66a7a7dee6fc214a7277d"}, + {file = "SQLAlchemy-1.4.42-cp37-cp37m-win32.whl", hash = "sha256:bd448b262544b47a2766c34c0364de830f7fb0772d9959c1c42ad61d91ab6565"}, + {file = "SQLAlchemy-1.4.42-cp37-cp37m-win_amd64.whl", hash = "sha256:04f2598c70ea4a29b12d429a80fad3a5202d56dce19dd4916cc46a965a5ca2e9"}, + {file = "SQLAlchemy-1.4.42-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:3ab7c158f98de6cb4f1faab2d12973b330c2878d0c6b689a8ca424c02d66e1b3"}, + {file = "SQLAlchemy-1.4.42-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ee377eb5c878f7cefd633ab23c09e99d97c449dd999df639600f49b74725b80"}, + {file = "SQLAlchemy-1.4.42-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:934472bb7d8666727746a75670a1f8d91a9cae8c464bba79da30a0f6faccd9e1"}, + {file = "SQLAlchemy-1.4.42-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb94a3d1ba77ff2ef11912192c066f01e68416f554c194d769391638c8ad09a"}, + {file = "SQLAlchemy-1.4.42-cp38-cp38-win32.whl", hash = "sha256:f0f574465b78f29f533976c06b913e54ab4980b9931b69aa9d306afff13a9471"}, + {file = "SQLAlchemy-1.4.42-cp38-cp38-win_amd64.whl", hash = "sha256:a85723c00a636eed863adb11f1e8aaa36ad1c10089537823b4540948a8429798"}, + {file = "SQLAlchemy-1.4.42-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:5ce6929417d5dce5ad1d3f147db81735a4a0573b8fb36e3f95500a06eaddd93e"}, + {file = "SQLAlchemy-1.4.42-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723e3b9374c1ce1b53564c863d1a6b2f1dc4e97b1c178d9b643b191d8b1be738"}, + {file = "SQLAlchemy-1.4.42-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:876eb185911c8b95342b50a8c4435e1c625944b698a5b4a978ad2ffe74502908"}, + {file = "SQLAlchemy-1.4.42-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fd49af453e590884d9cdad3586415922a8e9bb669d874ee1dc55d2bc425aacd"}, + {file = "SQLAlchemy-1.4.42-cp39-cp39-win32.whl", hash = "sha256:e4ef8cb3c5b326f839bfeb6af5f406ba02ad69a78c7aac0fbeeba994ad9bb48a"}, + {file = "SQLAlchemy-1.4.42-cp39-cp39-win_amd64.whl", hash = "sha256:5f966b64c852592469a7eb759615bbd351571340b8b344f1d3fa2478b5a4c934"}, + {file = "SQLAlchemy-1.4.42.tar.gz", hash = "sha256:177e41914c476ed1e1b77fd05966ea88c094053e17a85303c4ce007f88eff363"}, +] +stringcase = [ + {file = "stringcase-1.2.0.tar.gz", hash = "sha256:48a06980661908efe8d9d34eab2b6c13aefa2163b3ced26972902e3bdfd87008"}, +] +tomli = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] +toolz = [ + {file = "toolz-0.12.0-py3-none-any.whl", hash = "sha256:2059bd4148deb1884bb0eb770a3cde70e7f954cfbbdc2285f1f2de01fd21eb6f"}, + {file = "toolz-0.12.0.tar.gz", hash = "sha256:88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194"}, +] +typer = [ + {file = "typer-0.4.2-py3-none-any.whl", hash = "sha256:023bae00d1baf358a6cc7cea45851639360bb716de687b42b0a4641cd99173f1"}, + {file = "typer-0.4.2.tar.gz", hash = "sha256:b8261c6c0152dd73478b5ba96ba677e5d6948c715c310f7c91079f311f62ec03"}, +] +typing-extensions = [ + {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, + {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, +] +urllib3 = [ + {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, + {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, +] +watchdog = [ + {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330"}, + {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d"}, + {file = "watchdog-2.1.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ee3e38a6cc050a8830089f79cbec8a3878ec2fe5160cdb2dc8ccb6def8552658"}, + {file = "watchdog-2.1.9-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64a27aed691408a6abd83394b38503e8176f69031ca25d64131d8d640a307591"}, + {file = "watchdog-2.1.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:195fc70c6e41237362ba720e9aaf394f8178bfc7fa68207f112d108edef1af33"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bfc4d351e6348d6ec51df007432e6fe80adb53fd41183716017026af03427846"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8250546a98388cbc00c3ee3cc5cf96799b5a595270dfcfa855491a64b86ef8c3"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:117ffc6ec261639a0209a3252546b12800670d4bf5f84fbd355957a0595fe654"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:97f9752208f5154e9e7b76acc8c4f5a58801b338de2af14e7e181ee3b28a5d39"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:247dcf1df956daa24828bfea5a138d0e7a7c98b1a47cf1fa5b0c3c16241fcbb7"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:226b3c6c468ce72051a4c15a4cc2ef317c32590d82ba0b330403cafd98a62cfd"}, + {file = "watchdog-2.1.9-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d9820fe47c20c13e3c9dd544d3706a2a26c02b2b43c993b62fcd8011bcc0adb3"}, + {file = "watchdog-2.1.9-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:70af927aa1613ded6a68089a9262a009fbdf819f46d09c1a908d4b36e1ba2b2d"}, + {file = "watchdog-2.1.9-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed80a1628cee19f5cfc6bb74e173f1b4189eb532e705e2a13e3250312a62e0c9"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_aarch64.whl", hash = "sha256:9f05a5f7c12452f6a27203f76779ae3f46fa30f1dd833037ea8cbc2887c60213"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_armv7l.whl", hash = "sha256:255bb5758f7e89b1a13c05a5bceccec2219f8995a3a4c4d6968fe1de6a3b2892"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_i686.whl", hash = "sha256:d3dda00aca282b26194bdd0adec21e4c21e916956d972369359ba63ade616153"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_ppc64.whl", hash = "sha256:186f6c55abc5e03872ae14c2f294a153ec7292f807af99f57611acc8caa75306"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:083171652584e1b8829581f965b9b7723ca5f9a2cd7e20271edf264cfd7c1412"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_s390x.whl", hash = "sha256:b530ae007a5f5d50b7fbba96634c7ee21abec70dc3e7f0233339c81943848dc1"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_x86_64.whl", hash = "sha256:4f4e1c4aa54fb86316a62a87b3378c025e228178d55481d30d857c6c438897d6"}, + {file = "watchdog-2.1.9-py3-none-win32.whl", hash = "sha256:5952135968519e2447a01875a6f5fc8c03190b24d14ee52b0f4b1682259520b1"}, + {file = "watchdog-2.1.9-py3-none-win_amd64.whl", hash = "sha256:7a833211f49143c3d336729b0020ffd1274078e94b0ae42e22f596999f50279c"}, + {file = "watchdog-2.1.9-py3-none-win_ia64.whl", hash = "sha256:ad576a565260d8f99d97f2e64b0f97a48228317095908568a9d5c786c829d428"}, + {file = "watchdog-2.1.9.tar.gz", hash = "sha256:43ce20ebb36a51f21fa376f76d1d4692452b2527ccd601950d69ed36b9e21609"}, +] +wrapt = [ + {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59"}, + {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462"}, + {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1"}, + {file = "wrapt-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320"}, + {file = "wrapt-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069"}, + {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656"}, + {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"}, + {file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"}, + {file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"}, + {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d"}, + {file = "wrapt-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7"}, + {file = "wrapt-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00"}, + {file = "wrapt-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1"}, + {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1"}, + {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569"}, + {file = "wrapt-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed"}, + {file = "wrapt-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471"}, + {file = "wrapt-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d"}, + {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015"}, + {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a"}, + {file = "wrapt-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853"}, + {file = "wrapt-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c"}, + {file = "wrapt-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456"}, + {file = "wrapt-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1"}, + {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0"}, + {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57"}, + {file = "wrapt-1.14.1-cp38-cp38-win32.whl", hash = "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5"}, + {file = "wrapt-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d"}, + {file = "wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383"}, + {file = "wrapt-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735"}, + {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3"}, + {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe"}, + {file = "wrapt-1.14.1-cp39-cp39-win32.whl", hash = "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5"}, + {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, + {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, +] +zipp = [ + {file = "zipp-3.10.0-py3-none-any.whl", hash = "sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1"}, + {file = "zipp-3.10.0.tar.gz", hash = "sha256:7a7262fd930bd3e36c50b9a64897aec3fafff3dfdeec9623ae22b40e93f99bb8"}, +] diff --git a/pyproject.toml b/pyproject.toml index dc18d8d..4b17f23 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,62 +1,51 @@ -[build-system] -requires = ["flit_core >=2,<4"] -build-backend = "flit_core.buildapi" - -[tool.flit.metadata] -module = "koza" -author = "The Monarch Initiative" -author-email = "info@monarchinitiative.org" -home-page = "https://github.com/monarch-initiative/koza" -classifiers = [ - "Development Status :: 2 - Pre-Alpha", - "License :: OSI Approved :: BSD License", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Operating System :: POSIX :: Linux", -] -requires = [ - "pydantic >=1.0.0,<2.0.0", - "pyyaml >=5.3.1,<6.0.0", - "requests >=2.24.0,<3.0.0", - "typer >=0.3", - "ordered-set >= 4.1.0", - "linkml-validator >= 0.1.0", - "mkdocs >= 1.3.0", - "mkdocs-material >= 8.3.4" -] -description-file = "README.md" -requires-python = ">=3.8" +[tool.poetry] +name = "koza" +version = "0.2.2" +description = "Data transformation framework for LinkML data models" +authors = [ + "The Monarch Initiative ", + "Kevin Schaper ", + "Glass Elsarboukh ", + "Kent Shefchek ", + ] +readme = "README.md" +license = "BSD License" -[tool.flit.metadata.urls] -Documentation = "https://github.com/monarch-initiative/koza" +[tool.poetry.dependencies] +python = "^3.8" +linkml = ">=1.1.18,<1.3.3" # Result of a bug in 1.3.3; remove when fixed +linkml-validator = ">=0.4.3" +pydantic = "^1.0.0" +pyyaml = "^5.3.1" +requests = "^2.24.0" +ordered-set = ">=4.1.0" +# typer = "^0.6.1" # Uncomment when monarch packages getg updated +typer = "^0.4" +click = "8.0.4" # force specific version of click for now, because typer 0.4.1 is busted -[tool.flit.metadata.requires-extra] -test = [ - "pytest >=6.0.0", -] +[tool.poetry.dev-dependencies] +pytest = ">=6.0.0" +biolink-model = ">=3.0.1" +autoflake = "^1.3.1" +black = "22.3.0" +isort = "^5.0.6" +dask = ">=2022.5.2" +mkdocs = ">=1.3.0" +mkdocs-material = ">=8.3.4" -dev = [ - "biolink-model-pydantic >=0.1.11", - "autoflake >=1.3.1,<2.0.0", - "flake8 >=3.8.3,<4.0.0", - "black ==22.3.0", - "isort >=5.0.6,<6.0.0", - "dask >=2022.5.2", -] +[tool.poetry.scripts] +koza = "koza.main:typer_app" -[tool.flit.scripts] -koza = "koza:main.typer_app" +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" [tool.black] -line_length = 100 +line_length = 120 skip-string-normalization = true [tool.isort] profile = "black" -line_length = 100 +line_length = 120 multi_line_output = 3 include_trailing_comma = true diff --git a/tests/integration/test_archives.py b/tests/integration/test_archives.py index e29c9d2..326c334 100644 --- a/tests/integration/test_archives.py +++ b/tests/integration/test_archives.py @@ -1,7 +1,6 @@ import os -from pathlib import Path - import yaml +from pathlib import Path from koza.io.yaml_loader import UniqueIncludeLoader from koza.model.config.source_config import PrimaryFileConfig @@ -10,6 +9,7 @@ def test_archive_targz(): source = Path('tests/resources/string.yaml') unzipped_data = Path('tests/resources/source-files/string.tsv.gz') + # Delete unzipped archive if it exists if os.path.exists(unzipped_data.absolute()): os.remove(unzipped_data.absolute()) diff --git a/tests/integration/test_validator.py b/tests/integration/test_validator.py index ada56f3..7b6fa1f 100644 --- a/tests/integration/test_validator.py +++ b/tests/integration/test_validator.py @@ -46,7 +46,6 @@ def test_validator(source_name, ingest, output_format, schema): output_format, global_table="tests/resources/translation_table.yaml", schema=schema - #schema="tests/resources/biolink-model.yaml", ) for file in output_files: diff --git a/tests/resources/biolink-model.yaml b/tests/resources/biolink-model.yaml index 548a0ed..3964216 100644 --- a/tests/resources/biolink-model.yaml +++ b/tests/resources/biolink-model.yaml @@ -5,8 +5,7 @@ license: https://creativecommons.org/publicdomain/zero/1.0/ # Version should be kept in sync with primary Git repository release tag -version: 2.2.16 - +version: 3.0.3 ## ------------ ## PREFIXES @@ -20,7 +19,7 @@ version: 2.2.16 # 1. The following 'prefixes:' delimited list has first precedence in resolution. # prefixes: - alliancegenome: 'https://www.alliancegenome.org/' + AGRKB: 'https://www.alliancegenome.org/' apollo: 'https://github.com/GMOD/Apollo' AspGD: 'http://www.aspergillusgenome.org/cgi-bin/locus.pl?dbid=' biolink: 'https://w3id.org/biolink/vocab/' @@ -36,6 +35,7 @@ prefixes: CLINVAR: 'http://identifiers.org/clinvar' COAR_RESOURCE: 'http://purl.org/coar/resource_type/' COG: 'https://www.ncbi.nlm.nih.gov/research/cog-project/' + ComplexPortal: 'https://www.ebi.ac.uk/complexportal/complex/' CPT: 'https://www.ama-assn.org/practice-management/cpt/' CTD.CHEMICAL: 'http://ctdbase.org/detail.go?type=chem&acc=' CTD.DISEASE: 'http://ctdbase.org/detail.go?type=disease&db=MESH&acc=' @@ -57,9 +57,10 @@ prefixes: ExO: 'http://purl.obolibrary.org/obo/ExO_' fabio: 'http://purl.org/spar/fabio/' foaf: 'http://xmlns.com/foaf/0.1/' - foodb.compound: 'http://foodb.ca/compounds/' + foodb.food: 'http://foodb.ca/compounds/' + foodb.compound: 'http://foodb.ca/foods/' + FYECO: 'https://www.pombase.org/term/' FYPO: 'http://purl.obolibrary.org/obo/FYPO_' # Fission Yeast Phenotype Ontology - GAMMA: 'http://translator.renci.org/GAMMA_' gff3: 'https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md#' GOREL: 'http://purl.obolibrary.org/obo/GOREL_' # GOP: Gene Ontology Property (not really a GO term but an associated metadatum) @@ -79,6 +80,7 @@ prefixes: isbn: 'https://www.isbn-international.org/identifier/' # note: a resolvable base URI not available from isbn-international isni: 'https://isni.org/isni/' issn: 'https://portal.issn.org/resource/ISSN/' + ncats.drug: 'https://drugs.ncats.io/drug/' KEGG.BRITE: 'http://www.kegg.jp/entry/' KEGG.DGROUP: 'http://www.kegg.jp/entry/' KEGG.ENZYME: 'http://www.kegg.jp/entry/' @@ -93,8 +95,11 @@ prefixes: MESH: 'http://id.nlm.nih.gov/mesh/' MI: 'http://purl.obolibrary.org/obo/MI_' mirbase: 'http://identifiers.org/mirbase' + mmmp.biomaps: 'https://bioregistry.io/mmmp.biomaps:' + MmusDv: 'http://purl.obolibrary.org/obo/MMUSDV_' MSigDB: 'https://www.gsea-msigdb.org/gsea/msigdb/' NBO-PROPERTY: 'http://purl.obolibrary.org/obo/nbo#' + ncats.bioplanet: 'https://tripod.nih.gov/bioplanet/detail.jsp?pid=' NCBIGene: 'http://identifiers.org/ncbigene/' NCIT-OBO: 'http://purl.obolibrary.org/obo/ncit#' NDDF: 'http://purl.bioontology.org/ontology/NDDF/' @@ -104,7 +109,7 @@ prefixes: OMIM.PS: 'https://www.omim.org/phenotypicSeries/' OBOREL: 'http://purl.obolibrary.org/obo/RO_' ORCID: 'https://orcid.org/' - ORPHA: 'http://www.orpha.net/ORDO/Orphanet_' + orphanet: 'http://www.orpha.net/ORDO/Orphanet_' os: 'https://github.com/cmungall/owlstar/blob/master/owlstar.ttl' PANTHER.FAMILY: 'http://www.pantherdb.org/panther/family.do?clsAccession=' PathWhiz: 'http://smpdb.ca/pathways/#' # See also https://smpdb.ca/pathwhiz/ @@ -125,6 +130,7 @@ prefixes: SIO: 'http://semanticscience.org/resource/SIO_' SNOMED: 'http://www.snomedbrowser.com/Codes/Details/' SNOMEDCT: 'http://www.snomedbrowser.com/Codes/Details/' + SPDI: 'https://api.ncbi.nlm.nih.gov/variation/v0/spdi/' UBERGRAPH: 'http://translator.renci.org/ubergraph-axioms.ofn#' UBERON_CORE: 'http://purl.obolibrary.org/obo/uberon/core#' UBERON_NONAMESPACE: 'http://purl.obolibrary.org/obo/core#' @@ -138,6 +144,8 @@ prefixes: # See also: https://www.ga4gh.org/work_stream/genomic-knowledge-standards/#existing-standards and # https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7153148/ VMC: 'https://github.com/ga4gh/vr-spec/' + WBls: 'http://purl.obolibrary.org/obo/WBBL_' + WBbt: 'http://purl.obolibrary.org/obo/WBBT_' WBVocab: 'http://bio2rdf.org/wormbase_vocabulary' WIKIDATA: 'https://www.wikidata.org/wiki/' # Wikidata Entity WIKIDATA_PROPERTY: 'https://www.wikidata.org/wiki/Property:' # Wikidata Property - not a conventional namespace prefix @@ -169,196 +177,6 @@ emit_prefixes: ## ------------ ## SUBSETS ## ------------ -enums: - logical_interpretation_enum: - permissible_values: - SomeSome: - description: >- - A modifier on a triple that causes the triple to be interpreted as a some-some statement - meaning: os:SomeSomeInterpretation - AllSome: - description: >- - A modifier on a triple that causes the triple to be interpreted as an all-some statement. - meaning: os:AllSomeInterpretation - InverseAllSome: - - reaction_direction_enum: - permissible_values: - left_to_right: - right_to_left: - bidirectional: - neutral: - - reaction_side_enum: - permissible_values: - left: - right: - - phase_enum: - description: phase - permissible_values: - 0: - 1: - 2: - - strand_enum: - description: strand - permissible_values: - "+": - description: Positive - "-": - description: Negative - ".": - description: Unstranded - "?": - description: Unknown - - sequence_enum: - description: type of sequence - permissible_values: - "NA": - description: nucleic acid - "AA": - description: amino acid - - predicate_qualifier_enum: - description: >- - constrained list of qualifying terms that soften or expand the definition of the predicate used. - can be used to constrain or qualify any predicate (any child of related_to). - permissible_values: - "predicted": - "possibly": - "hypothesized": - "validated": - "supported by real-world evidence": - "supported by clinical evidence": - - druggable_gene_category_enum: - permissible_values: - "Tclin": - description: >- - These targets have activities in DrugCentral (ie. approved drugs) with known mechanism of action. - "Tbio": - description: >- - These targets have activities in ChEMBL, Guide to Pharmacology or DrugCentral that satisfy - the activity thresholds detailed below. - "Tchem": - description: >- - These targets do not have known drug or small molecule activities that satisfy the activity - thresholds detailed below AND satisfy one or more of the following criteria: - target is above the cutoff criteria for Tdark - target is annotated with a Gene Ontology Molecular Function or Biological Process leaf term(s) - with an Experimental Evidence code - "Tdark": - description: >- - These are targets about which virtually nothing is known. They do not have known drug or small - molecule activities that satisfy the activity thresholds detailed below AND satisfy two or - more of the following criteria: - A PubMed text-mining score from Jensen Lab less than 5, greater than or equal TO 3 Gene RIFs, or - less than or equal to 50 Antibodies available according to http://antibodypedia.com. - - drug_availability_enum: - description: >- - permissible_values: - "over the counter": - description: >- - chemical entity is available over the counter without a prescription. - "prescription": - description: - chemical entity is available by prescription. - - drug_delivery_enum: - permissible_values: - "inhalation": - "oral": - "absorbtion through the skin": - "intravenous injection": - - FDA_approval_status_enum: - description: >- - permissible_values: - "Discovery & Development Phase": - description: >- - Discovery & Development Phase. Discovery involves researchers finding new possibilities - for medication through testing molecular compounds, noting unexpected effects from existing treatments, - or the creation of new technology that allows novel ways of targeting medical products to sites in the body. - Drug development occurs after researchers identify potential compounds for experiments. - "Preclinical Research Phase": - description: >- - Preclinical Research Phase. Once researchers have examined the possibilities a new drug may contain, - they must do preliminary research to determine its potential for harm (toxicity). - This is categorized as preclinical research and can be one of two types: in vitro or in vivo. - "FDA Clinical Research Phase": - description: >- - Clinical Research Phase. Clinical research involves trials of the drug on people, - and it is one of the most involved stages in the drug development and approval process. - Clinical trials must answer specific questions and follow a protocol determined by - the drug researcher or manufacturer. - "FDA Review Phase 4": - description: >- - FDA Review - "FDA Post-Market Safety Monitoring": - description: >- - FDA Post-Market Safety Monitoring. The last phase of drug approval is an ongoing one - while the drug is on the marketplace. If a developer wants to change anything about the - drug formulation or approve it for a new use, they must apply with the FDA. The FDA also - frequently reviews the drug’s advertising and its manufacturing facility to make sure - everything involved in its creation and marketing is in compliance with regulations. - "FDA Clinical Research Phase 1": - description: >- - In the FDA Clinical Research Phase, the Clinical Research Phase 1 involves 20 – 100 study participants and - lasts several months. This phase is used to determine the safety and dosage of the drug, - and about 70% of these drugs move on to the next clinical research phase. - "FDA Clinical Research Phase 2": - description: >- - In the FDA Clinical Research Phase, the Clinical Research Phase 2 involves up to several hundred people, - who must have the disease or condition the drug supposes to treat. This phase can last - from a few months to two years, and its purpose is to monitor the efficacy of the drug, - as well as note side effects that may occur. - "FDA Clinical Research Phase 3": - description: >- - In the FDA Clinical Research Phase, the Clinical Research Phase 3 involves 300 – 3000 volunteers - and can last up to four years. It is used to continue monitoring the efficacy of - the drug, as well as exploring any longer-term adverse reactions. - "FDA Clinical Research Phase 4": - description: >- - In the FDA Clinical Research Phase, the Clinical Research Phase 4 involves several thousands of - volunteers who have the disease or condition and continues to monitor safety and efficacy. - If a drug passes this phase, it goes on to FDA review. - "FDA Fast Track": - description: >- - Fast track is a process designed to facilitate the development, and expedite the - review of drugs to treat serious conditions and fill an unmet medical need. - The purpose is to get important new drugs to the patient earlier. Fast Track - addresses a broad range of serious conditions. For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/fast-track - "FDA Breakthrough Therapy": - description: >- - Breakthrough Therapy designation is a process designed to expedite the - development and review of drugs that are intended to treat a serious - condition and preliminary clinical evidence indicates that the drug may - demonstrate substantial improvement over available therapy on a clinically significant endpoint(s). - For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/breakthrough-therapy - "FDA Accelerated Approval": - description: >- - When studying a new drug, it can sometimes take many years to learn whether a drug actually - provides a real effect on how a patient survives, feels, or functions. A positive therapeutic - effect that is clinically meaningful in the context of a given disease is known as “clinical benefit”. - Mindful of the fact that it may take an extended period of time to measure a drug’s intended clinical - benefit, in 1992 FDA instituted the Accelerated Approval regulations. These regulations allowed drugs - for serious conditions that filled an unmet medical need to be approved based on a surrogate endpoint. - Using a surrogate endpoint enabled the FDA to approve these drugs faster. - For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/accelerated-approval - "FDA Priority Review": - description: >- - Prior to approval, each drug marketed in the United States must go through a detailed FDA review process. - In 1992, under the Prescription Drug User Act (PDUFA), FDA agreed to specific goals for improving - the drug review time and created a two-tiered system of review times – Standard Review and Priority - Review. A Priority Review designation means FDA’s goal is to take action on an application - within 6 months (compared to 10 months under standard review). - For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/priority-review - "Regular FDA Approval": - "Post-Approval Withdrawal": - subsets: @@ -437,7 +255,7 @@ types: uri: UO:0000187 quotient: - aliases: ['ratio'] + aliases: [ 'ratio' ] typeof: double uri: UO:0010006 @@ -461,9 +279,9 @@ types: slots: -## --------------- -## ATTRIBUTE SLOTS -## --------------- + ## --------------- + ## ATTRIBUTE SLOTS + ## --------------- has attribute: description: >- @@ -644,9 +462,9 @@ slots: A position in the base coordinate system. Base coordinates start at position 1 instead of position 0. range: integer -## -------------------- -## NODE PROPERTY SLOTS -## -------------------- + ## -------------------- + ## NODE PROPERTY SLOTS + ## -------------------- node property: description: >- @@ -662,7 +480,7 @@ slots: - translator_minimal required: true exact_mappings: - - alliancegenome:primaryId + - agrkb:primaryId - gff3:ID - gpi:DB_Object_ID @@ -679,7 +497,7 @@ slots: type: slot_uri: rdf:type exact_mappings: - - alliancegenome:soTermId + - agrkb:soTermId - gff3:type - gpi:DB_Object_Type @@ -726,9 +544,6 @@ slots: - dct:title - WIKIDATA_PROPERTY:P1476 - source: - deprecated: true - stoichiometry: description: >- the relationship between the relative quantities of substances taking part in a reaction or @@ -760,12 +575,12 @@ slots: description: >- Symbol for a particular thing exact_mappings: - - alliancegenome:symbol + - agrkb:symbol - gpi:DB_Object_Symbol synonym: is_a: node property - aliases: ['alias'] + aliases: [ 'alias' ] domain: named thing range: label type description: >- @@ -779,19 +594,35 @@ slots: # namely, is 'oboInOwl:hasExactSynonym' an instance 'exact_mappings', etc. - skos:altLabel - gff3:Alias - - alliancegenome:synonyms + - agrkb:synonyms - gpi:DB_Object_Synonyms - - oboInOwl:hasExactSynonym - - oboInOwl:hasNarrowSynonym - - oboInOwl:hasBroadSynonym - - oboInOwl:hasRelatedSynonym # TODO: RTX contributed terms mapped here... May need review? - HANCESTRO:0330 - IAO:0000136 - RXNORM:has_tradename + exact_synonym: + is_a: synonym + exact_mappings: + - oboInOwl:hasExactSynonym + + broad_synonym: + is_a: synonym + exact_mappings: + - oboInOwl:hasBroadSynonym + + narrow_synonym: + is_a: synonym + exact_mappings: + - oboInOwl:hasNarrowSynonym + + related_synonym: + is_a: synonym + exact_mappings: + - oboInOwl:hasRelatedSynonym + has topic: - aliases: ['topic', 'descriptors'] + aliases: [ 'topic', 'descriptors' ] is_a: node property range: ontology class exact_mappings: @@ -802,7 +633,7 @@ slots: xref: is_a: node property - aliases: ['dbxref', 'Dbxref', 'DbXref'] + aliases: [ 'dbxref', 'Dbxref', 'DbXref' ] domain: named thing range: uriorcurie description: >- @@ -822,7 +653,7 @@ slots: a long-form human readable name for a thing description: - aliases: ['definition'] + aliases: [ 'definition' ] range: narrative text description: >- a human-readable description of an entity @@ -881,15 +712,14 @@ slots: ## Time timepoint: - is_a: node property - aliases: ['duration'] + aliases: [ 'duration' ] range: time type description: >- a point in time creation date: is_a: node property - aliases: ['publication date'] + aliases: [ 'publication date' ] range: date description: >- date on which an entity was created. This can be applied to nodes or edges @@ -1001,7 +831,7 @@ slots: - dct:format - WIKIDATA_PROPERTY:P2701 - created_with: + created with: is_a: node property domain: dataset exact_mappings: @@ -1109,7 +939,7 @@ slots: is_a: node property # since 'abstract' is a linkML keyword denoting a non-instantiable class or slot, # it is generally recommended that knowledge graphs use 'summary' instead to tag a Publication 'abstract' - aliases: ['abstract'] + aliases: [ 'abstract' ] description: >- executive summary of a publication domain: publication @@ -1224,7 +1054,7 @@ slots: has stressor: is_a: node property domain: exposure event - aliases: ['has stimulus'] + aliases: [ 'has stimulus' ] description: >- the process or entity that the receptor is being exposed to exact_mappings: @@ -1242,21 +1072,27 @@ slots: - SNOMED:has_dose_form_intended_site - SNOMED:has_route_of_administration - has population context: + + population context qualifier: description: >- a biological population (general, study, cohort, etc.) with a specific set of characteristics to constrain an association. is_a: association slot range: population of individual organisms - has temporal context: + temporal context qualifier: description: >- a constraint of time placed upon the truth value of an association. + for time intervales, use temporal interval qualifier. is_a: association slot - # this resolves to the 'time' datatype, but not sure - # if this also represents an interval of time. range: time type + temporal interval qualifier: + is_a: temporal context qualifier + description: >- + a constraint of a time interval placed upon the truth value of an + association. + is supplement: description: >- is_a: node property @@ -1279,6 +1115,13 @@ slots: multivalued: false range: boolean + has chemical role: + is_a: node property + description: >- + A role is particular behaviour which a material entity may exhibit. + range: chemical role + multivalued: true + max tolerated dose: description: >- The highest dose of a drug or treatment that does not cause unacceptable side effects. @@ -1295,6 +1138,11 @@ slots: multivalued: true range: disease or phenotypic feature + FDA adverse event level: + description: >- + is_a: association slot + range: FDA_IDA_adverse_event_enum + highest FDA approval status: description: >- Should be the highest level of FDA approval this chemical entity or device has, regardless of which @@ -1302,9 +1150,34 @@ slots: approval for a specific condition, disease, phenotype, etc., see the association slot, 'FDA approval status.' drug regulatory status world wide: - aliases: ['max phase'] + aliases: [ 'max phase' ] description: >- An agglomeration of drug regulatory status worldwide. Not specific to FDA. + exact_mappings: + - NCIT:C172573 + narrow_mappings: + - NCIT:R172 + - NCIT:regimen_has_accepted_use_for_disease + # RTX mapped REPODB terms + - REPODB:clinically_tested_approved_unknown_phase + - REPODB:clinically_tested_suspended_phase_0 + - REPODB:clinically_tested_suspended_phase_1 + - REPODB:clinically_tested_suspended_phase_1_or_phase_2 + - REPODB:clinically_tested_suspended_phase_2 + - REPODB:clinically_tested_suspended_phase_2_or_phase_3 + - REPODB:clinically_tested_suspended_phase_3 + - REPODB:clinically_tested_terminated_phase_0 + - REPODB:clinically_tested_terminated_phase_1 + - REPODB:clinically_tested_terminated_phase_1_or_phase_2 + - REPODB:clinically_tested_terminated_phase_2 + - REPODB:clinically_tested_terminated_phase_2_or_phase_3 + - REPODB:clinically_tested_terminated_phase_3 + - REPODB:clinically_tested_withdrawn_phase_0 + - REPODB:clinically_tested_withdrawn_phase_1 + - REPODB:clinically_tested_withdrawn_phase_1_or_phase_2 + - REPODB:clinically_tested_withdrawn_phase_2 + - REPODB:clinically_tested_withdrawn_phase_2_or_phase_3 + - REPODB:clinically_tested_withdrawn_phase_3 routes of delivery: description: >- @@ -1313,26 +1186,286 @@ slots: multivalued: true range: drug_delivery_enum + ## ------------------- + ## QUALIFIERS + ## ------------------- -## -------------------- -## PREDICATES/RELATIONS -## -------------------- + form or variant qualifier: + is_a: association slot + abstract: true + description: >- + A qualifier that composes with a core subject/object concept to define a specific type, variant, + alternative version of this concept. The composed concept remains a subtype or instance of the core concept. + For example, the qualifier ‘mutation’ combines with the core concept ‘Gene X’ to express the compose concept + ‘a mutation of Gene X’. + examples: + - value: mutation + notes: >- + please see the chemical_or_gene_or_gene_product_form_or_variant_enum (below) for examples of 'form or variant qualifier' + terms in the gene->chemical association space. - related to: + aspect qualifier: + is_a: association slot + abstract: true description: >- - A relationship that is asserted between two named things - domain: named thing - range: named thing - multivalued: true - inherited: true - symmetric: true - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - skos:relatedMatch - - UMLS:related_to + Composes with the core concept to describe new concepts of a different ontological type. e.g. a process in which + the core concept participates, a function/activity/role held by the core concept, or a characteristic/quality that + inheres in the core concept. + examples: + - value: stability + - value: abundance + - value: expression + - value: exposure + notes: >- + for good examples of aspects in the gene-> chemical space, please see the + gene_or_gene_product_or_chemical_entity_aspect_enum (below) which lists many aspects that can be used to qualify + the gene making the full subject a different ontological type. + + derivative qualifier: + is_a: association slot + abstract: true + description: >- + A qualifier that composes with a core subject/object concept to describe something that is derived from the + core concept. For example, the qualifier ‘metabolite’ combines with a ‘Chemical X’ core concept to express + the composed concept ‘a metabolite of Chemical X’. + examples: + - value: metabolite + + part qualifier: + is_a: association slot + abstract: true + description: >- + defines a specific part/component of the core concept (used in cases there this specific part has no IRI we can + use to directly represent it, e.g. 'ESR1 transcript' q: polyA tail). + examples: + - value: polyA tail + - value: upstream control region + + context qualifier: + is_a: association slot + abstract: true + description: >- + Restricts the setting/context/location where the core concept (or qualified core concept) resides or occurs. + examples: + - value: cohort x + - value: blood + - value: gut microbiome + + direction qualifier: + is_a: association slot + abstract: true + description: >- + Composes with the core concept (+ aspect if provided) to describe a change in its direction or degree. + + mapped predicate: + description: >- + The predicate that is being replaced by the fully qualified representation of predicate + subject and object + qualifiers. Only to be used in test data and mapping data to help with the transition to the fully qualified + predicate model. Not to be used in knowledge graphs. + + deprecated predicate mappings: + description: >- + A collection of relationships that are not used in biolink, but have biolink patterns that can + be used to replace them. This is a temporary slot to help with the transition to the fully qualified predicate + model in Biolink3. + multivalued: true + range: deprecated predicate mapping + inlined_as_list: true + + exact matches: + description: >- + A list of terms from different schemas or terminology systems that have + an identical meaning. Such terms often describe the same concept from + different ontological perspectives. + multivalued: true + + narrow matches: + description: >- + A list of terms from different schemas or terminology systems that have + a narrower meaning. Such terms often describe a more specific concept + from different ontological perspectives. + multivalued: true + + broad matches: + description: >- + A list of terms from different schemas or terminology systems that have + a broader meaning. Such terms often describe a more general concept + from different ontological perspectives. + multivalued: true + + subject aspect qualifier: + is_a: aspect qualifier + + subject form or variant qualifier: + is_a: form or variant qualifier + + subject part qualifier: + is_a: part qualifier + + subject derivative qualifier: + is_a: derivative qualifier + + subject context qualifier: + is_a: context qualifier + + subject direction qualifier: + is_a: direction qualifier + + object aspect qualifier: + is_a: aspect qualifier + + object form or variant qualifier: + is_a: form or variant qualifier + + object part qualifier: + is_a: part qualifier + + object derivative qualifier: + is_a: derivative qualifier + + object context qualifier: + is_a: context qualifier + + object direction qualifier: + is_a: direction qualifier + range: direction_qualifier_enum + + qualified predicate: + is_a: association slot + description: >- + predicate to be used in an association when subject and object qualifiers are present and the full + reading of the statement requires a qualification to the predicate in use in order to refine or + increase the specificity of the full statement reading + + statement qualifier: + is_a: association slot + description: >- + + causal mechanism qualifier: + is_a: statement qualifier + description: >- + A statement qualifier representing a type of molecular control mechanism through which an + effect of a chemical on a gene or gene product is mediated (e.g. 'agonism', 'inhibition', + 'allosteric modulation', 'channel blocker') + + anatomical context qualifier: + is_a: statement qualifier + description: >- + A statement qualifier representing an anatomical location where an relationship expressed in an + association took place (can be a tissue, cell type, or subcellular location). + range: anatomical_context_qualifier_enum + notes: >- + Anatomical context values can be any term from UBERON. See anatomical_context_qualifier_enum for more + details. + + species context qualifier: + is_a: statement qualifier + description: >- + A statement qualifier representing a taxonomic category of species in which a relationship + expressed in an association took place. + range: organism taxon + + qualifiers: + singular_name: qualifier + description: >- + connects an association to qualifiers that modify or + qualify the meaning of that association + local_names: + ga4gh: annotation qualifier + is_a: association slot + multivalued: true + range: ontology class + + frequency qualifier: + description: >- + a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject + is_a: association slot + range: frequency value + + severity qualifier: + description: >- + a qualifier used in a phenotypic association to state + how severe the phenotype is in the subject + is_a: association slot + range: severity value + + sex qualifier: + description: >- + a qualifier used in a phenotypic association to state whether + the association is specific to a particular sex. + is_a: association slot + range: biological sex + + onset qualifier: + description: >- + a qualifier used in a phenotypic association to state + when the phenotype appears is in the subject + is_a: association slot + range: onset + + clinical modifier qualifier: + description: >- + the method or process of administering a pharmaceutical compound to achieve a therapeutic + effect in humans or animals. + is_a: association slot + range: clinical modifier + + sequence variant qualifier: + description: >- + a qualifier used in an association with the variant + is_a: association slot + range: sequence variant + + quantifier qualifier: + is_a: association slot + range: ontology class + description: >- + A measurable quantity for the object of the association + narrow_mappings: + # TODO: RTX contributed terms mapped here... May need review? + - LOINC:analyzes + - LOINC:measured_by + - LOINC:property_of + - SEMMEDDB:measures + - UMLS:measures + + catalyst qualifier: + is_a: association slot + multivalued: true + range: macromolecular machine mixin + description: >- + a qualifier that connects an association between two causally connected + entities (for example, two chemical entities, or a chemical entity in + that changes location) and the gene product, gene, or complex that + enables or catalyzes the change. + + stage qualifier: + description: >- + stage during which gene or protein expression of takes place. + is_a: association slot + range: life stage + # path: "object/during" + examples: + - value: UBERON:0000069 + description: larval stage + + ## -------------------- + ## PREDICATES/RELATIONS + ## -------------------- + + related to: + description: >- + A relationship that is asserted between two named things + domain: named thing + range: named thing + multivalued: true + inherited: true + symmetric: true + annotations: + canonical_predicate: true + exact_mappings: + - skos:relatedMatch + - UMLS:related_to broad_mappings: - owl:topObjectProperty narrow_mappings: @@ -1450,9 +1583,7 @@ slots: description: >- Represents a relationship held between terminology components that describe the conceptual model of a domain. annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true symmetric: true related to at instance level: @@ -1461,9 +1592,7 @@ slots: Represents a relationship held between two instances of a data classes. Much like an assertion component, in an ABox, these represent facts associated with the conceptual model. annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true symmetric: true associated with: @@ -1471,14 +1600,19 @@ slots: description: >- Expresses a relationship between two named things where the relationship is typically generated statistically (though not in all cases), and is weaker than its child, 'correlated with', but stronger than its parent, - 'related to'. - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + 'related to'. This relationship holds between two concepts represented by variables for which a statistical + dependence is demonstrated. E.g. the statement “Atrial Fibrillation (Afib) is associated with Myocardial + Infarction (MI)” asserts that having Afib is not statistically independent from whether a patient + will also have MI. Note that in Translator associations, the subject and object concepts may map exactly to + the statistical variables, or represent related entities for which the variables serve as proxies in an + Association (e.g. diseases, chemical entities or processes). + annotations: + canonical_predicate: true symmetric: true domain: named thing range: named thing + exact_mappings: + - SEMMEDDB:associated_with narrow_mappings: - RO:0004029 - SNOMEDCT:47429007 @@ -1508,9 +1642,7 @@ slots: - SNOMED:has_basic_dose_form - UMLS:RB annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:subclass of + opposite_of: subclass of subclass of: is_a: related to at concept level @@ -1522,12 +1654,8 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:superclass of + canonical_predicate: true + opposite_of: superclass of close_mappings: # RTX - LOINC:class_of @@ -1571,9 +1699,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true close_mappings: # identical class extension with identical sets of individuals - owl:equivalentClass @@ -1602,9 +1728,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - skos:closeMatch # Semantic Medline definition: "comparative predicate" where the equivalence could simply be functional @@ -1628,9 +1752,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - skos:exactMatch - WIKIDATA:Q39893449 @@ -1645,12 +1767,8 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:narrow match + canonical_predicate: true + opposite_of: narrow match exact_mappings: - skos:broadMatch - WIKIDATA:Q39894595 @@ -1668,9 +1786,29 @@ slots: - skos:narrowMatch - WIKIDATA:Q39893967 annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:broad match + opposite_of: broad match + + member of: + description: >- + Defines a mereological relation between a item and a collection. + is_a: related to at concept level + inverse: has member + in_subset: + - translator_minimal + exact_mappings: + - RO:0002350 + close_mappings: + - skos:member + + has member: + description: >- + Defines a mereological relation between a collection and an item. + is_a: related to at concept level + in_subset: + - translator_minimal + exact_mappings: + - RO:0002351 + - skos:member opposite of: description: >- @@ -1679,26 +1817,55 @@ slots: is_a: related to at instance level symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0002604 see_also: - https://doi.org/10.1101/108977 - https://github.com/biolink/biolink-model/issues/657 - has real world evidence of association with: - is_a: related to at instance level + + associated with likelihood of: + is_a: associated with description: >- - this means that the assertion was derived by applying statistical and machine learning models to - clinical data such as EHR data, survey data, etc - in_subset: - - translator_minimal - symmetric: true + A a relationship that holds between two concepts represented by variables for which a statistical + dependence is demonstrated, wherein the state or value of one variable predicts the future state + or value of the other. E.g. the statement “An Atrial Fibrillation (Afib) diagnosis is associated + with likelihood of a Myocardial Infarction (MI) diagnosis” asserts that the state of having Afib + is associated with an increased or decreased likelihood that a patient will later exhibit MI. + annotations: + canonical_predicate: true + + likelihood associated with: + is_a: associated with + description: >- + inverse: associated with likelihood of + + associated with increased likelihood of: + is_a: associated with likelihood of + description: >- + Expresses a relationship between two named things where the relationship is typically generated statistically + and the state or fact of something is more probable. + annotations: + canonical_predicate: true + + increased likelihood associated with: + is_a: likelihood associated with + description: >- + inverse: associated with increased likelihood of + + associated with decreased likelihood of: + is_a: associated with likelihood of + description: >- + Expresses a relationship between two named things where the relationship is typically generated statistically + and the state or fact of something is less probable. annotations: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true + + decreased likelihood associated with: + is_a: likelihood associated with + description: >- + inverse: associated with decreased likelihood of target for: is_a: related to at instance level @@ -1706,9 +1873,7 @@ slots: A gene is a target of a disease when its products are druggable and when a drug interaction with the gene product could have a therapeutic effect annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true domain: gene range: disease @@ -1723,20 +1888,22 @@ slots: domain: gene or gene product range: cellular component annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0002432 + has active component: + is_a: related to at instance level + inverse: active in + domain: cellular component + range: gene or gene product + acts upstream of: is_a: related to at instance level domain: gene or gene product range: biological process annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0002263 @@ -1751,9 +1918,7 @@ slots: domain: gene or gene product range: biological process annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0004034 @@ -1768,9 +1933,7 @@ slots: domain: gene or gene product range: biological process annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0004035 @@ -1785,9 +1948,7 @@ slots: domain: gene or gene product range: biological process annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0002264 @@ -1802,9 +1963,7 @@ slots: domain: gene or gene product range: biological process annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0004032 @@ -1819,9 +1978,7 @@ slots: domain: gene or gene product range: biological process annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0004033 @@ -1861,11 +2018,23 @@ slots: exact_mappings: - dct:contributor + has contributor: + inverse: contributor + is_a: related to at instance level + domain: agent + range: information content entity + provider: is_a: contributor description: >- person, group, organization or project that provides a piece of information (e.g. a knowledge association). + has provider: + inverse: provider + is_a: has contributor + domain: agent + range: information content entity + publisher: is_a: contributor domain: publication @@ -1879,6 +2048,12 @@ slots: - dct:publisher - WIKIDATA_PROPERTY:P123 + has publisher: + is_a: has contributor + inverse: publisher + domain: agent + range: publication + editor: is_a: contributor domain: publication @@ -1891,6 +2066,12 @@ slots: exact_mappings: - WIKIDATA_PROPERTY:P98 + has editor: + inverse: editor + is_a: has contributor + domain: agent + range: publication + author: is_a: contributor domain: publication @@ -1900,9 +2081,36 @@ slots: - dct:creator - WIKIDATA_PROPERTY:P50 + has author: + inverse: author + is_a: has contributor + domain: agent + range: publication + ## end of Publication related predicates + assesses: + is_a: related to at instance level + aliases: [ 'was assayed against' ] + description: >- + The effect of a thing on a target was interrogated in some assay. + A relationship between some perturbing agent (usually a chemical compound) and some target entity, + where the affect of the perturbing agent on the target entity was interrogated in a particular assay. + The target might be a particular protein, tissue, phenotype, whole organism, cell line, or other type + of biological entity. + domain: named thing + range: named thing + annotations: + canonical_predicate: true + + is assessed by: + is_a: related to at instance level + inverse: assesses + domain: named thing + range: named thing + interacts with: + abstract: true domain: named thing range: named thing description: >- @@ -1912,34 +2120,32 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0002434 + - SEMMEDDB:interacts_with narrow_mappings: # RO terms RTX mapped to 'biolink:related_to' but which imply a chemical interaction - RO:0002103 - RO:0002120 - RO:0002130 - - SEMMEDDB:complicates + notes: >- + please use a more specific child predicate of interacts with, either physically interacts with + or genetically interacts with. physically interacts with: is_a: interacts with description: >- - holds between two entities that make physical contact as part of some interaction + holds between two entities that make physical contact as part of some interaction. + does not imply a causal relationship. in_subset: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - WIKIDATA_PROPERTY:P129 close_mappings: - # Agents of some interaction but not the relationship of interaction - # These RTX mapped terms may need to be reclassified to more meaningful terms (perhaps not yet created) - CHEMBL.MECHANISM:binding_agent - CHEMBL.MECHANISM:chelating_agent - CHEMBL.MECHANISM:cross-linking_agent @@ -1948,40 +2154,51 @@ slots: - CHEMBL.MECHANISM:substrate - DRUGBANK:target narrow_mappings: - # Defined more narrowly as "substance interaction", thus specific applies to a subclass entities? - - SEMMEDDB:INTERACTS_WITH - - SEMMEDDB:interacts_with + # Defined more narrowly as "substance interaction", thus specific applies to a subclass entities - DRUGBANK:drug-interaction - FMA:adheres_to - NCIT:A7 - PR:non-covalently_bound_to - chemically interacts with: - is_a: physically interacts with - domain: chemical entity - range: chemical entity - in_subset: - - translator_minimal - symmetric: true - - molecularly interacts with: + directly physically interacts with: is_a: physically interacts with - aliases: ['targets'] - domain: molecular entity - range: molecular entity - in_subset: - - translator_minimal + description: >- + A causal mechanism mediated by a direct contact between the effector and target entities (this contact may + be weak or strong, transient or stable). symmetric: true - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - related_mappings: - - DGIdb:antibody exact_mappings: - RO:0002436 + broad_mappings: + # Definition of this term is more generic than direct physical molecular interactions: + # A is connected to B iff there exists a fiat, material or temporal path between A and B. + - SIO:000203 + - RO:0002578 + narrow_mappings: + - PHAROS:drug_targets + - DRUGBANK:chelator + - CTD:affects_binding + - DGIdb:cofactor + annotations: + canonical_predicate: true - genetically interacts with: + binds: + is_a: directly physically interacts with + description: >- + A causal mechanism mediated by the direct contact between effector and target chemical or biomolecular entity, + which form a stable physical interaction. + symmetric: true + annotations: + canonical_predicate: true + close_mappings: + - DGIdb:binder + + indirectly physically interacts with: + is_a: physically interacts with + symmetric: true + annotations: + canonical_predicate: true + + genetically interacts with: is_a: interacts with description: >- holds between two genes whose phenotypic effects are dependent on each @@ -1993,9 +2210,7 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true symmetric: true exact_mappings: - RO:0002435 @@ -2011,9 +2226,7 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true related_mappings: # Contributed by RTX. Seems possible that a new predicate "biolink:in_pathway" could be justified? - DRUGBANK:pathway @@ -2051,6 +2264,8 @@ slots: - RO:0002592 - RO:0012003 - SNOMED:has_pathological_process + - UBERGRAPH:is_increase_of # talked to Jim Balhoff, this is a valid mapping + - UBERGRAPH:is_decrease_of # talked to Jim Balhoff, this is a valid mapping affected by: is_a: related to at instance level @@ -2068,9 +2283,7 @@ slots: domain: named thing range: chemical entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true broad_mappings: - PATO:0000085 # sensitivity toward narrow_mappings: @@ -2091,9 +2304,7 @@ slots: domain: named thing range: chemical entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true resistance associated with: is_a: associated with @@ -2108,14 +2319,13 @@ slots: domain: chemical or drug or treatment range: disease or phenotypic feature annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true close_mappings: - NCIT:C15220 # diagnosis - SIO:001331 # diagnosis exact_mappings: - DrugCentral:5271 + - SEMMEDDB:diagnoses is diagnosed by: is_a: related to at instance level @@ -2124,1577 +2334,134 @@ slots: domain: disease or phenotypic feature increases amount or activity of: + deprecated: true is_a: related to at instance level mixin: true description: >- A grouping mixin to help with searching for all the predicates that increase the amount or activity of the object. + amount or activity increased by: + deprecated: true + is_a: related to at instance level + inverse: increases amount or activity of + decreases amount or activity of: + deprecated: true is_a: related to at instance level mixin: true description: >- A grouping mixin to help with searching for all the predicates that decrease the amount or activity of the object. - ## role mixins for use in tagging corresponding role predicates - - chemical role mixin: - description: >- - A role played by the chemical entity or part thereof within a chemical context. - mixin: true - exact_mappings: - - CHEBI:51086 - - biological role mixin: - description: >- - A role played by the chemical entity or part thereof within a biological context. - mixin: true - narrow_mappings: - - CHEBI:24432 - - affects abundance of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one changes the amount of the - other within a system of interest - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_abundance_of - - abundance affected by: - is_a: affected by - inverse: affects abundance of - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - - increases abundance of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one increases the amount of the other within a system of interest - is_a: affects abundance of - in_subset: - - translator_minimal - mixins: - - increases amount or activity of - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases abundance of - related_mappings: - - UBERGRAPH:is_increase_of - - abundance increased by: - is_a: abundance affected by - inverse: increases abundance of - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - - decreases abundance of: - description: >- - holds between two chemical or gene/gene product where the action or effect of one - decreases the amount of the other within a system of interest - is_a: affects abundance of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases abundance of - - related_mappings: - - UBERGRAPH:is_decrease_of - - abundance decreased by: - is_a: abundance affected by - inverse: decreases abundance of - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - - increases activity of: - description: >- - holds between two chemical or gene/gene product where the action or effect of one - increases the activity of the other within a system of interest - is_a: affects activity of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - related_mappings: - - GAMMA:ec50 - - GAMMA:ac50 - narrow_mappings: - - GAMMA:activator - - GAMMA:partial_agonist - - GAMMA:agonist - - GAMMA:opener - - GAMMA:positive_allosteric_modulator - - GAMMA:positive_modulator - - GAMMA:inducer - - GAMMA:potentiator - - GAMMA:stimulator - - CHEMBL.MECHANISM:agonist - - CHEMBL.MECHANISM:opener - - CHEMBL.MECHANISM:partial_agonist - - CHEMBL.MECHANISM:positive_allosteric_modulator - - CHEMBL.MECHANISM:positive_modulator - - DGIdb:agonist - - DGIdb:partial_agonist - - DGIdb:inducer - - DGIdb:positive_allosteric_modulator - - DGIdb:stimulator - annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases activity of - - affects activity of: - description: >- - holds between two chemical or gene/gene product where the action or effect of one changes the activity of the - other within a system of interest - is_a: affects - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - narrow_mappings: - - GAMMA:allosteric_modulator - - GAMMA:modulator - - GAMMA:regulator - - DGIdb:modulator - - DGIdb:allosteric_modulator - - activity affected by: - description: >- - holds between two chemical or gene/gene product where the action or effect of one is changed by the - activity of the other within a system of interest - is_a: affected by - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects activity of - - activity increased by: - is_a: activity affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases activity of - - decreases activity of: - description: >- - holds between two chemical or gene/gene product where the action or effect of one decreases the - activity of the other within a system of interest - is_a: affects activity of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases activity of - mixins: - - decreases amount or activity of - related_mappings: - - GAMMA:ic50 - - GAMMA:ki - - DGIdb:vaccine - narrow_mappings: - - GAMMA:allosteric_antagonist - - GAMMA:partial_antagonist - - GAMMA:antagonist - - GAMMA:weak_inhibitor - - GAMMA:inhibitor - - GAMMA:channel_blocker - - GAMMA:gating_inhibitor - - GAMMA:blocker - - GAMMA:inverse_agonist - - GAMMA:inactivator - - GAMMA:downregulator - - GAMMA:negative_modulator - - GAMMA:negative_allosteric_modulator - - GAMMA:inhibitory_allosteric_modulator - - GAMMA:aggregation_inhibitor - - GAMMA:conversion_inhibitor - - GAMMA:suppressor - - CHEMBL.MECHANISM:antagonist - - CHEMBL.MECHANISM:allosteric_antagonist - - CHEMBL.MECHANISM:inverse_agonist - - DGIdb:antagonist - - DGIdb:blocker - - DGIdb:channel_blocker - - DGIdb:gating_inhibitor - - DGIdb:inhibitor - - DGIdb:negative_modulator - - DGIdb:inhibitory_allosteric_modulator - - DGIdb:inverse_agonist - - activity decreased by: - is_a: activity affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases activity of - - - affects expression of: - description: >- - holds between a named thing (most often a chemical or gene/gene product, but can also be used to link an - environmental affect on expression) and a nucleic acid entity where the action or effect of one changes the - level of expression of the other within a system of interest - is_a: affects - in_subset: - - translator_minimal - domain: named thing - range: nucleic acid entity - - expression affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: nucleic acid entity - range: named thing - inverse: affects expression of - - increases expression of: - description: >- - holds between a chemical or gene/gene product entity and a nucleic acid entity - where the action or effect of one increases the level of expression of the - other within a system of interest - is_a: affects expression of - in_subset: - - translator_minimal - domain: named thing - range: nucleic acid entity - mixins: - - increases amount or activity of - close_mappings: - # Agent of the action or effect, not the relationship itself - - CHEMBL.MECHANISM:releasing_agent - exact_mappings: - - RO:0003003 - - expression increased by: - is_a: expression affected by - in_subset: - - translator_minimal - domain: nucleic acid entity - range: named thing - inverse: increases expression of - - decreases expression of: - description: >- - holds between a chemical or gene/gene product entity and a nucleic acid entity where the action or effect of one decreases the level of expression of the - other within a system of interest - is_a: affects expression of - in_subset: - - translator_minimal - domain: named thing - range: nucleic acid entity - mixins: - - decreases amount or activity of - related_mappings: - - DGIdb:antisense - - DGIdb:antisense_oligonucleotide - exact_mappings: - - RO:0003002 - narrow_mappings: - - CHEMBL.MECHANISM:antisense_inhibitor - - expression decreased by: - is_a: expression affected by - in_subset: - - translator_minimal - domain: nucleic acid entity - range: named thing - inverse: decreases expression of - - affects folding of: - description: >- - holds between a chemical or gene/gene product entity and a nucleic acid entity where the action or effect of one changes the rate - or quality of folding of the other - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: nucleic acid entity - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_folding_of - - - folding affected by: - is_a: affected by - inverse: affects folding of - domain: nucleic acid entity - range: chemical entity or gene or gene product - - increases folding of: - description: >- - holds between a chemical or gene/gene product entity and a nucleic acid entity where the action or effect of one - increases the rate or quality of folding of the other - is_a: affects folding of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: nucleic acid entity - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases folding of - exact_mappings: - - CTD:increases_folding_of - - folding increased by: - is_a: folding affected by - inverse: increases folding of - domain: nucleic acid entity - range: chemical entity or gene or gene product - - decreases folding of: - description: >- - holds between a chemical or gene or gene product entity and a - nucleic acid entity where the action or effect of one - decreases the rate or quality of folding of the other - is_a: affects folding of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: nucleic acid entity - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases folding of - exact_mappings: - - CTD:decreases_folding_of - - folding decreased by: - is_a: folding affected by - inverse: decreases folding of - domain: nucleic acid entity - range: chemical entity or gene or gene product - - affects localization of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one changes the - localization of the other within a system of interest - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - related_mappings: - - GAMMA:storage - exact_mappings: - - GOREL:0002003 - - localization affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects localization of - - increases localization of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one increases the proper - localization of the other within a system of interest - is_a: affects localization of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases localization of - exact_mappings: - - CTD:increases_localization_of - - localization increased by: - is_a: localization affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases localization of - - decreases localization of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one decreases the proper localization of the other within a system of interest - is_a: affects localization of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases localization of - exact_mappings: - - CTD:decreases_localization_of - - - localization decreased by: - is_a: localization affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases localization of - - affects metabolic processing of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one impacts the - metabolic processing of the other within a system of interest - is_a: affects - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - in_subset: - - translator_minimal - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - related_mappings: - - GAMMA:catalytic_activity - - metabolic processing affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects metabolic processing of + amount or activity decreased by: + deprecated: true + is_a: related to at instance level + inverse: decreases amount or activity of - increases metabolic processing of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one increases the rate of - metabolic processing of the other within a system of interest - is_a: affects metabolic processing of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases metabolic processing of - exact_mappings: - - CTD:increases_metabolic_processing_of - narrow_mappings: - - NCIT:enzyme_metabolizes_chemical_or_drug - - metabolic processing increased by: - is_a: metabolic processing affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases metabolic processing of - - decreases metabolic processing of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one decreases the rate of - metabolic processing of the other within a system of interest - is_a: affects metabolic processing of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases metabolic processing of - exact_mappings: - - CTD:decreases_metabolic_processing_of - - metabolic processing decreased by: - is_a: metabolic processing affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases metabolic processing of - - affects molecular modification of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one leads changes in the molecular - modification(s) of the other (e.g. via post-translational modifications of proteins such as the addition of - phosphoryl group, or via redox reaction that adds or subtracts electrons) - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_molecular_modification_of - narrow_mappings: - - CTD:affects_acetylation - - CTD:affects_acylation - - CTD:affects_alkylation - - CTD:affects_amination - - CTD:affects_carbamoylation - - CTD:affects_ethylation - - CTD:affects_glutathionylation - - CTD:affects_glycation - - CTD:affects_glycosylation - - CTD:affects_glucuronidation - - CTD:affects_N-linked_glycosylation - - CTD:affects_O-linked_glycosylation - - CTD:affects_hydroxylation - - CTD:affects_lipidation - - CTD:affects_farnesylation - - CTD:affects_geranoylation - - CTD:affects_myristoylation - - CTD:affects_palmitoylation - - CTD:affects_prenylation - - CTD:affects_methylation - - CTD:affects_nitrosation - - CTD:affects_nucleotidylation - - CTD:affects_phosphorylation - - CTD:affects_ribosylation - - CTD:affects_ADP-ribosylation - - CTD:affects_sulfation - - CTD:affects_sumoylation - - CTD:affects_ubiquitination - - CTD:affects_oxidation - - CTD:affects_reduction - - CTD:affects_carboxylation - - molecular modification affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects molecular modification of - - increases molecular modification of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one leads to - increased molecular modification(s) of the other (e.g. via post-translational modifications of - proteins such as the addition of phosphoryl group, or via redox reaction that adds or subtracts electrons) - is_a: affects molecular modification of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases molecular modification of - exact_mappings: - - CTD:increases_molecular_modification_of - narrow_mappings: - - CTD:increases_acetylation - - CTD:increases_acylation - - CTD:increases_alkylation - - CTD:increases_amination - - CTD:increases_carbamoylation - - CTD:increases_ethylation - - CTD:increases_glutathionylation - - CTD:increases_glycation - - CTD:increases_glycosylation - - CTD:increases_glucuronidation - - CTD:increases_N-linked_glycosylation - - CTD:increases_O-linked_glycosylation - - CTD:increases_hydroxylation - - CTD:increases_lipidation - - CTD:increases_farnesylation - - CTD:increases_geranoylation - - CTD:increases_myristoylation - - CTD:increases_palmitoylation - - CTD:increases_prenylation - - CTD:increases_methylation - - CTD:increases_nitrosation - - CTD:increases_nucleotidylation - - CTD:increases_phosphorylation - - CTD:increases_ribosylation - - CTD:increases_ADP-ribosylation - - CTD:increases_sulfation - - CTD:increases_sumoylation - - CTD:increases_ubiquitination - - CTD:increases_oxidation - - CTD:increases_reduction - - CTD:increases_carboxylation - - GAMMA:acetylation - - GAMMA:oxidizer - - molecular modification increased by: - is_a: molecular modification affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases molecular modification of - - decreases molecular modification of: - description: >- - holds between two chemical entities where the action or effect of one leads to - decreased molecular modification(s) of the other (e.g. via post-translational modifications of - proteins such as the addition of phosphoryl group, or via redox reaction that adds or subtracts electrons) - is_a: affects molecular modification of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases molecular modification of - exact_mappings: - - CTD:decreases_molecular_modification_of - narrow_mappings: - - CTD:decreases_acetylation - - CTD:decreases_acylation - - CTD:decreases_alkylation - - CTD:decreases_amination - - CTD:decreases_carbamoylation - - CTD:decreases_ethylation - - CTD:decreases_glutathionylation - - CTD:decreases_glycation - - CTD:decreases_glycosylation - - CTD:decreases_glucuronidation - - CTD:decreases_N-linked_glycosylation - - CTD:decreases_O-linked_glycosylation - - CTD:decreases_hydroxylation - - CTD:decreases_lipidation - - CTD:decreases_farnesylation - - CTD:decreases_geranoylation - - CTD:decreases_myristoylation - - CTD:decreases_palmitoylation - - CTD:decreases_prenylation - - CTD:decreases_methylation - - CTD:decreases_nitrosation - - CTD:decreases_nucleotidylation - - CTD:decreases_phosphorylation - - CTD:decreases_ribosylation - - CTD:decreases_ADP-ribosylation - - CTD:decreases_sulfation - - CTD:decreases_sumoylation - - CTD:decreases_ubiquitination - - CTD:decreases_oxidation - - CTD:decreases_reduction - - CTD:decreases_carboxylation - - GAMMA:deoxidizer - - molecular modification decreased by: - is_a: molecular modification affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases molecular modification of - - affects synthesis of: - description: >- - holds between two chemical entities where the action or effect - of one impacts the rate of chemical synthesis of the other - is_a: affects - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - in_subset: - - translator_minimal - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_synthesis_of - - synthesis affected by: - is_a: affected by - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects synthesis of - in_subset: - - translator_minimal - - increases synthesis of: - description: >- - holds between two chemical entities where the action or effect - of one increases the rate of chemical synthesis of the other - is_a: affects synthesis of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases synthesis of - exact_mappings: - - CTD:increases_synthesis_of - - synthesis increased by: - is_a: synthesis affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases synthesis of - - decreases synthesis of: - description: >- - holds between two chemical entities where the action or effect - of one decreases the rate of chemical synthesis of the other - is_a: affects synthesis of - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - in_subset: - - translator_minimal - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases synthesis of - exact_mappings: - - GAMMA:inhibition_of_synthesis - - synthesis decreased by: - is_a: synthesis affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases synthesis of - - affects degradation of: - description: >- - holds between two chemical entities where the action or effect of one - impacts the rate of degradation of the other within a system of interest, - where chemical degradation is defined act or process of simplifying or breaking - down a molecule into smaller parts, either naturally or artificially - (Oxford English Dictionary, UK, 1995) - is_a: affects - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - in_subset: - - translator_minimal - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_degradation_of - narrow_mappings: - - CTD:affects_cleavage - - CTD:affects_hydrolysis - - degradation affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects degradation of - - increases degradation of: - description: >- - holds between two chemical entities where the action or effect of one - increases the rate of degradation of the other within a system of interest - is_a: affects degradation of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: decreases degredation of - related_mappings: - # An enzyme or reagent acts upon a substrate but that substrate may - # not necessarily be "degraded", i.e. broken into smaller parts - - GAMMA:substrate - # RTX put this under "biolink:physically_interacts_with" but rather we also put next to the GAMMA mapping - # That said, neither mapping feels like a comfortable fit here - - CHEMBL.MECHANISM:substrate - close_mappings: - # terms refer less to the action or effect than the agent of that action or effect - - CHEMBL.MECHANISM:degrader - narrow_mappings: - - CTD:increases_cleavage - - CTD:increases_hydrolysis - - GOREL:0002004 - - degradation increased by: - is_a: degradation affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases degradation of - - decreases degradation of: - description: >- - holds between two chemical entities where the action or effect of one - decreases the rate of degradation of the other within a system of interest - is_a: affects degradation of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: increases degredation of - exact_mappings: - - CTD:decreases_degradation_of - narrow_mappings: - - CTD:decreases_cleavage - - CTD:decreases_hydrolysis - - degradation decreased by: - is_a: degradation affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases degradation of - - affects mutation rate of: - description: >- - holds between a chemical entity and a nucleic acid entity where the action or effect of the - chemical entity impacts the rate of mutation of the nucleic acid entity within a system of interest - is_a: affects - domain: chemical entity or gene or gene product - range: nucleic acid entity - broad_mappings: - # Term 'mutagenesis' generally speaks generally of the process of - # 'production of genetic mutations': this term says it is affected - # but not specifically how - in_subset: - - translator_minimal - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_mutation_rate_of - - mutation rate affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: nucleic acid entity - range: chemical entity or gene or gene product - inverse: affects mutation rate of - - increases mutation rate of: - description: >- - holds between a chemical entity and a nucleic acid entity where the action or effect of the - chemical entity increases the rate of mutation of the nucleic acid entity within a system of interest - is_a: affects mutation rate of - in_subset: - - translator_minimal - domain: chemical entity - range: nucleic acid entity - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases mutation rate of - exact_mappings: - - CTD:increases_mutation_rate_of - broad_mappings: - # See 'affects mutation rate of' above - - CTD:increases_mutagenesis - - mutation rate increased by: - is_a: mutation rate affected by - in_subset: - - translator_minimal - domain: nucleic acid entity - range: chemical entity - inverse: increases mutation rate of - - decreases mutation rate of: - description: >- - holds between a chemical entity and a nucleic acid entity where the action or effect of the - chemical entity decreases the rate of mutation of the nucleic acid entity within a system of interest - is_a: affects mutation rate of - in_subset: - - translator_minimal - domain: chemical entity - range: nucleic acid entity - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases mutation rate of - exact_mappings: - - CTD:decreases_mutation_rate_of - broad_mappings: - # See 'affects mutation rate of' above - - CTD:decreases_mutagenesis - - mutation rate decreased by: - is_a: mutation rate affected by - in_subset: - - translator_minimal - domain: nucleic acid entity - range: chemical entity - inverse: decreases mutation rate of - - # original definition of this predicate used molecular entity which was a - affects response to: - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: response affected by - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_response_to - - response affected by: - description: >- - holds between two chemical entities where the susceptibility of a biological entity or system - (e.g. an organism, cell, cellular component, macromolecular machine mixin, - biological or pathological process) of one is affected by the action of the other. - is_a: affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - - increases response to: - description: >- - holds between two chemical entities where the action or effect of one - increases the susceptibility of a biological entity or system (e.g. an - organism, cell, cellular component, macromolecular machine mixin, biological - or pathological process) to the other - is_a: affects response to - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases response to - exact_mappings: - - CTD:increases_response_to - - - response increased by: - is_a: response affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases response to - - decreases response to: - description: >- - holds between two chemical entities where the action or effect of one - decreases the susceptibility of a biological entity or system (e.g. an - organism, cell, cellular component, macromolecular machine mixin, biological - or pathological process) to the other - is_a: affects response to - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases response to - exact_mappings: - - CTD:decreases_response_to - narrow_mappings: - - CTD:decreases_response_to_substance - - GAMMA:desensitize_the_target - - response decreased by: - is_a: response affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases response to - - affects splicing of: - description: >- - holds between a chemical entity and an mRNA where the action or effect - of the chemical entity impacts the splicing of the mRNA - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: transcript - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_RNA_splicing - broad_mappings: - - CTD:affects_splicing_of - - splicing affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: transcript - range: chemical entity or gene or gene product - inverse: affects splicing of - - increases splicing of: - description: >- - holds between a chemical entity and an mRNA where the action or effect - of the chemical entity increases the proper splicing of the mRNA - is_a: affects splicing of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: transcript - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases splicing of - exact_mappings: - - CTD:increases_RNA_splicing - broad_mappings: - - CTD:increases_splicing_of - - splicing increased by: - is_a: splicing affected by - in_subset: - - translator_minimal - domain: transcript - range: chemical entity or gene or gene product - inverse: increases splicing of - - decreases splicing of: - description: >- - holds between a chemical entity and an mRNA where the action or - effect of the chemical entity decreases the proper splicing of the mRNA - is_a: affects splicing of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: transcript - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases splicing of - exact_mappings: - - CTD:decreases_RNA_splicing - broad_mappings: - - CTD:decreases_splicing_of - - splicing decreased by: - is_a: splicing affected by - in_subset: - - translator_minimal - domain: transcript - range: chemical entity or gene or gene product - inverse: decreases splicing of - - affects stability of: - description: >- - holds between two entities where the action or effect of one impacts - the stability of the other within a system of interest - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - close_mappings: - - GAMMA:stabilization - - stability affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects stability of - - increases stability of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one - increases the stability of the other within a system of interest - is_a: affects stability of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: decreases stability of - close_mappings: - # agent of the action or effect, not the relationship - - CHEMBL.MECHANISM:stabiliser - - stability increased by: - is_a: stability affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases stability of - - decreases stability of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one decreases - the stability of the other within a system of interest - is_a: affects stability of - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - in_subset: - - translator_minimal - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: increases stability of - exact_mappings: - - CTD:decreases_stability_of - - stability decreased by: - is_a: stability affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases stability of - - affects transport of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one impacts - the rate of transport of the other across some boundary in a system of interest - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_transport_of - narrow_mappings: - - RO:0002313 - - RO:0002340 - - RO:0002345 - - transport affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects transport of - - increases transport of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one - increases the rate of transport of the other across some boundary in a system of interest - is_a: affects transport of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases transport of - close_mappings: - - GAMMA:carrier - - GAMMA:transporter - - transport increased by: - is_a: transport affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases transport of - - decreases transport of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one - decreases the rate of transport of the other across some boundary in a system of interest - is_a: affects transport of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases transport of - exact_mappings: - - CTD:decreases_transport_of - - transport decreased by: - is_a: transport affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases transport of - - affects secretion of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one impacts the - rate of secretion of the other out of a cell, gland, or organ - is_a: affects - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - CTD:affects_secretion_of - broad_mappings: - # 'export' more general than 'secretion' - - CTD:affects_export - - secretion affected by: - is_a: affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: affects secretion of - - increases secretion of: - description: >- - holds between two chemical or gene/gene product entities where the action or effect of one increases the - rate of secretion of the other out of a cell, gland, or organ - is_a: affects secretion of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - increases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases secretion of - exact_mappings: - - CTD:increases_secretion_of - broad_mappings: - # 'export' more general than 'secretion' - - CTD:increases_export - - secretion increased by: - is_a: secretion affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: increases secretion of + ## role mixins for use in tagging corresponding role predicates - decreases secretion of: + chemical role mixin: description: >- - holds between two chemical or gene/gene product entities where the action or effect of one decreases the - rate of secretion of the other out of a cell, gland, or organ - is_a: affects secretion of - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases secretion of + A role played by the chemical entity or part thereof within a chemical context. + mixin: true exact_mappings: - - CTD:decreases_secretion_of - broad_mappings: - # 'export' more general than 'secretion' - - CTD:decreases_export - - secretion decreased by: - is_a: secretion affected by - in_subset: - - translator_minimal - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: decreases secretion of + - CHEBI:51086 - affects uptake of: + biological role mixin: description: >- - holds between two chemical or gene/gene product entities where the action or effect of one impacts the rate of - uptake of the other into of a cell, gland, or organ + A role played by the chemical entity or part thereof within a biological context. + mixin: true + narrow_mappings: + - CHEBI:24432 + + affects response to: is_a: affects in_subset: - translator_minimal domain: chemical entity or gene or gene product range: chemical entity or gene or gene product + inverse: response affected by annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - - CTD:affects_uptake_of - broad_mappings: - # 'import' more general than 'uptake' - - CTD:affects_import + - CTD:affects_response_to - uptake affected by: + response affected by: + description: >- + holds between two chemical entities where the susceptibility of a biological entity or system + (e.g. an organism, cell, cellular component, macromolecular machine mixin, + biological or pathological process) of one is affected by the action of the other. is_a: affected by in_subset: - translator_minimal domain: chemical entity or gene or gene product range: chemical entity or gene or gene product - inverse: affects uptake of - increases uptake of: + increases response to: description: >- - holds between two chemical or gene/gene product entities where the action or effect of one increases the rate of - uptake of the other into of a cell, gland, or organ - is_a: affects uptake of + holds between two chemical entities where the action or effect of one + increases the susceptibility of a biological entity or system (e.g. an + organism, cell, cellular component, macromolecular machine mixin, biological + or pathological process) to the other + is_a: affects response to in_subset: - translator_minimal domain: chemical entity or gene or gene product range: chemical entity or gene or gene product - mixins: - - increases amount or activity of annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases uptake of + canonical_predicate: true + opposite_of: decreases response to exact_mappings: - - CTD:increases_uptake_of - broad_mappings: - # 'import' more general than 'uptake' - - CTD:increases_import + - CTD:increases_response_to - uptake increased by: - is_a: uptake affected by + response increased by: + is_a: response affected by in_subset: - translator_minimal domain: chemical entity or gene or gene product range: chemical entity or gene or gene product - inverse: increases uptake of + inverse: increases response to - decreases uptake of: + decreases response to: description: >- - holds between two chemical or gene/gene product entities where the action or effect - of one decreases the rate of uptake of the other into of a cell, gland, or organ - is_a: affects uptake of + holds between two chemical entities where the action or effect of one + decreases the susceptibility of a biological entity or system (e.g. an + organism, cell, cellular component, macromolecular machine mixin, biological + or pathological process) to the other + is_a: affects response to in_subset: - translator_minimal domain: chemical entity or gene or gene product range: chemical entity or gene or gene product - mixins: - - decreases amount or activity of annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases uptake of + canonical_predicate: true + opposite_of: increases response to exact_mappings: - - CTD:decreases_uptake_of - broad_mappings: - # 'import' more general than 'uptake' - - CTD:decreases_import + - CTD:decreases_response_to + narrow_mappings: + - CTD:decreases_response_to_substance - uptake decreased by: - is_a: uptake affected by + response decreased by: + is_a: response affected by in_subset: - translator_minimal domain: chemical entity or gene or gene product range: chemical entity or gene or gene product - inverse: decreases uptake of + inverse: decreases response to regulates: - # direct is_a inheritance from a non-mixin class is not allowed - # we defer this inheritance to the classes which this mixin in its mixins - # is_a: affects - aliases: ['regulates activity of', 'regulates expression of'] - comments: - - This is a grouping for process-process and entity-entity regulation. - mixin: true + is_a: affects + description: >- + A more specific form of affects, that implies the effect results from a biologically evolved control mechanism. + Gene-affects-gene relationships will (almost) always involve regulation. Chemical-affects-gene relationships + may in some cases be considered regulation (if the chemical is some endogenously produced signaling molecule + created to execute a certain function/activity), but exogenous/environmental chemical-affects-gene relationships + are usually not cases of regulation. domain: physical essence or occurrent range: physical essence or occurrent annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true close_mappings: - RO:0002334 exact_mappings: @@ -3705,237 +2472,27 @@ slots: - CHEMBL.MECHANISM:modulator - RO:0002295 - RO:0002332 - - RO:0002578 - - regulated by: - domain: physical essence or occurrent - range: physical essence or occurrent - mixin: true - inverse: regulates - - positively regulates: - comments: - - This is a grouping for positive process-process and entity-entity regulation. - is_a: regulates - mixin: true - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:negatively regulates - close_mappings: - # This RTX contributed term is tagged as a inverse of this Biolink predicate - - RO:0002336 - exact_mappings: - - RO:0002213 - narrow_mappings: - - CHEMBL.MECHANISM:activator - - DGIdb:activator - - RO:0004032 - - RO:0004034 - - RO:0002629 - - SEMMEDDB:augments - - positively regulated by: - is_a: regulated by - mixin: true - inverse: positively regulates - - negatively regulates: - comments: - - This is a grouping for negative process-process and entity-entity regulation. - is_a: regulates - mixin: true - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - close_mappings: - # This RTX contributed term is tagged as a inverse of this Biolink predicate - - RO:0002335 - exact_mappings: - # Strict interpretation here is that entity A causally affects levels of B - - RO:0004035 - - RO:0002212 - broad_mappings: - # This term is slightly broader in that it includes that A acts within B as well - - RO:0004033 - narrow_mappings: - - CHEMBL.MECHANISM:blocker - - CHEMBL.MECHANISM:inhibitor - - CHEMBL.MECHANISM:negative_allosteric_modulator - - CHEMBL.MECHANISM:negative_modulator - - RO:0002630 - - negatively regulated by: - is_a: regulated by - mixin: true - inverse: negatively regulates - - process regulates process: - is_a: affects - mixins: - - regulates - domain: occurrent - range: occurrent - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - RO:0002211 - - process regulated by process: - is_a: affected by - domain: occurrent - range: occurrent - inverse: process regulates process - - process positively regulates process: - is_a: process regulates process - mixins: - - positively regulates - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:process negatively regulates process - exact_mappings: - - RO:0002213 - - process positively regulated by process: - is_a: process regulated by process - inverse: process positively regulates process - - process negatively regulates process: - is_a: process regulates process - mixins: - - negatively regulates - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:process positively regulates process - exact_mappings: - - RO:0002212 - - process negatively regulated by process: - is_a: process regulated by process - inverse: process negatively regulates process - - entity regulates entity: - aliases: ['activity directly regulates activity of'] - is_a: affects - mixins: - - regulates - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: entity regulated by entity - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - local_names: - translator: regulates - ro: activity directly regulates activity of - in_subset: - - translator_minimal - exact_mappings: - RO:0002448 - narrow_mappings: - # Wikidata mapping copied over from 'regulates' above; - # considered a slightly narrower term since it applies to - # protein and RNA as subject regulator whereas molecular_entity - # may also be another class of chemical_substance? - WIKIDATA_PROPERTY:P128 - entity regulated by entity: + regulated by: is_a: affected by - domain: chemical entity or gene or gene product - range: chemical entity or gene or gene product - inverse: entity regulates entity - - entity positively regulates entity: - aliases: ['activity directly positively regulates activity of', 'anatomy upregulates gene', 'disease upregulates gene'] - is_a: entity regulates entity - mixins: - - positively regulates - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:entity negatively regulates entity - local_names: - translator: positively regulates - ro: activity directly positively regulates activity of - in_subset: - - translator_minimal - exact_mappings: - - RO:0002450 - broad_mappings: - # causally positive effect of A over B but not specific to nature of B - - RO:0004034 - narrow_mappings: - # Defined more narrowly as increasing, facilitating the - # action or function of a "substance interaction", where "substance" is deemed a subclass of possible entity - - SEMMEDDB:STIMULATES - - SEMMEDDB:stimulates - - entity positively regulated by entity: - is_a: entity regulated by entity - inverse: entity positively regulates entity - - entity negatively regulates entity: - aliases: ['activity directly negatively regulates activity of', 'anatomy downregulates gene', 'disease downregulates gene'] - is_a: entity regulates entity - mixins: - - negatively regulates - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:entity positively regulates entity - local_names: - translator: negatively regulates - ro: activity directly negatively regulates activity of - in_subset: - - translator_minimal - exact_mappings: - - RO:0002449 - narrow_mappings: - # SemMedDb definition focuses on (chemical?) "substance interactions" which is a bit narrower? - - SEMMEDDB:INHIBITS - - SEMMEDDB:inhibits - - entity negatively regulated by entity: - is_a: entity regulated by entity - inverse: entity negatively regulates entity + domain: physical essence or occurrent + range: physical essence or occurrent + inverse: regulates disrupts: is_a: affects - aliases: ['disease causes disruption of'] + aliases: [ 'disease causes disruption of' ] description: >- describes a relationship where one entity degrades or interferes with the structure, function, or occurrence of another. in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:enables + canonical_predicate: true + opposite_of: enables exact_mappings: - SEMMEDDB:DISRUPTS - SEMMEDDB:disrupts @@ -3962,9 +2519,7 @@ slots: domain: gene product mixin range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true inverse: has gene product in_subset: - translator_minimal @@ -3997,9 +2552,7 @@ slots: inverse of transcribed from inverse: transcribed from annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:transcribed from + opposite_of: transcribed from exact_mappings: - RO:0002511 - SIO:010080 @@ -4009,12 +2562,8 @@ slots: domain: transcript range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:transcribed to + canonical_predicate: true + opposite_of: transcribed to description: >- x is transcribed from y if and only if x is synthesized from template y exact_mappings: @@ -4026,12 +2575,8 @@ slots: domain: transcript range: protein annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:translation of + canonical_predicate: true + opposite_of: translation of description: >- x (amino acid chain/polypeptide) is the ribosomal translation of y (transcript) if and only if a ribosome reads y (transcript) through a series of triplet codon-amino acid adaptor activities (GO:0030533) @@ -4051,13 +2596,11 @@ slots: - RO:0002512 - SIO:010083 annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:translates to + opposite_of: translates to homologous to: is_a: similar to - aliases: ['in homology relationship with'] + aliases: [ 'in homology relationship with' ] description: >- holds between two biological entities that have common evolutionary origin comments: @@ -4066,9 +2609,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:HOM0000001 - SIO:010302 @@ -4084,9 +2625,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:HOM0000011 @@ -4098,9 +2637,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:HOM0000017 - WIKIDATA_PROPERTY:P684 @@ -4113,9 +2650,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:HOM0000018 @@ -4127,9 +2662,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - SEMMEDDB:COEXISTS_WITH - SEMMEDDB:coexists_with @@ -4320,9 +2853,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true related_mappings: # generally pertains to membership of a (subject) component - gene, # metabolite, etc? - in an (object) metabolic pathway @@ -4331,7 +2862,7 @@ slots: in complex with: description: >- holds between two genes or gene products that are part of (or code for - products that are part of) in the same macromolecular complex mixin + products that are part of) in the same macromolecular complex is_a: coexists with domain: gene or gene product range: gene or gene product @@ -4339,9 +2870,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true related_mappings: # generally pertains to membership of a (subject) protein in an (object) protein complex (doesn't cover RNA-Protein, Lipid-Protein, etc complexes though) - SIO:010497 @@ -4359,9 +2888,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true colocalizes with: description: >- @@ -4371,9 +2898,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:00002325 @@ -4383,9 +2908,7 @@ slots: is_a: related to at instance level symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true description: >- Co-occurrence of a certain allele of a genetic marker and the phenotype of interest in the same individuals at above-chance level @@ -4400,9 +2923,7 @@ slots: domain: gene range: disease or phenotypic feature annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal broad_mappings: @@ -4416,7 +2937,7 @@ slots: condition associated with gene: is_a: genetic association - aliases: ['disease associated with gene'] + aliases: [ 'disease associated with gene' ] description: >- holds between a gene and a disease or phenotypic feature that may be influenced, contribute to, or be correlated with the gene or its alleles/products domain: disease or phenotypic feature @@ -4433,9 +2954,7 @@ slots: description: >- holds between two entities where exposure to one entity alters the chance of developing the other annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal @@ -4450,17 +2969,16 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:prevents + canonical_predicate: true + opposite_of: prevents exact_mappings: - - SEMMEDDB:PREDISPOSES - SEMMEDDB:predisposes - # TODO: inverse of predisposes + has predisposing factor: + is_a: risk affected by + inverse: predisposes + in_subset: + - translator_minimal contributes to: is_a: related to at instance level @@ -4470,9 +2988,7 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true close_mappings: # RTX contributed mapping tagged as 'inverse' of this Biolink predicate - IDO:0000664 @@ -4500,12 +3016,8 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:prevents + canonical_predicate: true + opposite_of: prevents exact_mappings: - SEMMEDDB:CAUSES - SEMMEDDB:causes @@ -4549,7 +3061,8 @@ slots: holds between two entities where the occurrence, existence, or activity of one is caused by the occurrence or generation of the other is_a: related to at instance level - aliases: ['disease caused by disruption of', 'disease has basis in dysfunction of', 'realized in response to', 'realized in response to stimulus'] + aliases: [ 'disease caused by disruption of', 'disease has basis in dysfunction of', + 'realized in response to', 'realized in response to stimulus' ] in_subset: - translator_minimal inverse: causes @@ -4576,15 +3089,17 @@ slots: domain: biological entity range: disease or phenotypic feature annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:exacerbates + canonical_predicate: true + opposite_of: exacerbates exact_mappings: - RO:0003307 + is ameliorated by: + inverse: ameliorates + is_a: affected by + domain: disease or phenotypic feature + range: biological entity + exacerbates: is_a: affects description: >- @@ -4596,14 +3111,22 @@ slots: domain: biological entity range: disease or phenotypic feature annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0003309 + broad_mappings: + - SEMMEDDB:complicates + + is exacerbated by: + inverse: exacerbates + is_a: affected by + domain: disease or phenotypic feature + range: biological entity + in_subset: + - translator_minimal treats: - aliases: ['is substance that treats', 'indicated for'] + aliases: [ 'is substance that treats', 'indicated for' ] is_a: ameliorates description: >- holds between a therapeutic procedure or chemical entity @@ -4611,12 +3134,8 @@ slots: domain: chemical or drug or treatment range: disease or phenotypic feature annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:contraindicated for + canonical_predicate: true + opposite_of: contraindicated for in_subset: - translator_minimal related_mappings: @@ -4654,7 +3173,7 @@ slots: - SNOMED:plays_role treated by: - is_a: related to at instance level + is_a: is ameliorated by description: >- holds between a disease or phenotypic feature and a therapeutic process or chemical entity that is used to treat the condition @@ -4673,55 +3192,6 @@ slots: # subset of the universe of all possible treatments - RO:0002302 - approved to treat: - description: >- - holds between a therapeutic procedure or chemical entity - and a disease or phenotypic feature for which it is approved - for treatment to some level of clinical trial. Note that in - terms of REPODB narrow mappings, terms containing 'suspended', - 'terminated' or 'withdrawn' should be mapped onto associations - using this term for which 'negated: true' is asserted. - is_a: treats - domain: chemical or drug or treatment - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - NCIT:C172573 - narrow_mappings: - - NCIT:R172 - - NCIT:regimen_has_accepted_use_for_disease - # RTX mapped REPODB terms - - REPODB:clinically_tested_approved_unknown_phase - - REPODB:clinically_tested_suspended_phase_0 - - REPODB:clinically_tested_suspended_phase_1 - - REPODB:clinically_tested_suspended_phase_1_or_phase_2 - - REPODB:clinically_tested_suspended_phase_2 - - REPODB:clinically_tested_suspended_phase_2_or_phase_3 - - REPODB:clinically_tested_suspended_phase_3 - - REPODB:clinically_tested_terminated_phase_0 - - REPODB:clinically_tested_terminated_phase_1 - - REPODB:clinically_tested_terminated_phase_1_or_phase_2 - - REPODB:clinically_tested_terminated_phase_2 - - REPODB:clinically_tested_terminated_phase_2_or_phase_3 - - REPODB:clinically_tested_terminated_phase_3 - - REPODB:clinically_tested_withdrawn_phase_0 - - REPODB:clinically_tested_withdrawn_phase_1 - - REPODB:clinically_tested_withdrawn_phase_1_or_phase_2 - - REPODB:clinically_tested_withdrawn_phase_2 - - REPODB:clinically_tested_withdrawn_phase_2_or_phase_3 - - REPODB:clinically_tested_withdrawn_phase_3 - - approved for treatment by: - description: >- - holds between a disease or phenotypic feature and a therapeutic process - or chemical entity that is approved for treatment of the condition - (or not, if negated) to some level of clinical trial - is_a: treated by - range: chemical or drug or treatment - inverse: approved to treat - prevents: is_a: affects risk for description: >- @@ -4730,12 +3200,8 @@ slots: a chemical entity, exposure, activity, or medical intervention that can prevent the onset a disease or phenotypic feature. annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:predisposes + canonical_predicate: true + opposite_of: predisposes in_subset: - translator_minimal exact_mappings: @@ -4744,7 +3210,7 @@ slots: narrow_mappings: # more restricted case of a material entity mitigating a pathological process - RO:0002599 - + prevented by: is_a: risk affected by description: >- @@ -4752,25 +3218,23 @@ slots: was reduced by the application or use of an entity. inverse: prevents annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:enabled by + opposite_of: enabled by correlated with: is_a: associated with description: >- - holds between any two named thing entities. For example, correlated_with - holds between a disease or phenotypic feature and a measurable molecular - entity that is used as an indicator of the presence or state of the disease or feature. + A relationship that holds between two concepts represented by variables for which a statistical dependence is + demonstrated using a correlation analysis method. + notes: >- + These concepts may map exactly to the statistical variables, or represent related entities for which the + variables serve as proxies in an Association (e.g. diseases, chemical entities or processes). domain: named thing range: named thing in_subset: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0002610 - PATO:correlates_with @@ -4780,38 +3244,34 @@ slots: positively correlated with: is_a: correlated with description: >- - holds between any two named thing entities "correlated with" one another in a positive manner. + A relationship that holds between two concepts represented by variables for which a statistical correlation + is demonstrated, wherein variable values move together in the same direction (i.e. increased in one or + presence of one correlates with an increase or presence of the other). domain: named thing range: named thing in_subset: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:negatively correlated with + canonical_predicate: true + opposite_of: negatively correlated with exact_mappings: - CTD:positive_correlation negatively correlated with: is_a: correlated with description: >- - holds between any two named thing entities "correlated with" one another in a negative manner. + A relationship that holds between two concepts represented by variables for which a statistical correlation + is demonstrated, wherein variable values move in opposite directions (i.e. increased in one or presence of + one correlates with a decrease or absence of the other). domain: named thing range: named thing in_subset: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:positively correlated with + canonical_predicate: true + opposite_of: positively correlated with exact_mappings: - CTD:negative_correlation @@ -4825,9 +3285,7 @@ slots: in_subset: translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true coexpressed with: is_a: correlated with @@ -4838,9 +3296,7 @@ slots: range: gene or gene product symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true has biomarker: is_a: correlated with @@ -4868,9 +3324,7 @@ slots: domain: chemical entity or gene or gene product range: disease or phenotypic feature annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal exact_mappings: @@ -4884,22 +3338,19 @@ slots: - NCIT:genetic_biomarker_related_to - NCIT:is_molecular_abnormality_of_disease - ORPHA:465410 - - SEMMEDDB:diagnoses # It may be helpful to introduce an intermediate predicate in between 'related_to' and 'expressed in' # which would have a domain of 'biological entity' and range of 'anatomical entity', to map predicates # which are biological which have manifestation in an anatomical site, e.g. RO:0004026, RO:0004027 and others expressed in: - is_a: related to at instance level + is_a: located in description: >- holds between a gene or gene product and an anatomical entity in which it is expressed domain: gene or gene product range: anatomical entity multivalued: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal exact_mappings: @@ -4909,8 +3360,8 @@ slots: - NCIT:R46 expresses: - is_a: related to at instance level - aliases: ['anatomy expresses gene'] + is_a: location of + aliases: [ 'anatomy expresses gene' ] description: >- holds between an anatomical entity and gene or gene product that is expressed there domain: anatomical entity @@ -4924,7 +3375,7 @@ slots: has phenotype: is_a: related to at instance level - aliases: ['disease presents symptom'] + aliases: [ 'disease presents symptom' ] description: >- holds between a biological entity and a phenotype, where a phenotype is construed broadly as any kind of quality of an organism part, @@ -4935,9 +3386,7 @@ slots: range: phenotypic feature multivalued: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true notes: - check the range in_subset: @@ -4954,19 +3403,10 @@ slots: phenotype of: is_a: related to at instance level - description: >- - holds between a phenotype and a biological entity, where a phenotype - is construed broadly as any kind of quality of an organism part, - a collection of these qualities, or a change in quality or qualities - (e.g. abnormally increased temperature). domain: phenotypic feature range: biological entity multivalued: true inverse: has phenotype - notes: - - check the domain - in_subset: - - translator_minimal # TODO: predicate inverse for occurs in occurs in: @@ -4976,9 +3416,7 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true close_mappings: # These RTX mapped terms tagged as the inverse of "biolink:occurs_in", i.e. Entity/Site contains Process" - BFO:0000067 @@ -5017,9 +3455,7 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0001025 - FMA:has_location @@ -5065,10 +3501,14 @@ slots: - SNOMED:has_finding_site - SNOMED:has_indirect_procedure_site - SNOMED:has_inherent_location + domain: named thing + range: named thing location of: is_a: related to at instance level - aliases: ['site of'] + aliases: [ 'site of' ] + domain: named thing + range: named thing description: >- holds between material entity or site and a material entity that is located within it (but not considered a part of it) @@ -5095,20 +3535,22 @@ slots: - RO:0004026 - MONDO:disease_has_location + location of disease: + is_a: related to + inverse: disease has location + similar to: - is_a: related to at instance level - description: >- - holds between an entity and some other entity with similar features. - in_subset: - - translator_minimal - symmetric: true - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - RO:HOM0000000 #I don't understand this identifier, but I think it's equivalent - - SO:similar_to #equivalent + is_a: related to at instance level + description: >- + holds between an entity and some other entity with similar features. + in_subset: + - translator_minimal + symmetric: true + annotations: + canonical_predicate: true + exact_mappings: + - RO:HOM0000000 #I don't understand this identifier, but I think it's equivalent + - SO:similar_to #equivalent chemically similar to: is_a: similar to @@ -5120,9 +3562,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true narrow_mappings: - CHEBI:has_parent_hydride #subproperty - CHEBI:has_functional_parent #subproperty @@ -5141,9 +3581,7 @@ slots: domain: nucleic acid entity range: nucleic acid entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - faldo:location @@ -5160,9 +3598,7 @@ slots: for purposes of scientific study, in virtue of its exhibiting similar features of the studied entity. annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal exact_mappings: @@ -5182,9 +3618,7 @@ slots: - translator_minimal symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - RO:0002131 narrow_mappings: @@ -5197,12 +3631,8 @@ slots: has part: is_a: overlaps annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:lacks part + canonical_predicate: true + opposite_of: lacks part description: >- holds between wholes and their parts (material entities or processes) in_subset: @@ -5257,25 +3687,25 @@ slots: exact_mappings: - RO:0002104 annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal - composed_primarily_of: + composed primarily of: is_a: related to description: >- x composed_primarily_of_y if:more than half of the mass of x is made from parts of y. exact_mappings: - RO:0002473 annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal + primarily composed of: + inverse: composed primarily of + is_a: related to + plasma membrane part of: is_a: part of inverse: has plasma membrane part @@ -5358,12 +3788,8 @@ slots: domain: occurrent range: biological process or activity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:has output + canonical_predicate: true + opposite_of: has output in_subset: - translator_minimal close_mappings: @@ -5403,12 +3829,8 @@ slots: domain: occurrent range: biological process or activity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:has input + canonical_predicate: true + opposite_of: has input in_subset: - translator_minimal close_mappings: @@ -5441,9 +3863,7 @@ slots: holds between a process and a continuant, where the continuant is somehow involved in the process domain: occurrent annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal close_mappings: @@ -5477,9 +3897,7 @@ slots: # domain: nucleic acid entity # range: molecular activity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true has catalyst: is_a: has participant @@ -5490,9 +3908,7 @@ slots: # domain: molecular activity # range: chemical entity or gene or gene product annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true is substrate of: is_a: participates in @@ -5527,7 +3943,7 @@ slots: actively involved in: is_a: participates in - aliases: ['involved in'] + aliases: [ 'involved in' ] description: >- holds between a continuant and a process or function, where the continuant actively contributes to part or all of @@ -5535,9 +3951,7 @@ slots: domain: molecular activity range: occurrent annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal exact_mappings: @@ -5567,9 +3981,7 @@ slots: continuant alone has the ability to carry out the process or function. range: occurrent annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal exact_mappings: @@ -5578,7 +3990,7 @@ slots: - NCIT:R52 - RO:0002500 - capability of: + has capability: is_a: actively involves inverse: capable of @@ -5589,12 +4001,8 @@ slots: domain: physical entity range: biological process or activity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:prevents + canonical_predicate: true + opposite_of: prevents in_subset: - translator_minimal inverse: enabled by @@ -5613,13 +4021,11 @@ slots: exact_mappings: - RO:0002333 annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:prevented by + opposite_of: prevented by derives into: is_a: related to at instance level - aliases: ['is normal cell origin of disease','may be normal cell origin of disease'] + aliases: [ 'is normal cell origin of disease','may be normal cell origin of disease' ] description: >- holds between two distinct material entities, the old entity and the new entity, in which the new entity begins to exist when @@ -5630,9 +4036,7 @@ slots: inverse: derives from # TODO: fix this according to WG notes. Example of both opposite and inverse annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:subclass of + opposite_of: subclass of exact_mappings: - RO:0001001 - SEMMEDDB:CONVERTS_TO @@ -5643,9 +4047,7 @@ slots: derives from: is_a: related to at instance level annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true description: >- holds between two distinct material entities, the new entity and the old entity, in which the new entity begins to exist @@ -5686,9 +4088,7 @@ slots: domain: molecular entity range: molecular entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal comments: @@ -5717,9 +4117,7 @@ slots: domain: chemical entity range: chemical entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal @@ -5743,9 +4141,7 @@ slots: domain: chemical entity range: chemical entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal exact_mappings: @@ -5772,12 +4168,8 @@ slots: domain: drug range: molecular entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:is excipient of + canonical_predicate: true + opposite_of: is excipient of in_subset: - translator_minimal inverse: is active ingredient of @@ -5805,9 +4197,7 @@ slots: domain: drug range: molecular entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal mappings: @@ -5822,9 +4212,7 @@ slots: and processes to some disease or syndrome range: disease annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true in_subset: - translator_minimal exact_mappings: @@ -5842,6 +4230,26 @@ slots: domain: disease inverse: manifestation of + mode of inheritance of: + is_a: manifestation of + domain: genetic inheritance + range: disease or phenotypic feature + inverse: has mode of inheritance + + has mode of inheritance: + is_a: has manifestation + description: >- + Relates a disease or phenotypic feature to its observed genetic segregation and assumed + associated underlying DNA manifestation (i.e. autosomal, sex or mitochondrial chromosome). + domain: disease or phenotypic feature + range: genetic inheritance + annotations: + # This canonical order reverses that of its parent 'has manifestation' class + # but seems a more natural direction in the pertinent edge relationships. + canonical_predicate: true + in_subset: + - translator_minimal + produces: is_a: related to at instance level description: >- @@ -5850,9 +4258,7 @@ slots: in_subset: - translator_minimal annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true related_mappings: - GOREL:0001010 exact_mappings: @@ -5874,9 +4280,7 @@ slots: consumes: is_a: has input annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true narrow_mappings: - RO:0004009 @@ -5892,9 +4296,7 @@ slots: range: occurrent symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - SNOMED:temporally_related_to narrow_mappings: @@ -5921,12 +4323,8 @@ slots: domain: occurrent range: occurrent annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:preceded by + canonical_predicate: true + opposite_of: preceded by in_subset: - translator_minimal close_mappings: @@ -5968,66 +4366,11 @@ slots: - RO:0002087 - RO:0002285 - directly interacts with: - is_a: interacts with - description: Holds between chemical entities that physically and directly interact - with each other - domain: chemical entity - range: chemical entity or gene or gene product - symmetric: true - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - related_mappings: - - GAMMA:kd - - GAMMA:kb - - GAMMA:potency - exact_mappings: - - GAMMA:interacts_with - broad_mappings: - # Definition of this term is more generic than direct physical molecular interactions: - # A is connected to B iff there exists a fiat, material or temporal path between A and B. - - SIO:000203 - narrow_mappings: - - PHAROS:drug_targets - - DRUGBANK:chelator - - GAMMA:antibody_binding - - GAMMA:pharmacological_chaperone - - GAMMA:releasing_agent - - GAMMA:pharmacological_chaperone - - GAMMA:releasing_agent - - GAMMA:binder - - GAMMA:binding - - GAMMA:ligand - - GAMMA:cofactor - - GAMMA:multitarget - - GAMMA:chaperone - - GAMMA:component - - GAMMA:adduct - - GAMMA:antibody - - CTD:affects_binding - - DGIdb:binder - - DGIdb:cofactor - - affects expression in: - is_a: affects - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - description: Holds between a variant and an anatomical entity where the expression of the variant - is located in. - exact_mappings: - - GTEx:affects_expression_in - has variant part: is_a: has part description: holds between a nucleic acid entity and a nucleic acid entity that is a sub-component of it annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - GENO:0000382 @@ -6039,9 +4382,7 @@ slots: is_a: related to at instance level symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - GENO:0000790 @@ -6049,14 +4390,12 @@ slots: is sequence variant of: is_a: related to at instance level - aliases: ['gene product sequence variation encoded by gene mutant', 'allelic variant of', 'gene product variant of gene product'] + aliases: [ 'gene product sequence variation encoded by gene mutant', 'allelic variant of', 'gene product variant of gene product' ] description: holds between a sequence variant and a nucleic acid entity domain: sequence variant range: nucleic acid entity annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true narrow_mappings: - WIKIDATA:P3433 @@ -6073,9 +4412,7 @@ slots: domain: sequence variant range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - SO:0001583 @@ -6092,9 +4429,7 @@ slots: domain: sequence variant range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - SO:0001819 @@ -6103,7 +4438,7 @@ slots: domain: gene range: sequence variant inverse: is synonymous variant of - aliases: ['stop gained'] + aliases: [ 'stop gained' ] is nonsense variant of: is_a: is sequence variant of @@ -6112,9 +4447,7 @@ slots: domain: sequence variant range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true broad_mappings: # Term definition broader than nonsense codon: A sequence variant whereby # the gene product has diminished or abolished function. @@ -6134,19 +4467,17 @@ slots: domain: sequence variant range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - SO:0001589 - aliases: ['frameshift variant', 'start lost', 'stop lost'] + aliases: [ 'frameshift variant', 'start lost', 'stop lost' ] has frameshift variant: is_a: has sequence variant inverse: is frameshift variant of domain: gene range: sequence variant - aliases: ['splice region variant', 'splice acceptor variant', 'splice donor variant'] + aliases: [ 'splice region variant', 'splice acceptor variant', 'splice donor variant' ] is splice site variant of: is_a: is sequence variant of @@ -6155,9 +4486,7 @@ slots: domain: sequence variant range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - SO:0001629 @@ -6167,7 +4496,7 @@ slots: domain: gene range: sequence variant inverse: is splice site variant of - aliases: ['downstream gene variant', 'upstream gene variant'] + aliases: [ 'downstream gene variant', 'upstream gene variant' ] is nearby variant of: is_a: is sequence variant of @@ -6176,18 +4505,14 @@ slots: domain: sequence variant range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - GAMMA:0000102 + canonical_predicate: true has nearby variant: is_a: has sequence variant domain: gene range: sequence variant inverse: is nearby variant of - aliases: ['intron variant', '3 prime UTR variant', '5 prime UTR variant', '5 prime UTR premature start codon gain variant', 'non coding transcript exon variant'] + aliases: [ 'intron variant', '3 prime UTR variant', '5 prime UTR variant', '5 prime UTR premature start codon gain variant', 'non coding transcript exon variant' ] is non coding variant of: is_a: is sequence variant of @@ -6196,11 +4521,7 @@ slots: domain: sequence variant range: gene annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - exact_mappings: - - GAMMA:0000103 + canonical_predicate: true has non coding variant: is_a: has sequence variant @@ -6215,35 +4536,59 @@ slots: of the entity has contribution to the disease. is_a: related to at instance level annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true narrow_mappings: # These two MONDO terms seem more particular than the predicate - MONDO:disease_has_basis_in_development_of - MONDO:disease_has_basis_in_accumulation_of + occurs in disease: + is_a: related to at instance level + inverse: disease has basis in + - # These may be pushable to causal relationships, but seem important for clarity - # Also because causes adverse event tends to be very noisy and it's useful to be able - # to distinguish it. maybe not the best way to do that though. + has adverse event: + is_a: affects + aliases: [ 'adverse effect'] + description: >- + An untoward medical occurrence in a patient or clinical investigation subject that happens during treatment + with a therapeutic agent. Adverse events may be caused by something + other than the drug or therapy being given and may include abnormal laboratory finding, symptoms, or + diseases temporally associated with the treatment, whether or not considered related to the treatment. + Adverse events are unintended effects that occur when a medication is administered correctly. + domain: chemical or drug or treatment + range: disease or phenotypic feature + annotations: + canonical_predicate: true - causes adverse event: - is_a: causes - description: holds between a drug and a disease or phenotype that can be caused - by the drug - domain: drug + adverse event of: + is_a: affected by + domain: disease or phenotypic feature + range: chemical or drug or treatment + inverse: has adverse event + + has side effect: + aliases: [ 'adverse drug reaction'] + is_a: affects + description: >- + An unintended, but predictable, secondary effect shown to be correlated with a therapeutic agent, drug or treatment. + Side effects happen at normal, recommended doses or treatments, and are unrelated to the intended purpose of + the medication. + notes: >- + Side effects are listed on drug labels. There can be positive side effects, while adverse events are always negative. + Aeolus, Sider are both resources that provide side effects. + domain: chemical or drug or treatment range: disease or phenotypic feature annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true + exact_mappings: + - NCIT:C2861 # side effect - adverse event caused by: - is_a: causes + is side effect of: + is_a: affected by domain: disease or phenotypic feature - range: drug - inverse: causes adverse event + range: chemical or drug or treatment + inverse: has side effect contraindicated for: is_a: related to at instance level @@ -6252,12 +4597,8 @@ slots: domain: drug range: disease or phenotypic feature annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:treats + canonical_predicate: true + opposite_of: treats exact_mappings: - NCIT:C37933 @@ -6277,12 +4618,8 @@ slots: exact_mappings: - CL:has_not_completed annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:has completed - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + opposite_of: has completed + canonical_predicate: true not completed by: is_a: related to at instance level @@ -6293,12 +4630,8 @@ slots: description: holds between an entity and a process that the entity is capable of and has completed annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:has not completed + canonical_predicate: true + opposite_of: has not completed exact_mappings: - CL:has_completed @@ -6306,46 +4639,6 @@ slots: is_a: related to at instance level inverse: has completed - decreases molecular interaction: - is_a: molecularly interacts with - description: indicates that the source decreases the molecular interaction between - the target and some other chemical entity - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:increases molecular interaction - exact_mappings: - - CTD:decreases_molecular_interaction_with - mixins: - - decreases amount or activity of - - - molecular interaction decreased by: - is_a: molecularly interacts with - inverse: decreases molecular interaction - - increases molecular interaction: - is_a: molecularly interacts with - description: indicates that the source increases the molecular interaction between - the target and some other chemical entity - annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:decreases molecular interaction - exact_mappings: - - CTD:increases_molecular_interaction_with - mixins: - - increases amount or activity of - - molecular interaction increased by: - is_a: molecularly interacts with - inverse: increases molecular interaction in linkage disequilibrium with: is_a: related to at instance level @@ -6353,21 +4646,15 @@ slots: in a population symmetric: true annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true exact_mappings: - NCIT:C16798 has increased amount: is_a: related to at instance level annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:has decreased amount + canonical_predicate: true + opposite_of: has decreased amount narrow_mappings: - CL:has_high_plasma_membrane_amount @@ -6378,12 +4665,8 @@ slots: has decreased amount: is_a: related to at instance level annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:has increased amount + canonical_predicate: true + opposite_of: has increased amount narrow_mappings: - CL:has_low_plasma_membrane_amount @@ -6394,19 +4677,14 @@ slots: lacks part: is_a: related to at instance level annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:has part + canonical_predicate: true + opposite_of: has part exact_mappings: - CL:lacks_part - PR:lacks_part narrow_mappings: - CL:lacks_plasma_membrane_part - missing from: is_a: related to at instance level inverse: lacks part @@ -6414,9 +4692,7 @@ slots: develops from: is_a: related to at instance level annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true close_mappings: # RTX mapping seems to be inverse of 'biolink:develops_from' - RO:0002203 @@ -6432,18 +4708,16 @@ slots: - RO:0002226 # x develops_in y if x is located in y whilst x is developing develops into: - is_a: related to at instance level - inverse: develops from + is_a: related to at instance level + inverse: develops from in taxon: - aliases: ['instance of', 'is organism source of gene product', 'organism has gene', 'gene found in organism',' gene product has organism source'] + aliases: [ 'instance of', 'is organism source of gene product', 'organism has gene', 'gene found in organism',' gene product has organism source' ] is_a: related to at instance level domain: thing with taxon range: organism taxon annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true description: >- connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon' @@ -6463,15 +4737,13 @@ slots: has molecular consequence: is_a: related to at instance level - aliases: ['allele has activity'] + aliases: [ 'allele has activity' ] description: >- connects a sequence variant to a class describing the molecular consequence. E.g. SO:0001583 range: ontology class annotations: - biolink:canonical_predicate: - tag: biolink:canonical_predicate - value: true + canonical_predicate: true narrow_mappings: - NCIT:allele_has_activity @@ -6480,31 +4752,31 @@ slots: domain: ontology class inverse: has molecular consequence -## -------------------- -## ASSOCIATION SLOTS -## -------------------- + ## -------------------- + ## ASSOCIATION SLOTS + ## -------------------- association slot: abstract: true domain: association - aliases: ['edge property','statement property'] + aliases: [ 'edge property','statement property','node qualifier','edge qualifier','statement qualifier' ] description: >- any slot that relates an association to another entity - original_subject: + original subject: is_a: association slot description: >- used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification. - original_object: + original object: is_a: association slot description: >- used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification. - original_predicate: - aliases: ['original relation', 'relation'] + original predicate: + aliases: [ 'original relation', 'relation' ] is_a: association slot description: >- used to hold the original relation/predicate that an external knowledge @@ -6599,6 +4871,11 @@ slots: - RO:0002558 multivalued: true + has supporting study result: + is_a: association slot + description: >- + connects an association to an instance of supporting study result + mechanism of action: is_a: association slot range: boolean @@ -6618,7 +4895,6 @@ slots: knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property. range: information resource - multivalued: true close_mappings: - pav:providedBy @@ -6631,21 +4907,20 @@ slots: multivalued: true primary knowledge source: - is_a: knowledge source - description: >- - The most upstream source of the knowledge expressed in an Association that an - implementer can identify (may or may not be the 'original' source). - range: information resource - multivalued: false - - original knowledge source: - is_a: primary knowledge source - description: >- - The Information Resource that created the original record of the knowledge expressed - in an Association (e.g. via curation of the knowledge from the literature, or - generation of the knowledge de novo through computation, reasoning, inference over - data). + is_a: knowledge source + description: >- + The most upstream source of the knowledge expressed in an Association that an + implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort + is made to catalog the most upstream source of data in this property. Only one data source should be declared + primary in any association. "aggregator knowledge source" can be used to caputre non-primary sources. range: information resource + notes: >- + For example: a single ChemicalToGene Edge originally curated by ClinicalTrials.org, is aggregated by ChEMBL, then + incorporated into the MolePro KP, then sent via TRAPI message to the ARAGORN ARA, and finally sent to + the NCATS ARS. The retrieval path for this Edge is as follows: + ARS--retrieved_from--> ARAGORN --retrieved_from--> MolePro --retrieved_from--> ChEMBL --retrieved_from--> ClinicalTrials.gov + The "primary knowledge source" for this edge is "infores:clinical-trials-gov". "infores:chembl" and "infores:molecular_data_provider" + are listed in the "aggregator knowledge source" property. multivalued: false aggregator knowledge source: @@ -6655,6 +4930,16 @@ slots: retrieved downstream of the original source, on its path to its current serialized form. range: information resource multivalued: true + notes: >- + For example, in this Feature Variable Association Edge generated by the Exposure Agent’s ICEES KP, + through statistical analysis of clinical and environmental data supplied by the UNC Clinical Data Warehouse, + the Edge is passed to the Ranking Agent’s ARAGORN ARA, + and then on to the ARS. The retrieval path for this Edge is as follows: + ARS--retrieved_from--> ARAGORN --retrieved_from--> ICEES --supporting_data_from--> UNC Data Warehouse + This example illustrates how to represent the source provenance of KP-generated knowledge, including the source of + data from which the knowledge was derived. + The "primary knowledge source" for this edge is "infores:icees-asthma". A "supporting data source" for this KP- + generated knowledge is "infores:unc-cdw-health." The "aggregator knowledge source" for this data is "infores:aragorn-ara" supporting data source: is_a: association slot @@ -6664,15 +4949,24 @@ slots: computation on, reasoning or inference over the retrieved data). range: information resource multivalued: true - - association type: + notes: >- + For example, in this Feature Variable Association Edge generated by the Exposure Agent’s ICEES KP, + through statistical analysis of clinical and environmental data supplied by the UNC Clinical Data Warehouse, + the Edge is passed to the Ranking Agent’s ARAGORN ARA, + and then on to the ARS. The retrieval path for this Edge is as follows: + ARS--retrieved_from--> ARAGORN --retrieved_from--> ICEES --supporting_data_from--> UNC Data Warehouse + This example illustrates how to represent the source provenance of KP-generated knowledge, including the source of + data from which the knowledge was derived. + The "primary knowledge source" for this edge is "infores:icees-asthma". A "supporting data source" for this KP- + generated knowledge is "infores:unc-cdw-health." The "aggregator knowledge source" for this data is "infores:aragorn-ara" + + supporting data set: is_a: association slot - range: category type - deprecated: >- - This slot is deprecated in favor of 'category' slot. - deprecated_element_has_exact_replacement: category description: >- - connects an association to the category of association (e.g. gene to phenotype) + A set of data used as evidence to generate the knowledge expressed in an Association (e.g. through + computation on, reasoning or inference over the retrieved data). + range: information resource + multivalued: true chi squared statistic: is_a: association slot @@ -6683,6 +4977,7 @@ slots: - STATO:0000030 p value: + aliases: ['unadjusted p value'] is_a: association slot range: float description: >- @@ -6694,125 +4989,225 @@ slots: - NCIT:C44185 - EDAM-DATA:1669 - interacting molecules category: + evidence count: is_a: association slot - range: ontology class - exact_mappings: - - MI:1046 - values_from: - - MI + description: >- + The number of evidence instances that are connected to an association. + range: integer + + concept count subject: + is_a: association slot + description: >- + The number of instances in a dataset/cohort whose records contain + the concept in the subject slot of an association. + range: integer examples: - - value: MI:1048 - description: smallmolecule-protein + - value: 489 - quantifier qualifier: + concept count object: is_a: association slot - range: ontology class description: >- - A measurable quantity for the object of the association - narrow_mappings: - # TODO: RTX contributed terms mapped here... May need review? - - LOINC:analyzes - - LOINC:measured_by - - LOINC:property_of - - SEMMEDDB:measures - - UMLS:measures + The number of instances in a dataset/cohort whose records contain + the concept in the object slot of an association. + range: integer - catalyst qualifier: + concept pair count: is_a: association slot - multivalued: true - range: macromolecular machine mixin description: >- - a qualifier that connects an association between two causally connected - entities (for example, two chemical entities, or a chemical entity in - that changes location) and the gene product, gene, or complex that - enables or catalyzes the change. + The number of instances in a dataset/cohort whose records contain + both the subject and object concept of an association. + range: integer + examples: + - value: 1731 - expression site: + expected count: + is_a: association slot description: >- - location in which gene or protein expression takes place. - May be cell, tissue, or organ. + The expected (calculated) number of instances in a dataset/cohort whose records contain both the subject and + object concept of an association if the subject and object concepts are independent. + + relative frequency subject: is_a: association slot - range: anatomical entity + description: >- + The frequency at which subject and object concepts co-occur in + records within a dataset/cohort, relative to the frequency at which the subject + concept appears in these same records. + range: float examples: - - value: UBERON:0002037 - description: cerebellum + - value: 0.01840490798 - stage qualifier: + relative frequency object: + is_a: association slot description: >- - stage during which gene or protein expression of takes place. + The frequency at which subject and object concepts co-occur in + records within a dataset/cohort, relative to the frequency at which the object + concept appears in these same records. + range: string + + relative frequency subject confidence interval: is_a: association slot - range: life stage - # path: "object/during" - examples: - - value: UBERON:0000069 - description: larval stage + description: >- + The 99% confidence interval for the relative_frequency_subject calculation + (i.e. the range of values within which the true value has a 99% chance of falling) + range: string - phenotypic state: + relative frequency object confidence interval: + is_a: association slot description: >- - in experiments (e.g. gene expression) assaying diseased or unhealthy - tissue, the phenotypic state can be put here, e.g. MONDO ID. - For healthy tissues, use XXX. + The 99% confidence interval for the relative_frequency_object calculation + (i.e. the range of values within which the true value has a 99% chance of falling) + range: string + + adjusted p value: + is_a: p value + description: >- + The adjusted p-value is the probability of obtaining test results + at least as extreme as the results actually observed, under the assumption that + the null hypothesis is correct, adjusted for multiple comparisons. + P is always italicized and capitalized. The actual P value* should be expressed (P=. 04) + rather than expressing a statement of inequality (P<. 05), unless P<. + range: float + + bonferonni adjusted p value: + is_a: adjusted p value + description: >- + The Bonferroni correction is an adjustment made to P values when several dependent or independent + statistical tests are being performed simultaneously on a single data set. To perform a Bonferroni + correction, divide the critical P value (α) by the number of comparisons being made. P is always italicized and + capitalized. The actual P value* should be expressed (P=. 04) rather than expressing a statement of inequality + (P<. 05), unless P<. + range: float + examples: + - value: 0.018 + + supporting text: is_a: association slot - range: disease or phenotypic feature + description: The segment of text from a document that supports the mined assertion. + multivalued: true + range: string + examples: + - value: The administration of 50g/ml bupivacaine promoted maximum breast cancer. - qualifiers: - singular_name: qualifier + supporting documents: + is_a: association slot description: >- - connects an association to qualifiers that modify or - qualify the meaning of that association - local_names: - ga4gh: annotation qualifier + One or more referencable documents that report the statement expressed in an Association, or provide + information used as evidence supporting this statement. + range: uriorcurie + multivalued: true + examples: + - value: PMID:12345678 + + subject location in text: is_a: association slot + description: >- + Character offsets for the text span(s) in the supporting text corresponding + to the subject concept of the extracted assertion. + range: integer + examples: + - value: 15 multivalued: true - range: ontology class - frequency qualifier: + object location in text: + is_a: association slot description: >- - a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject + Character offsets for the text span(s) in the supporting text corresponding + to the object concept of the extracted assertion + range: integer + examples: + - value: 15 + multivalued: true + + extraction confidence score: is_a: association slot - range: frequency value + description: >- + A quantitative confidence value that represents the probability of + obtaining a result at least as extreme as that actually obtained, + assuming that the actual value was the result of chance alone. + range: integer + examples: + - value: 15 - severity qualifier: + supporting document type: + is_a: association slot description: >- - a qualifier used in a phenotypic association to state - how severe the phenotype is in the subject + The document type (e.g., Journal Article, Case Study, Preprint) for + the supporting document used in a Text Mining Result. + range: string + examples: + - value: Journal Article + + supporting document year: is_a: association slot - range: severity value + description: >- + The document year (typically the publication year) for the supporting + document used in a Text Mining Result. + range: integer + examples: + - value: 1999 - sex qualifier: + supporting text section type: + is_a: association slot description: >- - a qualifier used in a phenotypic association to state whether - the association is specific to a particular sex. + The section of the supporting text of a Text Mining Result within + the supporting document. This is in the form of the name of the document section + (e.g., Abstract, Introduction) that contains the supporting text. + range: string + examples: + - value: Introduction + + ln ratio: is_a: association slot - range: biological sex + description: the natural log of the ratio of co-occurrence to expected + range: float + examples: + - value: 2.922827136 - onset qualifier: + ln ratio confidence interval: + is_a: association slot description: >- - a qualifier used in a phenotypic association to state - when the phenotype appears is in the subject + The 99% confidence interval for the ln_ratio calculation + (i.e. the range of values within which the true value has a 99% chance of falling) + range: float + examples: + - value: 2.922827136 + + interacting molecules category: is_a: association slot - range: onset + range: ontology class + exact_mappings: + - MI:1046 + values_from: + - MI + examples: + - value: MI:1048 + description: smallmolecule-protein - clinical modifier qualifier: + expression site: description: >- - Used to characterize and specify the phenotypic abnormalities - defined in the Phenotypic abnormality subontology, - with respect to severity, laterality, age of onset, and other aspects + location in which gene or protein expression takes place. + May be cell, tissue, or organ. is_a: association slot - range: clinical modifier + range: anatomical entity + examples: + - value: UBERON:0002037 + description: cerebellum - sequence variant qualifier: + phenotypic state: description: >- - a qualifier used in an association with the variant + in experiments (e.g. gene expression) assaying diseased or unhealthy + tissue, the phenotypic state can be put here, e.g. MONDO ID. + For healthy tissues, use XXX. is_a: association slot - range: sequence variant + range: disease or phenotypic feature publications: + aliases: ["supporting publications"] singular_name: publication description: >- - connects an association to publications supporting the association - is_a: association slot + One or more publications that report the statement expressed in an Association, or provide information used as + evidence supporting this statement. + is_a: supporting documents multivalued: true range: publication @@ -6822,8 +5217,8 @@ slots: An attribute that can be applied to an association where the association holds between two entities located or occurring in a particular environment. For example, two microbial taxa may interact in the context of a human gut; a disease may give rise to a particular phenotype in a particular environmental exposure. - # TODO: add examples of values for this property. - + # TODO: add examples of values for this property. + sequence localization attribute: is_a: association slot domain: genomic sequence localization @@ -6835,7 +5230,7 @@ slots: interbase coordinate: is_a: sequence localization attribute - aliases: ['zero-based', 'half-open', 'space-based'] + aliases: [ 'zero-based', 'half-open', 'space-based' ] description: >- A position in interbase coordinates. Interbase coordinates start at position 0 instead of position 1. This is applied to a sequence localization edge. @@ -6850,9 +5245,7 @@ slots: close_mappings: - faldo:begin annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:end interbase coordinate + opposite_of: end interbase coordinate end interbase coordinate: is_a: interbase coordinate @@ -6862,13 +5255,11 @@ slots: close_mappings: - faldo:end annotations: - biolink:opposite_of: - tag: biolink:opposite_of - value: biolink:start interbase coordinate + opposite_of: start interbase coordinate start coordinate: is_a: base coordinate - aliases: ['start'] + aliases: [ 'start' ] description: >- The position at which the subject genomic entity starts on the chromosome or other entity to which it is located on. @@ -6880,7 +5271,7 @@ slots: end coordinate: is_a: base coordinate - aliases: ['end'] + aliases: [ 'end' ] description: >- The position at which the subject genomic entity ends on the chromosome or other entity to which it is located on. @@ -6922,8 +5313,91 @@ slots: description: >- range: FDA_approval_status_enum + supporting study metadata: + is_a: association slot + description: >- + Information about a study used to generate information used as evidence to support the knowledge expressed in an + Association. In practice, data creators should use one of the more specific subtypes of this property. + abstract: true + + supporting study method type: + is_a: supporting study metadata + description: >- + A type of method that was applied in a study used to generate the information used as evidence (e.g. a type of + experimental assay, or statistical calculation, or computational analysis). + range: uriorcurie + + supporting study method description: + is_a: supporting study metadata + description: >- + A uri or curie pointing to information about the methodology used to generate data supporting an Association. + range: uriorcurie + + supporting study size: + is_a: supporting study metadata + description: >- + The sample size used in a study that provided evidence for the association (e.g. 'n' of a cohort for a + clinical study). + range: integer + + supporting study cohort: + is_a: supporting study metadata + description: >- + A description of a study population/cohort that was interrogated to provide evidence for the association + (e.g. the inclusion and exclusion criteria). + range: string + + supporting study date range: + is_a: supporting study metadata + description: >- + The date range over which data was collected in a study that provided evidence for an Association. + range: string + + supporting study context: + is_a: supporting study metadata + description: >- + A term or terms describing the experimental setting/context in which evidence supporting the Association was + generated ('context' may be defined by many factors, including taxon, model system (e.g. cell line type), tissue + type, disease, etc.). + range: string classes: + deprecated mapping collection: + description: >- + A collection of deprecated mappings. + abstract: true + slots: + - deprecated predicate mappings + tree_root: true + + deprecated predicate mapping: + description: >- + A deprecated predicate mapping object contains the deprecated predicate and an example of the rewiring that should + be done to use a qualified statement in its place. + slots: + - mapped predicate + - subject aspect qualifier + - subject direction qualifier + - subject form or variant qualifier + - subject part qualifier + - subject derivative qualifier + - subject context qualifier + - predicate + - qualified predicate + - object aspect qualifier + - object direction qualifier + - object form or variant qualifier + - object part qualifier + - object derivative qualifier + - object context qualifier + - causal mechanism qualifier + - anatomical context qualifier + - species context qualifier + - exact match + - narrow match + - broad match + + ## ---------- ## ATTRIBUTES ## ---------- @@ -6932,6 +5406,8 @@ classes: ontology class: mixin: true + slots: + - id description: >- a concept or class in an ontology, vocabulary or thesaurus. Note that nodes in a biolink compatible KG can be considered both instances of biolink classes, and @@ -6943,14 +5419,14 @@ classes: - schema:Class comments: - >- - This is modeled as a mixin. 'ontology class' should not be the primary type of a - node in the KG. Instead you should use an informative bioloink category, such as AnatomicalEntity - (for Uberon classes), ChemicalSubstance (for CHEBI or CHEMBL), etc + This is modeled as a mixin. 'ontology class' should not be the primary type of a + node in the KG. Instead you should use an informative bioloink category, such as AnatomicalEntity + (for Uberon classes), ChemicalSubstance (for CHEBI or CHEMBL), etc - >- - Note that formally this is a metaclass. Instances of this class are instances in the graph, - but can be the object of 'type' edges. For example, if we had a node in the graph representing - a specific brain of a specific patient (e.g brain001), this could have a category of bl:Sample, - and by typed more specifically with an ontology class UBERON:nnn, which has as category bl:AnatomicalEntity + Note that formally this is a metaclass. Instances of this class are instances in the graph, + but can be the object of 'type' edges. For example, if we had a node in the graph representing + a specific brain of a specific patient (e.g brain001), this could have a category of bl:Sample, + and by typed more specifically with an ontology class UBERON:nnn, which has as category bl:AnatomicalEntity see_also: - https://github.com/biolink/biolink-model/issues/486 examples: @@ -6988,7 +5464,7 @@ classes: # source: ORCID attribute: - is_a: annotation + is_a: named thing mixins: - ontology class description: >- @@ -7003,7 +5479,6 @@ classes: - has quantitative value - has qualitative value - iri # 'url' - - source # 'source' slot_usage: name: description: >- @@ -7020,10 +5495,13 @@ classes: in_subset: - samples + chemical role: + is_a: attribute + biological sex: is_a: attribute exact_mappings: - - PATO:0000047 + - PATO:0000047 phenotypic sex: is_a: biological sex @@ -7031,7 +5509,7 @@ classes: An attribute corresponding to the phenotypic sex of the individual, based upon the reproductive organs present. exact_mappings: - - PATO:0001894 + - PATO:0001894 genotypic sex: is_a: biological sex @@ -7039,7 +5517,7 @@ classes: An attribute corresponding to the genotypic sex of the individual, based upon genotypic composition of sex chromosomes. exact_mappings: - - PATO:0020000 + - PATO:0020000 severity value: is_a: attribute @@ -7091,7 +5569,6 @@ classes: - type # rdf:type - name - description - - source - has attribute # evidence code(s)? @@ -7100,10 +5577,11 @@ classes: description: "a databased entity or concept/class" slots: - provided by + - xref slot_usage: category: - range: named thing required: true + pattern: '^biolink:\d+$' exact_mappings: - BFO:0000001 - WIKIDATA:Q35120 @@ -7115,24 +5593,8 @@ classes: relationship type: is_a: ontology class - description: >- - An OWL property used as an edge label - - gene ontology class: - mixin: true - description: >- - an ontology class that describes a functional aspect of a gene, gene prodoct or complex - is_a: ontology class - in_subset: - - testing - - unclassified ontology class: - mixin: true - description: >- - this is used for nodes that are taken from an ontology but are not typed using an existing biolink class - is_a: ontology class - in_subset: - - testing + description: >- + An OWL property used as an edge label taxonomic rank: description: >- @@ -7145,7 +5607,7 @@ classes: - WIKIDATA:Q427626 organism taxon: - aliases: ['taxon', 'taxonomic classification'] + aliases: [ 'taxon', 'taxonomic classification' ] description: >- A classification of a set of organisms. Example instances: NCBITaxon:9606 (Homo sapiens), NCBITaxon:2 (Bacteria). @@ -7168,6 +5630,7 @@ classes: id_prefixes: - NCBITaxon - MESH + - UMLS in_subset: - model_organism_database @@ -7188,9 +5651,79 @@ classes: is_a: named thing abstract: true + study result: + abstract: true + description: >- + A collection of data items from a study that are about a particular study subject or experimental unit (the + 'focus' of the Result) - optionally with context/provenance metadata that may be relevant to the interpretation + of this data as evidence. + notes: + The data/metadata included in a Study Result object are typically a subset of data from a larger study data set, + that are selected by a curator because they may be useful as evidence for deriving knowledge about a specific + focus of the study. The notion of a 'study' here is defined broadly to include any research activity at any + scale that is aimed at generating knowledge or hypotheses. This may include a single assay or computational + analyses, or a larger scale clinical trial or experimental research investigation. + is_a: information content entity + + study: + description: a detailed investigation and/or analysis + is_a: information content entity + exact_mappings: + - NCIT:C63536 + close_mappings: + - SIO:001066 + - SEPIO:0000004 + narrow_mappings: + - SIO:000994 + + study variable: + is_a: information content entity + description: a variable that is used as a measure in the investigation of a study + narrow_mappings: + - NCIT:C142192 # specifies clinical study + close_mappings: + - STATO:0000258 + - SIO:000367 + + common data element: + is_a: information content entity + description: >- + A Common Data Element (CDE) is a standardized, precisely defined question, paired with a set of allowable + responses, used systematically across different sites, studies, or clinical trials to ensure consistent + data collection. Multiple CDEs (from one or more Collections) can be curated into Forms. + (https://cde.nlm.nih.gov/home) + close_mappings: + - NCIT:C19984 + + ## epc result sets + concept count analysis result: + is_a: study result + description: >- + A result of a concept count analysis. + + observed expected frequency analysis result: + is_a: study result + description: >- + A result of a observed expected frequency analysis. + + relative frequency analysis result: + is_a: study result + description: >- + A result of a relative frequency analysis. + + text mining result: + is_a: study result + description: >- + A result of text mining. + + chi squared analysis result: + is_a: study result + description: >- + A result of a chi squared analysis. + agent: is_a: administrative entity - aliases: ['group'] + aliases: [ 'group' ] description: >- person, group, organization or project that provides a piece of information (i.e. a knowledge association) @@ -7249,7 +5782,7 @@ classes: ## General Information Entities information content entity: - aliases: ['information', 'information artefact', 'information entity'] + aliases: [ 'information', 'information artefact', 'information entity' ] abstract: true is_a: named thing description: >- @@ -7342,7 +5875,7 @@ classes: evidence type: is_a: information content entity - aliases: ['evidence code'] + aliases: [ 'evidence code' ] description: >- Class of evidence that supports an association values_from: @@ -7352,7 +5885,7 @@ classes: information resource: is_a: information content entity - aliases: ['knowledgebase'] + aliases: [ 'knowledgebase' ] description: >- A database or knowledgebase and its supporting ecosystem of interfaces and services that deliver content to consumers (e.g. web portals, APIs, @@ -7362,7 +5895,7 @@ classes: interfaces. Information Resources include project-specific resources such as a Translator Knowledge Provider, and community knowledgebases like ChemBL, OMIM, or DGIdb. in_subset: - - translator_minimal + - translator_minimal ## Publications @@ -7415,7 +5948,7 @@ classes: equivalent publication type ontology. When a given publication type ontology term is used within a given knowledge graph, then the CURIE identified term must be documented in the graph as a concept node of biolink:category biolink:OntologyClass. - values_from: # Not sure which takes precedence, if any... + values_from: # Not sure which takes precedence, if any... - dctypes - fabio - MESH_PUB @@ -7473,7 +6006,7 @@ classes: - model_organism_database serial: - aliases: ['journal'] + aliases: [ 'journal' ] is_a: publication description: >- This class may rarely be instantiated except if use cases @@ -7615,6 +6148,8 @@ classes: - STY:T061 # Molecular Biology Research Technique - STY:T063 + id_prefixes: + - CPT phenomenon: is_a: named thing @@ -7675,7 +6210,7 @@ classes: An entity that has the role of being studied in an investigation, study, or experiment material sample: - aliases: ['biospecimen', 'sample', 'biosample', 'physical sample'] + aliases: [ 'biospecimen', 'sample', 'biosample', 'physical sample' ] is_a: physical entity mixins: - subject of investigation @@ -7731,10 +6266,21 @@ classes: ## Biological Sciences + thing with taxon: + mixin: true + description: >- + A mixin that can be used on any entity that can be taxonomically classified. + This includes individual organisms; genes, their products and other molecular + entities; body parts; biological processes + slots: + - in taxon + biological entity: is_a: named thing - aliases: ['bioentity'] + aliases: [ 'bioentity' ] abstract: true + mixins: + - thing with taxon narrow_mappings: - WIKIDATA:Q28845870 # UMLS Semantic Type "Experimental Model of Disease" @@ -7742,18 +6288,8 @@ classes: # SIO term is 'biological entity' but less inclusive than the Biolink scope - SIO:010046 - thing with taxon: - mixin: true - description: >- - A mixin that can be used on any entity that can be taxonomically classified. - This includes individual organisms; genes, their products and other molecular - entities; body parts; biological processes - slots: - - in taxon - genomic entity: mixin: true - is_a: thing with taxon slots: - has biological sequence in_subset: @@ -7762,6 +6298,14 @@ classes: - STY:T028 # Gene or Genome - GENO:0000897 # Genomic Entity + epigenomic entity: + mixin: true + slots: + - has biological sequence + in_subset: + - translator_minimal + narrow_mappings: + molecular entity: is_a: chemical entity description: >- @@ -7773,7 +6317,7 @@ classes: - STY:T088 # Carbohydrate - STY:T085 # Molecular Sequence - CHEBI:23367 # Any constitutionally or isotopically distinct atom, molecule, ion, ion pair, radical, - # radical ion, complex, conformer etc., identifiable as a separately distinguishable entity. + # radical ion, complex, conformer etc., identifiable as a separately distinguishable entity. - bioschemas:MolecularEntity in_subset: - translator_minimal @@ -7817,6 +6361,7 @@ classes: - available from - max tolerated dose - is toxic + - has chemical role exact_mappings: - CHEBI:24431 - SIO:010004 # Chemical entity @@ -7824,6 +6369,7 @@ classes: - STY:T103 # Chemical narrow_mappings: - WIKIDATA:Q43460564 + - STY:T129 # (imft, full name: Immunologic Factor in_subset: - translator_minimal id_prefixes: @@ -7831,24 +6377,33 @@ classes: - MESH - CAS #CAS numbers are given for things like plant extracts as well. - UMLS - - chemical substance: - deprecated: >- - This class is deprecated in favor of 'small molecule.' + - ncats.drug small molecule: is_a: molecular entity - aliases: [ 'chemical substance'] + aliases: [ 'chemical substance' ] description: >- - A small molecule entity is a molecular entity characterized by availability - in small-molecule databases of SMILES, InChI, IUPAC, or other - unambiguous representation of its precise chemical structure; for - convenience of representation, any valid chemical representation is - included, even if it is not strictly molecular (e.g., sodium ion). + A small molecule entity is a molecular entity characterized by availability + in small-molecule databases of SMILES, InChI, IUPAC, or other + unambiguous representation of its precise chemical structure; for + convenience of representation, any valid chemical representation is + included, even if it is not strictly molecular (e.g., sodium ion). narrow_mappings: - STY:T196 # Element, Ion, or Isotope - CHEBI:59999 - bioschemas:ChemicalSubstance + - STY:T123 #(bacs, full name: Biologically Active Substance) + - STY:T131 #(hops, full name: Hazardous or Poisonous Substance) + - STY:T125 #(horm, full name: Hormone) + - STY:T197 #(inch, full name: Inorganic Chemical) + - STY:T109 #(orch, full name: Organic Chemical) + - STY:T118 #(carb, full name: Carbohydrate) - note that this term is missing from newer SRDEF files (depreciated?), but is still used by the SEMMEDDB data files) + - STY:T111 #(eico, full name: Eicosanoid) - same note as above + - STY:T119 #(lipd, full name: Lipid) - same note as above + - STY:T124 #(nsba, full name: Neuroreactive Substance or Biogenic Amine) - same note as above + - STY:T115 #(opco, full name: Organophosphorus Compound) - same note as above + - STY:T110 #(strd, full name: Steroid) - same note as above + - STY:T127 # vitamin id_prefixes: - PUBCHEM.COMPOUND - CHEMBL.COMPOUND @@ -7874,6 +6429,7 @@ classes: - KEGG.ENVIRON ## E number - BIGG.METABOLITE - UMLS + - foodb.compound slot_usage: id: examples: @@ -7883,6 +6439,7 @@ classes: - model_organism_database - translator_minimal + chemical mixture: is_a: chemical entity description: >- @@ -7921,6 +6478,9 @@ classes: - UMLS close_mappings: - dcid:ChemicalCompound + narrow_mappings: + - NCIT:C20401 # monoclonal antibody + - SNOMEDCT:49616005 # monoclonal antibody (substance) nucleic acid entity: is_a: molecular entity @@ -7932,6 +6492,7 @@ classes: aliases: [ 'sequence feature', 'genomic entity' ] mixins: - genomic entity + - thing with taxon - physical essence - ontology class exact_mappings: @@ -7992,6 +6553,7 @@ classes: - KEGG.DGROUP ## DG number - KEGG.ENVIRON ## E number - UMLS + - ncats.drug complex molecular mixture: is_a: chemical mixture @@ -8046,7 +6608,7 @@ classes: An execution of a molecular function carried out by a gene product or macromolecular complex. is_a: biological process or activity - aliases: ['molecular function', 'molecular event', 'reaction'] + aliases: [ 'molecular function', 'molecular event', 'reaction' ] mixins: - occurrent - ontology class @@ -8123,9 +6685,10 @@ classes: - FB # FlyBase FBgg* - PANTHER.PATHWAY - KEGG.PATHWAY + - ncats.bioplanet physiological process: - aliases: ['physiology'] + aliases: [ 'physiology' ] is_a: biological process mixins: - ontology class @@ -8201,6 +6764,7 @@ classes: # Antibiotic - STY:T195 id_prefixes: + - ncats.drug - RXCUI - NDC - UMLS @@ -8219,38 +6783,15 @@ classes: # substance role - CHEBI:64047 - nutrient: - is_a: chemical entity - related_mappings: - # substance role - - CHEBI:33284 - - macronutrient: - is_a: nutrient - related_mappings: - # substance role - - CHEBI:33937 - - micronutrient: - is_a: nutrient - related_mappings: - # substance role - - CHEBI:27027 - - vitamin: - is_a: micronutrient - related_mappings: - # substance role - - CHEBI:33229 - # Vitamin - - STY:T127 - food: is_a: chemical mixture description: >- A substance consumed by a living organism as a source of nutrition id_prefixes: - - foodb.compound + - foodb.food + - FOODON + - UMLS + - NCIT exact_mappings: # Food - STY:T168 @@ -8268,7 +6809,7 @@ classes: - STY:T032 phenotypic quality: - aliases: ['phenotypic properties'] + aliases: [ 'phenotypic properties' ] is_a: organism attribute description: >- A property of a phenotype @@ -8278,8 +6819,9 @@ classes: mappings: - PATO:0000001 - inheritance: - is_a: organism attribute + genetic inheritance: + aliases: [ 'inheritance' ] + is_a: biological entity description: >- The pattern or 'mode' in which a particular genetic trait or disorder is passed from one generation to the next, e.g. autosomal dominant, autosomal recessive, etc. @@ -8287,6 +6829,12 @@ classes: - HP:0000005 - GENO:0000141 - NCIT:C45827 + close_mappings: + - STY:T045 + id_prefixes: + - HP + - GENO + - NCIT ## Biological Entities @@ -8296,6 +6844,8 @@ classes: population or clade of organisms, excluding chemical entities abstract: true is_a: biological entity + mixins: + - subject of investigation slot_usage: has attribute: description: >- @@ -8306,11 +6856,28 @@ classes: # Several of the associated semantic types here are probably not # that relevant to the Biolink world but we keep them here for now. - UMLSSG:LIVB + - CARO:0001010 - life stage: + virus: is_a: organismal entity mixins: - - thing with taxon + - subject of investigation + description: >- + A virus is a microorganism that replicates itself as a microRNA + and infects the host cell. + exact_mappings: + - NCBITaxon:10239 + + cellular organism: + is_a: organismal entity + mixins: + - subject of investigation + description: >- + exact_mappings: + - NCBITaxon:131567 + + life stage: + is_a: organismal entity description: >- A stage of development or growth of an organism, including post-natal adult stages @@ -8321,15 +6888,22 @@ classes: - HsapDv:0000000 in_subset: - model_organism_database + id_prefixes: + - HsapDv + - MmusDv + - ZFS + - FBdv + - WBls + - UBERON individual organism: - aliases: ['organism'] + aliases: [ 'organism' ] description: >- An instance of an organism. For example, Richard Nixon, Charles Darwin, my pet cat. Example ID: ORCID:0000-0002-5355-2576 - mixins: - - thing with taxon is_a: organismal entity + mixins: + - subject of investigation exact_mappings: - SIO:010000 # Organism @@ -8349,9 +6923,9 @@ classes: phenotypes. local_names: ga4gh: population - mixins: - - thing with taxon is_a: organismal entity + mixins: + - subject of investigation exact_mappings: - PCO:0000001 - SIO:001061 @@ -8364,14 +6938,14 @@ classes: - model_organism_database disease or phenotypic feature: - aliases: ['phenome'] + aliases: [ 'phenome' ] is_a: biological entity description: >- Either one of a disease or an individual phenotypic feature. Some knowledge resources such as Monarch treat these as - distinct, others such as MESH conflate. - mixins: - - thing with taxon + distinct, others such as MESH conflate. Please see definitions of phenotypic feature and disease in this model + for their independent descriptions. This class is helpful to enforce domains and ranges + that may involve either a disease or a phenotypic feature. union_of: - disease - phenotypic feature @@ -8380,7 +6954,12 @@ classes: - STY:T033 disease: - aliases: ['condition', 'disorder', 'medical condition'] + aliases: [ 'condition', 'disorder', 'medical condition' ] + description: >- + A disorder of structure or function, especially one that produces specific + signs, phenotypes or symptoms or that affects a specific location and is not simply a + direct result of physical injury. A disposition to undergo pathological processes that exists in an + organism because of one or more disorders in that organism. is_a: disease or phenotypic feature exact_mappings: - MONDO:0000001 @@ -8430,10 +7009,11 @@ classes: - model_organism_database phenotypic feature: - aliases: ['sign', 'symptom', 'phenotype', 'trait', 'endophenotype'] + aliases: [ 'sign', 'symptom', 'phenotype', 'trait', 'endophenotype' ] is_a: disease or phenotypic feature description: >- - A combination of entity and quality that makes up a phenotyping statement. + A combination of entity and quality that makes up a phenotyping statement. An observable characteristic of an + individual resulting from the interaction of its genotype with its molecular and physical environment. examples: - value: MP:0001262 description: decreased body weight @@ -8441,18 +7021,33 @@ classes: - UPHENO:0001001 - SIO:010056 - WIKIDATA:Q104053 + - UMLS:C4021819 + - NCIT:C16977 + - SNOMEDCT:8116006 # documented as phenotypic finding and phenotype, also referred to as "SCTID:8116006" at SNOMEDCT + - MESH:D010641 # phenotype narrow_mappings: - # Sign or Symptom - - STY:T184 - - WIKIDATA:Q169872 + - STY:T184 # Sign or Symptom + - WIKIDATA:Q169872 # Sign or Symptom # presentation of a disease in clinical medicine - WIKIDATA:Q25203551 + - ZP:00000000 # zebrafish phenotype + - FBcv:0001347 # fly phenotype + - HP:0000118 # human phenotype + - MP:0000001 # mouse phenotype + - WBPhenotype:0000886 # worm phenotype + - XPO:00000000 # frog phenotype + - FYPO:0000001 # fission yeast phenotype + - APO:0000017 # phenotype + - TO:0000387 # more narrowly defined here for plants; our definition conflates trait and phenotype. + broad_mappings: + - BFO:0000019 # quality + - PATO:0000001 # quality id_prefixes: - HP - - EFO + - EFO # covered by BFO quality mapping - NCIT - UMLS - - MEDDRA + - MEDDRA # can not find a mapping - MP - ZP - UPHENO @@ -8477,7 +7072,6 @@ classes: anatomical entity: is_a: organismal entity mixins: - - thing with taxon - physical essence description: >- A subcellular location, cell type or gross anatomical part @@ -8488,6 +7082,20 @@ classes: - UMLSSG:ANAT # UMLS Semantic Type "Anatomical Structure" - STY:T017 + - FMA:62955 # anatomical entity + - CARO:0000000 # anatomical entity + - SIO:001262 # anatomical entity + narrow_mappings: + - ZFA:0100000 # zebrafish anatomical entity + - FBbt:10000000 # fly anatomical entity + - EMAPA:0 # mouse anatomical entity + - MA:0000001 # mouse anatomical entity + - XAO:0000000 # frog anatomical entity + - WBbt:0000100 # c. elegans anatomical entity + - NCIT:C12219 # human anatomical entity + - GO:0110165 # cellular anatomical entity, also used directly in CL + related_mappings: + - SNOMEDCT:123037004 # body structure id_prefixes: - UBERON - GO @@ -8495,11 +7103,15 @@ classes: - UMLS - MESH - NCIT + - EMAPA + - ZFA + - FBbt + - WBbt in_subset: - model_organism_database cellular component: - aliases: ['cell component','cell part'] + aliases: [ 'cell component','cell part' ] is_a: anatomical entity description: >- A location in or around a cell @@ -8529,6 +7141,7 @@ classes: - WIKIDATA:Q7868 # UMLS Semantic Type "Cell" - STY:T025 + - MESH:D002477 # cells id_prefixes: - CL - PO @@ -8537,16 +7150,19 @@ classes: - MESH - UBERON - SNOMEDCT + - MESH cell line: is_a: organismal entity + mixins: + - subject of investigation exact_mappings: - CLO:0000031 id_prefixes: - CLO gross anatomical structure: - aliases: ['tissue', 'organ'] + aliases: [ 'tissue', 'organ' ] is_a: anatomical entity exact_mappings: - UBERON:0010000 @@ -8565,7 +7181,7 @@ classes: - NCIT - PO - FAO - + ## entity mixins @@ -8585,7 +7201,7 @@ classes: macromolecular machine mixin: description: >- - A union of gene locus, gene product, and macromolecular complex mixin. These are + A union of gene locus, gene product, and macromolecular complex. These are the basic units of function in a cell. They either carry out individual biological activities, or they encode molecules which do this. mixin: true @@ -8622,13 +7238,14 @@ classes: - chemical entity or gene or gene product - physical essence - ontology class - aliases: ['locus'] slots: - symbol - synonym - xref narrow_mappings: - bioschemas:gene + broad_mappings: + - NCIT:C45822 exact_mappings: - SO:0000704 - SIO:010035 @@ -8642,9 +7259,9 @@ classes: - ZFIN - dictyBase - WB - - WormBase # we have two prefixes here as worbase supports WormBase:WBGene00000898 - # and alliancegenome.org and identifiers.org supports WB:WBGene00000898. - - FB # FlyBase FBgn* + - WormBase # we have two prefixes here as wormbase supports WormBase:WBGene00000898 + # and alliancegenome.org and identifiers.org supports WB:WBGene00000898. + - FB - RGD - SGD - PomBase @@ -8653,7 +7270,6 @@ classes: - UMLS - Xenbase - AspGD - # - IUPHAR in_subset: - model_organism_database @@ -8685,13 +7301,14 @@ classes: is_a: gene product mixin mixin: true - macromolecular complex mixin: + macromolecular complex: description: >- A stable assembly of two or more macromolecules, i.e. proteins, nucleic acids, carbohydrates or lipids, in which at least one component is a protein and the constituent parts function together. - is_a: macromolecular machine mixin - mixin: true + is_a: biological entity + mixins: + - macromolecular machine mixin exact_mappings: - GO:0032991 - WIKIDATA:Q22325163 @@ -8700,10 +7317,20 @@ classes: - GO - PR - REACT + - ComplexPortal in_subset: - model_organism_database ## Genomic Classes + nucleosome modification: + is_a: biological entity + description: >- + A chemical modification of a histone protein within a nucleosome octomer or a substitution of a histone with a variant histone isoform. + e.g. Histone 4 Lysine 20 methylation (H4K20me), histone variant H2AZ substituting H2A. + mixins: + - gene product isoform mixin + - genomic entity + - epigenomic entity genome: is_a: biological entity @@ -8763,7 +7390,6 @@ classes: partial sequences of various kinds are included, even if they do not represent a physical molecule. mixins: - - thing with taxon - chemical entity or gene or gene product - chemical entity or protein or polypeptide id_prefixes: @@ -8788,7 +7414,6 @@ classes: is_a: polypeptide mixins: - gene product mixin - - thing with taxon id_prefixes: - UniProtKB - PR @@ -8796,6 +7421,7 @@ classes: - FB # FlyBase FBpp* - UMLS - MESH + - ncats.drug broad_mappings: - bioschemas:Protein exact_mappings: @@ -8809,7 +7435,7 @@ classes: - STY:T192 protein isoform: - aliases: ['proteoform'] + aliases: [ 'proteoform' ] is_a: protein description: >- Represents a protein that is a specific isoform of the canonical or @@ -8818,7 +7444,7 @@ classes: - gene product isoform mixin id_prefixes: - UniProtKB # UniProtKB:([A-Z0-9]+-\d+) - - UNIPROT.ISOFORM + - UNIPROT.ISOFORM - PR - ENSEMBL @@ -8836,7 +7462,16 @@ classes: - NCIT:C13379 - SIO:001379 - UMLS:C1514562 - + + posttranslational modification: + is_a: biological entity + description: >- + A chemical modification of a polypeptide or protein that occurs after translation. + e.g. polypeptide cleavage to form separate proteins, methylation or acetylation of histone tail amino acids, + protein ubiquitination. + mixins: + - gene product isoform mixin + protein family: is_a: biological entity exact_mappings: @@ -8851,7 +7486,7 @@ classes: - chemical entity or gene or gene product nucleic acid sequence motif: - aliases: ['consensus sequence'] + aliases: [ 'consensus sequence' ] is_a: biological entity description: >- A linear nucleotide sequence pattern that is widespread and has, or is conjectured to have, @@ -8905,7 +7540,7 @@ classes: - model_organism_database siRNA: - aliases: ['small interfering RNA', 'RNAi'] + aliases: [ 'small interfering RNA', 'RNAi' ] description: >- A small RNA molecule that is the product of a longer exogenous or endogenous dsRNA, which is either a bimolecular duplex or very long @@ -8931,7 +7566,7 @@ classes: - has gene or gene product gene family: - aliases: ['orthogroup','protein family'] + aliases: [ 'orthogroup','protein family' ] is_a: biological entity exact_mappings: - NCIT:C26004 @@ -9008,15 +7643,15 @@ classes: - ontology class description: >- A set of zero or more Alleles on a single instance of a Sequence[VMC] -# slots: -# - completeness + # slots: + # - completeness exact_mappings: - GENO:0000871 - SO:0001024 - VMC:Haplotype sequence variant: - aliases: ['allele'] + aliases: [ 'allele' ] local_names: agr: allele is_a: biological entity @@ -9046,18 +7681,17 @@ classes: id_prefixes: - CAID # ClinGen Allele Registry - CLINVAR - - ClinVarVariant - WIKIDATA # - CIViC needs IRI mapping - DBSNP - # - MYVARIANT_HG19 needs IRI mapping - # - MYVARIANT_HG38 needs IRI mapping - # - HGVS needs IRI mapping - MGI - - ZFIN # ZFIN:ZDB-ALT-* - - FB # FlyBase FBal* + - ZFIN + - FB + - RGD + - AGRKB + - SPDI - WB - - WormBase ## WormBase:WBVar* + - WormBase alt_descriptions: AGR: >- An entity that describes a single affected, endogenous allele. @@ -9077,13 +7711,13 @@ classes: examples: - value: ZFIN:ZDB-ALT-980203-1091 description: ti282a allele from ZFIN - - value: ClinVarVariant:17681 + - value: CLINVAR:17681 description: NM_007294.3(BRCA1):c.2521C>T (p.Arg841Trp) in_subset: - model_organism_database snv: - aliases: ['single nucleotide variant','single nucleotide polymorphism', 'snp'] + aliases: [ 'single nucleotide variant','single nucleotide polymorphism', 'snp' ] is_a: sequence variant description: >- SNVs are single nucleotide positions in genomic DNA at @@ -9092,7 +7726,7 @@ classes: - SO:0001483 reagent targeted gene: - aliases: ['sequence targeting reagent'] + aliases: [ 'sequence targeting reagent' ] is_a: biological entity description: >- A gene altered in its expression level in the context of some @@ -9210,10 +7844,12 @@ classes: ## Cohorts case: - aliases: ['patient', 'proband'] + aliases: [ 'patient', 'proband' ] is_a: individual organism description: >- An individual (human) organism that has a patient role in some clinical context. + mixins: + - subject of investigation cohort: is_a: study population @@ -9221,17 +7857,8 @@ classes: A group of people banded together or treated as a group who share common characteristics. A cohort 'study' is a particular form of longitudinal study that samples a cohort, performing a cross-section at intervals through time. - # - # As of this moment (Nov. 22), the jury is still out on what metadata of a cohort - # will be common to all cohort descriptions versus cohort-specific annotation. - # The former should be embedded as explicit slots in the cohort category. The latter - # ought to be documented as (ontology term constrained) extended node attributes. - # - #slots: - # - general disease focus, - # - specific inclusion/exclusion criteria, - # - year(s) of cohort creation, - # - institution. + mixins: + - subject of investigation exact_mappings: - WIKIDATA:Q1303415 narrow_mappings: @@ -9247,7 +7874,8 @@ classes: ## Exposures exposure event: - aliases: ['exposure', 'experimental condition'] + is_a: ontology class + aliases: [ 'exposure', 'experimental condition' ] mixin: true slots: - timepoint @@ -9261,11 +7889,13 @@ classes: # TODO - confirm that genomic backgrounds are exposures genomic background exposure: + is_a: attribute mixins: - exposure event - gene grouping mixin - physical essence - genomic entity + - thing with taxon - ontology class description: >- A genomic background exposure is where an individual's specific genomic background @@ -9299,6 +7929,7 @@ classes: - STY:T037 pathological process exposure: + is_a: attribute mixins: - exposure event description: >- @@ -9315,6 +7946,7 @@ classes: - pathological entity mixin pathological anatomical exposure: + is_a: attribute mixins: - exposure event description: >- @@ -9323,6 +7955,7 @@ classes: e.g. thrombosis leading to an ischemic disease outcome. disease or phenotypic feature exposure: + is_a: attribute mixins: - exposure event - pathological entity mixin @@ -9333,6 +7966,7 @@ classes: of skin pigmentation predisposing an individual to skin cancer. chemical exposure: + is_a: attribute mixins: - exposure event slots: @@ -9348,13 +7982,14 @@ classes: - SIO:001399 complex chemical exposure: + is_a: attribute description: >- A complex chemical exposure is an intake of a chemical mixture (e.g. gasoline), other than a drug. drug exposure: is_a: chemical exposure - aliases: ['drug intake', 'drug dose', 'medication intake'] + aliases: [ 'drug intake', 'drug dose', 'medication intake' ] description: >- A drug exposure is an intake of a particular drug. mixins: @@ -9376,7 +8011,7 @@ classes: - gene grouping mixin treatment: - aliases: ['medical action', 'medical intervention'] + aliases: [ 'medical action', 'medical intervention' ] # 'named thing' seems too generic here but not sure what applies better here is_a: named thing mixins: @@ -9396,7 +8031,8 @@ classes: - MAXO:0000058 biotic exposure: - aliases: ['viral exposure','bacterial exposure'] + is_a: attribute + aliases: [ 'viral exposure','bacterial exposure' ] mixins: - exposure event description: >- @@ -9429,6 +8065,7 @@ classes: - dcid:WinterStoremEvent environmental exposure: + is_a: attribute mixins: - exposure event description: >- @@ -9437,12 +8074,14 @@ classes: cold, general pollution) and water-born contaminants. behavioral exposure: + is_a: attribute mixins: - exposure event description: >- A behavioral exposure is a factor relating to behavior impacting an individual. socioeconomic exposure: + is_a: attribute mixins: - exposure event description: >- @@ -9534,15 +8173,14 @@ classes: - subject - predicate - object - - relation - negated - qualifiers - publications - has evidence - knowledge source - - original knowledge source - primary knowledge source - aggregator knowledge source + - timepoint slot_usage: type: description: rdf:type of biolink:Association should be fixed at rdf:Statement @@ -9554,6 +8192,18 @@ classes: - rdf:Statement - owl:Axiom + + chemical entity assesses named thing association: + is_a: association + slot_usage: + subject: + range: chemical entity + object: + range: named thing + predicate: + subproperty_of: assesses + + contributor association: is_a: association defining_slots: @@ -9632,7 +8282,6 @@ classes: - object slot_usage: predicate: - # subproperty_of: ??? description: >- the relationship type used to connect genotype to gene subject: @@ -9645,7 +8294,7 @@ classes: gene implicated in genotype gene to gene association: - aliases: ['molecular or genetic interaction'] + aliases: [ 'molecular or genetic interaction' ] description: >- abstract parent class for different kinds of gene-gene or gene product to gene product relationships. Includes homology and interaction. @@ -9679,11 +8328,37 @@ classes: - predicate - object slot_usage: + subject: + range: gene or gene product predicate: subproperty_of: homologous to symmetric: true description: >- homology relationship type + object: + range: gene or gene product + + gene to gene family association: + description: >- + Set membership of a gene in a family of genes related by common + evolutionary ancestry usually inferred by sequence comparisons. + The genes in a given family generally share common sequence motifs which + generally map onto shared gene product structure-function relationships. + is_a: association + defining_slots: + - subject + - predicate + - object + slot_usage: + subject: + range: gene + object: + range: gene family + predicate: + subproperty_of: member of + symmetric: false + description: >- + membership of the gene in the given gene family. gene expression mixin: description: >- @@ -9730,10 +8405,6 @@ classes: predicate: subproperty_of: interacts with symmetric: true - # relation: - # values_from: - # - ro - # - mi description: "interaction relationship type" narrow_mappings: - dcid:ProteinProteinInteraction @@ -9743,8 +8414,6 @@ classes: An interaction at the molecular level between two physical entities is_a: pairwise gene to gene interaction slots: - # need to declare a slot before it is used, - # then list it in 'slots', not just a slot_usage - interacting molecules category defining_slots: - subject @@ -9762,11 +8431,7 @@ classes: - IMEX - BioGRID predicate: - subproperty_of: molecularly interacts with - # relation: - # values_from: - # - ro - # - mi + subproperty_of: interacts with description: "interaction relationship type" examples: - value: RO:0002447 @@ -9795,8 +8460,8 @@ classes: the cell line is derived from an individual with that disease or phenotype. slot_usage: subject: -# - range: cell line -# - range: disease or phenotypic feature + # - range: cell line + # - range: disease or phenotypic feature range: disease or phenotypic feature chemical entity to entity association mixin: @@ -9936,6 +8601,69 @@ classes: range: disease or phenotypic feature description: "the disease or phenotype that is affected by the chemical" + chemical or drug or treatment to disease or phenotypic feature association: + description: >- + This association defines a relationship between a chemical or treatment (or procedure) and a disease or phenotypic feature + where the disesae or phenotypic feature is a secondary undesirable effect. + is_a: association + defining_slots: + - subject + - predicate + - object + mixins: + - chemical to entity association mixin + - entity to disease or phenotypic feature association mixin + slots: + - FDA adverse event level + slot_usage: + predicate: + subproperty_of: has adverse event + + chemical or drug or treatment side effect disease or phenotypic feature association: + description: >- + This association defines a relationship between a chemical or treatment (or procedure) and a disease or phenotypic feature + where the disesae or phenotypic feature is a secondary, typically (but not always) undesirable effect. + is_a: chemical or drug or treatment to disease or phenotypic feature association + defining_slots: + - subject + - predicate + - object + mixins: + - chemical to entity association mixin + - entity to disease or phenotypic feature association mixin + slot_usage: + predicate: + subproperty_of: has side effect + + gene to pathway association: + description: >- + An interaction between a gene or gene product and a biological process or pathway. + is_a: association + defining_slots: + - subject + - object + mixins: + - gene to entity association mixin + slot_usage: + subject: + range: gene or gene product + description: "the gene or gene product entity that participates or influences the pathway" + object: + range: pathway + description: "the pathway that includes or is affected by the gene or gene product" + + molecular activity to pathway association: + description: >- + Association that holds the relationship between a reaction and the pathway it participates in. + is_a: association + slot_usage: + subject: + range: molecular activity + object: + range: pathway + predicate: + subproperty_of: part of + chemical to pathway association: description: >- An interaction between a chemical entity and a biological process or pathway. @@ -9948,26 +8676,137 @@ classes: mixins: - chemical to entity association mixin slot_usage: + subject: + range: chemical entity + description: "the chemical entity that is affecting the pathway" object: range: pathway description: "the pathway that is affected by the chemical" - chemical to gene association: + named thing associated with likelihood of named thing association: + # TODO: better name description: >- - An interaction between a chemical entity and a gene or gene product. is_a: association - exact_mappings: - - SIO:001257 defining_slots: - subject + - subject aspect qualifier + - subject context qualifier + - predicate - object + - object aspect qualifier + - object context qualifier + - population context qualifier + slot_usage: + predicate: + subproperty_of: associated with + subject aspect qualifier: + # TODO: range + subject context qualifier: + range: ontology class + object aspect qualifier: + # TODO: range + object context qualifier: + range: ontology class + + chemical gene interaction association: + description: >- + describes a physical interaction between a chemical entity and a gene or gene product. Any biological or chemical + effect resulting from such an interaction are out of scope, and covered by the ChemicalAffectsGeneAssociation type + (e.g. impact of a chemical on the abundance, activity, structure, etc, of either participant in the interaction) + is_a: association + exact_mappings: + - SIO:001257 mixins: - chemical to entity association mixin + slots: + - subject form or variant qualifier + - subject part qualifier + - subject derivative qualifier + - subject context qualifier + - object form or variant qualifier + - object part qualifier + - object context qualifier + - anatomical context qualifier + slot_usage: + subject: + range: chemical entity + object: + range: gene or gene product + predicate: + subproperty_of: physically interacts with + subject form or variant qualifier: + range: chemical_or_gene_or_gene_product_form_or_variant_enum + subject part qualifier: + range: gene_or_gene_product_or_chemical_part_qualifier_enum + subject derivative qualifier: + range: chemical_entity_derivative_enum + subject context qualifier: + range: anatomical entity + object form or variant qualifier: + range: chemical_or_gene_or_gene_product_form_or_variant_enum + object part qualifier: + range: gene_or_gene_product_or_chemical_part_qualifier_enum + object context qualifier: + range: anatomical entity + anatomical context qualifier: + range: anatomical entity + + chemical affects gene association: + description: >- + Describes an effect that a chemical has on a gene or gene product (e.g. an impact of on its abundance, activity, + localization, processing, expression, etc.) + is_a: association + slots: + - subject form or variant qualifier + - subject part qualifier + - subject derivative qualifier + - subject aspect qualifier + - subject context qualifier + - subject direction qualifier + - object form or variant qualifier + - object part qualifier + - object aspect qualifier + - object context qualifier + - causal mechanism qualifier + - anatomical context qualifier + - qualified predicate slot_usage: + subject: + range: chemical entity + subject form or variant qualifier: + range: chemical_or_gene_or_gene_product_form_or_variant_enum + subject part qualifier: + range: gene_or_gene_product_or_chemical_part_qualifier_enum + subject derivative qualifier: + range: chemical_entity_derivative_enum + subject aspect qualifier: + range: gene_or_gene_product_or_chemical_entity_aspect_enum + subject context qualifier: + range: anatomical entity + subject direction qualifier: + range: direction_qualifier_enum + predicate: + subproperty_of: affects + qualified predicate: + subproperty_of: causes object: range: gene or gene product - description: >- - the gene or gene product that is affected by the chemical. + object form or variant qualifier: + range: chemical_or_gene_or_gene_product_form_or_variant_enum + object part qualifier: + range: gene_or_gene_product_or_chemical_part_qualifier_enum + object aspect qualifier: + range: gene_or_gene_product_or_chemical_entity_aspect_enum + object context qualifier: + range: anatomical entity + object direction qualifier: + range: direction_qualifier_enum + causal mechanism qualifier: + range: causal_mechanism_qualifier_enum + anatomical context qualifier: + range: anatomical entity + species context qualifier: + range: organism taxon drug to gene association: description: >- @@ -10039,7 +8878,7 @@ classes: subject: range: disease description: "disease class" - values_from: ['mondo', 'omim', 'orphanet', 'ncit', 'doid'] + values_from: [ 'mondo', 'omim', 'orphanet', 'ncit', 'doid' ] examples: - value: MONDO:0017314 description: "Ehlers-Danlos syndrome, vascular type" @@ -10065,8 +8904,6 @@ classes: - subject - object - exposure event to entity association mixin: - deprecated: true entity to outcome association mixin: description: >- @@ -10083,11 +8920,10 @@ classes: An association between an exposure event and an outcome. is_a: association mixins: - - exposure event to entity association mixin - entity to outcome association mixin slots: - - has population context - - has temporal context + - population context qualifier + - temporal context qualifier defining_slots: - subject - object @@ -10116,7 +8952,7 @@ classes: slot_usage: object: range: phenotypic feature - values_from: ['upheno', 'hp', 'mp', 'wbphenotype'] + values_from: [ 'upheno', 'hp', 'mp', 'wbphenotype' ] examples: - value: HP:0002487 description: Hyperkinesis @@ -10195,6 +9031,24 @@ classes: - value: UBERON:0002048 description: "lung" + disease or phenotypic feature to genetic inheritance association: + description: >- + An association between either a disease or a phenotypic feature and + its mode of (genetic) inheritance. + is_a: association + mixins: + - disease or phenotypic feature to entity association mixin + slot_usage: + predicate: + subproperty_of: has mode of inheritance + object: + range: genetic inheritance + description: >- + genetic inheritance associated with the specified disease or phenotypic feature. + examples: + - value: HP:0001417 + description: "X-linked inheritance" + entity to disease or phenotypic feature association mixin: mixin: true defining_slots: @@ -10265,6 +9119,11 @@ classes: - disease to entity association mixin close_mappings: - dcid:DiseaseSymptomAssociation + slot_usage: + subject: + range: disease + object: + range: phenotypic feature case to phenotypic feature association: description: >- @@ -10321,8 +9180,8 @@ classes: description: >- a sequence variant in which the allele state is associated with some other entity examples: - - value: ClinVar:38077 - description: "ClinVar representation of NM_000059.3(BRCA2):c.7007G>A (p.Arg2336His)" + - value: CLINVAR:38077 + description: "CLINVAR representation of NM_000059.3(BRCA2):c.7007G>A (p.Arg2336His)" - value: ClinGen:CA024716 description: "chr13:g.32921033G>C (hg19) in ClinGen" @@ -10343,6 +9202,8 @@ classes: examples: - value: HGNC:2197 description: "COL1A1 (Human)" + object: + range: phenotypic feature gene to disease association: is_a: association @@ -10364,6 +9225,8 @@ classes: description: >- gene in which variation is correlated with the disease, may be protective or causative or associative, or as a model + object: + range: disease druggable gene to disease association: is_a: gene to disease association @@ -10415,7 +9278,7 @@ classes: - gene expression mixin slot_usage: predicate: - subproperty_of: affects expression of + subproperty_of: affects variant to population association: description: >- @@ -10519,7 +9382,7 @@ classes: a sequence variant in which the allele state is associated in some way with the disease state examples: - - value: ClinVar:52241 + - value: CLINVAR:52241 description: "NM_000059.3(BRCA2):c.7007G>C (p.Arg2336Pro)" predicate: description: >- @@ -10663,9 +9526,6 @@ classes: slot_usage: subject: range: individual organism - # relation: - # values_from: - # - ro object: range: individual organism description: >- @@ -10680,9 +9540,6 @@ classes: slot_usage: subject: range: organism taxon - # relation: - # values_from: - # - ro object: range: organism taxon description: >- @@ -10711,7 +9568,7 @@ classes: - predicate - object description: >- - An association between a gene and an expression site, + An association between a gene and a gene expression site, possibly qualified by stage/timing info. notes: - "TBD: introduce subclasses for distinction between wild-type and experimental conditions?" @@ -10722,7 +9579,9 @@ classes: slot_usage: subject: range: gene or gene product - description: "gene in which variation is correlated with the phenotypic feature" + description: >- + Gene or gene product positively within the specified + anatomical entity (or subclass, i.e. cellular component) location. object: range: anatomical entity description: "location in which the gene is expressed" @@ -10771,13 +9630,13 @@ classes: subject: range: macromolecular machine mixin description: >- - gene, product or macromolecular complex mixin that + gene, product or macromolecular complex that has the function associated with the GO term examples: - value: ZFIN:ZDB-GENE-050417-357 description: twist1b object: - range: gene ontology class + range: ontology class description: >- class describing the activity, process or localization of the gene product @@ -10860,7 +9719,7 @@ classes: gene to go term association: - aliases: ['functional association'] + aliases: [ 'functional association' ] is_a: functional association exact_mappings: - WBVocab:Gene-GO-Association @@ -10877,7 +9736,7 @@ classes: - value: ZFIN:ZDB-GENE-050417-357 description: twist1b object: - range: gene ontology class + range: ontology class description: >- class describing the activity, process or localization of the gene product @@ -10922,10 +9781,10 @@ classes: chromosome region or information entity such as a contig. slot_usage: subject: - aliases: ['sequence feature'] + aliases: [ 'sequence feature' ] range: nucleic acid entity object: - aliases: ['reference'] + aliases: [ 'reference' ] range: nucleic acid entity # typically a chromosome use monochrom predicate: subproperty_of: has sequence location @@ -10996,24 +9855,27 @@ classes: object: range: transcript - gene regulatory relationship: + chemical entity or gene or gene product regulates gene association: is_a: association description: >- A regulatory relationship between two genes + slots: + - object direction qualifier slot_usage: predicate: - # subproperty_of: ??? description: >- the direction is always from regulator to regulated + subproperty_of: regulates subject: - range: gene or gene product + range: chemical entity or gene or gene product role: regulatory gene object: range: gene or gene product role: regulated gene + object direction qualifier: + range: direction_qualifier_enum - anatomical entity to anatomical entity association: - # schema: gocam + anatomical entity to anatomical entity association: # schema: gocam is_a: association abstract: true defining_slots: @@ -11026,7 +9888,7 @@ classes: range: anatomical entity anatomical entity to anatomical entity part of association: -# schema: gocam + # schema: gocam is_a: anatomical entity to anatomical entity association description: >- A relationship between two anatomical entities where the relationship @@ -11066,7 +9928,7 @@ classes: description: >- the structure at an earlier time predicate: - subproperty_of: develops from + subproperty_of: develops from organism taxon to entity association: mixin: true @@ -11079,7 +9941,7 @@ classes: range: organism taxon description: >- organism taxon that is the subject of the association - + organism taxon to organism taxon association: is_a: association abstract: true @@ -11115,7 +9977,7 @@ classes: description: >- the more general taxon predicate: - subproperty_of: subclass of + subproperty_of: subclass of organism taxon to organism taxon interaction: is_a: organism taxon to organism taxon association @@ -11139,10 +10001,10 @@ classes: description: >- the taxon that is the subject of the association predicate: - subproperty_of: interacts with + subproperty_of: interacts with associated environmental context: - description: >- - the environment in which the two taxa interact + description: >- + the environment in which the two taxa interact organism taxon to environment association: is_a: association @@ -11162,4 +10024,515 @@ classes: predicate: description: >- predicate describing the relationship between the taxon and the environment - + +enums: + + anatomical_context_qualifier_enum: + reachable_from: + source_ontology: bioregistry:uberon + source_nodes: + - UBERON:0001062 + is_direct: false + relationship_types: + - rdfs:subClassOf + + direction_qualifier_enum: + permissible_values: + increased: + upregulated: + is_a: increased + close_mappings: + - RO:0002336 + exact_mappings: + - RO:0002213 + narrow_mappings: + - RO:0004032 + - RO:0004034 + - RO:0002629 + decreased: + downregulated: + is_a: decreased + exact_mappings: + - RO:0004035 + - RO:0002212 + close_mappings: + # This RTX contributed term is tagged as a inverse of this Biolink predicate + - RO:0002335 + broad_mappings: + # This term is slightly broader in that it includes that A acts within B as well + - RO:0004033 + + chemical_entity_derivative_enum: + permissible_values: + metabolite: + + chemical_or_gene_or_gene_product_form_or_variant_enum: + permissible_values: + genetic variant form: + is_a: modified form + mutant form: + is_a: genetic variant form + polymorphic form: + is_a: mutant form + SNP form: + is_a: polymorphic form + analog form: + + gene_or_gene_product_or_chemical_part_qualifier_enum: + permissible_values: + 3' UTR: + 5' UTR: + polyA tail: + promoter: + enhancer: + exon: + intron: + + gene_or_gene_product_or_chemical_entity_aspect_enum: + permissible_values: + activity or abundance: + description: >- + Used in cases where the specificity of the relationship can not be determined to be either activity + or abundance. In general, a more specific value from this enumeration should be used. + abundance: + is_a: activity or abundance + activity: + is_a: activity or abundance + expression: + is_a: abundance + synthesis: + is_a: abundance + degradation: + is_a: abundance # negate the direction qualifier necessary. + cleavage: + is_a: degradation + hydrolysis: + is_a: degradation + metabolic processing: + mutation rate: + stability: + folding: + localization: + transport: + secretion: + is_a: transport + uptake: + is_a: transport + molecular modification: + acetylation: + is_a: molecular modification + acylation: + is_a: molecular modification + alkylation: + is_a: molecular modification + amination: + is_a: molecular modification + carbamoylation: + is_a: molecular modification + ethylation: + is_a: molecular modification + glutathionylation: + is_a: molecular modification + glycation: + is_a: molecular modification + glycosylation: + is_a: molecular modification + glucuronidation: + is_a: molecular modification + N-linked glycosylation: + is_a: molecular modification + O-linked glycosylation: + is_a: molecular modification + hydroxylation: + is_a: molecular modification + lipidation: + is_a: molecular modification + farnesylation: + is_a: molecular modification + geranoylation: + is_a: molecular modification + myristoylation: + is_a: molecular modification + palmitoylation: + is_a: molecular modification + prenylation: + is_a: molecular modification + methylation: + is_a: molecular modification + nitrosation: + is_a: molecular modification + nucleotidylation: + is_a: molecular modification + phosphorylation: + is_a: molecular modification + ribosylation: + is_a: molecular modification + ADP-ribosylation: + is_a: molecular modification + sulfation: + is_a: molecular modification + sumoylation: + is_a: molecular modification + ubiquitination: + is_a: molecular modification + oxidation: + is_a: molecular modification + reduction: + is_a: molecular modification + carboxylation: + is_a: molecular modification + + + causal_mechanism_qualifier_enum: + permissible_values: + binding: + description: >- + A causal mechanism mediated by the direct contact between effector and target chemical or + biomolecular entity, which form a stable physical interaction. + inhibition: + is_a: binding + description: >- + A causal mechanism in which the effector binds to the target and negatively effects its normal function, + e.g. prevention of enzymatic reaction or activation of downstream pathway. + close_mappings: + - DGIdb:inhibitor + - SEMMEDDB:INHIBITS + - SEMMEDDB:inhibits + narrow_mappings: + - DGIdb:blocker + - DGIdb:channel_blocker + - DGIdb:gating_inhibitor + - CHEMBL.MECHANISM:antisense_inhibitor + - CHEMBL.MECHANISM:blocker + - CHEMBL.MECHANISM:inhibitor + - CHEMBL.MECHANISM:negative_allosteric_modulator + - CHEMBL.MECHANISM:negative_modulator + - DGIdb:negative_modulator + antibody inhibition: + is_a: inhibition + description: >- + A causal mechanism in which an antibody specifically binds to and interferes with the target. + antagonism: + is_a: inhibition + description: >- + A causal mecahnism in which the effector binds to a receptor and prevents activation by an agonist + through competing for the binding site. + close_mappings: + - DGIdb:antagonist + - CHEMBL.MECHANISM:antagonist + narrow_mappings: + - CHEMBL.MECHANISM:allosteric_antagonist + molecular channel blockage: + is_a: inhibition + description: >- + A causal mechanism in which the effector binds to a molecular channel and prevents or reduces + transport of ions through it. + inverse agonism: + is_a: inhibition + description: >- + A causal mechanism in which the effector binds to the same receptor-binding site as an agonist and antagonizes + its effects, often exerting the opposite effect of the agonist by suppressing spontaneous receptor signaling. + close_mappings: + - CHEMBL.MECHANISM:inverse_agonist + - DGIdb:inverse_agonist + negative allosteric modulation: + is_a: inhibition + description: >- + A causal mechanism in which the effector reduces or prevents the action of the endogenous ligand of a + receptor by binding to a site distinct from that ligand (i.e. non-competitive inhibition) + close_mappings: + - CHEMBL.MECHANISM:negative_allosteric_modulator + - DGIdb:inhibitory_allosteric_modulator + narrow_mappings: + - DGIdb:negative_modulator + agonism: + is_a: activation + description: >- + A causal mechanism in which the effector binds and activates a receptor to mimic the effect of an + endogenous ligand. + close_mappings: + - CHEMBL.MECHANISM:agonist + - DGIdb:agonist + narrow_mappings: + - CHEMBL.MECHANISM:partial_agonist + - DGIdb:partial_agonist + molecular channel opening: + is_a: activation + description: >- + A causal mechanism in which the effector binds to a molecular channel and facilitates transport of + ions through it. + close_mappings: + - CHEMBL.MECHANISM:opener + positive allosteric modulation: + is_a: activation + description: >- + A causal mechanism in which the effector enhances the action of the endogenous ligand of a receptor by + binding to a site distinct from that ligand (i.e. non-competitive inhibition) + close_mappings: + - CHEMBL.MECHANISM:positive_allosteric_modulator + - CHEMBL.MECHANISM:positive_modulator + - DGIdb:positive_allosteric_modulator + broad_mappings: + - DGIdb:modulator + - DGIdb:allosteric_modulator + potentiation: + is_a: binding + description: >- + A causal mechanism in which the effector binds to and enhances or intensifies the effect of some + other chemical or drug on its target. + close_mappings: + activation: + is_a: binding + description: >- + A causal mechanism in which the effector binds to and positively affects the normal functioning of its target. + close_mappings: + - CHEMBL.MECHANISM:activator + - DGIdb:activator + inducer: + is_a: binding + description: >- + A causal mechanism in which the effector binds to and increases the activity/rate of an enzyme that + processes drugs in the body. + close_mappings: + - DGIdb:inducer + transcriptional regulation: + description: >- + A causal mechanism mediated by through the control of target gene transcription + signaling-mediated control: + description: >- + A causal mechanism mediated by the activation or control of signaling events that influence the some aspect + of the target entity (e.g. its activity, processing, transport, etc) + stabilization: + is_a: activation + close_mappings: + - CHEMBL.MECHANISM:stabiliser + stimulation: + is_a: activation + close_mappings: + - DGIdb:stimulator + - SEMMEDDB:stimulates + - DGIdb:stimulator + releasing activity: + is_a: activation + close_mappings: + - CHEMBL:MECHANISM:releasing_agent + + logical_interpretation_enum: + permissible_values: + SomeSome: + description: >- + A modifier on a triple that causes the triple to be interpreted as a some-some statement + meaning: os:SomeSomeInterpretation + AllSome: + description: >- + A modifier on a triple that causes the triple to be interpreted as an all-some statement. + meaning: os:AllSomeInterpretation + InverseAllSome: + + reaction_direction_enum: + permissible_values: + left_to_right: + right_to_left: + bidirectional: + neutral: + + reaction_side_enum: + permissible_values: + left: + right: + + phase_enum: + description: phase + permissible_values: + 0: + 1: + 2: + + strand_enum: + description: strand + permissible_values: + "+": + description: Positive + "-": + description: Negative + ".": + description: Unstranded + "?": + description: Unknown + + sequence_enum: + description: type of sequence + permissible_values: + "NA": + description: nucleic acid + "AA": + description: amino acid + + druggable_gene_category_enum: + permissible_values: + "Tclin": + description: >- + These targets have activities in DrugCentral (ie. approved drugs) with known mechanism of action. + "Tbio": + description: >- + These targets have activities in ChEMBL, Guide to Pharmacology or DrugCentral that satisfy + the activity thresholds detailed below. + "Tchem": + description: >- + These targets do not have known drug or small molecule activities that satisfy the activity + thresholds detailed below AND satisfy one or more of the following criteria: + target is above the cutoff criteria for Tdark + target is annotated with a Gene Ontology Molecular Function or Biological Process leaf term(s) + with an Experimental Evidence code + "Tdark": + description: >- + These are targets about which virtually nothing is known. They do not have known drug or small + molecule activities that satisfy the activity thresholds detailed below AND satisfy two or + more of the following criteria: + A PubMed text-mining score from Jensen Lab less than 5, greater than or equal TO 3 Gene RIFs, or + less than or equal to 50 Antibodies available according to http://antibodypedia.com. + + drug_availability_enum: + description: >- + permissible_values: + "over the counter": + description: >- + chemical entity is available over the counter without a prescription. + "prescription": + description: + chemical entity is available by prescription. + + drug_delivery_enum: + permissible_values: + "inhalation": + "oral": + "absorbtion through the skin": + "intravenous injection": + + FDA_approval_status_enum: + description: >- + permissible_values: + "Discovery & Development Phase": + description: >- + Discovery & Development Phase. Discovery involves researchers finding new possibilities + for medication through testing molecular compounds, noting unexpected effects from existing treatments, + or the creation of new technology that allows novel ways of targeting medical products to sites in the body. + Drug development occurs after researchers identify potential compounds for experiments. + "Preclinical Research Phase": + description: >- + Preclinical Research Phase. Once researchers have examined the possibilities a new drug may contain, + they must do preliminary research to determine its potential for harm (toxicity). + This is categorized as preclinical research and can be one of two types: in vitro or in vivo. + "FDA Clinical Research Phase": + description: >- + Clinical Research Phase. Clinical research involves trials of the drug on people, + and it is one of the most involved stages in the drug development and approval process. + Clinical trials must answer specific questions and follow a protocol determined by + the drug researcher or manufacturer. + "FDA Review Phase 4": + description: >- + FDA Review + "FDA Post-Market Safety Monitoring": + description: >- + FDA Post-Market Safety Monitoring. The last phase of drug approval is an ongoing one + while the drug is on the marketplace. If a developer wants to change anything about the + drug formulation or approve it for a new use, they must apply with the FDA. The FDA also + frequently reviews the drug’s advertising and its manufacturing facility to make sure + everything involved in its creation and marketing is in compliance with regulations. + "FDA Clinical Research Phase 1": + description: >- + In the FDA Clinical Research Phase, the Clinical Research Phase 1 involves 20 – 100 study participants and + lasts several months. This phase is used to determine the safety and dosage of the drug, + and about 70% of these drugs move on to the next clinical research phase. + "FDA Clinical Research Phase 2": + description: >- + In the FDA Clinical Research Phase, the Clinical Research Phase 2 involves up to several hundred people, + who must have the disease or condition the drug supposes to treat. This phase can last + from a few months to two years, and its purpose is to monitor the efficacy of the drug, + as well as note side effects that may occur. + "FDA Clinical Research Phase 3": + description: >- + In the FDA Clinical Research Phase, the Clinical Research Phase 3 involves 300 – 3000 volunteers + and can last up to four years. It is used to continue monitoring the efficacy of + the drug, as well as exploring any longer-term adverse reactions. + "FDA Clinical Research Phase 4": + description: >- + In the FDA Clinical Research Phase, the Clinical Research Phase 4 involves several thousands of + volunteers who have the disease or condition and continues to monitor safety and efficacy. + If a drug passes this phase, it goes on to FDA review. + "FDA Fast Track": + description: >- + Fast track is a process designed to facilitate the development, and expedite the + review of drugs to treat serious conditions and fill an unmet medical need. + The purpose is to get important new drugs to the patient earlier. Fast Track + addresses a broad range of serious conditions. For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/fast-track + "FDA Breakthrough Therapy": + description: >- + Breakthrough Therapy designation is a process designed to expedite the + development and review of drugs that are intended to treat a serious + condition and preliminary clinical evidence indicates that the drug may + demonstrate substantial improvement over available therapy on a clinically significant endpoint(s). + For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/breakthrough-therapy + "FDA Accelerated Approval": + description: >- + When studying a new drug, it can sometimes take many years to learn whether a drug actually + provides a real effect on how a patient survives, feels, or functions. A positive therapeutic + effect that is clinically meaningful in the context of a given disease is known as “clinical benefit”. + Mindful of the fact that it may take an extended period of time to measure a drug’s intended clinical + benefit, in 1992 FDA instituted the Accelerated Approval regulations. These regulations allowed drugs + for serious conditions that filled an unmet medical need to be approved based on a surrogate endpoint. + Using a surrogate endpoint enabled the FDA to approve these drugs faster. + For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/accelerated-approval + "FDA Priority Review": + description: >- + Prior to approval, each drug marketed in the United States must go through a detailed FDA review process. + In 1992, under the Prescription Drug User Act (PDUFA), FDA agreed to specific goals for improving + the drug review time and created a two-tiered system of review times – Standard Review and Priority + Review. A Priority Review designation means FDA’s goal is to take action on an application + within 6 months (compared to 10 months under standard review). + For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/priority-review + "Regular FDA Approval": + "Post-Approval Withdrawal": + + FDA_IDA_adverse_event_enum: + description: >- + please consult with the FDA guidelines as proposed in this document: + https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/cfrsearch.cfm?fr=312.32 + permissible_values: + "Life-threatening adverse event": + description: >- + An adverse event or suspected adverse reaction is considered 'life-threatening' if, in the view of either + the investigator or sponsor, its occurrence places the patient or subject at immediate risk of death. + It does not include an adverse event or suspected adverse reaction that, had it occurred in a more + severe form, might have caused death. + "Serious adverse event": + description: >- + An adverse event or suspected adverse reaction is considered 'serious' if, in the view of either the + investigator or sponsor, it results in any of the following outcomes: Death, a life-threatening adverse event, + inpatient hospitalization or prolongation of existing hospitalization, a persistent or significant incapacity + or substantial disruption of the ability to conduct normal life functions, or a congenital anomaly/birth + defect. Important medical events that may not result in death, be life-threatening, or require hospitalization + may be considered serious when, based upon appropriate medical judgment, they may jeopardize the patient or + subject and may require medical or surgical intervention to prevent one of the outcomes listed in this + definition. Examples of such medical events include allergic bronchospasm requiring intensive treatment + in an emergency room or at home, blood dyscrasias or convulsions that do not result in inpatient + hospitalization, or the development of drug dependency or drug abuse. + "Suspected adverse reaction": + description: >- + means any adverse event for which there is a reasonable possibility that the drug caused the adverse event. + For the purposes of IND safety reporting, 'reasonable possibility' means there is evidence to suggest a + causal relationship between the drug and the adverse event. Suspected adverse reaction implies a lesser + degree of certainty about causality than adverse reaction, which means any adverse event caused by a drug. + "Unexpected adverse event": + description: >- + An adverse event or suspected adverse reaction is considered 'unexpected' if it is not listed in the + investigator brochure or is not listed at the specificity or severity that has been observed; or, if an + investigator brochure is not required or available, is not consistent with the risk information described + in the general investigational plan or elsewhere in the current application, as amended. For example, + under this definition, hepatic necrosis would be unexpected (by virtue of greater severity) if the + investigator brochure referred only to elevated hepatic enzymes or hepatitis. Similarly, cerebral + thromboembolism and cerebral vasculitis would be unexpected (by virtue of greater specificity) if the + investigator brochure listed only cerebral vascular accidents. 'Unexpected,' as used in this definition, + also refers to adverse events or suspected adverse reactions that are mentioned in the investigator brochure + as occurring with a class of drugs or as anticipated from the pharmacological properties of the drug, but + are not specifically mentioned as occurring with the particular drug under investigation. diff --git a/tests/resources/multifile.yaml b/tests/resources/multifile.yaml new file mode 100644 index 0000000..9a3a239 --- /dev/null +++ b/tests/resources/multifile.yaml @@ -0,0 +1,35 @@ +name: 'protein-links-detailed' + +delimiter: ' ' + +files: + - './tests/resources/source-files/multifile1.tsv' + - './tests/resources/source-files/multifile2.tsv' + +metadata: !include './examples/string/metadata.yaml' + +columns: !include './examples/standards/string.yaml' + +filters: + - inclusion: 'include' + column: 'combined_score' + filter_code: 'lt' + value: 700 + +transform_code: './examples/string/protein-links-detailed.py' + +transform_mode: 'loop' + +node_properties: + - 'id' + - 'category' + - 'provided_by' + +edge_properties: + - 'id' + - 'subject' + - 'predicate' + - 'object' + - 'category' + - 'relation' + - 'provided_by' diff --git a/tests/resources/source-files/multifile1.tsv b/tests/resources/source-files/multifile1.tsv new file mode 100644 index 0000000..553026a --- /dev/null +++ b/tests/resources/source-files/multifile1.tsv @@ -0,0 +1,5 @@ +protein1 protein2 neighborhood fusion cooccurence coexpression experimental database textmining combined_score +10090.ENSMUSP00000000001 10090.ENSMUSP00000020316 0 0 0 116 90 0 67 183 +10090.ENSMUSP00000000001 10090.ENSMUSP00000022816 0 0 0 62 0 0 137 955 +10090.ENSMUSP00000000001 10090.ENSMUSP00000048234 0 0 0 0 147 0 166 258 +10090.ENSMUSP00000000001 10090.ENSMUSP00000017365 0 0 0 0 165 0 0 165 diff --git a/tests/resources/source-files/multifile2.tsv b/tests/resources/source-files/multifile2.tsv new file mode 100644 index 0000000..dac18ef --- /dev/null +++ b/tests/resources/source-files/multifile2.tsv @@ -0,0 +1,16 @@ +protein1 protein2 neighborhood fusion cooccurence coexpression experimental database textmining combined_score +10090.ENSMUSP00000000001 10090.ENSMUSP00000017460 0 0 0 0 0 900 0 900 +10090.ENSMUSP00000000001 10090.ENSMUSP00000086207 0 0 0 78 155 600 138 695 +10090.ENSMUSP00000000001 10090.ENSMUSP00000061493 0 0 0 156 45 0 0 159 +10090.ENSMUSP00000000001 10090.ENSMUSP00000090329 0 0 0 0 196 0 0 196 +10090.ENSMUSP00000000001 10090.ENSMUSP00000026270 0 0 0 187 0 0 49 193 +10090.ENSMUSP00000000001 10090.ENSMUSP00000001115 0 0 0 0 119 0 148 218 +10090.ENSMUSP00000000001 10090.ENSMUSP00000020101 0 0 0 0 181 0 85 218 +10090.ENSMUSP00000000001 10090.ENSMUSP00000063804 0 0 0 0 179 0 57 192 +10090.ENSMUSP00000000001 10090.ENSMUSP0000009467 0 0 0 0 142 0 71 248 +10090.ENSMUSP00000000001 10090.ENSMUSP00000018012 0 0 0 65 220 0 100 286 +10090.ENSMUSP00000000001 10090.ENSMUSP00000113105 0 0 0 0 179 0 417 500 +10090.ENSMUSP00000000001 10090.ENSMUSP00000036031 0 0 0 58 181 0 85 232 +10090.ENSMUSP00000000001 10090.ENSMUSP00000039580 0 0 0 60 158 0 81 209 +10090.ENSMUSP00000000001 10090.ENSMUSP00000040516 0 0 0 0 196 0 0 196 +10090.ENSMUSP00000000001 10090.ENSMUSP00000033545 0 0 0 0 179 0 57 192 diff --git a/tests/unit/test_custom_dict.py b/tests/unit/test_custom_dict.py index 8a55549..c2c5f18 100644 --- a/tests/unit/test_custom_dict.py +++ b/tests/unit/test_custom_dict.py @@ -3,7 +3,7 @@ """ import pytest -from koza.exceptions import MapItemException +from koza.utils.exceptions import MapItemException from koza.model.map_dict import MapDict diff --git a/tests/unit/test_filter.py b/tests/unit/test_filter.py index 366de47..e917a27 100644 --- a/tests/unit/test_filter.py +++ b/tests/unit/test_filter.py @@ -5,7 +5,7 @@ import pytest from koza.model.config.source_config import ColumnFilter, FilterCode, FilterInclusion -from koza.row_filter import RowFilter +from koza.utils.row_filter import RowFilter @pytest.mark.parametrize( diff --git a/tests/unit/test_kgx_converter.py b/tests/unit/test_kgx_converter.py index 24671c6..d61586b 100644 --- a/tests/unit/test_kgx_converter.py +++ b/tests/unit/test_kgx_converter.py @@ -1,12 +1,12 @@ import pytest -from biolink_model_pydantic.model import Curie, Gene, GeneToGeneAssociation, Predicate, Publication +from biolink.pydanticmodel import Gene, GeneToGeneAssociation, Publication from koza.converter.kgx_converter import KGXConverter def test_gene_conversion(): fgf8a = Gene( - id=Curie("ZFIN:ZDB-GENE-990415-72"), + id="ZFIN:ZDB-GENE-990415-72", symbol="fgf8a", name="fibroblast growth factor 8a", in_taxon=["NCBITaxon:7955"], @@ -24,26 +24,22 @@ def test_gene_conversion(): def test_association_conversion(): - fgf8a = Gene( - id=Curie("ZFIN:ZDB-GENE-990415-72"), symbol="fgf8a", name="fibroblast growth factor 8a" - ) - pax2a = Gene(id=Curie("ZFIN:ZDB-GENE-990415-8"), symbol="pax2a", name="paired box 2a") - pub = Publication(id=Curie("PMID:17522161"), type="MESH:foobar") + fgf8a = Gene(id="ZFIN:ZDB-GENE-990415-72", symbol="fgf8a", name="fibroblast growth factor 8a") + pax2a = Gene(id="ZFIN:ZDB-GENE-990415-8", symbol="pax2a", name="paired box 2a") + pub = "PMID:17522161" # Publication(id="PMID:17522161", type="MESH:foobar") association = GeneToGeneAssociation( id='uuid:123', subject=fgf8a.id, - predicate=Predicate.interacts_with, + predicate="biolink:interacts_with", object=pax2a.id, publications=[pub], - relation="RO:0003003", ) - (nodes, edges) = KGXConverter().convert([fgf8a, pax2a, pub, association]) + (nodes, edges) = KGXConverter().convert([fgf8a, pax2a, association]) output = edges[0] - assert output['subject'] == Curie("ZFIN:ZDB-GENE-990415-72") - assert output['relation'] == Curie("RO:0003003") - assert output['object'] == Curie("ZFIN:ZDB-GENE-990415-8") + assert output['subject'] == "ZFIN:ZDB-GENE-990415-72" + assert output['object'] == "ZFIN:ZDB-GENE-990415-8" # TODO figure out how/where to handle this conversion # assert Curie("PMID:17522161") in output['publications'] @@ -59,7 +55,7 @@ def test_keys_uniformity(id, symbol, synonym, xref): """ Connfirm that the result of the conversion has all of the same fields, even if some aren't used """ - gene = Gene(id=Curie(id), symbol=symbol, synonym=synonym, xref=xref) + gene = Gene(id=id, symbol=symbol, synonym=synonym, xref=xref) (nodes, edges) = KGXConverter().convert([gene]) output = nodes[0] diff --git a/tests/unit/test_tsvwriter_node_and_edge.py b/tests/unit/test_tsvwriter_node_and_edge.py index 196170f..b8257f1 100644 --- a/tests/unit/test_tsvwriter_node_and_edge.py +++ b/tests/unit/test_tsvwriter_node_and_edge.py @@ -1,6 +1,6 @@ import os -from biolink_model_pydantic.model import Disease, Gene, GeneToDiseaseAssociation, Predicate +from biolink.pydanticmodel import Disease, Gene, GeneToDiseaseAssociation from koza.io.writer.tsv_writer import TSVWriter @@ -15,8 +15,8 @@ def test_tsv_writer(): id="uuid:5b06e86f-d768-4cd9-ac27-abe31e95ab1e", subject=g.id, object=d.id, - relation="RO:0003304", - predicate=Predicate.contributes_to, + # relation="RO:0003304", + predicate="biolink:contributes_to", ) ent = [g, d, a] diff --git a/tests/unit/test_tsvwriter_node_only.py b/tests/unit/test_tsvwriter_node_only.py index 0347bca..06c4d9c 100644 --- a/tests/unit/test_tsvwriter_node_only.py +++ b/tests/unit/test_tsvwriter_node_only.py @@ -1,6 +1,6 @@ import os -from biolink_model_pydantic.model import Disease, Gene +from biolink.pydanticmodel import Disease, Gene from koza.io.writer.tsv_writer import TSVWriter diff --git a/tests/unit/test_validation.py b/tests/unit/test_validation.py index 6ce8a47..6076b1a 100644 --- a/tests/unit/test_validation.py +++ b/tests/unit/test_validation.py @@ -9,22 +9,26 @@ "category": ["biolink:NamedThing", "biolink:Gene"], } -invalid_gene = {"name": "Bogus Gene 98765", "type": "biolink:NamedThing"} - -model_schema = Path(__file__).parent.parent / 'resources' / 'biolink-model.yaml' +invalid_gene = { + "name": "Bogus Gene 98765", + "type": "biolink:NamedThing" +} +model_url = "https://raw.githubusercontent.com/biolink/biolink-model/latest/biolink-model.yaml" +validator = Validator(schema=model_url) +# model_schema = Path(__file__).parent.parent / 'resources' / 'biolink-model.yaml' +# validator = Validator(schema="tests/resources/biolink-model.yaml") @pytest.mark.parametrize("gene", [valid_gene]) def test_valid_input(gene): - validator = Validator(schema="tests/resources/biolink-model.yaml") - v = validator.validate(obj=gene, target_class="NamedThing") + + v = validator.validate(obj=gene, target_class="Gene") result = v.validation_results[0] assert result.valid == True @pytest.mark.parametrize("gene", [invalid_gene]) def test_invalid_input(gene): - validator = Validator(schema="tests/resources/biolink-model.yaml") - v = validator.validate(obj=gene, target_class="NamedThing") + v = validator.validate(obj=gene, target_class="Gene") result = v.validation_results[0] assert result.valid == False From a5133f1124586a40f6ed909f14dae078391a422f Mon Sep 17 00:00:00 2001 From: glass-ships Date: Fri, 4 Nov 2022 12:42:22 -0600 Subject: [PATCH 2/5] install poetry in github action before running test --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 75fa944..09aa2de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,4 +32,6 @@ jobs: python-version: ${{ matrix.python-version }} - name: make test - run: make test + run: | + pip install poetry + make test From d2a6b8175c91b80e61472ee8016644995cf68df4 Mon Sep 17 00:00:00 2001 From: Glass Ships Date: Fri, 4 Nov 2022 12:49:48 -0600 Subject: [PATCH 3/5] Create LICENSE --- LICENSE | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d78f0eb --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2022, Monarch Initiative +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 0faf2ab3e451d97b01af9e63767fc0a8f52fb3f4 Mon Sep 17 00:00:00 2001 From: glass-ships Date: Fri, 4 Nov 2022 13:27:36 -0600 Subject: [PATCH 4/5] remove multifile files to do in a new PR --- tests/resources/multifile.yaml | 35 --------------------- tests/resources/source-files/multifile1.tsv | 5 --- tests/resources/source-files/multifile2.tsv | 16 ---------- 3 files changed, 56 deletions(-) delete mode 100644 tests/resources/multifile.yaml delete mode 100644 tests/resources/source-files/multifile1.tsv delete mode 100644 tests/resources/source-files/multifile2.tsv diff --git a/tests/resources/multifile.yaml b/tests/resources/multifile.yaml deleted file mode 100644 index 9a3a239..0000000 --- a/tests/resources/multifile.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: 'protein-links-detailed' - -delimiter: ' ' - -files: - - './tests/resources/source-files/multifile1.tsv' - - './tests/resources/source-files/multifile2.tsv' - -metadata: !include './examples/string/metadata.yaml' - -columns: !include './examples/standards/string.yaml' - -filters: - - inclusion: 'include' - column: 'combined_score' - filter_code: 'lt' - value: 700 - -transform_code: './examples/string/protein-links-detailed.py' - -transform_mode: 'loop' - -node_properties: - - 'id' - - 'category' - - 'provided_by' - -edge_properties: - - 'id' - - 'subject' - - 'predicate' - - 'object' - - 'category' - - 'relation' - - 'provided_by' diff --git a/tests/resources/source-files/multifile1.tsv b/tests/resources/source-files/multifile1.tsv deleted file mode 100644 index 553026a..0000000 --- a/tests/resources/source-files/multifile1.tsv +++ /dev/null @@ -1,5 +0,0 @@ -protein1 protein2 neighborhood fusion cooccurence coexpression experimental database textmining combined_score -10090.ENSMUSP00000000001 10090.ENSMUSP00000020316 0 0 0 116 90 0 67 183 -10090.ENSMUSP00000000001 10090.ENSMUSP00000022816 0 0 0 62 0 0 137 955 -10090.ENSMUSP00000000001 10090.ENSMUSP00000048234 0 0 0 0 147 0 166 258 -10090.ENSMUSP00000000001 10090.ENSMUSP00000017365 0 0 0 0 165 0 0 165 diff --git a/tests/resources/source-files/multifile2.tsv b/tests/resources/source-files/multifile2.tsv deleted file mode 100644 index dac18ef..0000000 --- a/tests/resources/source-files/multifile2.tsv +++ /dev/null @@ -1,16 +0,0 @@ -protein1 protein2 neighborhood fusion cooccurence coexpression experimental database textmining combined_score -10090.ENSMUSP00000000001 10090.ENSMUSP00000017460 0 0 0 0 0 900 0 900 -10090.ENSMUSP00000000001 10090.ENSMUSP00000086207 0 0 0 78 155 600 138 695 -10090.ENSMUSP00000000001 10090.ENSMUSP00000061493 0 0 0 156 45 0 0 159 -10090.ENSMUSP00000000001 10090.ENSMUSP00000090329 0 0 0 0 196 0 0 196 -10090.ENSMUSP00000000001 10090.ENSMUSP00000026270 0 0 0 187 0 0 49 193 -10090.ENSMUSP00000000001 10090.ENSMUSP00000001115 0 0 0 0 119 0 148 218 -10090.ENSMUSP00000000001 10090.ENSMUSP00000020101 0 0 0 0 181 0 85 218 -10090.ENSMUSP00000000001 10090.ENSMUSP00000063804 0 0 0 0 179 0 57 192 -10090.ENSMUSP00000000001 10090.ENSMUSP0000009467 0 0 0 0 142 0 71 248 -10090.ENSMUSP00000000001 10090.ENSMUSP00000018012 0 0 0 65 220 0 100 286 -10090.ENSMUSP00000000001 10090.ENSMUSP00000113105 0 0 0 0 179 0 417 500 -10090.ENSMUSP00000000001 10090.ENSMUSP00000036031 0 0 0 58 181 0 85 232 -10090.ENSMUSP00000000001 10090.ENSMUSP00000039580 0 0 0 60 158 0 81 209 -10090.ENSMUSP00000000001 10090.ENSMUSP00000040516 0 0 0 0 196 0 0 196 -10090.ENSMUSP00000000001 10090.ENSMUSP00000033545 0 0 0 0 179 0 57 192 From e624438da9244f7f0598aaaf4821836db499f6a8 Mon Sep 17 00:00:00 2001 From: glass-ships Date: Fri, 4 Nov 2022 13:29:19 -0600 Subject: [PATCH 5/5] remove multifile files to do in a new PR --- multifile.py | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 multifile.py diff --git a/multifile.py b/multifile.py deleted file mode 100644 index 149268c..0000000 --- a/multifile.py +++ /dev/null @@ -1,19 +0,0 @@ -# from pathlib import Path - -# from koza.cli_runner import transform_source -# from koza.model.config.source_config import OutputFormat - -# def test_examples(): -# """ -# Use the string ingest to test ingests with multiple files and greatly different numbers of rows -# """ - -# transform_source( -# source="./tests/resources/multifile.yaml", -# output_dir="./test-output/multifile", -# output_format='tsv', -# global_table="examples/translation_table.yaml", -# local_table=None -# ) - -# test_examples()