Overview
This project is based on CDK « Chemistry Development Kit », a set of open-source tools providing structural data to represent molecules, as well as methods to study these structures and perform calculations.
All three functionalities use the same kind of input which are an InChI, a plain text MOL, a MOL file, a SDF file.
However, this REST API only focuses on certain functionalities of this tool :
The calculation of some chemicals properties such as :
The raw formula,
The monoisotopic and average masses,
The canonical and stereochemical SMILES,
The InChI and InChI key,
The LogP.
The depiction of a molecule in PNG or SVG format.
The conversion of one molecular structure format into another (InChI, InChI Key, MOL, SDF).
All three functionalities use the same kind of input which are an InChI
, a plain text MOL
, a MOL file
, a SDF file
.
This REST API was developed in order to be use in a microservice architecture.
Prerequisites
To run the application on your machine you must :
Install the management tool Maven. If you don’t already have it, you can, on Linux, download it with the following command :
$ sudo apt install maven
Installation
You can install this API by different ways.
Locally
You can install the API on your machine to use it locally.
First clone the git repository :
$ git clone https://git.mesocentre.uca.fr/unh-metabocloud/cdk-api.git
Move into the newly created folder cdk-api
and launch the following command to compile the REST API into a JAR (.jar) :
$ cd cdk-api
$ mvn -Dmaven.test.skip=true package
Note
The option -Dmaven.test.skip=true
enables to launch the application without running the unit tests.
If you want to execute the tests, you just have to remove it or set the option to false
.
Then you can run the application from the newly created JAR :
$ java -jar target/metabocloud-cdk-api-2.9.0.jar
Note
By default, the application is launched on port 8081
with the log level set to INFO
. But you can configure both parameters.
Use the option
-Dserver.port
to choose the port on which you want the application to listen :$ java -Dserver.port=8080 -jar target/metabocloud-cdk-api-2.9.0.jarUse the option
--debug
to run the application inDEBUG
level :$ java -jar target/metabocloud-cdk-api-2.9.0.jar --debugYou can of course use both options in the same time :
$ java -Dserver.port=8080 -jar target/metabocloud-cdk-api-2.9.0.jar --debugThe application will then be launched in debug mode on the port 8080.
With Docker
You can also launch the application by building a Docker image from the Dockerfile
. This method enables to build a container with the application
and all the required dependencies in a single command.
First, clone the git repository :
$ git clone https://git.mesocentre.uca.fr/unh-metabocloud/cdk-api.git
Move into the repository and run the bash script build_docker_image.sh
:
$ cd cdk-api
$ ./build_docker_image.sh
You can now launched the application from the docker image :
$ docker run -p 8081:8081 cdk
Note
You can also choose on which port you want the application to listen :
$ docker run -e DEBUG=true -p 8080:8081 cdk
This command will launched the application on the port 8080 in debug mode.
Web usage
You can use this application locally on your machine after installing it as explained in the section above, but you can also use it directly from the
MetaboCloud Web Portal by querying it at the following domain : https://metabocloud.mesocentre.uca.fr/cdk/
See the Swagger documentation below for details of the endpoints available.
Documentation
You can find information on the use of this REST API :
Here on this documentation, for the generic information about the API and some examples of use.
On the Swagger documentation for the information about the different endpoints available such as accepted requests, required parameters, possible responses, as well as examples.
References
Willighagen, E. L. et al. The Chemistry Development Kit (CDK) v2.0: atom typing, depiction, molecular formulas, and substructure searching. J Cheminform 9, 33 (2017). https://doi.org/10.1186/s13321-017-0220-4
Steinbeck, C. et al. The Chemistry Development Kit (CDK): An Open-Source Java Library for Chemo- and Bioinformatics. J. Chem. Inf. Comput. Sci. 43, 493–500 (2003). https://doi.org/10.1021/ci025584y