summaryrefslogtreecommitdiff
path: root/lib/lazar.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lazar.rb')
-rw-r--r--lib/lazar.rb72
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/lazar.rb b/lib/lazar.rb
new file mode 100644
index 0000000..f801062
--- /dev/null
+++ b/lib/lazar.rb
@@ -0,0 +1,72 @@
+require 'rubygems'
+require "bundler/setup"
+require "rest-client"
+require 'yaml'
+require 'json'
+require 'logger'
+require 'mongoid'
+require 'rserve'
+require "nokogiri"
+require "base64"
+
+# Mongo setup
+# TODO retrieve correct environment from Rack/Sinatra
+ENV["MONGOID_ENV"] ||= "development"
+# TODO remove config files, change default via ENV or directly in Mongoid class
+Mongoid.load!("#{File.expand_path(File.join(File.dirname(__FILE__),'..','mongoid.yml'))}")
+Mongoid.raise_not_found_error = false # return nil if no document is found
+$mongo = Mongo::Client.new('mongodb://127.0.0.1:27017/opentox')
+#$mongo = Mongoid.default_client
+$gridfs = $mongo.database.fs
+
+# R setup
+R = Rserve::Connection.new
+R.eval "library(ggplot2)"
+R.eval "library(grid)"
+R.eval "library(gridExtra)"
+
+# Logger setup
+STDOUT.sync = true # for redirection, etc see http://stackoverflow.com/questions/8549443/why-doesnt-logger-output-to-stdout-get-redirected-to-files
+$logger = Logger.new STDOUT # STDERR did not work on my development machine (CH)
+$logger.level = Logger::DEBUG
+Mongo::Logger.level = Logger::WARN
+#Mongo::Logger.logger = $logger
+
+# Require sub-Repositories
+require_relative '../libfminer/libbbrc/bbrc' # include before openbabel
+require_relative '../libfminer/liblast/last' #
+require_relative '../last-utils/lu.rb'
+require_relative '../openbabel/lib/openbabel'
+
+# Fminer environment variables
+ENV['FMINER_SMARTS'] = 'true'
+ENV['FMINER_NO_AROMATIC'] = 'true'
+ENV['FMINER_PVALUES'] = 'true'
+ENV['FMINER_SILENT'] = 'true'
+ENV['FMINER_NR_HITS'] = 'true'
+
+# OpenTox classes and includes
+CLASSES = ["Feature","Compound","Dataset","Validation","CrossValidation","RepeatedCrossValidation","Experiment"]# Algorithm and Models are modules
+
+[ # be aware of the require sequence as it affects class/method overwrites
+ "overwrite.rb",
+ "rest-client-wrapper.rb",
+ "error.rb",
+ "opentox.rb",
+ "feature.rb",
+ "compound.rb",
+ "dataset.rb",
+ "descriptor.rb",
+ "algorithm.rb",
+ "descriptor.rb",
+ "bbrc.rb",
+ "model.rb",
+ "similarity.rb",
+ #"neighbor.rb",
+ "classification.rb",
+ "regression.rb",
+ "validation.rb",
+ "crossvalidation.rb",
+ "experiment.rb",
+].each{ |f| require_relative f }
+