# BioThings SDK
[](https://pepy.tech/project/biothings)
[](https://pypi.python.org/pypi/biothings)
[](https://pypi.python.org/pypi/biothings)
[](https://pypi.python.org/pypi/biothings)
[](https://pypi.python.org/pypi/biothings)
[](CODE_OF_CONDUCT.md)
[](https://github.com/biothings/biothings.api/actions/workflows/test-build.yml)
[](https://github.com/biothings/biothings.api/actions/workflows/run-tests.yml)
[](https://docs.biothings.io/en/latest/?badge=latest)
## Quick Summary
BioThings SDK provides a Python-based toolkit to build high-performance data APIs (or web services) from a single data source or multiple data sources. It has the particular focus on building data APIs for biomedical-related entities, a.k.a "BioThings" (such as genes, genetic variants, drugs, chemicals, diseases, etc.).
Documentation about BioThings SDK can be found at https://docs.biothings.io
## Introduction
### What's BioThings?
We use "**BioThings**" to refer to objects of any biomedical entity-type
represented in the biological knowledge space, such as genes, genetic
variants, drugs, chemicals, diseases, etc.
### BioThings SDK
SDK represents "Software Development Kit". BioThings SDK provides a
[Python-based](https://www.python.org/) toolkit to build
high-performance data APIs (or web services) from a single data source
or multiple data sources. It has the particular focus on building data
APIs for biomedical-related entities, a.k.a "*BioThings*", though it's
not necessarily limited to the biomedical scope. For any given
"*BioThings*" type, BioThings SDK helps developers to aggregate
annotations from multiple data sources, and expose them as a clean and
high-performance web API.
The BioThings SDK can be roughly divided into two main components: data
hub (or just "hub") component and web component. The hub component
allows developers to automate the process of monitoring, parsing and
uploading your data source to an
[Elasticsearch](https://www.elastic.co/products/elasticsearch) backend.
From here, the web component, built on the high-concurrency [Tornado Web
Server](http://www.tornadoweb.org/en/stable/) , allows you to easily
setup a live high-performance API. The API endpoints expose
simple-to-use yet powerful query features using [Elasticsearch's
full-text query capabilities and query
language](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/query-dsl-query-string-query.html#query-string-syntax).
### BioThings API
We also use "*BioThings API*" (or *BioThings APIs*) to refer to an API
(or a collection of APIs) built with BioThings SDK. For example, both
our popular [MyGene.Info](http://mygene.info/) and
[MyVariant.Info](http://myvariant.info/) APIs are built and maintained
using this BioThings SDK.
### BioThings Studio
*BioThings Studio* is a buildin, pre-configured environment used to build and
administer a BioThings API. At its core is the *Hub*, a backend service responsible for maintaining data up-to-date, producing data releases and
update API frontends.
## Installing BioThings SDK
You can install the latest stable BioThings SDK release with pip from
[PyPI](https://pypi.python.org/pypi), like:
# default to install web requirements only for running an API
pip install biothings
# or include additional requirements useful for running an API on production
# like msgpack, sentry-sdk pacakages
pip install biothings[web_extra]
# install hub requirements for running a hub (including CLI)
pip install biothings[hub]
# install CLI-only requirements if you only need CLI for develop a data plugin
pip install biothings[cli]
# need support for docker data plugin
pip install biothings[hub,docker]
# or if use ssh protocol to connect to a remote docker server
pip install biothings[hub,docker_ssh]
# just install everything for dev purpose
pip install biothings[dev]
You can check more details for the optional dependecy packages directly in [setup.py](setup.py) file.
You can install the latest development version of BioThings SDK directly
from our github repository like:
pip install git+https://github.com/biothings/biothings.api.git#egg=biothings
# from a branch or commit
pip install git+https://github.com/biothings/biothings.api.git@0.12.x#egg=biothings
# include optional dependecies
pip install git+https://github.com/biothings/biothings.api.git@0.12.x#egg=biothings[web_extra]
# can be very useful to install in “editable” mode:
pip install -e git+https://github.com/biothings/biothings.api.git@0.12.x#egg=biothings[web_extra]
Alternatively, you can download the source code, or clone the [BioThings
SDK repository](https://github.com/biothings/biothings.api) and run:
pip install .
# or
pip install .[web_extra]
## Get started to build a BioThings API
We recommend to follow [this tutorial](https://docs.biothings.io/en/latest/tutorial/studio.html) to develop your first BioThings API in our pre-configured **BioThings Studio** development environment.
## Documentation
The latest documentation is available at https://docs.biothings.io.
## How to contribute
Please check out this [Contribution Guidelines](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) document.
## Active and past contributors
Please see [Contributors](Contributors.md)
Raw data
{
"_id": null,
"home_page": null,
"name": "biothings",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "biology, medicine, annotation, data, knowledge, web, service, api",
"author": null,
"author_email": "The BioThings Team <dev@biothings.io>",
"download_url": "https://files.pythonhosted.org/packages/2d/17/2fa728add853adceb05a7ed15bbe8bd5d8292702d4cd15b95d4dd8aeb2c6/biothings-1.0.0.tar.gz",
"platform": null,
"description": "# BioThings SDK\n\n[](https://pepy.tech/project/biothings)\n[](https://pypi.python.org/pypi/biothings)\n[](https://pypi.python.org/pypi/biothings)\n[](https://pypi.python.org/pypi/biothings)\n[](https://pypi.python.org/pypi/biothings)\n[](CODE_OF_CONDUCT.md)\n[](https://github.com/biothings/biothings.api/actions/workflows/test-build.yml)\n[](https://github.com/biothings/biothings.api/actions/workflows/run-tests.yml)\n[](https://docs.biothings.io/en/latest/?badge=latest)\n\n## Quick Summary\n\nBioThings SDK provides a Python-based toolkit to build high-performance data APIs (or web services) from a single data source or multiple data sources. It has the particular focus on building data APIs for biomedical-related entities, a.k.a \"BioThings\" (such as genes, genetic variants, drugs, chemicals, diseases, etc.).\n\nDocumentation about BioThings SDK can be found at https://docs.biothings.io\n\n## Introduction\n\n### What's BioThings?\n\nWe use \"**BioThings**\" to refer to objects of any biomedical entity-type\nrepresented in the biological knowledge space, such as genes, genetic\nvariants, drugs, chemicals, diseases, etc.\n\n### BioThings SDK\n\nSDK represents \"Software Development Kit\". BioThings SDK provides a\n[Python-based](https://www.python.org/) toolkit to build\nhigh-performance data APIs (or web services) from a single data source\nor multiple data sources. It has the particular focus on building data\nAPIs for biomedical-related entities, a.k.a \"*BioThings*\", though it's\nnot necessarily limited to the biomedical scope. For any given\n\"*BioThings*\" type, BioThings SDK helps developers to aggregate\nannotations from multiple data sources, and expose them as a clean and\nhigh-performance web API.\n\nThe BioThings SDK can be roughly divided into two main components: data\nhub (or just \"hub\") component and web component. The hub component\nallows developers to automate the process of monitoring, parsing and\nuploading your data source to an\n[Elasticsearch](https://www.elastic.co/products/elasticsearch) backend.\nFrom here, the web component, built on the high-concurrency [Tornado Web\nServer](http://www.tornadoweb.org/en/stable/) , allows you to easily\nsetup a live high-performance API. The API endpoints expose\nsimple-to-use yet powerful query features using [Elasticsearch's\nfull-text query capabilities and query\nlanguage](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/query-dsl-query-string-query.html#query-string-syntax).\n\n### BioThings API\n\nWe also use \"*BioThings API*\" (or *BioThings APIs*) to refer to an API\n(or a collection of APIs) built with BioThings SDK. For example, both\nour popular [MyGene.Info](http://mygene.info/) and\n[MyVariant.Info](http://myvariant.info/) APIs are built and maintained\nusing this BioThings SDK.\n\n### BioThings Studio\n\n*BioThings Studio* is a buildin, pre-configured environment used to build and\nadminister a BioThings API. At its core is the *Hub*, a backend service responsible for maintaining data up-to-date, producing data releases and\nupdate API frontends.\n\n## Installing BioThings SDK\n\nYou can install the latest stable BioThings SDK release with pip from\n[PyPI](https://pypi.python.org/pypi), like:\n\n # default to install web requirements only for running an API\n pip install biothings\n # or include additional requirements useful for running an API on production\n # like msgpack, sentry-sdk pacakages\n pip install biothings[web_extra]\n\n # install hub requirements for running a hub (including CLI)\n pip install biothings[hub]\n\n # install CLI-only requirements if you only need CLI for develop a data plugin\n pip install biothings[cli]\n\n # need support for docker data plugin\n pip install biothings[hub,docker]\n # or if use ssh protocol to connect to a remote docker server\n pip install biothings[hub,docker_ssh]\n\n # just install everything for dev purpose\n pip install biothings[dev]\n\nYou can check more details for the optional dependecy packages directly in [setup.py](setup.py) file.\n\nYou can install the latest development version of BioThings SDK directly\nfrom our github repository like:\n\n pip install git+https://github.com/biothings/biothings.api.git#egg=biothings\n\n # from a branch or commit\n pip install git+https://github.com/biothings/biothings.api.git@0.12.x#egg=biothings\n\n # include optional dependecies\n pip install git+https://github.com/biothings/biothings.api.git@0.12.x#egg=biothings[web_extra]\n\n # can be very useful to install in \u201ceditable\u201d mode:\n pip install -e git+https://github.com/biothings/biothings.api.git@0.12.x#egg=biothings[web_extra]\n\nAlternatively, you can download the source code, or clone the [BioThings\nSDK repository](https://github.com/biothings/biothings.api) and run:\n\n pip install .\n # or\n pip install .[web_extra]\n\n## Get started to build a BioThings API\n\nWe recommend to follow [this tutorial](https://docs.biothings.io/en/latest/tutorial/studio.html) to develop your first BioThings API in our pre-configured **BioThings Studio** development environment.\n\n## Documentation\n\nThe latest documentation is available at https://docs.biothings.io.\n\n## How to contribute\n\nPlease check out this [Contribution Guidelines](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) document.\n\n## Active and past contributors\n\nPlease see [Contributors](Contributors.md)\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "a toolkit for building high-performance data & knowledge APIs in biology",
"version": "1.0.0",
"project_urls": {
"changelog": "https://github.com/biothings/biothings.api/blob/master/CHANGES.txt",
"documentation": "https://docs.biothings.io",
"homepage": "https://biothings.io",
"issues": "https://github.com/biothings/biothings.api/issues",
"source": "https://github.com/biothings/biothings.api"
},
"split_keywords": [
"biology",
" medicine",
" annotation",
" data",
" knowledge",
" web",
" service",
" api"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "09dc6ea8900d89f4e01aa3ce453243a8d0359e995f505d64859ecc93a14c5dd5",
"md5": "1bd310752eb0618d33512e6b25a90cd3",
"sha256": "65915ca4f430b05a4566e900a36dd7018a56b541fa23b3f8435d962824532b34"
},
"downloads": -1,
"filename": "biothings-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1bd310752eb0618d33512e6b25a90cd3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 548839,
"upload_time": "2025-07-31T21:28:52",
"upload_time_iso_8601": "2025-07-31T21:28:52.740559Z",
"url": "https://files.pythonhosted.org/packages/09/dc/6ea8900d89f4e01aa3ce453243a8d0359e995f505d64859ecc93a14c5dd5/biothings-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2d172fa728add853adceb05a7ed15bbe8bd5d8292702d4cd15b95d4dd8aeb2c6",
"md5": "86eae01be82eaeab7db8d34902db5c04",
"sha256": "ce11c9c251d7b844c5c263bc86a304032bb7d248d5205a1f77994ee7e88ef122"
},
"downloads": -1,
"filename": "biothings-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "86eae01be82eaeab7db8d34902db5c04",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 483086,
"upload_time": "2025-07-31T21:28:54",
"upload_time_iso_8601": "2025-07-31T21:28:54.280093Z",
"url": "https://files.pythonhosted.org/packages/2d/17/2fa728add853adceb05a7ed15bbe8bd5d8292702d4cd15b95d4dd8aeb2c6/biothings-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-31 21:28:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "biothings",
"github_project": "biothings.api",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "biothings"
}