Skip to main content

Python Client for BioThings API services.

Project description

https://badge.fury.io/py/biothings-client.svg https://img.shields.io/pypi/pyversions/biothings-client.svg https://img.shields.io/pypi/format/biothings-client.svg https://github.com/biothings/biothings_client.py/actions/workflows/build-package.yml/badge.svg https://github.com/biothings/biothings_client.py/actions/workflows/run-tests.yml/badge.svg Codacy Badge Codacy Coverage Badge PyPI Downloads Documentation Status

Intro

biothings_client is an easy-to-use Python wrapper to access any Biothings.api -based backend service. Currently, the following clients are available:

  • gene - The client for MyGene.Info, which provides access to gene objects.

  • variant - The client MyVariant.Info, which provides access to genetic variant objects.

  • chem - The client for MyChem.Info, which provides access to chemical/drug objects.

  • disease - The client for MyDisease.Info, which provides access to disease objects.

  • geneset - The client for MyGeneset.Info, which provides access to geneset/pathway objects.

  • taxon - The client for t.biothings.io, which provides access to taxon objects.

Support

python >=3.7

Optional dependencies

  • pandas (install using “pip install pandas”) is required for returning a list of variant objects as DataFrame.

Installation

  • Option 1. Install from pypi repository using pip:

    pip install biothings_client
  • Option 2. Install the latest commit from the github repository using pip:

    pip install -e git+https://github.com/biothings/biothings_client.py#egg=biothings_client

Version history

CHANGES.txt

Tutorial

See the quick start tutorial at the biothings_client doc page.

Documentation

https://biothings-clientpy.readthedocs.io

