summaryrefslogtreecommitdiff
path: root/openbabel.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.de>2010-02-26 00:30:29 +0100
committerChristoph Helma <helma@in-silico.de>2010-02-26 00:30:29 +0100
commit987b7ccd630ce527d472808b1cbeccb96b7917d4 (patch)
tree3b047d7e2213365cf924f0c6d34303257087fe5d /openbabel.rb
parent0f8039d1f4f35857cd36cc7582014690373ea71a (diff)
initial openbabel services added
Diffstat (limited to 'openbabel.rb')
-rw-r--r--openbabel.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/openbabel.rb b/openbabel.rb
new file mode 100644
index 0000000..a261866
--- /dev/null
+++ b/openbabel.rb
@@ -0,0 +1,28 @@
+get '/openbabel/:smiles/:property/?' do
+ obconversion = OpenBabel::OBConversion.new
+ obmol = OpenBabel::OBMol.new
+ obconversion.set_in_and_out_formats 'smi', 'can'
+ case params[:property]
+ when 'logP'
+ #logP = OpenBabel::OBLogP.new
+ #logP.predict(obmol)
+ "not yet implemented"
+ when 'psa'
+ #psa = OpenBabel::OBPSA.new
+ "not yet implemented"
+ when 'mr'
+ #mr = OpenBabel::OBMR.new
+ "not yet implemented"
+ else
+ begin
+ obconversion.read_string obmol, params[:smiles]
+ rescue
+ halt 404, "Incorrect Smiles string #{params[:smiles]}"
+ end
+ begin
+ eval("obmol.#{params[:property]}").to_s
+ rescue
+ halt 404, "Could not calculate property #{params[:property]}"
+ end
+ end
+end