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.
python >=3.7
Option 1. Install from pypi repository using pip:
pip install biothings_clientOption 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
CHANGES.txt
See the quick start tutorial at the biothings_client doc page.
https://biothings-clientpy.readthedocs.io
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)
Drop us any feedback @biothingsapi