Skip to main content

SBG API python client bindings

Project description

sevenbridges-python
===================


|Travis| |PyPI version| |Documentation| |Licence|

`CHANGESETS <CHANGES.md>`__

sevenbridges-python is a `Python <http://www.python.org/>`__ library
that provides an interface for `the Seven Bridges
Platform <https://www.sbgenomics.com/>`__ and `Cancer Genomics
Cloud <http://www.cancergenomicscloud.org/>`__ public APIs. It works
with Python versions 2.6+ and supports Python 3.

The `Seven Bridges Platform <https://www.sbgenomics.com/>`__ is a
cloud-based environment for conducting bioinformatic analyses. It is a
central hub for teams to store, analyze, and jointly interpret their
bioinformatic data. The Platform co-locates analysis pipelines alongside
the largest genomic datasets to optimize processing, allocating storage
and compute resources on demand.

The `The Cancer Genomics Cloud
(CGC) <http://www.cancergenomicscloud.org/>`__, powered by `Seven
Bridges <https://www.sbgenomics.com/>`__, is also a cloud-based
computation environment. It was built as one of three pilot systems
funded by the `National Cancer Institute <http://www.cancer.gov/>`__ to
explore the paradigm of colocalizing massive genomics datasets, like The
`Cancer Genomics Atlas (TCGA) <http://cancergenome.nih.gov/>`__,
alongside secure and scalable computational resources to analyze them.
The CGC makes more than a petabyte of multi-dimensional data available
immediately to authorized researchers. You can add your own data to
analyze alongside TCGA using predefined analytical workflows or your own
tools.

Installation
------------

The easiest way to install sevenbridges-python is using pip. :

::

$ pip install sevenbridges-python

Get the Code
------------

sevenbridges-python is actively developed on GitHub, where the code is
always available.

The easiest way to obtain the source is to clone the public repository :

::

$ git clone git://github.com/sbg/sevenbridges-python.git

Once you have a copy of the source, you can embed it in your Python
package, or install it into your site-packages by invoking: :

::

$ python setup.py install

If you are interested in reviewing this documentation locally, clone
this repository, position yourself in the docs directory and after
installing requirements-dev.txt, invoke: :

::

$ make html

Run Tests
---------

In order to run tests clone this repository, position yourself in the
root of the cloned project and after installing requirements-dev.txt,
invoke: :

::

py.test

Authentication and Configuration
--------------------------------

In order to authenticate with the API, you should pass the following items to sevenbridges-python:

(a) Your authentication token
(b) The API endpoint you will be interacting with. This is either the endpoint for the Seven Bridges Platform or
for the Seven Bridges Cancer Genomics Cloud (CGC) or for CAVATICA.

You can find your authentication token on the respective pages:

- https://igor.sbgenomics.com/developer for the Seven Bridges Platform
- https://cgc.sbgenomics.com/developer for the CGC
- https://cavatica.sbgenomics.com/developer for Cavatica

The API endpoints for each environment are:

- https://api.sbgenomics.com/v2 for the Seven Bridges Platform
- https://cgc-api.sbgenomics.com/v2 for the CGC.
- https://cavatica-api.sbgenomics.com/v2 for CAVATICA


For more information about the API, including details of the available parameters for each API call, you should check
the API documentation before using this library:

- http://docs.sevenbridges.com/docs/the-api for the Seven Bridges Platform.
- http://docs.cancergenomicscloud.org/docs/the-cgc-api for the CGC.
- http://docs.cavatica.org/docs/the-api for CAVATICA

Initialize configuration using the configuration file
-----------------------------------------------------

Once you obtain your authentication token you can pass it to the Config
object. You can instantiate your API object by passing the appropriate
configuration. There are three ways you can pass configure the library:

1. Pass parameters ``url`` and ``token`` explicitly when initializing
the config object.
2. Put the API endpoint and token in the environment variables
``API_URL`` and ``AUTH_TOKEN`` respectively.
3. Use the configuration file ``$HOME/.sevenbridges/credentials`` with defined parameters.

Explicit initialization
~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

import sevenbridges as sbg
api_config = sbg.Config(url='https://api.sbgenomics.com/v2', token='<TOKEN_HERE>')

Initialization via environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

import sevenbridges as sbg

import os

# Usually these would be set in the shell beforehand
os.environ['SB_API_ENDPOINT'] = 'https://api.sbgenomics.com/v2'
os.environ['SB_AUTH_TOKEN'] = '<TOKEN_HERE>'

api = sbg.Api()

Initialization via config file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

import sevenbridges as sbg
config = sbg.Config(profile='cgc')

Notes on config file format
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``$HOME/.sevenbridges/credentials`` file has a simple .ini file format, for example:

::

[default]
api_endpoint = https://api.sbgenomics.com/v2
auth_token = <TOKEN_HERE>

[cgc]
api_endpoint = https://cgc-api.sbgenomics.com/v2
auth_token = <TOKEN_HERE>

[cavatica]
api_endpoint = https://cavatica-api.sbgenomics.com/v2
auth_token = <TOKEN_HERE>

Initializing the sevenbridges-python library
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The API object represents the central resource for querying, saving and
performing all other actions on your resources. Once you have
instantiated the configuration class, pass it to the API class
constructor.

.. code:: python

import sevenbridges as sbg
api_config = sbg.Config() # Or any other choice of initialization method
api = sbg.Api(config=api_config)

Examples
--------

The following code illustrates the way the library should be used. For
more detailed examples consult the documentation, hosted on readthedocs.

.. code:: python

import sevenbridges as sbg

api_config = sbg.Config() # Or any other choice of initialization method
api = sbg.Api(config=api_config)

# Get current user
user = api.users.me()

# Query your projects
projects = api.projects.query(limit=100)

# Fetch project files
project = projects[0]
files = project.get_files()

.. |PyPI version| image:: https://badge.fury.io/py/sevenbridges-python.svg
:target: https://pypi.python.org/pypi/sevenbridges-python
.. |Documentation| image:: https://readthedocs.org/projects/sevenbridges-python/badge/?version=latest
:target: http://sevenbridges-python.readthedocs.org/en/latest/
.. |Licence| image:: https://img.shields.io/badge/licence-Apache-orange.svg
:target: https://github.com/sbg/sevenbridges-python/blob/master/LICENCE
.. |Travis| image:: https://travis-ci.org/sbg/sevenbridges-python.png
:target: https://travis-ci.org/sbg/sevenbridges-python


Contributing
------------

Contributions, bug reports and issues are very welcome.

You can make your own contributions by forking the develop branch of this repository,
making your changes, and issuing pull request on the develop branch.
Contributors should read the `Seven Bridges Notice to Contributors <CONTRIBUTORS_NOTICE.md>`_ and
sign the `Seven Bridges Contributor Agreement <https://secure.na1.echosign.com/public/esignWidget?wid=CBFCIBAA3AAABLblqZhAqt_9rHEqy2MggS0uWRmKHUN2HYi8DWNjkgg5N68iKAhRFTy7k2AOEpRHMMorxc_0*>`_ before submitting a pull request.

Copyright
---------

Copyright (c) 2016-2017 Seven Bridges Genomics, Inc. All rights reserved.

This project is open-source via the `Apache 2.0 License <http://www.apache.org/licenses/LICENSE-2.0>`_.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

sevenbridges-python-0.9.1.tar.gz (49.5 kB view hashes)

Uploaded Source

Supported by

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