# BioCypher

|     |     |     |     |
| --- | --- | --- | --- |
| __License__ | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) | __Python__ | [![Python](https://img.shields.io/pypi/pyversions/biocypher)](https://www.python.org) |
| __Package__ | [![PyPI version](https://img.shields.io/pypi/v/biocypher)](https://pypi.org/project/biocypher/) [![Downloads](https://static.pepy.tech/badge/biocypher)](https://pepy.tech/project/biocypher) [![DOI](https://zenodo.org/badge/405143648.svg)](https://zenodo.org/doi/10.5281/zenodo.10158203) | __Build status__ | [![CI](https://github.com/biocypher/biocypher/actions/workflows/tests_and_code_quality.yaml/badge.svg)](https://github.com/biocypher/biocypher/actions/workflows/tests_and_code_quality.yaml) [![Docs build](https://github.com/biocypher/biocypher/actions/workflows/docs.yaml/badge.svg)](https://github.com/biocypher/biocypher/actions/workflows/docs.yaml) |
| __Tests__ | [![Coverage](https://raw.githubusercontent.com/biocypher/biocypher/coverage/coverage.svg)](https://github.com/biocypher/biocypher/actions/workflows/tests_and_code_quality.yaml) | __Docker__ | [![Latest image](https://img.shields.io/docker/v/biocypher/base)](https://hub.docker.com/repository/docker/biocypher/base/general) [![Image size](https://img.shields.io/docker/image-size/biocypher/base/latest)](https://hub.docker.com/repository/docker/biocypher/base/general) |
| __Development__ | [![pyOpenSci](https://tinyurl.com/y22nb8up)](https://github.com/pyOpenSci/software-review/issues/110) [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit) [![Code style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://black.readthedocs.io/en/stable/) | __Contributions__ | [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CONTRIBUTING.md) [![Powered by the Bioregistry](https://img.shields.io/static/v1?label=Powered%20by&message=Bioregistry&color=BA274A&style=flat&logo=image/png;base64, )](https://github.com/biopragmatics/bioregistry) |




## ❓ Description

Knowledge graphs (KGs) are an [approach to knowledge
representation](https://en.wikipedia.org/wiki/Knowledge_graph) that uses graph
structure to facilitate exploration and analysis of complex data, often
leveraging semantic information. They are popular in many research areas,
including the life sciences, due to their versatile use, for instance in data
storage, integration, reasoning, and more recently in artificial intelligence.
The creation of KGs is a complex task; BioCypher helps you in creating and
maintaining your own KG. For more overview, usage notes, and a tutorial, read
the docs [here](https://biocypher.org).

<img
    style="display: block;
           margin-left: auto;
           margin-right: auto;
           width: 70%;"
    src="docs/graphical_abstract.png"
    alt="Graphical Abstract">
</img>

## 📖 Documentation

Tutorial and developer docs at https://biocypher.org. For a quickstart into your
own pipeline, you can refer to our [project
template](https://github.com/biocypher/project-template), and for an overview of
existing and planned adapters for resources and outputs, as well as other
features, visit our [GitHub Project
Board](https://github.com/orgs/biocypher/projects/3/views/2).

## ⚙️ Installation / Usage

Install the package from PyPI using `pip install biocypher`. More comprehensive
installation and configuration instructions can be found
[here](https://biocypher.org/installation.html).

Exemplary usage of BioCypher to build a graph database is shown in our tutorial
and the various pipelines we have created. You can find these on the [Components
Project Board](https://github.com/orgs/biocypher/projects/3/views/2).

## 🤝 Getting involved

We are very happy about contributions from the community, large and small!
If you would like to contribute to BioCypher development, please refer to
our [contribution guidelines](CONTRIBUTING.md). :)

If you want to ask informal questions, talk about dev things, or just chat,
please join our community at https://biocypher.zulipchat.com!

> **Imposter syndrome disclaimer:** We want your help. No, really. There may be a little voice inside your head that is telling you that you're not ready, that you aren't skilled enough to contribute. We assure you that the little voice in your head is wrong. Most importantly, there are many valuable ways to contribute besides writing code.
>
> This disclaimer was adapted from the [Pooch](https://github.com/fatiando/pooch) project.

## ✍️ Citation

The BioCypher paper has been peer-reviewed in [Nature
Biotechnology](https://www.nature.com/articles/s41587-023-01848-y). It is
available as a self-archived version on
[Zenodo](https://zenodo.org/records/10320714), online version
[here](https://biocypher.github.io/biocypher-paper/).  Before, it was available
as a preprint at https://arxiv.org/abs/2212.13543.

## Acknowledgements

This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement No 965193 for DECIDER
and No 116030 for TransQST.
