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 targets Linux (i686, x86_64 and aarch64) and Mac x86_64 architectures and will also be built for the new Mac as soon as all RDKit dependencies are also compiled for its architecture.
Having an installable version of the MinimalLib from Julia's package registry made the work of writing the wrappers much nicer. We did it and they are now available and ready to be used on this GitHub repository. Some documentation is also available here.
Note that RDKit's MinimalLib and the Julia wrappers are both still work in progress so issues are expected.
To install it, just open Julia's REPL and type:
julia> import Pkg
julia> Pkg.add(url="https://github.com/eloyfelix/RDKitMinimalLib.jl")
Usage example:
mol = get_mol("CC(=O)Oc1ccccc1C(=O)O")
add_hs(mol)
set_3d_coords(mol)
molblock = get_molblock(mol)
println(molblock)
We hope you enjoy programming with Julia! :-)
Comments