ChEMBL Resources

Resources:
ChEMBL
|
SureChEMBL
|
ChEMBL-NTD
|
ChEMBL-Malaria
|
The SARfaris: GPCR, Kinase, ADME
|
UniChem
|
DrugEBIlity
|
ECBD

Monday, 5 December 2016

A comprehensive map of molecular drug targets


Within the ChEMBL database we spend a lot of time manually curating links between FDA approved drugs and their efficacy targets. With collaborators from the University of New Mexico and the Institute of Cancer Research, we have now published an analysis of these drug efficacy targets:

Santos R, Ursu O, Gaulton A, Bento AP, Donadi RS, Bologa CG, Karlsson A, Al-Lazikani B, Hersey A, Oprea TI & Overington JP.
A comprehensive map of molecular drug targets
Nature Reviews Drug Discovery (2016) doi:10.1038/nrd.2016.230

In the article we address the complexities of assigning drug targets, describe the 667 human proteins and 189 pathogen proteins through which 1,578 FDA-approved drugs act and map each drug to its therapeutic indication via the WHO ATC classification system.

We show that 70% of small molecule drugs still act through privileged families (GPCRs, ion channels, kinases and nuclear receptors), highlight the differences in innovation between different therapeutic areas, look at conservation of targets across different model organisms and demonstrate that only 5% of identified cancer driver genes are targeted by current cancer therapies.

As an aside, the drug-target data within ChEMBL is used in a number of other platforms such as Pharos (the portal for the NIH Illuminating the Druggable Genome project), Open Targets (a resource for pre-competitive target validation) and DrugCentral (a drug compendium from the University of New Mexico), all of which have papers in the 2017 Database Issue of Nucleic Acids Research, alongside ChEMBL:

Pharos: Collating protein information to shed light on the druggable genome

Open Targets: a platform for therapeutic target identification and validation

DrugCentral: online drug compendium


Tuesday, 29 November 2016

New ChEMBL database paper out



The latest ChEMBL database paper is now available online:
http://nar.oxfordjournals.org/content/early/2016/11/28/nar.gkw1074.full

This paper describes some of the additions to ChEMBL over the last few releases (ChEMBL_18 to ChEMBL_22) such as drug indications and clinical candidates, patent bioactivity data from BindingDB, drug metabolism information and richer assay annotation. A number of papers from our collaborators will also feature in the 2017 NAR database issue, so watch this space...

Thursday, 17 November 2016

ChEMBL_22 Data and Web Services Update





ChEMBL_22_1 data update:

We would like to inform users that an update to ChEMBL_22 has been released. 

The new version, ChEMBL_22_1, corrects an issue with the targets assigned to some BindingDB assays in ChEMBL (src_id = 37). If you are using the BindingDB data from ChEMBL, we recommend you download this update. This update also incorporates the mol file/canonical smiles correction announced previously.

Updates have been made to BindingDB data in the ASSAYS, ACTIVITIES, CHEMBL_ID_LOOKUP, LIGAND_EFF and PREDICTED_BINDING_DOMAINS tables. Corrections have also been made to molfiles and canonical_smiles in the COMPOUND_STRUCTURES table. No changes have been made to other data sets or to other drug/compound/target tables in ChEMBL_22.

The new release files can be downloaded from: 
ftp://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/chembl_22_1

A new version of the ChEMBL RDF is also available from:
ftp://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBL-RDF/22.1


Improvements to Web Services:

1. Support for SDF format.

The "molecule" endpoint now supports the SDF format. For example, if you access this URL: https://www.ebi.ac.uk/chembl/api/data/molecule.json you will get information about 20 first compounds in JSON format. This URL https://www.ebi.ac.uk/chembl/api/data/molecule.sdf will return an SDF file of the same molecule page. Please note, that there will be only 18 compounds in SDF output because two compounds from https://www.ebi.ac.uk/chembl/api/data/molecule.json (CHEMBL6961 and CHEMBL6963) have no structure defined. You can easily join the information about the compound provided via JSON, XML or YML format with the structure by inspecting the

> <chembl_id>
 
sdf property.

