summaryrefslogtreecommitdiff
path: root/lib/dataset.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2012-07-13 17:12:44 +0200
committerChristoph Helma <helma@in-silico.ch>2012-07-13 17:12:44 +0200
commit76144341d800cec80cbb063b8c1acf6da19fad5d (patch)
treebdcd4c90e8e418abc94d638a4ce4c0ef62b3d99b /lib/dataset.rb
parent8b192ea7d86a5f152e5196279b39513c0ee4d063 (diff)
csv handling of empty cells fixed
Diffstat (limited to 'lib/dataset.rb')
-rw-r--r--lib/dataset.rb15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb
index a6c22d0..e0f2d5a 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -18,6 +18,15 @@ module OpenTox
OpenTox::Task.new(uri).wait if URI.task?(uri) and wait
end
+ def to_csv
+ CSV.generate do |csv|
+ csv << ["SMILES"] + @features.collect{|f| f.title}
+ @compounds.each_with_index do |c,i|
+ csv << [c.to_smiles] + @data_entries[i]
+ end
+ end
+ end
+
def get
super
@features = []
@@ -47,9 +56,9 @@ module OpenTox
pattern [:values, RDF::OT.value, :value]
end
values = query.execute(@rdf).sort_by{|s| s.feature_idx}.collect do |s|
- numeric_features[s.feature_idx] ? s.value.to_s.to_f : s.value.to_s
+ (numeric_features[s.feature_idx] and s.value.to_s != "") ? s.value.to_s.to_f : s.value.to_s
end
- @data_entries << values
+ @data_entries << values.collect{|v| v == "" ? nil : v}
end
else
query = RDF::Query.new do
@@ -71,7 +80,7 @@ module OpenTox
pattern [:values, RDF::OT.value, :value]
end
value = query.execute(@rdf).first.value.to_s
- value = value.to_f if numeric_features[i]
+ value = value.to_f if numeric_features[i] and !value.nil?
values << value
end
@data_entries << values