class Qu::Seqcluster::Options
Attributes
opts[R]
Public Class Methods
new(argv)
click to toggle source
# File lib/qu/seqcluster/options.rb, line 26 def initialize(argv) @opts = parse_opts(argv) end
Public Instance Methods
parse_opts(argv)
click to toggle source
# File lib/qu/seqcluster/options.rb, line 31 def parse_opts(argv) options = Seqcluster::default_options OptionParser.new do |opts| opts.banner = "#{PROGRAM} [#{VERSION}]: Cluster DNA/RNA based on k-mer algorithm Usage: #{PROGRAM} -i seq.fasta -k 9 -c 0.9" opts.separator "" opts.separator "Required options:" opts.separator "" opts.on('-i', '--in File', String, 'Input sequence file in fasta format.') do |value| if File.directory?(value) $stderr.puts "Error: #{value} is a direcotry." exit end unless File.exists?(value) $stderr.puts "Error: #{value} is not exists." exit end options.in = value end opts.separator "" opts.separator "Optional options:" opts.separator "" opts.on('-k', '--kvalue Integer', Integer, "K value, default is #{options.kvalue}.") do |value| options.kvalue = value end opts.on("-o", "--out File", String, "Output file name for storing the results, default is screen.") do |value| options.out = File.open(value, 'w') end opts.on('-c', '--cutoff Float', Float, "Cutoff value for the similarity for cluster, default is #{options.cutoff}.") do |value| options.cutoff = value end opts.separator "" opts.separator "" opts.on("-h", "--help", "Show this message and quit") do puts opts exit end opts.on("-v", "--version", "Show version") do puts "#{PROGRAM} #{VERSION}" exit end opts.separator "" opts.separator "Author: Wubin Qu <quwubin@gmail.com>" opts.separator "" begin argv = ["-h"] if argv.empty? opts.parse!(argv) rescue OptionParser::ParseError => e $stderr.puts e.message, "\n", opts exit end if options.in.nil? $stderr.puts "Error: option -i required." exit end end return options end