Ruby Chemistry Development Kit (RCDK) version 0.3.0 is now available from RubyForge. RCDK enables the complete CDK API to be accessed from Ruby. This release adds support for IUPAC nomenclature translation and tighter Java integration.
RCDK requires Ruby, the Ruby developer libraries, a working build toolchain, and Ruby Java Bridge (RJB). This latter dependency can be satisfied during the RCDK installation process if the RubyGems method is used (see 'Installation').
RCDK can be conveniently installed using the RubyGems packaging mechanism:
$ sudo gem install rcdk
Alternatively, the source package and RubyGem can be downloaded here.
Tighter Java Integration
RCDK-0.3.0 introduces a previously-described Java package to Ruby module mapping mechanism. For example, if you'd like to create a Java
ArrayList, it can be done through the new
require 'rubygems' require_gem 'rcdk' jrequire 'java.util.ArrayList' list = Java::Util::ArrayList.new list.size # => 0
IUPAC Nomenclature Translation
RCDK's most important new chemical informatics feature is made possible by Peter Corbett's excellent IUPAC nomenclature translation library OPSIN. It can either be used directly with
jrequire, or indirectly through RCDK's convenience library
require 'rubygems' require_gem 'rcdk' require 'rcdk/util' mol = RCDK::Util::Lang.read_iupac 'quinoline' mol.getAtomCount # => 10
There are two things to notice here. First, no
jrequire statement is needed when using the
RCDK::Util library. Second, there is a multisecond delay after
read_iupac is invoked. OPSIN itself introduces this delay during the
NameToStructure constructor call, and RCDK inherits this behavior. However, after the first invocation of
read_iupac, subsequent calls to this method are very fast.
Let's decorate the quinoline nucleus with some substituents and render a 2-D image of the result. Execute the following code, either through the Ruby interpreter (
ruby) or through Interactive Ruby (
require 'rubygems' require_gem 'rcdk' require 'rcdk/util' RCDK::Util::Image.iupac_to_png('3-chloro-4-(2-aminopropyl)-6-mercapto-8-(2-hydroxyphenyl)-quinoline-2-carboxylic acid', 'test.png', 300, 300)
Running this code produces the following image in your working directory:
RCDK marries the agility of the Ruby language with the functionality of three Open Source chemical informatics libraries: CDK; OPSIN; and Structure-CDK. Future articles will discuss some simple applications of this powerful combination.