diff options
author | Micha Rautenberg <rautenberg@in-silico.ch> | 2015-10-29 13:52:39 +0100 |
---|---|---|
committer | Micha Rautenberg <rautenberg@in-silico.ch> | 2015-10-29 13:52:39 +0100 |
commit | 65552bdcf26aafdc79ebd61c6ad919916a4b35a3 (patch) | |
tree | 836df17631132bbfd4a43328b18f7b02337b1d38 | |
parent | 89425b508010a8309c8dc3200765f8eea2173886 (diff) |
add descriptor calculation for single compound
-rw-r--r-- | application.rb | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/application.rb b/application.rb index 06aa8fe..b771b61 100644 --- a/application.rb +++ b/application.rb @@ -90,15 +90,21 @@ get "/algorithm/descriptor/?:descriptor?" do end post "/algorithm/descriptor/?" do - bad_request_error "Missing Parameter " unless params[:file] or params[:descriptor] + bad_request_error "Missing Parameter " unless (params[:identifier] or params[:file]) and params[:descriptor] descriptor = params['descriptor'].split(',') - dataset = OpenTox::Dataset.from_csv_file params[:file][:tempfile] - d = Algorithm::Descriptor.physchem dataset, descriptor + if params[:file] + data = OpenTox::Dataset.from_csv_file params[:file][:tempfile] + else + data = OpenTox::Compound.from_smiles params[:identifier] + end + d = Algorithm::Descriptor.physchem data, descriptor + csv = d.to_csv + csv = "SMILES,#{params[:descriptor]}\n#{params[:identifier]},#{csv}" if params[:identifier] case @accept when "application/csv" - return d.to_csv + return csv when "application/json" - lines=CSV.parse(d.to_csv) + lines = CSV.parse(csv) keys = lines.delete lines.first data = lines.collect{|values|Hash[keys.zip(values)]} return JSON.pretty_generate(data) |