Skip to main content

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).

Metadata

Release files for pyxetabase 3.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyxetabase 3.1.2
File Size Uploaded
pyxetabase-3.1.2.tar.gz 74.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyxetabase 3.1.2
File Interpreter ABI Platform
pyxetabase-3.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 172.1 kB

Release files / pyxetabase-3.1.2.tar.gz

Download URL pyxetabase-3.1.2.tar.gz
Size 74.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4e1838a36db7fb04f9c0f539b74df8d8c5d1ca7e8fb112e386bd4b7f7961f97e
BLAKE2b-256 checksum
How to use checksums
ea9f291ea62c0c9422d8e3c6db06217a052703fd62cd5c221d76d61652572ec6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyxetabase-3.1.2-py3-none-any.whl

Download URL pyxetabase-3.1.2-py3-none-any.whl
Size 97.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bc011e27952009cc2ffb6471cb47f9bdc7718005c904863158a766fbd2b96dee
BLAKE2b-256 checksum
How to use checksums
0c917ad9b2c7ebc5d1ecf4ecb748331bc0a7102d2cec1dd1c1ffc42dad6b38ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

3.1.2 This release

2 release files

3.1.1

2 release files

3.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page