Skip to main content

A REST client for OpenCGA enterprise REST web services

Project description

PyXetabase

This Python client package makes use of the comprehensive RESTful web services API implemented for the OpenCGA platform. OpenCGA is an open-source project that implements a high-performance, scalable and secure platform for Genomic data analysis and visualisation.

OpenCGA implements a secure and high performance platform for Big Data analysis and visualisation in current genomics. OpenCGA uses the most modern and advanced technologies to scale to petabytes of data. OpenCGA is designed and implemented to work with few million genomes. It is built on top of three main components: Catalog, Variant and Alignment Storage and Analysis.

More info about this project in OpenCGA Docs

Installation

PyXetabase can be installed from the Pypi repository. Make sure you have pip available in your machine. You can check this by running:

$ python3 -m pip --version

If you don’t have Python or pip, please refer to https://packaging.python.org/en/latest/tutorials/installing-packages/

To install pyXetabase, run the following command in the shell:

$ pip install pyxetabase

Usage

Import pyXetabase package

The first step is to import the ClientConfiguration and OpencgaClient from pyXetabase:

>>> from pyxetabase.opencga_config import ClientConfiguration
>>> from pyxetabase.opencga_client import OpencgaClient

Setting up server host configuration

The second step is to generate a ClientConfiguration instance by passing a configuration dictionary containing the opencga host OR a client-configuration.yml file with that information:

>>> config = ClientConfiguration('/opt/opencga-enterprise/conf/client-configuration.yml')
>>> config = ClientConfiguration({
        "rest": {
                "host": "https://demo.app.zettagenomics.com/opencga"
        }
    })

Log in to OpenCGA host server

With this configuration you can initialize the OpencgaClient, and log in:

>>> oc = OpencgaClient(config)
>>> oc.login(user='user', password='pass', organization='organization')

Examples

The first step is to get an instance of the clients we may want to use:

>>> projects = oc.projects  # Project client
>>> studies = oc.studies  # Study client
>>> samples = oc.samples  # Sample client
>>> individuals = oc.individuals  # Individual client
>>> cohorts = oc.cohorts  # Cohort client

Now you can start querying with pyXetabase:

>>> for project in projects.search(owner=user).get_results():
...    print(project['id'])
project1
project2
[...]

There are two different ways to access query response data:

>>> foo_client.method().get_responses()  # Iterates over all the responses
>>> foo_client.method().get_results()  # Iterates over all the results of the first response

Data can be accessed specifying comma-separated IDs or a list of IDs.

e.g. Retrieving individual karyotypic sex for a list of individuals:

>>> for result in oc.samples.info(samples='NA12877,NA12878,NA12889', study='platinum').get_results():
...     print(result['id'], result['karyotypicSex'])
NA12877 XY
NA12878 XX
NA12889 XY

>>> for result in oc.samples.info(samples=['NA12877', 'NA12878', 'NA12889'], study='platinum').get_results():
...     print(result['id'], result['karyotypicSex'])
NA12877 XY
NA12878 XX
NA12889 XY

Optional filters and extra options can be added as key-value parameters (where the values can be a comma-separated string or a list).

What can I ask for?

The best way to know which data can be retrieved for each client, log into OpenCGA Demo and check the OpenCGA REST API in the About section (at the top right corner of the screen).

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

pyxetabase-3.1.1.tar.gz (74.8 kB view details)

Uploaded Source

Built Distribution

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

pyxetabase-3.1.1-py3-none-any.whl (97.3 kB view details)

Uploaded Python 3

File details

Details for the file pyxetabase-3.1.1.tar.gz.

File metadata

  • Download URL: pyxetabase-3.1.1.tar.gz
  • Upload date:
  • Size: 74.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyxetabase-3.1.1.tar.gz
Algorithm Hash digest
SHA256 0a07a9de8176bb85fc972b1b23eece953862c54a8257f63122abccaa852d9b24
MD5 6949e922faf1d9b7c85581fb6fac7143
BLAKE2b-256 c822fea3fc3c82ef8f8c88bbb0d27d16566c6de99535ce769b03f27d24f4a8a1

See more details on using hashes here.

File details

Details for the file pyxetabase-3.1.1-py3-none-any.whl.

File metadata

  • Download URL: pyxetabase-3.1.1-py3-none-any.whl
  • Upload date:
  • Size: 97.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyxetabase-3.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3f8ccef628d8dbcadc358ce4c1700ab979fecbb4e38ff33513d1595d3738bce6
MD5 0a3c7d8a88f31754d1ec75ff56aa338b
BLAKE2b-256 c20090e578bed46a30e94a90373272bddac9468f599f1599d2874bc3007245ea

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