Adapters
BioCypher is a modular framework, with the main purpose of avoiding redundant maintenance work for maintainers of secondary resources and end users alike. To achieve this, we use a collection of reusable “adapters” for the different sources of biomedical knowledge as well as for different ontologies. To see whether your favourite resource is already supported or currently in development, or if you would like to contribute to the development of a new adapter, please refer to this GitHub projects view (check the tabs for different views) or the meta-graph instance.
Note
We are currently working on adapter documentation, so the collection in the GitHub Projects view may be less than complete. Please get in touch if you want to make sure that your favourite resource is supported.
The project view is built from issues in the BioCypher GitHub repository, which carry Fields
(a
GitHub Projects-specific attribute) to describe their category and features. In
detail, these are as follows:
Component Type
: This refers to the class of component and can be one ofAdapter
,Ontology
, orPipeline
.Adapter Granularity
: This is only applicable to adapters and can be eitherPrimary
(denoting an atomic resource that is represented by the adapter) orSecondary
(denoting a composite resource, often pre-harmonised).Adapter Input Format
provides a drop-down menu of the different formats that can be ingested, such asFlat File
,API
, orOWL
. Select the one that applies to the resource.Resource URL
: A free-text field to provide a link to the resource, also used for identification purposes.Resource Type
: Currently onlyDatabase
orOntology
, but more granular reporting is planned.Data Type
provides a drop-down menu of the different data types that can be ingested, such asProteomics
,Genetics
, orClinical
. Select the one that applies to the resource. This field primarily makes sense for primary adapters, but is interesting information particularly for the pipelines that use the adapters. For that reason, when building the meta-graph (see below), we propagate this information from the adapters to the pipelines.
Caution
There is currently one type of meta-information that needs to be provided via
free-text annotation in the text body of the issue: the links of pipelines to
the input adapters and ontologies they use. For the meta-graph pipeline to work
correctly, this information needs to be provided in the issue of the pipeline,
in a line that starts with Uses:
, followed by a space-separated list of
issue numbers representing the used components.
To make this annotation less error-prone, we use the auto-completion GitHub
provides for referencing issues. Typing a #
character and then a few
characters of the title of the issue to be linked to the pipeline will show a
list of possible matches. Select the correct one and the issue number will be
inserted automatically.
The meta-graph pipeline extracts this information and uses it to build the meta-graph described below.
BioCypher meta-graph
We have built a BioCypher pipeline (from the template
repository) that fetches
information about all adapters from the BioCypher GitHub repository via the
GitHub API and builds a graph of all adapters and their dependencies. Browsing
this graph can give an overview of the current state of the adapters supported
by BioCypher and the pipelines they are used in. It is built daily and available
at https://meta.biocypher.org. The graph can also
be built locally by cloning the repository and running the pipeline using
docker compose up
. The graph is then available at localhost:7474/browser/
in
the Neo4j Browser.
If you’re unfamiliar with Neo4j, you can use the following Cypher query to retrieve an overview of all graph contents:
MATCH (n)
RETURN n
For more information on how to use the graph, please refer to the Neo4j documentation.