diff options
author | Christoph Helma <helma@in-silico.ch> | 2010-12-03 14:34:25 +0100 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2010-12-03 14:34:25 +0100 |
commit | b6df3d3f4c58e9dec6f7fedb2a9498f7443a8a03 (patch) | |
tree | fa1068f48b85309e9d78bdad8ede1b1609f8d7c9 | |
parent | 6cc34db9dfed2d49286d9c2a26fc6563c66b38a0 (diff) |
OpenBabel descriptors added
-rw-r--r-- | fminer.rb | 2 | ||||
m--------- | libfminer | 0 | ||||
-rw-r--r-- | openbabel.rb | 65 |
3 files changed, 40 insertions, 27 deletions
@@ -6,7 +6,6 @@ ENV['FMINER_PVALUES'] = 'true' @@last = Last::Last.new # Get list of fminer algorithms -# # @return [text/uri-list] URIs of fminer algorithms get '/fminer/?' do response['Content-Type'] = 'text/uri-list' @@ -56,7 +55,6 @@ get "/fminer/last/?" do end # Run bbrc algorithm on dataset -# # @param [String] dataset_uri URI of the training dataset # @param [String] prediction_feature URI of the prediction feature (i.e. dependent variable) # @param [optional] parameters BBRC parameters, accepted parameters are diff --git a/libfminer b/libfminer -Subproject e0eee431ecb954328ff64e3cc48840c7003a276 +Subproject 6e35cacd8da45f21c4039591d339a74af9a44a6 diff --git a/openbabel.rb b/openbabel.rb index a261866..a5a8841 100644 --- a/openbabel.rb +++ b/openbabel.rb @@ -1,28 +1,43 @@ -get '/openbabel/:smiles/:property/?' do +# Calculate OpenBabel descriptors +# Supports the following OpenBabel methods (see OpenBabel API http://openbabel.org/api/2.2.0/) +# - NumAtoms Number of atoms +# - NumBonds Number of bonds +# - NumHvyAtoms Number of heavy atoms +# - NumResidues Number of residues +# - NumRotors Number of rotatable bonds +# - GetFormula Stochoimetric formula +# - GetEnergy Heat of formation for this molecule (in kcal/mol) +# - GetMolWt Standard molar mass given by IUPAC atomic masses (amu) +# - GetExactMass Mass given by isotopes (or most abundant isotope, if not specified) +# - GetTotalCharge Total charge +# - HBA1 Number of Hydrogen Bond Acceptors 1 (JoelLib) +# - HBA2 Number of Hydrogen Bond Acceptors 2 (JoelLib) +# - HBD Number of Hydrogen Bond Donors (JoelLib) +# - L5 Lipinski Rule of Five +# - logP Octanol/water partition coefficient +# - MR Molar refractivity +# - MW Molecular Weight +# - nF Number of Fluorine Atoms +# - nHal Number of halogen atoms +# - spinMult Total Spin Multiplicity +# - TPSA Topological polar surface area +# @param [URI] compound_uri Compound URI +# @return [Sting] descriptor value +post '/openbabel/: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 + compound = OpenTox::Compound.new params[:compound_uri] + obconversion.set_in_and_out_formats 'inchi', 'can' + obconversion.read_string obmol, compound.to_inchi + obmol_methods = ["num_atoms", "num_bonds", "num_hvy_atoms", "num_residues", "num_rotors", "get_formula", "get_energy", "get_mol_wt", "get_exact_mass", "get_total_charge", "get_total_spin_multiplicity"] + + descriptor_methods = [ "HBA1", "HBA2", "HBD", "L5", "logP", "MR", "MW", "nF", "nHal", "spinMult", "TPSA" ] + if obmol_methods.include? params[:property].underscore + eval("obmol.#{params[:property].underscore}").to_s + elsif descriptor_methods.include? params[:property] + descriptor = OpenBabel::OBDescriptor.find_type(params[:property]) + descriptor.predict(obmol).to_s + else + halt 404, "Cannot calculate property #{params[:property]} with OpenBabel" + end end |