diff options
author | dv <dv@dv.de> | 2011-07-20 17:19:33 +0200 |
---|---|---|
committer | dv <dv@dv.de> | 2011-07-20 17:19:33 +0200 |
commit | b1e6b8aaeaed95797cd67e13567ac72344e89707 (patch) | |
tree | 57a1a94784d41a5aa767b2eb3299769e71f5b5fe | |
parent | 6b322f37618139af79680941c8da0293cc803e6a (diff) |
Changed fingerprint as add_neightbor argument to
training_compound_features_hits
-rw-r--r-- | lib/algorithm.rb | 14 | ||||
-rw-r--r-- | lib/model.rb | 10 |
2 files changed, 9 insertions, 15 deletions
diff --git a/lib/algorithm.rb b/lib/algorithm.rb index 9982995..df010e1 100644 --- a/lib/algorithm.rb +++ b/lib/algorithm.rb @@ -153,7 +153,7 @@ module OpenTox # @param [Array] features_a Features of first compound # @param [Array] features_b Features of second compound # @param [optional, Hash] weights Weights for all features - # @param [optional, Hash] params Keys: `:training_compound, :compound, :fingerprints, :nr_hits, :compound_features_hits` are required + # @param [optional, Hash] params Keys: `:training_compound, :compound, :training_compound_features_hits, :nr_hits, :compound_features_hits` are required # @return [Float] (Weighted) tanimoto similarity def self.tanimoto(features_a,features_b,weights=nil,params=nil) common_features = features_a & features_b @@ -855,21 +855,13 @@ module OpenTox end # Returns Support value of an fingerprint - # @param [String] smiles of feature - # @param [Hash] params Keys: `fingerprints:, compound:, nr_hits:` are required - # return [Numeric] Support value - def self.support(feature,params) - params[:fingerprints][params[:training_compound]][feature] - end - - # Returns Support value of an fingerprint - # @param [Hash] params Keys: `:compound_features_hits, :weights, :fingerprints, :features, :compound, :nr_hits:, :mode` are required + # @param [Hash] params Keys: `:compound_features_hits, :weights, :training_compound_features_hits, :features, :nr_hits:, :mode` are required # return [Numeric] Support value def self.p_sum_support(params) p_sum = 0.0 params[:features].each{|f| compound_hits = params[:compound_features_hits][f] - neighbor_hits = Algorithm.support(f,params) + neighbor_hits = params[:training_compound_features_hits][f] p_sum += eval("(Algorithm.gauss(params[:weights][f]) * ([compound_hits, neighbor_hits].compact.#{params[:mode]}))") } p_sum diff --git a/lib/model.rb b/lib/model.rb index d920f19..a8b33c6 100644 --- a/lib/model.rb +++ b/lib/model.rb @@ -311,18 +311,20 @@ module OpenTox # Adds a neighbor to @neighbors if it passes the similarity threshold. def add_neighbor(training_features, training_compound) compound_features_hits = {} + training_compound_features_hits = {} if @nr_hits - compound_features_hits = @compound.match_hits(@compound_features) #OpenTox::Compound.new(training_compound).match_hits(@compound_features) - LOGGER.debug "dv ------------ compound_features_hits: #{@compound_features_hits}" + compound_features_hits = @compound.match_hits(@compound_features) + training_compound_features_hits = @fingerprints[training_compound] + #LOGGER.debug "dv ------------ training_compound_features_hits:#{training_compound_features_hits.class} #{training_compound_features_hits}" end params = {} params[:training_compound] = training_compound params[:compound] = @compound.uri #query compound - params[:fingerprints] = @fingerprints params[:nr_hits] = @nr_hits params[:compound_features_hits] = compound_features_hits + params[:training_compound_features_hits] = training_compound_features_hits - sim = eval("#{@similarity_algorithm}(training_features, @compound_features, @p_values, params )") + sim = eval("#{@similarity_algorithm}(training_features, @compound_features, @p_values, params)") if sim > @min_sim @activities[training_compound].each do |act| @neighbors << { |