summaryrefslogtreecommitdiff
path: root/openbabel.rb
blob: a261866557dac966447c62011c752b1ae89023b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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