diff options
author | mr <mr@mrautenberg.de> | 2012-02-21 18:02:56 +0100 |
---|---|---|
committer | mr <mr@mrautenberg.de> | 2012-02-21 18:02:56 +0100 |
commit | 467eca96bd1fdab0613d99048f9436841856aa10 (patch) | |
tree | 085d79dd4278c71d4e9e0d8e1e46e16c2a456710 | |
parent | 754fd31f83be3ac7557a2f7832ff44fb262a98a5 (diff) |
add subjectids for a&a
-rw-r--r-- | lib/algorithm.rb | 2 | ||||
-rw-r--r-- | lib/authorization.rb | 2 | ||||
-rw-r--r-- | lib/compound.rb | 13 | ||||
-rw-r--r-- | lib/model.rb | 8 | ||||
-rw-r--r-- | lib/utils.rb | 10 |
5 files changed, 14 insertions, 21 deletions
diff --git a/lib/algorithm.rb b/lib/algorithm.rb index db21c46..c026c56 100644 --- a/lib/algorithm.rb +++ b/lib/algorithm.rb @@ -527,7 +527,7 @@ module OpenTox # @param [Hash] required keys: compound, features, feature_dataset_uri, pc_type # @return [Hash] Hash with matching Smarts and number of hits def self.lookup(params) - params[:compound].lookup(params[:features], params[:feature_dataset_uri],params[:pc_type]) + params[:compound].lookup(params[:features], params[:feature_dataset_uri],params[:pc_type],params[:subjectid]) end end diff --git a/lib/authorization.rb b/lib/authorization.rb index 5d57781..d5d56e5 100644 --- a/lib/authorization.rb +++ b/lib/authorization.rb @@ -337,7 +337,7 @@ module OpenTox # @param [String] subjectid # @return [Boolean] true if access granted, else otherwise def self.authorized?(uri, request_method, subjectid) - if CONFIG[:authorization][:free_request].include?(request_method) + if CONFIG[:authorization][:free_request].include?(request_method) #LOGGER.debug "authorized? >>true<< (request is free), method: #{request_method}, URI: #{uri}, subjectid: #{subjectid}" true elsif OpenTox::Authorization.free_uri?(uri, request_method) diff --git a/lib/compound.rb b/lib/compound.rb index a2b7e48..c25125b 100644 --- a/lib/compound.rb +++ b/lib/compound.rb @@ -198,9 +198,8 @@ module OpenTox # @param [Array] Array of feature names # @param [String] Feature dataset uri # @return [Hash] Hash with feature name as key and value as value - def lookup(feature_array,feature_dataset_uri,pc_type) - ds = OpenTox::Dataset.find(feature_dataset_uri) - + def lookup(feature_array,feature_dataset_uri,pc_type,subjectid=nil) + ds = OpenTox::Dataset.find(feature_dataset_uri,subjectid) #entry = ds.data_entries[self.uri] entry = nil ds.data_entries.each { |c_uri, values| @@ -209,17 +208,15 @@ module OpenTox break end } - LOGGER.debug "#{entry.size} entries in feature ds for query." unless entry.nil? if entry.nil? uri, smiles_to_inchi = OpenTox::Algorithm.get_pc_descriptors({:compounds => [self.uri], :pc_type => pc_type}) - uri = OpenTox::Algorithm.load_ds_csv(uri, smiles_to_inchi) - ds = OpenTox::Dataset.find(uri) + uri = OpenTox::Algorithm.load_ds_csv(uri, smiles_to_inchi, subjectid) + ds = OpenTox::Dataset.find(uri,subjectid) entry = ds.data_entries[self.uri] - ds.delete + ds.delete(subjectid) end - features = entry.keys features.each { |feature| new_feature = File.join(feature_dataset_uri, "feature", feature.split("/").last) diff --git a/lib/model.rb b/lib/model.rb index b3de1a3..a858a0f 100644 --- a/lib/model.rb +++ b/lib/model.rb @@ -237,7 +237,6 @@ module OpenTox @compound = Compound.new compound_uri features = {} - #LOGGER.debug self.to_yaml unless @prediction_dataset @prediction_dataset = Dataset.create(CONFIG[:services]["opentox-dataset"], subjectid) @@ -248,22 +247,19 @@ module OpenTox OT.parameters => [{DC.title => "compound_uri", OT.paramValue => compound_uri}] } ) end - if OpenTox::Feature.find(metadata[OT.dependentVariables], subjectid).feature_type == "regression" all_activities = [] all_activities = @activities.values.flatten.collect! { |i| i.to_f } end - unless database_activity(subjectid) # adds database activity to @prediction_dataset - # Calculation of needed values for query compound @compound_features = eval("#{@feature_calculation_algorithm}({ :compound => @compound, :features => @features, :feature_dataset_uri => @metadata[OT.featureDataset], - :pc_type => self.parameter(\"pc_type\") + :pc_type => self.parameter(\"pc_type\"), + :subjectid => subjectid })") - # Adding fingerprint of query compound with features and values(p_value*nr_hits) @compound_fingerprints = {} @compound_features.each do |feature, value| # value is nil if "Substructure.match" diff --git a/lib/utils.rb b/lib/utils.rb index c9e9eca..d9d7b4b 100644 --- a/lib/utils.rb +++ b/lib/utils.rb @@ -104,13 +104,13 @@ module OpenTox # Load dataset via CSV # @param[Array] Ambit result uri, piecewise (1st: base, 2nd: SMILES, 3rd+: features # @return[String] dataset uri - def self.load_ds_csv(ambit_result_uri, smiles_to_inchi) + def self.load_ds_csv(ambit_result_uri, smiles_to_inchi, subjectid=nil) master=nil (1...ambit_result_uri.size).collect { |idx| curr_uri = ambit_result_uri[0] + ambit_result_uri[idx] LOGGER.debug "Requesting #{curr_uri}" - csv_data = CSV.parse( OpenTox::RestClientWrapper.get(curr_uri, {:accept => "text/csv"}) ) + csv_data = CSV.parse( OpenTox::RestClientWrapper.get(curr_uri, {:accept => "text/csv", :subjectid => subjectid}) ) if csv_data[0] && csv_data[0].size>1 if master.nil? # This is the smiles entry (1...csv_data.size).each{ |idx| csv_data[idx][1] = smiles_to_inchi[csv_data[idx][1]] } @@ -145,11 +145,11 @@ module OpenTox #File.open("/tmp/test.csv", 'w') {|f| f.write( master.collect {|r| r.join(",")}.join("\n") ) } parser = OpenTox::Parser::Spreadsheets.new - ds = OpenTox::Dataset.new - ds.save + ds = OpenTox::Dataset.new(nil,subjectid) + ds.save(subjectid) parser.dataset = ds ds = parser.load_csv(master.collect{|r| r.join(",")}.join("\n")) - ds.save + ds.save(subjectid) end |