class InstallRequirements

Public Class Methods

new() click to toggle source
# File lib/seqtrimnext/classes/install_requirements.rb, line 9
def initialize 
  @external_requirements = {}
  @ruby_requirements = {}  
  load_requirements
  
  
end

Public Instance Methods

check_install_requirements() click to toggle source
# File lib/seqtrimnext/classes/install_requirements.rb, line 17
 def check_install_requirements   
                res = true
                
                errors = check_system_requirements
                
                if !errors.empty?
                
                  $stderr.puts ' Unable to find these external requeriments:'
                  errors.each do |error|
                    $stderr.puts '   -' + error
                    res = false
                  end #end each
                  
                end #end if

                errors = check_ruby_requirements
                if !errors.empty?
                  $stderr.puts ' Unable to find these Ruby requeriments:'
                  errors.each do |error|
                    $stderr.puts '   -' + error
                    res = false
                  end #end each
                end #end if
                
    return res
end

Private Instance Methods

check_ruby_requirements(install=true) click to toggle source
# File lib/seqtrimnext/classes/install_requirements.rb, line 60
def check_ruby_requirements(install=true)
    errors=[]

    
    
      @ruby_requirements.each do |cmd,msg|
        if !system("gem list #{cmd} | grep #{cmd} > /dev/null")
          if install
            puts "Are you sure you wan't to install #{cmd} gem? ([Y/n]):"
            res=stdin.readline
            if res.chomp.upcase!='N'
              system("echo gem install #{cmd}")
            end
          else
            errors.push "It's necessary to install #{cmd}. Issue a: gem install #{cmd} " + msg
          end
        end
      end
    
    return errors
end
check_system_requirements() click to toggle source
# File lib/seqtrimnext/classes/install_requirements.rb, line 48
def check_system_requirements
         
    errors=[]
      @external_requirements.each do |cmd,msg|
        if !system("which #{cmd} > /dev/null ")
          errors.push "It's necessary to install #{cmd}. " + msg
        end
      end
    
   return errors
end
install() click to toggle source
# File lib/seqtrimnext/classes/install_requirements.rb, line 109
def install
  
  # gem install gnuplot
  # gem install narray
  # gem install scbi_blast
  # gem install scbi_drb
  # gem install scbi_fasta
  # gem install scbi_fastq
  # gem install term-ansicolor
  # gem install xml-simple
  
  
end
load_requirements() click to toggle source

seqtrim's requirements are specified here

# File lib/seqtrimnext/classes/install_requirements.rb, line 85
def load_requirements
 
  @external_requirements['blastn']= "You need to install Blast+ 2.2.24 or greater and make sure it is available in your path (export PATH=$PATH:path_to_blast).\nYou can download it from ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/"
  @external_requirements['cd-hit-454']= "Download from http://code.google.com/p/cdhit/downloads/list"
  # @external_requirements['gnuplot']= "Download from http://www.gnuplot.info/download.html"
  
  # @external_requirements['pepe']= ""
  
              
  # @ruby_requirements = { 'n2array' => "" ,
  @ruby_requirements['narray'] = ''
  # @ruby_requirements['gnuplot'] = ''
  @ruby_requirements['term-ansicolor'] = ''
  @ruby_requirements['xml-simple'] = ''
  @ruby_requirements['scbi_blast'] = ''
  @ruby_requirements['scbi_mapreduce'] = ''
  @ruby_requirements['scbi_fasta'] = ''
  @ruby_requirements['scbi_fastq'] = ''
  @ruby_requirements['scbi_plot'] = ''
  @ruby_requirements['scbi_math'] = ''
  # @ruby_requirements['scbi_fastq2'] = ''
  
end