summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordv <dv@dv.de>2011-05-24 11:13:30 +0200
committerdv <dv@dv.de>2011-05-24 11:13:30 +0200
commitfcb837cd62a3959f6fddf395c538ce5af7f90645 (patch)
tree458bcae55813d762ec7ff2f126821bef4fa26589
parent5567a6fef6fc134f484809a137525cd27fb5dfbb (diff)
parent4a7ba2adb0743cd225ad5c2cf9f71c896d87b157 (diff)
Merge branch 'hotfix_regression_detection' into development
-rw-r--r--lib/parser.rb65
1 files changed, 50 insertions, 15 deletions
diff --git a/lib/parser.rb b/lib/parser.rb
index 7bdee95..4984292 100644
--- a/lib/parser.rb
+++ b/lib/parser.rb
@@ -277,7 +277,16 @@ module OpenTox
def load_spreadsheet(book)
book.default_sheet = 0
add_features book.row(1)
- 2.upto(book.last_row) { |i| add_values book.row(i) }
+
+ # AM: fix mixed read in
+ regression_features=false
+ 2.upto(book.last_row) { |i|
+ row = book.row(i)
+ regression_features = detect_regression_features row
+ break if regression_features=true
+ }
+
+ 2.upto(book.last_row) { |i| add_values book.row(i),regression_features }
warnings
@dataset
end
@@ -289,11 +298,21 @@ module OpenTox
row = 0
input = csv.split("\n")
add_features split_row(input.shift)
- input.each { |row| add_values split_row(row) }
+
+
+ # AM: fix mixed read in
+ regression_features=false
+ input.each { |row|
+ row = split_row(row)
+ regression_features = detect_regression_features row
+ break if regression_features=true
+ }
+ input.each { |row| add_values split_row(row),regression_features }
warnings
@dataset
end
+
private
def warnings
@@ -335,7 +354,19 @@ module OpenTox
end
end
- def add_values(row)
+ def detect_regression_features row
+ regression_features=false
+ row.each_index do |i|
+ value = row[i]
+ type = feature_type(value)
+ if type == OT.NumericFeature
+ regression_features=true
+ end
+ end
+ regression_features
+ end
+
+ def add_values(row, regression_features=false)
smiles = row.shift
compound = Compound.from_smiles(smiles)
@@ -353,19 +384,23 @@ module OpenTox
@feature_types[feature] << type
- case type
- when OT.NominalFeature
- case value.to_s
- when TRUE_REGEXP
- val = true
- when FALSE_REGEXP
- val = false
- end
- when OT.NumericFeature
+ if (regression_features)
val = value.to_f
- when OT.StringFeature
- val = value.to_s
- @activity_errors << smiles+", "+row.join(", ")
+ else
+ case type
+ when OT.NominalFeature
+ case value.to_s
+ when TRUE_REGEXP
+ val = true
+ when FALSE_REGEXP
+ val = false
+ end
+ when OT.NumericFeature
+ val = value.to_f
+ when OT.StringFeature
+ val = value.to_s
+ @activity_errors << smiles+", "+row.join(", ")
+ end
end
if val!=nil
@dataset.add(compound.uri, feature, val)