summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormr <mr@mrautenberg.de>2012-02-21 18:02:56 +0100
committermr <mr@mrautenberg.de>2012-02-21 18:02:56 +0100
commit467eca96bd1fdab0613d99048f9436841856aa10 (patch)
tree085d79dd4278c71d4e9e0d8e1e46e16c2a456710
parent754fd31f83be3ac7557a2f7832ff44fb262a98a5 (diff)
add subjectids for a&a
-rw-r--r--lib/algorithm.rb2
-rw-r--r--lib/authorization.rb2
-rw-r--r--lib/compound.rb13
-rw-r--r--lib/model.rb8
-rw-r--r--lib/utils.rb10
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