Obviously the same format works for a single compound so this URL: https://www.ebi.ac.uk/chembl/api/data/molecule/CHEMBL25.json will provide an information about Aspirin while this URL https://www.ebi.ac.uk/chembl/api/data/molecule/CHEMBL25.mol (or https://www.ebi.ac.uk/chembl/api/data/molecule/CHEMBL25.sdf) will return its structure.

The same can be applied to filters, for example this URL https://www.ebi.ac.uk/chembl/api/data/molecule?molecule_properties__mw_freebase__lte=300&pref_name__iendswith=nib returns information about compounds with molecular weight <= 300 AND pref_name ending with nib. The https://www.ebi.ac.uk/chembl/api/data/molecule.sdf?molecule_properties__mw_freebase__lte=300&pref_name__iendswith=nib in turn will return corresponding structures.

We also released a new version of Python client (version 0.8.50 available from PyPI and GitHub) that is aware about molfile support. Example code:

from chembl_webresource_client.new_client import new_client
molecules = new_client.molecule
molecules.set_format('sdf')
molstring =  molecules.all()[0]

Iterating through all molecules you can get an sdf files with all the structures from chembl, pagination is handled by the client.

2. Structural alerts.

This new API endpoint provides information about compound's structural alerts. For example, on order to get structural alerts for CHEMBL266429, you can use this URL: https://www.ebi.ac.uk/chembl/api/data/compound_structural_alert.json?molecule_chembl_id=CHEMBL266429

Then you can render each of the alerts to image, for example https://www.ebi.ac.uk/chembl/api/data/compound_structural_alert/898.png:



As you can see, the corresponding fragment is highlighted.You can add all parameters that are present in the standard "image" endpoint so format (png or svg), engine (rdkit or indigo), ignoreCoords to recompute coordinates from scratch and dimensions to change image size.

3. Document terms (keywords)

We used pytextrank package to extract most relevant terms from all document abstracts stored in ChEMBL, along with their significance score against each document (the code we used to perform the extraction is available).

For example, in order to get all the relevant terms for CHEMBL1124199 document, ordered by the significance score descending, you can use this URL:
https://www.ebi.ac.uk/chembl/api/data/document_term.json?document_chembl_id=CHEMBL1124199&order_by=-score

By parsing the results you can extract (term, score) pairs and multiply the score to get this list:

590 Inverse agonist activity
548 Thien-2-yl analogues
493 Pentylenetetrazole-induced convulsions
490 5'-alkyl group
477 Agonist activity
472 Inverse agonist
449 5-methylthien-3-yl derivative
427 Potent compounds
417 Vivo activity
403 Magnitude higher affinity


you can now use the HTML5 based word cloud and feed the list into this tool providing the following configuration:

{
  gridSize: Math.round(16 * $('#canvas').width() / 1024),
  drawOutOfBound: true,
  weightFactor: function (size) {
    return Math.pow(size/100.0, 2.3) * $('#canvas').width() / 1024;
  },
  fontFamily: 'Times, serif',
  hover: function(){},
  color: function (word, weight) {
    return (weight > 500) ? '#f02222' : '#c09292';
  },
  rotateRatio: 0.0,
  backgroundColor: '#ffe0e0'
}


and you will get this wordcloud:



We are planning to add this component to the new document report card.

It may be also interesting to ask about all the documents for a given keyword, for example in order to get all the documents for the "inverse agonist activity" term ordered by score descending, the following URL can be used: https://www.ebi.ac.uk/chembl/api/data/document_term.json?term_text=inverse%20agonist%20activity&order_by=-score

4. Document similarity

As the last endpoint we added "document_similarity". For example to get all documents similar to CHEMBL1122254 document this URL can be used: https://www.ebi.ac.uk/chembl/api/data/document_similarity.json?document_1_chembl_id=CHEMBL1122254

