-
Notifications
You must be signed in to change notification settings - Fork 53
Python client library
The first step is to import the module and initialize the CellBaseClient:
>>> from pycellbase.cbclient import CellBaseClient
>>> cbc = CellBaseClient()
The second step is to create the specific client for the data we want to query:
>>> gc = cbc.get_gene_client()
And now, you can start asking to the CellBase RESTful service by providing a query ID:
>>> tfbs_responses = gc.get_tfbs('BRCA1')
Responses are retrieved as JSON formatted 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'
>>> for tfbs_response in gc.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 specifying comma-separated IDs or a list 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)
2
If there is an available resource, 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'
Optional filters and extra options can be added as key-value parameters:
>>> tfbs_responses = gc.get_tfbs('BRCA1')
>>> len(res[0]['result'])
175
>>> tfbs_responses = gc.get_tfbs('BRCA1', limit=100)
>>> len(res[0]['result'])
100
>>> tfbs_responses = gc.get_tfbs('BRCA1', skip=100)
>>> len(res[0]['result'])
75
The best way to know which data can be retrieved for each client is either checking out the RESTful web services section of the CellBase Wiki or the CellBase web services
Configuration stores the REST services host, API version and species.
Default configuration:
>>> cbc.get_config()
{'hosts': ['bioinfo.hpc.cam.ac.uk:80/cellbase',
'bioinfodev.hpc.cam.ac.uk:80/cellbase-4.5.0-beta'],
'host': 'bioinfo.hpc.cam.ac.uk:80/cellbase',
'version': 'v4',
'species': 'hsapiens'}
A custom configuration can be passed to CellBaseClient with a ConfigClient object. JSON and YML files are supported:
>>> from pycellbase.cbconfig import ConfigClient
>>> from pycellbase.cbclient import CellBaseClient
>>> cc = ConfigClient('config.json')
>>> cbc = CellBaseClient(cc)
If you want to change the configuration you can directly modify the ConfigClient object:
>>> cc = ConfigClient()
>>> cbc = CellBaseClient(cc)
>>> cbc.get_config()['version']
'v4'
>>> cc.version = 'v3'
>>> cbc.get_config()['version']
'v3'