diff options
author | Andreas Maunz <andreas@maunz.de> | 2012-04-13 15:07:21 +0200 |
---|---|---|
committer | Andreas Maunz <andreas@maunz.de> | 2012-04-13 15:07:21 +0200 |
commit | de3da90232f325735b8d05d9da05cc57326c2b67 (patch) | |
tree | 27332a3104e8412645bdd2a76fbccbb1fdcb53a2 | |
parent | 3310cf7a4bd283c3a8c8923e3d0a18f65864156c (diff) | |
parent | 35448f7bd136b7f3ce82a784e2c433bdea2b9880 (diff) |
Merge branch 'jl' into pc_unified_from_jl
-rw-r--r-- | lib/model.rb | 40 | ||||
-rw-r--r-- | lib/transform.rb | 6 |
2 files changed, 35 insertions, 11 deletions
diff --git a/lib/model.rb b/lib/model.rb index 30c7b97..f8d98ba 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 ) @@ -314,6 +315,16 @@ module OpenTox @prediction_dataset.add @compound.uri, feature_uri, true f+=1 end + elsif @feature_calculation_algorithm == "Substructure.lookup" + f = 0 + @compound_features.each do |feature, value| + features[feature] = feature + @prediction_dataset.add_feature(feature, { + RDF.type => [OT.NumericFeature] + }) + @prediction_dataset.add @compound.uri, feature, value + f+=1 + end else @compound_features.each do |feature| features[feature] = feature @@ -337,15 +348,26 @@ module OpenTox else feature_uri = feature end - @prediction_dataset.add neighbor[:compound], feature_uri, true + if @feature_calculation_algorithm == "Substructure.lookup" + @prediction_dataset.add neighbor[:compound], feature_uri, @fingerprints[neighbor[:compound]][feature_uri] + else + @prediction_dataset.add neighbor[:compound], feature_uri, true + end + unless features.has_key? feature features[feature] = feature_uri - @prediction_dataset.add_feature(feature_uri, { - RDF.type => [OT.Substructure], - OT.smarts => feature, - OT.pValue => @p_values[feature], - OT.effect => @effects[feature] - }) + if @feature_calculation_algorithm == "Substructure.lookup" + @prediction_dataset.add_feature(feature_uri, { + RDF.type => [OT.NumericFeature] + }) + else + @prediction_dataset.add_feature(feature_uri, { + RDF.type => [OT.Substructure], + OT.smarts => feature, + OT.pValue => @p_values[feature], + OT.effect => @effects[feature] + }) + end f+=1 end end 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 |