Package: pycellbase
ContentsPyCellBaseInstallationCloningPyPIREST client libraryGetting startedWhat can I ask for?ConfigurationUse caseCommand-line toolsID converterHGVS calculatorVCF annotatorPyCellBasePyCellBase is a Python package that provides programmatic access to the comprehensive RESTful web service API that has been implemented for theCellBasedatabase, providing an easy, lightweight, fast and intuitive access to it.This package can be used to access to relevant biological information in a user-friendly way without the need of local databases installations.Data is always available by a high-availability cluster and queries have been tuned to ensure a real-time performance.PyCellBase offers the convenience of an object-oriented scripting language and provides the ability to integrate the obtained results into other Python applications.More info about this package in thePython clientsection of theCellBase WikiInstallationCloningPyCellBase can be cloned in your local machine by executing in your terminal:$ git clone https://github.com/opencb/cellbase.gitOnce you have downloaded the project you can install the library:$ cd cellbase/clients/python
$ python setup.py installPyPIPyCellBase is stored in PyPI and can be installed via pip:$ pip install pycellbaseREST client libraryPyCellBase consumes the RESTful web services provided byCellBase, providing a simple and fast access to the database.
A series of clients and methods have been implemented to retrieve specific resources from the main features.Getting startedThe first step is to import the module and initialize theCellBaseClient:>>>frompycellbase.cbclientimportCellBaseClient>>>cbc=CellBaseClient()The second step is to create thespecific clientfor the data we want to query (in this example we want to obtain information for a gene):>>>gc=cbc.get_gene_client()And now, you can start asking to the CellBase RESTful service by providing aquery ID:>>>tfbs_responses=gc.get_tfbs('BRCA1')# Obtaining TFBS for this geneResponses are retrieved asJSONformatted data. Therefore, fields can be queried by key:>>>tfbs_responses=gc.get_tfbs('BRCA1')>>>tfbs_responses[0]['result'][0]['tfName']'E2F4'>>>transcript_responses=gc.get_transcript('BRCA1')>>>'Number of transcripts:%d'%(len(transcript_responses[0]['result']))'Number of transcripts: 27'>>>fortfbs_responseingc.get_tfbs('BRCA1,BRCA2,LDLR'):...print('Number of TFBS for "%s":%d'%(tfbs_response['id'],len(tfbs_response['result'])))'Number of TFBS for "BRCA1": 175''Number of TFBS for "BRCA2": 43''Number of TFBS for "LDLR": 141'Data can be accessed specifyingcomma-separated IDsor alist of IDs:>>>tfbs_responses=gc.get_tfbs('BRCA1')>>>len(tfbs_responses)1>>>tfbs_responses=gc.get_tfbs('BRCA1,BRCA2')>>>len(tfbs_responses)2>>>tfbs_responses=gc.get_tfbs(['BRCA1','BRCA2'])>>>len(tfbs_responses)2If there is an available resource in the CellBase Webservices, but there is not an available method in this python package, the CellBaseClient can be used to create the URL of interest and query the RESTful service:>>>tfbs_responses=cbc.get(category='feature',subcategory='gene',query_id='BRCA1',resource='tfbs')>>>tfbs_responses[0]['result'][0]['tfName']'E2F4'Optionalfilters and extra optionscan be added as key-value parameters (value can be a comma-separated string or a list):>>>tfbs_responses=gc.get_tfbs('BRCA1')>>>len(res[0]['result'])175>>>tfbs_responses=gc.get_tfbs('BRCA1',include='name,id')# Return only name and id>>>len(res[0]['result'])175>>>tfbs_responses=gc.get_tfbs('BRCA1',include=['name','id'])# Return only name and id>>>len(res[0]['result'])175>>>tfbs_responses=gc.get_tfbs('BRCA1',**{'include':'name,id'])# Return only name and id>>>len(res[0]['result'])175>>>tfbs_responses=gc.get_tfbs('BRCA1',limit=100)# Limit to 100 results>>>len(res[0]['result'])100>>>tfbs_responses=gc.get_tfbs('BRCA1',skip=100)# Skip first 100 results>>>len(res[0]['result'])75What can I ask for?The best way to know which data can be retrieved for each client is either checking out theRESTful web servicessection of the CellBase Wiki or theCellBase web servicesConfigurationConfiguration stores the REST services host, API version and species.Getting thedefault configuration:>>>ConfigClient().get_default_configuration(){'version':'v4','species':'hsapiens','rest':{'hosts':['http://bioinfo.hpc.cam.ac.uk:80/cellbase']}}Showing the configuration parameters being used at the moment:>>>cbc.show_configuration(){'host':'bioinfo.hpc.cam.ac.uk:80/cellbase','version':'v4','species':'hsapiens'}Acustom configurationcan be passed to CellBaseClient using aConfigClient object. JSON and YAML files are supported:>>>frompycellbase.cbconfigimportConfigClient>>>frompycellbase.cbclientimportCellBaseClient>>>cc=ConfigClient('config.json')>>>cbc=CellBaseClient(cc)Acustom configurationcan also be passed as a dictionary:>>>frompycellbase.cbconfigimportConfigClient>>>frompycellbase.cbclientimportCellBaseClient>>>custom_config={'rest':{'hosts':['bioinfo.hpc.cam.ac.uk:80/cellbase']},'version':'v4','species':'hsapiens'}>>>cc=ConfigClient(custom_config)>>>cbc=CellBaseClient(cc)If you want to change the configurationon the flyyou can directly modify the ConfigClient object:>>>cc=ConfigClient()>>>cbc=CellBaseClient(cc)>>>cbc.show_configuration()['version']'v4'>>>cc.version='v3'>>>cbc.show_configuration()['version']'v3'Use caseA use case where PyCellBase is used to obtain multiple kinds of data from different sources can be found in thisJupyter NotebookCommand-line toolsA command-line interface, called cbtools.py, has been implemented with several tools to ease and speed up frequently performed tasks in bioinformatics.
These tools make use of the REST client library and offer a further output processing to facilitate its analysis.ID converterThis tool annotates genomic features with all their associated IDs, making use of 74 different sources for human, including most common databases such as Ensembl, NCBI, RefSeq, Reactome, OMIM, PDB, miRBase or UniProt among others.
In addition, it supports heterogeneous input files with IDs from different sources.$cbtools.pyxreffile_with_ids.vcf>output.txtHGVS calculatorThis tool annotates variants with their associated HGVS names.
Given a variant (in the format “chromosome:position:reference:alternate”), this tool returns all the associated HGVS names for many different types of reference sequence.$cbtools.pyhgvs19:45411941:T:CA file with multiple variants can also be used.$cbtools.pyhgvsfile_with_variants.txt>output.txtVCF annotatorThis tool takes a VCF file as input and returns it with its variants annotated with a broad range of information such as consequence types, population frequencies, overlapping sequence repeats, cytobands, gene expression, conservation scores, clinical significance (ClinVar, COSMIC, diseases and drugs), functional scores and more.$cbtools.pyannotationinput.vcf>output.vcf