9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/diadem/cubic/commandline.rb', line 9
def parse(argv)
make_range = ->(start,stop,step) { Range.new(start, stop).step(step) }
start = 0.0
stop = 0.1
step = 0.002
opt = OpenStruct.new( {
carbamidomethyl: true,
oxidized_met: true,
pyroglutamate_from_glutamine: true,
element: :H,
mass_number: 2,
range: make_range[ start, stop, step ],
degree: 3,
header: true,
num_isotopomers: 5,
zero: false,
remove_duplicates: true,
} )
parser = OptionParser.new do |op|
prog = File.basename($0)
op.banner = "usage: #{prog} <AASEQ> ..."
op.separator " or: #{prog} <aaseqs>.csv"
op.separator " <aaseqs>.csv is a single column of AA sequences"
op.separator " (csv file should have no header; blank lines will be ignored)"
op.separator ""
op.separator "output: tab delimited to stdout if AASEQ"
op.separator " <aaseqs>#{Diadem::Cubic::FILE_EXT} if csv input"
op.separator ""
op.separator "options:"
op.on("-e", "--element <#{opt.element}>", "element with isotopic label") {|v| opt.element = v.to_sym }
op.on("-m", "--mass-number <#{opt.mass_number}>", Integer, "the labeled element mass number") {|v| opt.mass_number = v }
op.on("--[no-]carbamidomethyl", "default: carbamidomethyl = true") {|v| opt.carbamidomethyl = v }
op.on("--range <start:stop:step>", "the underlying input values (#{[start, stop, step].join(':')})") {|v| opt.range = make_range[ *v.split(':') ] }
op.on("--degree <#{opt.degree}>", Integer, "the degree polynomial") {|v| opt.degree = v }
op.on("--num-isotopomers <#{opt.num_isotopomers}>", Integer, "the number of isotopomers to calculate") {|v| opt.num_isotopomers = v }
op.on("--[no-]header", "print header line, default: true") {|v| opt. = v }
op.on("--return-zero-coeff", "return the 0th polyfit coefficient") {|v| opt.return_zero_coeff = v }
op.on("--[no-]remove-duplicates", "disregard duplicate peptide entries, default: true") {|v| opt.remove_duplicates = v }
end
parser.parse!(argv)
if argv.size == 0
puts parser
exit
end
[argv, opt]
end
|