class Seqtk::Seqtk

Public Class Methods

new() click to toggle source
# File lib/seqtkrb.rb, line 12
def initialize

  # check seqtk is installed - install it if not
  gem_dir = Gem.loaded_specs['seqtkrb'].full_gem_path
  gem_deps = File.join(gem_dir, 'deps.yaml')
  Bindeps.require gem_deps

  missing = Bindeps.missing gem_deps
  unless missing.empty?
    raise StandardError.new('seqtk was not found and ' +
                            'could not be installed')
  end

  @bin = which('seqtk').first

end

Public Instance Methods

run(cmd) click to toggle source
# File lib/seqtkrb.rb, line 29
def run cmd

  task = Cmd.new "#{@bin} #{cmd}"
  task.run

  unless task.status.success?
    msg = "seqtk command #{cmd} failed\n"
    msg << "stdout:\n"
    msg << task.stdout
    msg << "\nstderr:\n"
    msg << task.stderr
    raise StandardError.new(msg)
  end

end
sample(infile, outfile, n, seed=-1) click to toggle source
# File lib/seqtkrb/sample.rb, line 5
def sample(infile, outfile, n, seed=-1)
  run "sample #{seedstr seed} #{infile} #{n} > #{outfile}"
end
sample_lowmem(infile, outfile, n, seed=-1) click to toggle source
# File lib/seqtkrb/sample.rb, line 9
def sample_lowmem(infile, outfile, n, seed=-1)
  run "sample -2 #{seedstr seed} #{infile} #{n} > #{outfile}"
end
seedstr(seed) click to toggle source
# File lib/seqtkrb/sample.rb, line 13
def seedstr seed
  seed == -1 ? "" : "-s #{seed}"
end