This is chembl_beaker package developed at ChEMBL group, EMBL-EBI, Cambridge, UK.
This is wrapper for RDKit which exposes following methods:
As a portable, lightweight, CORS-ready, REST-speaking, SPORE-documented webserver. This particular implementation wraps RDKit in Bottle on Tornado.
It can be used as web service backend for Marvin For Java Script as it exposes methods compatible with it's webservice specification. To do this you need to configure marvin sketcher instance:
marvin.sketcherInstance = new marvin.Sketch("sketch"); marvin.sketcherInstance.setServices(getDefaultServices({ 'clean2dws' : <url of Beaker clean webservice>, 'molconvertws' : <url of Beaker molExport webservice>, "stereoinfows" : <url of Beaker cipStereoInfo> }));
The best way is to use Docker:
docker run -p 5000:5000 chembl/beaker
open http://127.0.0.1:5000/docs
By default configuration is stored in beaker.conf
file, located in current directory. You can specify location of
configuration file using --config (-c)
parameter when running beaker. Configuration file format is standard *.ini
.
Beaker is distributed with example configuration file named beaker.conf.sample
.
- debug - run bottle server in debug mode (True/False, default
True
)- bottle_port - number of port on which Bottle server is listening for connections (integer, default
8080
)- bottle_host - hostname of Bottle server (string, default
localhost
)- server_middleware - networking middleware library used by Bottle (string, default
tornado
)- enable_cors - enable CORS plugin and respect all header settings below (True/False, default
True
)- access_control_allow_origin - content of 'Access-Control-Allow-Origin' header send with every response (string, default
*
)- access_control_allow_methods - content of 'Access-Control-Allow-Methods' header send with every response (string, default
GET, POST, PUT, OPTIONS
)
- installed_apps - apps installed in beaker, default to [
- "beaker", "beaker.core_apps.autoDocs", "beaker.core_apps.conversions", "beaker.core_apps.descriptors", "beaker.core_apps.marvin", "beaker.core_apps.mcs", "beaker.core_apps.rasterImages", "beaker.core_apps.svgImages", "beaker.core_apps.similarityMaps", "beaker.core_apps.standardisation", ]
Like every good software written in Python, beaker is self-documented. When you run beaker, open your browser and go to URL: BEAKER_ROOT/docs
. You will see live documentation genrated on the fly from all available webservices, exposed by beaker. You can immediately try them and see results return by the server. Every webservice should be documented - documentation is generated automatically as well, from docstring of every exposed webservice, interpreted as markdown.
Developing new app should be easy. The only required file is views.py
where you should define your botte routes
.