The endpoint uses the same protocol we use to generate the "Related Documents" section in the Document Report Card (https://www.ebi.ac.uk/chembl/doc/inspect/CHEMBL1122254).

The current protocol is fairly simple (measuring overlap in compounds and targets between the two documents) and not very granular (it can be difficult to choose N most relevant documents from the 50 documents that the protocol returns). However, we are currently investigating alternative methods such as topic modelling.

5. Other improvements

There are some minor improvements as well:
 - Molecule endpoint includes three more properties as described in GitHub issue #106.
 - Target endpoint can be filtered by synonym name, in other words you can get a list of targets for a given gene name, for example: https://www.ebi.ac.uk/chembl/api/data/target.json?target_components__target_component_synonyms__component_synonym__icontains=GABRB2
or using a shortcut: https://www.ebi.ac.uk/chembl/api/data/target.json?target_synonym__icontains=GABRB2
 - Target relation endpoint can be accessed by primary ID as described in GitHub issue #114.
 - parent_chembl_id filter working correctly for the molecule_form endpoint (for example https://www.ebi.ac.uk/chembl/api/data/molecule_form?parent_chembl_id=CHEMBL660 ) as described in GitHub issue #113


The ChEMBL Team

Thursday, 6 October 2016

ChEMBL 22 release - technical notes






The ChEMBL 22 release brings lots of new data. But we also released some new software so if you are interested in technical details please read on.

1. First of all, please note that ChEMBL 22 is the last release where we provide Oracle 9i dumps.
Oracle 9i has been out of support now for at nearly a decade and shouldn't be in use anymore but please let us know if this is a problem. On the other hand, we will do our best to provide Oracle 12c dumps for the next release.

2. If you are using the python API client please upgrade it by running:

[sudo] pip install -U chembl_webresource_client

This will upgrade the client to the latest version which solves some minor bugs and adds an ability to search in document abstracts. It will also create a new cache so you will see new chembl data immediately. Otherwise, you will need to clear your cache manually.

3. New version (2.4.9) of the ChEMBL API has been released as well. This version includes:
 - new endpoints: tissue and target_relation
 - mechanism endpoint contains references now
 - solr index has been added to documents so their abstracts can be searched for example searching  for 'cytocine': api/data/document/search.json?q=cytokine
 - the outdated chemical cartridge used by API (Biovia Direct) has been updated from 6.3 to 2016 Direct. The result is better handling of SMILES string, for example this API call: https://www.ebi.ac.uk/chembl/api/data/similarity/[O--].[Fe++].OCC1OC(OC2C(CO)OC(OC3C(O)C(CO)OC(OCC4OC(OCC5OC(O)C(O)C(OC6OC(CO)C(O)C(OC7OC(COC8OC(COC9OC(CO)C(O)C(O)C9O)C(O)C(O)C8O)C(O)C(OC8OC(CO)C(O)C(OC9OC(CO)C(O)C(OC%2510OC(COC%2511OC(COC%2512OC(COC%2513OC(COC%2514OC(COC%2515OC(CO)C(O)C(O)C%2515O)C(O)C(OC%2515OC(CO)C(O)C%2515O)C%2514O)C(O)C(O)C%2513O)C(O)C(O)C%2512O)C(O)C(O)C%2511O)C(O)C(OC%2511OC(CO)C(O)C(O)C%2511O)C%2510O)C9O)C8O)C7O)C6O)C5O)C(O)C(O)C4O)C3O)C2O)C(O)C1O/70
works fine now.
 - status endpoint provides API software version as well as ChEMBL release version.
 - there are many smaller bug fixes and improvements.

4. Since our API is maturing we started preparing collection of embedable widgets written in JS/CSS/HTML that you can use on your website/blog/webapplication. This will be a base for our new ChEMBL website. An example widget providing some besic information about a ChEMBL compound can be found below, the code used to embed it is:

<object data="https://glados-ebitest.rhcloud.com/compound_report_card/CHEMBL25/embed/name_and_classification/" width="800px" height="350px"></object>



Another example is an assay co-occurance matrix for compounds extracted from a single document. Again the code to embed is:

<object data="https://glados-ebitest.rhcloud.com/document_report_card/CHEMBL1151960/embed/assay_network/" width="800px" height="800px"></object>



Thursday, 29 September 2016

ChEMBL 22 Released


We are pleased to announce the release of ChEMBL 22. This version of the database, prepared on 8th August 2016 contains:

  • 2,043,051 compound records
  • 1,686,695 compounds (of which 1,678,393 have mol files)
  • 14,371,219 activities
  • 1,246,132 assays
  • 11,224 targets
  • 65,213 documents

Data can be downloaded from the ChEMBL ftpsite or viewed via the ChEMBL interface. Please see ChEMBL_22 release notes for full details of all changes in this release.

CHANGES SINCE THE LAST RELEASE

In addition to the regular updates to the Scientific Literature, PubChem, FDA Orange Book and USP Dictionary of USAN and INN Investigational Drug Names this release of ChEMBL also includes the following new data:

Deposited Data Sets:

Two new deposited data sets have been included in ChEMBL_22: the MMV Pathogen Box compound set (http://www.pathogenbox.org) and GSK Tres Cantos Follow-up TB Screening Data (http://dx.doi.org/10.1371/journal.pone.0142293).

Patent Data from BindingDB:

We have worked with the BindingDB team to integrate the bioactivity data that they have extracted from more than 1000 granted US patents published from 2013 onwards (https://www.bindingdb.org/bind/ByPatent.jsp) into ChEMBL. This data is incorporated into ChEMBL in the same way as literature-extracted bioactivity information, but with a new source (SRC_ID = 37, BindingDB Database) and a document type of 'PATENT'. In total this data set provides 99K bioactivity measurements for 68K compounds.

Withdrawn Drugs:

We have compiled a list of drugs that have been withdrawn in one or more countries due to safety or efficacy issues from multiple sources. Where available, the year of withdrawal, the applicable countries/areas and the reasons for the withdrawal are captured. Withdrawal information is shown on the Compound Report Card and a new icon has been added to the availability type section of the  Molecule Features image to denote drugs that have been withdrawn (e.g., https://www.ebi.ac.uk/chembl/compound/inspect/CHEMBL408).


Tissue Annotation:

We have identified tissues used in assays (e.g., tissues in which measurements were made after in-vivo dosing, isolated tissues on which assays were performed, or tissues from which sub-cellular fractions were prepared) using the Uberon ontology (http://uberon.github.io). A TISSUE_DICTIONARY table has been created, which stores a list of the identified tissues, their corresponding ChEMBL_IDs, names and Uberon IDs. Mappings are also provided to the Experimental Factor Ontology (http://www.ebi.ac.uk/ols/ontologies/efo), Brenda Tissue Ontology (http://www.ebi.ac.uk/ols/ontologies/bto) and CALOHA Ontology (ftp://ftp.nextprot.org/pub/current_release/controlled_vocabularies/caloha.obo). Tissue Report Cards have been created (e.g., https://www.ebi.ac.uk/chembl/tissue/inspect/CHEMBL3638244), providing a mechanism to view all of the assay data associated with a particular tissue. The keyword search now also allows searching by tissue name, Uberon ID, EFO ID, Brenda Tissue ID or CALOHA tissue ID.



Indications for Clinical Candidates:

Indication information has now been extended to cover clinical candidates. This information has been extracted from ClinicalTrials.gov and is included in the 'Browse Drug Indications' view and on Compound Report Cards.

Drug Metabolism Viewer:

An additional section has been added to Compound Report Cards to display drug metabolism schemes (e.g., https://www.ebi.ac.uk/chembl/compound/inspect/CHEMBL1064). These schemes can be opened in an expanded view by clicking the link above the image. Where known, enzyme information is shown on edges and clicking on an edge of interest will provide additional information about the reaction, including references. Clicking on the nodes allows linking to Compound Report Cards for the metabolites.


Variant Sequences:

For cases where assay data has been measured against a variant protein (e.g., site-directed mutagenesis or drug-resistance studies) we have created a VARIANT_SEQUENCES table to store the variant protein sequence used in the assay (the target for the assay will still be the wild-type protein). Since the exact protein sequence used in an assay is rarely reported in the medicinal chemistry literature, these sequences have been re-created by introducing the specified point mutation into the current UniProt sequence for the target. The resulting sequence is not therefore guaranteed to be the exact sequence used in the assay but provides a more robust way to document the relevant mutation(s) than the current use of residue name and position in most publications and ChEMBL assay descriptions (which quickly becomes obsolete when sequences change). In cases where the reported residue positions could not be reconciled with any UniProt sequence, variant sequence information has not been included in ChEMBL. Further sequences (requiring more curation) will be added in future releases. Assays with variant sequence information available are linked to the VARIANT_SEQUENCES table via the VARIANT_ID column. Please note, this information is not yet displayed on the ChEMBL interface.

We recommend you review the ChEMBL_22 release notes for a comprehensive overview of all updates and changes in ChEMBL 22, including schema changes, and as always, we greatly appreciate the reporting of any omissions or errors.

Keep an eye on the ChEMBL twitter and blog accounts for news and updates.

The ChEMBL Team

Monday, 19 September 2016

ChEMBL_22 is coming soon....

ChEMBL_22 will be released in the next week or two. For those of you who want to plan ahead, here is a preview of the new schema (full documentation here)

We would also like to inform users that we plan to discontinue the Oracle 9i download format after this release. Please contact us as soon as possible if you rely on this version.



Wednesday, 18 May 2016

Join the EMBL-EBI Chemogenomics team!


We are currently seeking multiple talented individuals to join the Chemogenomics team here at EMBL-EBI, both to work on our group resources (ChEMBL, SureChEMBL) and support external projects (FP7 HeCaToS and NIH Illuminating the Druggable Genome). If you are interested in applying for these positions (or for more information) please follow the links below. The closing date for all positions is 12th June.


Tuesday, 29 March 2016

Target Prediction Models Update



In case you have been too busy to notice, ChEMBL_21 has arrived with the usual additions, improvements and enhancements both on the data/annotation side, as well as on the interface/services. To complement this, we have also updated the target prediction models, which can be downloaded from our ftp here

The good news is that, besides the increase in terms of training data (compounds and targets), the new models were built using the latest stable versions of RDKit (2015.09.2) and scikit-learn (0.17). The latter was upgraded from the much older 0.14 version, which was causing incompatibility issues (see MultiLabelBinarizer) to several of you while trying to use the models.

We've also put together a quick Jupyter Notebook demo on how to get predictions from the models here: 

The new models will also be available on myChEMBL 21 along with a more detailed and elaborate Jupyter Notebook.


On a side note, am I allowed to be impressed by how easy it is nowadays to install Python and RDKit? 
It is literally just a matter of 6 commands and 5 minutes (on my Mac): 

curl -o miniconda.sh http://repo.continuum.io/miniconda/Miniconda3-3.8.3-MacOSX-x86_64.sh
bash miniconda.sh
conda create -n rd27 python=2.7
source activate rd27
conda install ipython ipython-notebook pillow pandas requests
conda install -c https://conda.anaconda.org/rdkit rdkit

To put things in perspective: the first time I tried to compile Python and RDKit from scratch was in 2010 (on a RedHat 5.6 machine, of course); it took me about 4 days :) 


George

Friday, 18 March 2016

This Python InChI Key resolver will blow your mind



This scientific clickbait title introduces our promised blog post about the integration of UniChem into our ChEMBL python client. UniChem is a very important resource, as it contains information about 134 million (and counting) unique compound structures and cross references between various chemistry resources. Since UniChem is developed in-house and provides its own web services, we thought it would make sense to integrate it with our python client library. Before we present a systematic translation between raw HTTP calls described in the UniChem API documentation and client calls, let us provide some preliminary information:

In order to install the client, you should use pip:

pip install -U chembl_webresource_client

Once you have it installed, you can import the unichem module:

from chembl_webresource_client.unichem import unichem_client as unichem

OK, so how to resolve an InChI Key to InChI string? It's very simple:



Of course in order to resolve InChI Key to InChI, the client connects to the UniChem database via REST, retrieves the results and gives them to you. This is done in a very efficient way and abstracts away all network-related issues, such as setting the HTTP session, handling retries, caching results etc. From the user point of view, it looks like a standard function call, that is executed locally but in fact working internet connection is required to successfully fetch results (unless they are already cached). We've just heard that there is another InChi resolver written entirely in CSS3, click here to find out.

OK, we admit that resolving InChI key to InChI may not be the most important UniChem use case so we invite you to take a look at the Jupyter notebook providing examples of using all available methods:

Wednesday, 9 March 2016

ChEMBL 21 web services update






Traditionally, along with the release of the new ChEMBL version, we have made a few updates to our RESTful API. Below you can find a short description of the most important changes:

 

Data API (https://www.ebi.ac.uk/chembl/api/data/docs):

1. New resources: Since ChEMBL 21 introduced a few new tables, we have made them available via the API. The new resources are:

Moreover, the target_component endpoint has been enhanced to provide a list of related GO terms.

2. Solr-based search: a very popular feature request was the ability to search resources by a keyword. A form of searching was already possible before, using filtering terms, such as [i]contains,[i]startswith and [i]endswtith filters. For example, in order to search molecules for 'metazide' in their preferred name, this filter can be used:


However, this approach has many drawbacks:
  • it's executed on the database level and can be very slow
  • in order to search in several attributes, you have to add the filter separately to each of them, which can result with a very long tail of filters
  • you can't search in one-to-many/many-to-many attributes (for example you cannot search molecule by its synonym because a molecule can have many synonyms)
The good news is that in order to solve this problem, we implemented a solr-based solution using django-haystack. Let's just jump straight into examples:

What if we want to search for some term in molecules, targets and assays at once? No problem, the chembl_id_lookup endpoint can be used for this, for example searching for 'morphine' will look like:


Looking at the results of the last request, it's very easy to tell (by examining the 'entity_type' attribute) that a large number of compounds and assays were returned.

Another important thing to note is that every result of search query has a 'score' attribute, indicating the relevancy of the given result. The results are sorted by the score descending (i.e. the most relevant are always first) and although you can add additional filters, for example:

you cannot change ordering by appending 'order_by=...' attribute.

You may ask, why do we only offer searching for 3 resources (well, 4 including the chembl_id_lookup)? This is because these resources are most popular and most important but we are planning to add more (such as searching in document abstracts, cell descriptions, activities) in the near future. If you have any suggestions about which resources should offer search functionality in the first place, please let us know in comments or write your suggestions to chembl-help@ebi.ac.uk. You can easily check which resources offer searching by looking at our live documentation, where all the searching methods are listed.

Furthermore, we would also appreciate your feedback about the quality of search results. If you believe that some results should have higher relevancy score than others and currently that's not the case, let us know so we can properly adjust boosts.

3. Compound images have transparent background by default. So now you can use them regardless of the color scheme used in your website:





 It's also possible to explicitly specify background color, by appending the 'bgColor=color_name' attribute for example in order to get a nice and warm orange background you have do:



The colour names are the standard names defined for HTML, you can check the full list here.

4. Datatables support: Datatables is one of the most popular jQuery plugins for rendering tabular data. In order for you to use it in a generic way (i.e. write the code in such a way it can use datatables to render data from any API endpoint), we have to be able to provide definitions of columns (e.g. how many columns we have for a given endpoint, are they searchable, sortable, what type of data they contain). This is possible using the schema API method (for example: https://www.ebi.ac.uk/chembl/api/data/molecule/schema.json), that describes every resource in a vary detailed way; however, the data provided by the schema has to be transformed to the format compatible with datatables. This is why we decided to provide another method, which is directly compatible with datatables: https://www.ebi.ac.uk/chembl/api/data/molecule/datatables.json.

Below is an example code snippet that renders a datatable from the target resource. Click on the 'Result' tab to see the table - you can sort by columns, change pages and set the number of rows displayed per page. Notice that if you change the name of the resource in the first line of code (from 'target' to 'source' or 'assay' for example), the columns and data will change as well.



Utils API (https://www.ebi.ac.uk/chembl/api/utils/docs):

There is a small update to the utilities (Beaker) part of the API. There is a new method called ctab2xyz, which converts a molfile to the xyz file format. You will notice the new method is now available in the live docs. Also the compound rendering code has been improved so it's now compatible with the latest versions of Pillow library.

Python client (https://github.com/chembl/chembl_webresource_client):

Our official Python client library has been updated as well in order to reflect recent changes. Just to remind you, in order to get the latest version of the client, you should install it via pip:

pip install -U chembl_webresource_client

Some examples of using recently added resources (drug indications, GO slim, drug metabolism):



Searching is exposed as well, examples below:



Another important change to the client is the integration with UniChem API. The latter deserves a separate blog post, so stay tuned.