Skip to main content

a toolkit for building high-performance data & knowledge APIs in biology

Project description

BioThings SDK

Downloads biothings package biothings_version biothings_version biothings_version Contributor Covenant Build Status Tests Status Documentation Status

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 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 backend. From here, the web component, built on the high-concurrency Tornado Web Server , 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.

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 and 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, 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 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 and run:

pip install .
# or
pip install .[web_extra]

Get started to build a BioThings API

We recommend to follow this tutorial 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 and Code of Conduct document.

Active and past contributors

Please see Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

biothings-1.1.1.tar.gz (492.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

biothings-1.1.1-py3-none-any.whl (560.0 kB view details)

Uploaded Python 3

File details

Details for the file biothings-1.1.1.tar.gz.

File metadata

  • Download URL: biothings-1.1.1.tar.gz
  • Upload date:
  • Size: 492.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for biothings-1.1.1.tar.gz
Algorithm Hash digest
SHA256 3b6e61f92882ddf86561ec0feb20ebb3810b82270fc09c5d56094c401b7fc6b1
MD5 4575d3ba8a97ba5ca8169be51f9684f5
BLAKE2b-256 52d5b490bbbb109d53b862184868c1e7848a00c578b00c6b57f986ddca2ffb95

See more details on using hashes here.

File details

Details for the file biothings-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: biothings-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 560.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for biothings-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4438769722a7ea3dbba8b6ccf9d56972039eb0398cbbdde1e923b17a449eae75
MD5 5f99529fb322b5d9ef6d07b916475b7d
BLAKE2b-256 09bb7b5695d54bb316572e684d449b9dd0252c0e7ea218944cf73f502eb1ca92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page