class Toxtree
Constants
- RULES
Public Class Methods
predict(smiles, rules="Cramer rules")
click to toggle source
# File lib/toxtree.rb, line 62 def self.predict smiles, rules="Cramer rules" smiles = [smiles] unless smiles.is_a? Array rules = [rules] unless rules.is_a? Array predictions = [] input = Tempfile.new(["input",".csv"]) output = input.path.sub("input","result") begin input.write "SMILES\n" input.write smiles.join("\n") input.close rules.each do |name| `cd #{File.join(File.dirname(__FILE__),"..","Toxtree-v2.6.13","Toxtree")}; java -jar Toxtree-2.6.13.jar -i #{input.path} -m #{RULES[name][:java_class]} -n -o #{output}` prediction = CSV.read(output) header = prediction.shift header.pop # remove last empty element prediction.each do |line| p = {"rule" => name} header.each_with_index do |h,i| p[h] = line[i] end predictions << p end end ensure input.unlink end predictions.size == 1 ? predictions[0] : predictions end