summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordv <dv@dv.de>2011-07-20 17:19:33 +0200
committerdv <dv@dv.de>2011-07-20 17:19:33 +0200
commitb1e6b8aaeaed95797cd67e13567ac72344e89707 (patch)
tree57a1a94784d41a5aa767b2eb3299769e71f5b5fe
parent6b322f37618139af79680941c8da0293cc803e6a (diff)
Changed fingerprint as add_neightbor argument to
training_compound_features_hits
-rw-r--r--lib/algorithm.rb14
-rw-r--r--lib/model.rb10
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 << {