Using RDKit
without RDKit

Beaker update

Michał Nowotka
ChEMBL Group
EMBL-EBI

What is Beaker?

Remote RDKit (and OSRA) accessible over HTTP from the Internet or locally.

Can you be more specific?

  • A lightweight web framework
  • Written in Python
  • Based on Bottle
  • Exposing REST API
  • Providing cheminformatics services
  • Easy to extend and modify

What has changed?

  • Beaker was first presented a year ago
  • It's not a pet project anymore
  • Production ready
  • In fact, used in production already!

What's new then?

  • Live online documentation
  • Better configuration
  • Caching system
  • Throttling system
  • Authentication
  • Better security
  • New methods

What's new then?

  • mod_wsgi ready (Apache, NGINX)
  • Python client library
  • Development server improved
  • Lots of bugfixes
  • Easier to extend/write own methods

How to install it?


        sudo pip install chembl_beaker
    

Can I use it without installing?

Yes!

Yes!!

Yes!!!

Beaker availability:

  • PyPi (`pip install chembl_beaker`)
  • myChEMBL
  • online

Using Beaker from myChEMBL:


        vagrant init chembl/myChEMBL
        vagrant up
    

Using public instance of Beaker:

For Python, we provide a very convenient client library:


        pip install chembl-webresource-client
    

Beaker client library:

  • Caches results
  • Generates methods from SPORE specs
  • By default uses public instance of Beaker...
  • ... but can be configured
  • Described in 07_* my_ChEMBL python notebook

Potential use cases:

  • Web widgets
  • Mobile applications
  • Desktop applications
  • Ipython notebooks
  • Fast prototyping
  • Marvin 4 JS backend

Caching backends:

  • MongoDB (for production)
  • Memcached (for production)
  • SQLite (for testing)
  • Local memory (for testing)
  • Your own?

Throttling backends:

  • Cache
  • Your own?

Authentication:

  • IP based
  • API Key
  • Your own?

Security:

  • Cross-origin requests controlled
  • Rate limiting (DDOS)
  • No persistence, no SQL injection
  • URL-safe base64 encoding for url parameters
  • IP white/black listing
  • Maximum file upload size (configurable)

Future

  • Sessions
  • Parallel processing
  • More support for creating pipelines...
  • ...KNIME like web interface?
  • Windows binary
  • ReadTheDocs documentation and separate website
  • Improved live docs

Code!

Beaker code is available as github repository:
https://github.com/mnowotka/chembl_beaker

Thank you!

Questions?