Skip to main content

myChEMBL on Bare Metal

myChEMBL is distributed as a Virtual Machine (VM), which is good because you can treat it like another file on your filesystem. It can be transmitted, copied, renamed, deleted, etc. The myChEMBL VM behaves like a sandbox, so software installed there can't harm your computer.

But there are sometimes costs associated with using a VM, for example VMs are usually several percent slower than the host they are running on. There are also a number of scenarios where using a VM may not optimal or even possible, for example:
  • You just want to enrich your existing machine with chemistry-related software
  • The only machine you have is itself virtual - VM provisioning software often prevents you from installing a VM within a VM
  • When performance is critical
In these cases you may not want the whole myChEMBL VM, only the software that it ships with.

Fortunately we have a script, that automates the process of creating our customized VM. But not only that - we keep it publicly available along with all other resources, necessary to build myChEMBL! The main entry point is a bash script called '', which when executed it performs following steps:
  • Creates user called 'chembl' and adds it to sudoers list
  • Updates software distribution channels and upgrades OS
  • Installs common software libraries required by our tools
  • Installs python/ipython notebook/postgres DB
  • Sets up python environment using virtualenvwrapper/virtulenv
  • Downloads ChEMBL_18 data dump, and stores it in freshly created database
  • Installs RDKit and builds postgres cartridge
  • Installs and configures a web server and all resources that will be accessible via browser
  • Configures network
  • Adds some branding

How to use it?

Just run:

curl -s | bash 

you can optionally wrap it with 'time' to know how long did it take to execute: 

time(curl -s | bash) 

It takes about 6 hours on our machines, but we have fast internet connection. It could take 2-3 times longer on your connection, depending on bandwidth and your computer speed. The script is extremely verbose so you will easily notice what is being installed at the moment. Tip: you can redirect stdout/stderr to file(s) or even /dev/null to make it silent.

What takes the most time?

Depending on your configuration these are most time consuming operations performed during execution of the script:
  • Creating fingerprints and indexes for chemistry cartridge
  • Downloading ChEMBL_18 dump from EBI's FTP (917 MB)
  • Compiling libraries

Currently '' script was tested only on Ubuntu. It should work on every standard Ubuntu release since 12.04 (and probably Linux Mint as well). It's possible that the script will work fine (after some minor tweaks) with Debian since Ubuntu is based on it and they both use the same package manager. In future we are planning to make it work with other systems (CentOS and RedHat).

Furthermore, in order to execute this script you should have root privileges as it uses 'sudo' many times.

Is it safe?

What we are asking you to do is a "curl pipe sh" pattern, which may be of some security concern.
We believe this is fastest, most convenient and elegant way for majority of our users. If you trust:
  • Your internet connection (no man in the middle, would be hard anyway since we are using https here).
  • us at ChEMBL (we hope so!)
If you are not convinced, you can do:
  1. curl -o
  2. Carefully analyze contents, making sure there is no malware
  3. chmod +x
  4. ./
In that case, please note that this process can be recursive since, itself contains "curl pipe sh" pattern many times.

Let us know if you have any follow up questions about this post or about myChEMBL.


Popular posts from this blog

Sequence similarity searches in ChEMBL

  The ChEMBL database contains bioactivity data that links compounds to their biological targets.  Most ChEMBL targets are proteins (~ 70% in version 27) and these are mapped to their UniProt accessions.   On the ChEMBL interface, searches can be performed with either protein names or accessions...but did you know that protein similarity searches are also possible? Here’s an example using human Phospholipase DDHD2 , a target not found in ChEMBL.       1.       On the ChEMBL interface , click 'Enter a Sequence:     2.       Input the FASTA sequence corresponding to human  Phospholipase DDHD2  and click 'Search in ChEMBL':  3.      Review the BLAST results, select targets of interest and browse bioactivity data: The BLAST  search identifies the mouse  Phospholipase DDHD2   homologue alongside a small number of bioactivity data points and active compounds . ChEMBL's sequence search feature is currently only available through the interface. However, sequence data for prote

ChEMBL 29 Released

  We are pleased to announce the release of ChEMBL 29. This version of the database, prepared on 01/07/2021 contains: 2,703,543 compound records 2,105,464 compounds (of which 2,084,724 have mol files) 18,635,916 activities 1,383,553 assays 14,554 targets 81,544 documents Data can be downloaded from the ChEMBL FTP site: .  Please see ChEMBL_29 release notes for full details of all changes in this release: New Deposited Datasets EUbOPEN Chemogenomic Library (src_id = 55, ChEMBL Document IDs CHEMBL4649982-CHEMBL4649998): The EUbOPEN consortium is an Innovative Medicines Initiative (IMI) funded project to enable and unlock biology in the open. The aims of the project are to assemble an open access chemogenomic library comprising about 5,000 well annotated compounds covering roughly 1,000 different proteins, to synthesiz

ChEMBL 28 Released!

  We are pleased to announce the release of ChEMBL_28. This version of the database, prepared on 15/01/2021 contains: * 2,680,904 compound records * 2,086,898 compounds (of which 2,066,376 have mol files) * 17,276,334 activities * 1,358,549 assays * 14,347 targets * 80,480 documents Data can be downloaded from the ChEMBL FTP site: . Please see ChEMBL_26 release notes for full details of all changes in this release: DATA CHANGES SINCE THE LAST RELEASE This release includes several new deposited data sets: Donated Chemical Probes data from SGC Frankfurt (src_id = 54) SARS-CoV-2 screening data from the Fraunhofer Institute (src_id = 52) Antimicrobial screening data sets from CO-ADD (src_id = 40) Plasmodium screening data from the UCSD Winzeler lab (src_id = 51) MMV pathogen box screening data (src_id = 34) Curated data

Julia meets RDKit

Julia is a young programming language that is getting some traction in the scientific community. It is a dynamically typed, memory safe and high performance JIT compiled language that was designed to replace languages such as Matlab, R and Python. We've been keeping an an eye on it for a while but we were missing something... yes, RDKit! Fortunately, Greg very recently added the MinimalLib CFFI interface to the RDKit repertoire. This is nothing else than a C API that makes it very easy to call RDKit from almost any programming language. More information about the MinimalLib is available directly from the source . The existence of this MinimalLib CFFI interface meant that we no longer had an excuse to not give it a go! First, we added a BinaryBuilder recipe for building RDKit's MinimalLib into Julia's Yggdrasil repository (thanks Mosè for reviewing!). The recipe builds and automatically uploads the library to Julia's general package registry. The build currently targe

Identifying relevant compounds in patents

  As you may know, patents can be inherently noisy documents which can make it challenging to extract drug discovery information from them, such as the key targets or compounds being claimed. There are many reasons for this, ranging from deliberate obfuscation through to the long and detailed nature of the documents. For example, a typical small molecule patent may contain extensive background information relating to the target biology and disease area, chemical synthesis information, biological assay protocols and pharmacological measurements (which may refer to endogenous substances, existing therapies, reaction intermediates, reagents and reference compounds), in addition to description of the claimed compounds themselves.  The SureChEMBL system extracts this chemical information from patent documents through recognition of chemical names, conversion of images and extraction of attached files, and allows patents to be searched for chemical structures of interest. However, the curren