Usage

  • Synchronous client.

    from biothings_client import get_client
    
    # get a client for variant objects
    mv = get_client("variant")
    
    mv.getvariant("chr7:g.140453134T>C")
    
    # output below is collapsed
    {"_id": "chr7:g.140453134T>C",
     "_version": 1,
     "chrom": "7",
     "cadd": {...},
     "clinvar": {...},
     "cosmic": {...},
     "dbnsfp": {...},
     "dbsnp": {...},
     "docm": {...},
     "hg19": {'end': 140453134, 'start': 140453134},
     "mutdb": {...},
     "snpeff": {...},
     "vcf": {
        "alt": "C",
        "position": "140453134",
        "ref": "T"
     }}
    
    # get a client for gene objects
    mg = get_client("gene")
    
    mg.getgene(1017, 'name,symbol,refseq')
    
    {'_id': '1017',
     '_score': 21.03413,
     'name': 'cyclin dependent kinase 2',
     'refseq': {'genomic': ['NC_000012.12', 'NC_018923.2', 'NG_034014.1'],
      'protein': ['NP_001277159.1',
       'NP_001789.2',
       'NP_439892.2',
       'XP_011536034.1'],
      'rna': ['NM_001290230.1', 'NM_001798.4', 'NM_052827.3', 'XM_011537732.1'],
      'translation': [{'protein': 'NP_001789.2', 'rna': 'NM_001798.4'},
       {'protein': 'NP_439892.2', 'rna': 'NM_052827.3'},
       {'protein': 'NP_001277159.1', 'rna': 'NM_001290230.1'},
       {'protein': 'XP_011536034.1', 'rna': 'XM_011537732.1'}]},
     'symbol': 'CDK2'}
    
    # get a client for chems/drugs
    md = get_client("chem")
    
    md.getchem("ATBDZSAENDYQDW-UHFFFAOYSA-N", fields="pubchem")
    
    {'_id': 'ATBDZSAENDYQDW-UHFFFAOYSA-N',
     '_version': 1,
     'pubchem': {'chiral_atom_count': 0,
      'chiral_bond_count': 0,
      'cid': 'CID4080429',
      'complexity': 250,
      'covalently-bonded_unit_count': 1,
      'defined_atom_stereocenter_count': 0,
      'defined_bond_stereocenter_count': 0,
      'exact_mass': 184.019415,
      'formal_charge': 0,
      'heavy_atom_count': 12,
      'hydrogen_bond_acceptor_count': 3,
      'hydrogen_bond_donor_count': 1,
      'inchi': 'InChI=1S/C8H8O3S/c1-2-7-4-3-5-8(6-7)12(9,10)11/h2-6H,1H2,(H,9,10,11)',
      'inchi_key': 'ATBDZSAENDYQDW-UHFFFAOYSA-N',
      'isotope_atom_count': 0,
      'iupac': {'traditional': '3-vinylbesylic acid'},
      'molecular_formula': 'C8H8O3S',
      'molecular_weight': 184.21232,
      'monoisotopic_weight': 184.019415,
      'rotatable_bond_count': 2,
      'smiles': {'isomeric': 'C=CC1=CC(=CC=C1)S(=O)(=O)O'},
      'tautomers_count': 1,
      'topological_polar_surface_area': 62.8,
      'undefined_atom_stereocenter_count': 0,
      'undefined_bond_stereocenter_count': 0,
      'xlogp': 1.4}}
    
    # get a client for taxa
    mt = get_client("taxon")
    
    mt.gettaxon(9606)
    
    {'_id': '9606',
     '_version': 1,
     'authority': ['homo sapiens linnaeus, 1758'],
     'common_name': 'man',
     'genbank_common_name': 'human',
     'has_gene': True,
     'lineage': [9606,
      9605,
      207598,
      9604,
      314295,
      9526,
      314293,
      376913,
      9443,
      314146,
      1437010,
      9347,
      32525,
      40674,
      32524,
      32523,
      1338369,
      8287,
      117571,
      117570,
      7776,
      7742,
      89593,
      7711,
      33511,
      33213,
      6072,
      33208,
      33154,
      2759,
      131567,
      1],
     'other_names': ['humans'],
     'parent_taxid': 9605,
     'rank': 'species',
     'scientific_name': 'homo sapiens',
     'taxid': 9606,
     'uniprot_name': 'homo sapiens'}
  • Asynchronous client.

    from biothings_client import get_async_client
    
    # get a client for variant objects
    mv = get_async_client("variant")
    await mv.getvariant("chr7:g.140453134T>C")
    
    # get a client for gene objects
    mg = get_async_client("gene")
    await mg.getgene(1017, 'name,symbol,refseq')
    
    # get a client for chems/drugs
    md = get_async_client("chem")
    await md.getchem("ATBDZSAENDYQDW-UHFFFAOYSA-N", fields="pubchem")
    
    # get a client for taxa
    mt = get_async_client("taxon")
    await mt.gettaxon(9606)

Contact

Drop us any feedback @biothingsapi

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_client-0.4.1.tar.gz (56.1 kB view details)

Uploaded Source

Built Distribution

biothings_client-0.4.1-py3-none-any.whl (46.7 kB view details)

Uploaded Python 3

File details

Details for the file biothings_client-0.4.1.tar.gz.

File metadata

  • Download URL: biothings_client-0.4.1.tar.gz
  • Upload date:
  • Size: 56.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for biothings_client-0.4.1.tar.gz
Algorithm Hash digest
SHA256 5b34e09c905280b5bd2538f1f34b6fc780c53c8da9b4074e3ff304836046f613
MD5 7afafdea9f31d5a228016333047ca6c0
BLAKE2b-256 ef2f2ef9115e317f4c2acb690b341f40de751b16d14169fdbb8d6eb86964166c

See more details on using hashes here.

File details

Details for the file biothings_client-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for biothings_client-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9cbc17461b2bf6af6ed200929b886d6670d450af2034b428cd833f725695265a
MD5 dd08e56b7c188b8d2952aade8fd08b8f
BLAKE2b-256 dc6d130477cfbd7294949b919c45cc1ed14a642cec95afba06a54400a4419235

See more details on using hashes here.

Supported by

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