summaryrefslogtreecommitdiff
path: root/dataset.rb
diff options
context:
space:
mode:
Diffstat (limited to 'dataset.rb')
-rw-r--r--dataset.rb159
1 files changed, 6 insertions, 153 deletions
diff --git a/dataset.rb b/dataset.rb
index 25adf86..82d228f 100644
--- a/dataset.rb
+++ b/dataset.rb
@@ -39,6 +39,10 @@ class Dataset
@@redis.set_members "datasets"
end
+ def member?(uri)
+ @@redis.set_member? @uri, uri
+ end
+
def add(member_uri)
@@redis.set_add @uri , member_uri
@members << member_uri
@@ -65,8 +69,8 @@ class Dataset
p_sum_union = 0.0
p_sum_intersect = 0.0
- union.each{ |f| p_sum_union += OpenTox::Utils::gauss(Feature.value(f,'p_value').to_f) }
- intersect.each{ |f| p_sum_intersect += OpenTox::Utils::gauss(Feature.value(f,'p_value').to_f) }
+ union.each{ |f| p_sum_union += OpenTox::Utils::gauss(OpenTox::Feature.new(:uri => f).value('p_value').to_f) }
+ intersect.each{ |f| p_sum_intersect += OpenTox::Utils::gauss(OpenTox::Feature.new(:uri => f).value('p_value').to_f) }
"#{p_sum_intersect/p_sum_union}"
end
@@ -77,154 +81,3 @@ class Dataset
end
-=begin
-class Dataset
-
- include OpenTox::Utils
- attr_reader :uri, :name
-
- def initialize(uri)
- @name = File.basename(uri)
- @uri = uri
- @members = []
- end
-
- def self.create(uri)
- dataset = Dataset.new(uri)
- dataset.save
- dataset
- end
-
- def self.find(uri)
- if @@redis.set_member? "datasets", uri
- Dataset.new(uri)
- else
- nil
- end
- end
-
- def self.exists?(uri)
- @@redis.set_member? "datasets", uri
- end
-
- def self.find_all
- @@redis.set_members("datasets")
- end
-
- def save
- @@redis.set_add "datasets", @uri
- end
-
- def destroy
- @@redis.set_members(@uri + '::compounds').each do |compound_uri|
- @@redis.delete @uri + '::' + compound_uri
- end
- @@redis.delete @uri + '::compounds'
- @@redis.set_members(@uri + '::features').each do |feature_uri|
- @@redis.delete @uri + '::' + feature_uri
- end
- @@redis.delete @uri + '::features'
- @@redis.set_delete "datasets", @uri
- end
-
- def add(compound_uri,feature_uri)
- @@redis.set_add @uri + '::compounds', compound_uri
- @@redis.set_add @uri + '::features', feature_uri
- @@redis.set_add @uri + '::' + compound_uri + '::features', feature_uri
- @@redis.set_add @uri + '::' + feature_uri + '::compounds', compound_uri
- end
-
- def compound_uris
- @@redis.set_members(@uri + "::compounds")
- end
-
- def feature_uris
- @@redis.set_members(@uri + "::features")
- end
-
- def feature_uris_for_compound(compound_uri)
- @@redis.set_members(@uri + '::' + compound_uri + '::features')
- end
-
- def compound_uris_for_feature(feature_uri)
- @@redis.set_members(@uri + '::' + feature_uri + '::compounds')
- end
-
- def self.tanimoto(features)
- raise "Exactly 2 compounds are needed for similarity calculations" unless features.size == 2
- compound_keys = features.collect{ |f| f[:dataset_uri] + '::' + f[:compound_uri] + "::features" }
- union_size = @@redis.set_union(compound_keys[0], compound_keys[1]).size
- intersect_size = @@redis.set_intersect(compound_keys[0], compound_keys[1]).size
- intersect_size.to_f/union_size.to_f
- end
-
- def self.weighted_tanimoto(features)
- raise "Exactly 2 compounds are needed for similarity calculations" unless features.size == 2
- compound_keys = features.collect{ |f| f[:dataset_uri] + '::' + f[:compound_uri] + "::features" }
- union = @@redis.set_union(compound_keys[0], compound_keys[1])
- intersect = @@redis.set_intersect(compound_keys[0], compound_keys[1])
-
- p_sum_union = 0.0
- p_sum_intersect = 0.0
-
- union.each{ |f| p_sum_union += OpenTox::Utils::gauss(OpenTox::Feature.new(:uri => f).value('p_value').to_f) }
- intersect.each{ |f| p_sum_intersect += OpenTox::Utils::gauss(OpenTox::Feature.new(:uri => f).value('p_value').to_f) }
- "#{p_sum_intersect/p_sum_union}"
- end
-
-end
-
-class Dataset
-
- attr_accessor :uri, :set_uris
-
- def initialize(uri, set_uris)
- @uri = uri
- @set_uris = set_uris
- end
-
- def self.create(uri, set_uris)
- collection = DatasetCollection.new(uri, set_uris)
- collection.save
- collection
- end
-
- def self.find(uri)
- if @@redis.set_member? "collections", uri
- set_uris = @@redis.set_members uri
- DatasetCollection.new(uri, set_uris)
- else
- nil
- end
- end
-
- def self.exists?(uri)
- @@redis.set_member? "collections", uri
- end
-
- def self.find_all
- @@redis.set_members("collections").collect{ |uri| self.find(uri) }
- end
-
- def save
- @@redis.set_add "collections", @uri
- @set_uris.each do |uri|
- @@redis.set_add @uri + '::sets', uri
- end
- end
-
- def destroy
- @set_uris.each do |uri|
- Dataset.new(uri).destroy
- end
- @@redis.delete @uri + '::sets'
- @@redis.set_delete "collections", @uri
- end
-
- def add(set_uri)
- @set_uris << set_uri
- @@redis.set_add @uri, set_uri
- end
-
-end
-=end