summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2019-06-21 10:45:59 +0200
committerChristoph Helma <helma@in-silico.ch>2019-06-21 10:45:59 +0200
commit7aac1c36369b41501edfc261e4f7ad77dec6b2a1 (patch)
tree19f8578f5cd9009178e7ab7becaaf8c91a2e4703 /lib
parent455da06aa6459da0d25b286ca6cb866ff64c4c34 (diff)
test_from_csv2 fixed, prefer merged_feature and transformed_feature in to_training_csv
Diffstat (limited to 'lib')
-rw-r--r--lib/dataset.rb15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb
index 596c53c..fb1afd2 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -107,7 +107,7 @@ module OpenTox
end
# Get nominal and numeric merged features
- # @return [Array<OpenTox::NominalLazarPrediction,OpenTox::NumericLazarPrediction>]
+ # @return [Array<OpenTox::MergedNominalBioActivity,OpenTox::MergedNumericBioActivity>]
def merged_features
features.select{|f| f._type.match("Merged")}
end
@@ -380,17 +380,20 @@ module OpenTox
# @return [String]
def to_training_csv
- p features
- p bioactivity_features
+ export_features = merged_features
+ export_features = transformed_bioactivity_features if export_features.empty?
+ export_features = bioactivity_features if export_features.empty?
+ export_feature = export_features.first
+
header = ["Canonical SMILES"]
- header << bioactivity_features[0].name
+ header << bioactivity_features.first.name # use original bioactivity name instead of long merged name
csv = [header]
substances.each do |substance|
nr_activities = values(substance,bioactivity_features.first).size
(0..nr_activities-1).each do |n| # new row for each value
row = [substance.smiles]
- row << values(substance,bioactivity_features[0])[n]
+ row << values(substance,export_feature)[n]
csv << row
end
end
@@ -502,7 +505,7 @@ module OpenTox
merged_feature = nil
if feature_classes.size == 1
if features.first.kind_of? NominalFeature
- merged_feature = MergedNominalBioActivity.find_or_create_by(:name => features.collect{|f| f.name}.uniq.join(", ") + " merged", :original_feature_ids => features.collect{|f| f.id}, :transformations => value_maps)
+ merged_feature = MergedNominalBioActivity.find_or_create_by(:name => features.collect{|f| f.name}.uniq.join(" and ") + " merged", :original_feature_ids => features.collect{|f| f.id}, :transformations => value_maps)
else
merged_feature = MergedNumericBioActivity.find_or_create_by(:name => features.collect{|f| f.name} + " merged", :original_feature_ids => features.collect{|f| f.id}) # TODO: regression transformations
end