From 0ddd04c32280e6fd166a52fa6da653df24aabf99 Mon Sep 17 00:00:00 2001 From: gebele Date: Wed, 23 Nov 2016 15:10:58 +0000 Subject: added delog10;generalized mmol2-log10 --- lib/overwrite.rb | 5 +++++ scripts/mmol2-log10.rb | 19 +++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/overwrite.rb b/lib/overwrite.rb index d0422ee..31d30c9 100644 --- a/lib/overwrite.rb +++ b/lib/overwrite.rb @@ -28,6 +28,11 @@ class Float def signif(n) Float("%.#{n}g" % self) end + + # converts -10 logarithmized values back + def delog10 + 10**(-1*self) + end end module Enumerable diff --git a/scripts/mmol2-log10.rb b/scripts/mmol2-log10.rb index ec0fdf5..188d8cb 100755 --- a/scripts/mmol2-log10.rb +++ b/scripts/mmol2-log10.rb @@ -1,22 +1,29 @@ #!/usr/bin/env ruby require_relative '../lib/lazar' include OpenTox -newfile = ARGV[0].sub(/.csv/,"_log10.csv") + +newfile = ARGV[0].sub(/.csv/,"_log10.csv") p newfile CSV.open(newfile, "wb") do |csv| i = 1 CSV.read(ARGV[0]).each do |line| - smi,mmol = line + type,mmol = line if i == 1 - csv << [smi, "-log10(#{mmol})"] + csv << [type, "-log10(#{mmol})"] + @type = type else if mmol.numeric? - c = Compound.from_smiles smi + if @type =~ /smiles/i + c = Compound.from_smiles type + elsif @type =~ /inchi/i + c = Compound.from_inchi type + else + p "Unknown type '#{@type}' at line #{i}." + end mmol = -Math.log10(mmol.to_f) - csv << [smi, mmol] + csv << [type, mmol] else p "Line #{i}: '#{mmol}' is not a numeric value." - #csv << [smi, ""] end end i += 1 -- cgit v1.2.3 From e111369ce5564f159b3f5f85c92afdd22352eaa1 Mon Sep 17 00:00:00 2001 From: gebele Date: Thu, 24 Nov 2016 07:16:54 +0000 Subject: always convert to SMILES --- scripts/mmol2-log10.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/mmol2-log10.rb b/scripts/mmol2-log10.rb index 188d8cb..ff4af2a 100755 --- a/scripts/mmol2-log10.rb +++ b/scripts/mmol2-log10.rb @@ -9,16 +9,17 @@ CSV.open(newfile, "wb") do |csv| CSV.read(ARGV[0]).each do |line| type,mmol = line if i == 1 - csv << [type, "-log10(#{mmol})"] @type = type + csv << ["SMILES", "-log10(#{mmol})"] else if mmol.numeric? if @type =~ /smiles/i c = Compound.from_smiles type elsif @type =~ /inchi/i c = Compound.from_inchi type + type = c.smiles else - p "Unknown type '#{@type}' at line #{i}." + p "Unknown type '#{type}' at line 1." end mmol = -Math.log10(mmol.to_f) csv << [type, mmol] -- cgit v1.2.3