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