diff options
-rw-r--r-- | lib/model.rb | 5 | ||||
-rw-r--r-- | lib/transform.rb | 6 |
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 |