summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Maunz <andreas@maunz.de>2012-04-12 11:52:16 +0200
committerAndreas Maunz <andreas@maunz.de>2012-04-12 11:52:16 +0200
commit9ceed9a7598fbc45946f50690aaa6b3ca7993516 (patch)
tree8ddd567262661b19525eec28dc4d564392f4d3eb
parent9514a4647127c18bfb40f0008055e7aabd5ba607 (diff)
Major bug fixed: order of compounds was unsure in transform.rb
-rw-r--r--lib/model.rb5
-rw-r--r--lib/transform.rb6
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/model.rb b/lib/model.rb
index b3de1a3..8d7e4f6 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -103,7 +103,7 @@ module OpenTox
include Model
- attr_accessor :compound, :prediction_dataset, :features, :effects, :activities, :p_values, :fingerprints, :feature_calculation_algorithm, :similarity_algorithm, :prediction_algorithm, :subjectid, :value_map, :compound_fingerprints, :feature_calculation_algorithm, :neighbors
+ attr_accessor :compound, :prediction_dataset, :features, :effects, :activities, :p_values, :fingerprints, :feature_calculation_algorithm, :similarity_algorithm, :prediction_algorithm, :subjectid, :value_map, :compound_fingerprints, :feature_calculation_algorithm, :neighbors, :compounds
def initialize(uri=nil)
if uri
@@ -169,12 +169,13 @@ module OpenTox
lazar.prediction_algorithm = hash["prediction_algorithm"] if hash["prediction_algorithm"]
lazar.subjectid = hash["subjectid"] if hash["subjectid"]
lazar.value_map = hash["value_map"] if hash["value_map"]
+ lazar.compounds = hash["compounds"] if hash["compounds"]
lazar
end
def to_json
- Yajl::Encoder.encode({:uri => @uri,:metadata => @metadata, :compound => @compound, :prediction_dataset => @prediction_dataset, :features => @features, :effects => @effects, :activities => @activities, :p_values => @p_values, :fingerprints => @fingerprints, :feature_calculation_algorithm => @feature_calculation_algorithm, :similarity_algorithm => @similarity_algorithm, :prediction_algorithm => @prediction_algorithm, :subjectid => @subjectid, :value_map => @value_map})
+ Yajl::Encoder.encode({:uri => @uri,:metadata => @metadata, :compound => @compound, :prediction_dataset => @prediction_dataset, :features => @features, :effects => @effects, :activities => @activities, :p_values => @p_values, :fingerprints => @fingerprints, :feature_calculation_algorithm => @feature_calculation_algorithm, :similarity_algorithm => @similarity_algorithm, :prediction_algorithm => @prediction_algorithm, :subjectid => @subjectid, :value_map => @value_map, :compounds => @compounds})
end
def run( params, accept_header=nil, waiting_task=nil )
diff --git a/lib/transform.rb b/lib/transform.rb
index cb530a3..8632f6c 100644
--- a/lib/transform.rb
+++ b/lib/transform.rb
@@ -490,8 +490,10 @@ module OpenTox
@cmpds = []; @fps = []; @acts = []; @n_prop = []; @q_prop = []
- @model.fingerprints.each { |fp|
- cmpd = fp[0]; fp = fp[1]
+ # Major BUG! Must loop over @model.compounds, hash is unordered!
+ # @model.fingerprints.each
+ @model.compounds.each { |cmpd|
+ fp = @model.fingerprints[cmpd]
if @model.activities[cmpd] # row good
acts = @model.activities[cmpd]; @acts += acts
LOGGER.debug "#{acts.size} activities for '#{cmpd}'" if acts.size > 1