genfrag 0.0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.bnsignore +16 -0
- data/History.txt +4 -0
- data/LICENSE.txt +58 -0
- data/README.rdoc +40 -0
- data/Rakefile +53 -0
- data/bin/genfrag +8 -0
- data/lib/genfrag.rb +129 -0
- data/lib/genfrag/app.rb +105 -0
- data/lib/genfrag/app/command.rb +145 -0
- data/lib/genfrag/app/index_command.rb +227 -0
- data/lib/genfrag/app/index_command/db.rb +105 -0
- data/lib/genfrag/app/search_command.rb +298 -0
- data/lib/genfrag/app/search_command/match.rb +165 -0
- data/lib/genfrag/app/search_command/process_file.rb +125 -0
- data/lib/genfrag/app/search_command/trim.rb +121 -0
- data/lib/genfrag/debug.rb +0 -0
- data/spec/data/index_command/in/a.fasta +109 -0
- data/spec/data/index_command/out/1-a_lookup.tdf +4 -0
- data/spec/data/index_command/out/2-a_lookup.db +0 -0
- data/spec/data/index_command/out/3-a_lookup.tdf +2 -0
- data/spec/data/index_command/out/4-a_lookup.db +0 -0
- data/spec/data/index_command/out/5-a_lookup.tdf +4 -0
- data/spec/data/index_command/out/6-a_lookup.db +0 -0
- data/spec/data/index_command/out/a.fasta.db +0 -0
- data/spec/data/index_command/out/a.fasta.tdf +6 -0
- data/spec/genfrag/app/command_spec.rb +55 -0
- data/spec/genfrag/app/index_command_spec.rb +258 -0
- data/spec/genfrag/app/search_command/match_spec.rb +77 -0
- data/spec/genfrag/app/search_command/process_file_spec.rb +185 -0
- data/spec/genfrag/app/search_command/trim_spec.rb +75 -0
- data/spec/genfrag/app/search_command_spec.rb +260 -0
- data/spec/genfrag/app_spec.rb +77 -0
- data/spec/genfrag_spec.rb +87 -0
- data/spec/spec_helper.rb +56 -0
- data/tasks/ann.rake +80 -0
- data/tasks/bones.rake +20 -0
- data/tasks/gem.rake +201 -0
- data/tasks/git.rake +40 -0
- data/tasks/notes.rake +27 -0
- data/tasks/post_load.rake +34 -0
- data/tasks/rdoc.rake +50 -0
- data/tasks/rubyforge.rake +55 -0
- data/tasks/setup.rb +300 -0
- data/tasks/spec.rake +54 -0
- data/tasks/svn.rake +47 -0
- data/tasks/test.rake +40 -0
- metadata +136 -0
data/.bnsignore
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# The list of files that should be ignored by Mr Bones.
|
2
|
+
# Lines that start with '#' are comments.
|
3
|
+
#
|
4
|
+
# A .gitignore file can be used instead by setting it as the ignore
|
5
|
+
# file in your Rakefile:
|
6
|
+
#
|
7
|
+
# PROJ.ignore_file = '.gitignore'
|
8
|
+
#
|
9
|
+
# For a project with a C extension, the following would be a good set of
|
10
|
+
# exclude patterns (uncomment them if you want to use them):
|
11
|
+
# *.[oa]
|
12
|
+
# *~
|
13
|
+
announcement.txt
|
14
|
+
coverage
|
15
|
+
doc
|
16
|
+
pkg
|
data/History.txt
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.co.jp>.
|
2
|
+
You can redistribute it and/or modify it under either the terms of the GPL
|
3
|
+
(see COPYING.txt file), or the conditions below:
|
4
|
+
|
5
|
+
1. You may make and give away verbatim copies of the source form of the
|
6
|
+
software without restriction, provided that you duplicate all of the
|
7
|
+
original copyright notices and associated disclaimers.
|
8
|
+
|
9
|
+
2. You may modify your copy of the software in any way, provided that
|
10
|
+
you do at least ONE of the following:
|
11
|
+
|
12
|
+
a) place your modifications in the Public Domain or otherwise
|
13
|
+
make them Freely Available, such as by posting said
|
14
|
+
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
+
the author to include your modifications in the software.
|
16
|
+
|
17
|
+
b) use the modified software only within your corporation or
|
18
|
+
organization.
|
19
|
+
|
20
|
+
c) rename any non-standard executables so the names do not conflict
|
21
|
+
with standard executables, which must also be provided.
|
22
|
+
|
23
|
+
d) make other distribution arrangements with the author.
|
24
|
+
|
25
|
+
3. You may distribute the software in object code or executable
|
26
|
+
form, provided that you do at least ONE of the following:
|
27
|
+
|
28
|
+
a) distribute the executables and library files of the software,
|
29
|
+
together with instructions (in the manual page or equivalent)
|
30
|
+
on where to get the original distribution.
|
31
|
+
|
32
|
+
b) accompany the distribution with the machine-readable source of
|
33
|
+
the software.
|
34
|
+
|
35
|
+
c) give non-standard executables non-standard names, with
|
36
|
+
instructions on where to get the original software distribution.
|
37
|
+
|
38
|
+
d) make other distribution arrangements with the author.
|
39
|
+
|
40
|
+
4. You may modify and include the part of the software into any other
|
41
|
+
software (possibly commercial). But some files in the distribution
|
42
|
+
are not written by the author, so that they are not under this terms.
|
43
|
+
|
44
|
+
They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
|
45
|
+
files under the ./missing directory. See each file for the copying
|
46
|
+
condition.
|
47
|
+
|
48
|
+
5. The scripts and library files supplied as input to or produced as
|
49
|
+
output from the software do not automatically fall under the
|
50
|
+
copyright of the software, but belong to whomever generated them,
|
51
|
+
and may be sold commercially, and may be aggregated with this
|
52
|
+
software.
|
53
|
+
|
54
|
+
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
55
|
+
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
56
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
57
|
+
PURPOSE.
|
58
|
+
|
data/README.rdoc
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
Genfrag version 0.0.0.1
|
2
|
+
by Pjotr Prins and Trevor Wennblom
|
3
|
+
http://genfrag.rubyforge.org
|
4
|
+
(the "Rough Draught" release)
|
5
|
+
|
6
|
+
|
7
|
+
== DESCRIPTION:
|
8
|
+
|
9
|
+
This is a development release. Few features are functional at this time.
|
10
|
+
|
11
|
+
Genfrag allows for rapid in-silico searching of fragments cut by
|
12
|
+
different restriction enzymes in large nucleotide acid databases,
|
13
|
+
followed by matching specificity adapters which allow a further data
|
14
|
+
reduction when looking for differential expression of genes and
|
15
|
+
markers.
|
16
|
+
|
17
|
+
|
18
|
+
== USAGE:
|
19
|
+
|
20
|
+
This works
|
21
|
+
genfrag index -f example.fasta --re5 BstYI --re3 MseI
|
22
|
+
genfrag search -f example.fasta --re5 BstYI --re3 MseI --adapter5 tt
|
23
|
+
|
24
|
+
|
25
|
+
== REQUIREMENTS:
|
26
|
+
|
27
|
+
* bioruby
|
28
|
+
* sqlite3-ruby
|
29
|
+
|
30
|
+
|
31
|
+
== INSTALL:
|
32
|
+
|
33
|
+
* sudo gem install genfrag
|
34
|
+
|
35
|
+
|
36
|
+
== LICENSE:
|
37
|
+
|
38
|
+
Copyright (c) 2009 Pjotr Prins and Trevor Wennblom
|
39
|
+
|
40
|
+
Distributed under the same terms as the Ruby License - see LICENSE.txt
|
data/Rakefile
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Look in the tasks/setup.rb file for the various options that can be
|
2
|
+
# configured in this Rakefile. The .rake files in the tasks directory
|
3
|
+
# are where the options are used.
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'bones'
|
7
|
+
Bones.setup
|
8
|
+
rescue LoadError
|
9
|
+
begin
|
10
|
+
load 'tasks/setup.rb'
|
11
|
+
rescue LoadError
|
12
|
+
raise RuntimeError, '### please install the "bones" gem ###'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
ensure_in_path 'lib'
|
17
|
+
require 'genfrag'
|
18
|
+
|
19
|
+
#task :default => 'spec:specdoc'
|
20
|
+
task :default => 'spec:run'
|
21
|
+
|
22
|
+
PROJ.name = 'genfrag'
|
23
|
+
PROJ.authors = 'Pjotr Prins and Trevor Wennblom'
|
24
|
+
PROJ.email = 'trevor@corevx.com'
|
25
|
+
PROJ.url = 'http://genfrag.rubyforge.org'
|
26
|
+
PROJ.version = Genfrag::VERSION
|
27
|
+
PROJ.release_name = 'Rough Draught'
|
28
|
+
PROJ.ruby_opts = %w[-W0]
|
29
|
+
PROJ.readme_file = 'README.rdoc'
|
30
|
+
PROJ.ignore_file = '.gitignore'
|
31
|
+
PROJ.exclude << 'genfrag.gemspec'
|
32
|
+
PROJ.exclude << '.git'
|
33
|
+
|
34
|
+
PROJ.rubyforge.name = 'genfrag'
|
35
|
+
|
36
|
+
PROJ.spec.opts << '--color'
|
37
|
+
|
38
|
+
PROJ.gem.extras[:post_install_message] = <<-MSG
|
39
|
+
--------------------------------------------
|
40
|
+
Genfrag installed
|
41
|
+
Type 'genfrag -h' for a list of commands
|
42
|
+
--------------------------------------------
|
43
|
+
MSG
|
44
|
+
|
45
|
+
task 'ann:prereqs' do
|
46
|
+
PROJ.name = 'Genfrag'
|
47
|
+
end
|
48
|
+
|
49
|
+
depend_on 'bioruby'
|
50
|
+
depend_on 'rake'
|
51
|
+
|
52
|
+
|
53
|
+
# EOF
|
data/bin/genfrag
ADDED
data/lib/genfrag.rb
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
|
2
|
+
module Genfrag
|
3
|
+
|
4
|
+
# :stopdoc:
|
5
|
+
VERSION = '0.0.0.1'
|
6
|
+
LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
|
7
|
+
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
|
8
|
+
# :startdoc:
|
9
|
+
|
10
|
+
# Returns the version string for the library.
|
11
|
+
#
|
12
|
+
def self.version
|
13
|
+
VERSION
|
14
|
+
end
|
15
|
+
|
16
|
+
# Returns the library path for the module. If any arguments are given,
|
17
|
+
# they will be joined to the end of the libray path using
|
18
|
+
# <tt>File.join</tt>.
|
19
|
+
#
|
20
|
+
def self.libpath( *args )
|
21
|
+
args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Returns the lpath for the module. If any arguments are given,
|
25
|
+
# they will be joined to the end of the path using
|
26
|
+
# <tt>File.join</tt>.
|
27
|
+
#
|
28
|
+
def self.path( *args )
|
29
|
+
args.empty? ? PATH : ::File.join(PATH, args.flatten)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Utility method used to require all files ending in .rb that lie in the
|
33
|
+
# directory below this file that has the same name as the filename passed
|
34
|
+
# in. Optionally, a specific _directory_ name can be passed in such that
|
35
|
+
# the _filename_ does not have to be equivalent to the directory.
|
36
|
+
#
|
37
|
+
def self.require_all_libs_relative_to( fname, dir = nil )
|
38
|
+
dir ||= ::File.basename(fname, '.*')
|
39
|
+
search_me = ::File.expand_path(
|
40
|
+
::File.join(::File.dirname(fname), dir, '**', '*.rb'))
|
41
|
+
|
42
|
+
Dir.glob(search_me).sort.each {|rb| require rb}
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.tracktime verbose=true, f=nil
|
46
|
+
# Info:: Pjotr's shared Ruby modules
|
47
|
+
# Author:: Pjotr Prins
|
48
|
+
# mail:: pjotr.public05@thebird.nl
|
49
|
+
# Copyright:: July 2007
|
50
|
+
# License:: Ruby License
|
51
|
+
begin
|
52
|
+
t1 = Time.now
|
53
|
+
yield
|
54
|
+
|
55
|
+
ensure
|
56
|
+
t2 = Time.now
|
57
|
+
dt = t2 - t1
|
58
|
+
if verbose
|
59
|
+
if f == nil
|
60
|
+
f = $stdout
|
61
|
+
end
|
62
|
+
f.print "\nElapsed time "
|
63
|
+
hours = dt.to_i/3600
|
64
|
+
dt -= hours*3600
|
65
|
+
mins = dt.to_i/60
|
66
|
+
dt -= mins*60
|
67
|
+
secs = dt
|
68
|
+
secs = secs.to_i if secs > 25
|
69
|
+
if hours > 0
|
70
|
+
f.print hours.to_i," hours "
|
71
|
+
end
|
72
|
+
if mins > 0
|
73
|
+
f.print mins.to_i," minutes "
|
74
|
+
end
|
75
|
+
f.print secs," seconds\n"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
# Create a unique filename for the frequency file out of a combination of filenames
|
81
|
+
#
|
82
|
+
def self.name_freq_lookup(input_filenames=[],filefasta=nil,filelookup=nil,re5=nil,re3=nil)
|
83
|
+
input_filenames = [] if input_filenames.nil?
|
84
|
+
if filelookup
|
85
|
+
# FIXME used to be gsub! - make sure it still works in code
|
86
|
+
return filelookup.gsub(/\.(db|tdf)$/, '')
|
87
|
+
elsif !input_filenames.empty?
|
88
|
+
if re5 and re3
|
89
|
+
[input_filenames.sort,re5.downcase,re3.downcase,'index'].join('_').gsub(/\//,'x')
|
90
|
+
else
|
91
|
+
raise "re5 or re3 is undefined"
|
92
|
+
end
|
93
|
+
elsif filefasta
|
94
|
+
# construct default name
|
95
|
+
if re5 and re3
|
96
|
+
[name_normalized_fasta(nil,filefasta),re5.downcase,re3.downcase,'index'].join('_').gsub(/\//,'x')
|
97
|
+
else
|
98
|
+
raise "re5 or re3 is undefined"
|
99
|
+
end
|
100
|
+
else
|
101
|
+
raise "--lookup undefined and no default filenames passed"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
# Create a unique filename out of a combination of filenames
|
106
|
+
#
|
107
|
+
def self.name_normalized_fasta(input_filenames=[],filefasta=nil)
|
108
|
+
if filefasta
|
109
|
+
# FIXME used to be gsub! - make sure it still works in code
|
110
|
+
return filefasta.gsub(/\.(db|tdf)$/, '')
|
111
|
+
elsif !input_filenames.empty?
|
112
|
+
return [input_filenames.sort, 'normalized'].join('_').gsub(/\//,'x')
|
113
|
+
else
|
114
|
+
raise "--fasta undefined and no default filenames passed"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
# Return the name of the adapters file without its extension
|
119
|
+
#
|
120
|
+
def self.name_adapters(fileadapters=nil)
|
121
|
+
return nil if !fileadapters
|
122
|
+
return fileadapters.gsub(/\.(db|tdf)$/, '')
|
123
|
+
end
|
124
|
+
|
125
|
+
end # module Genfrag
|
126
|
+
|
127
|
+
Genfrag.require_all_libs_relative_to(__FILE__)
|
128
|
+
|
129
|
+
# EOF
|
data/lib/genfrag/app.rb
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
if ENV['BIORUBY_HOME']
|
2
|
+
$: << File.join(ENV['BIORUBY_HOME'],'lib')
|
3
|
+
else
|
4
|
+
require 'rubygems'
|
5
|
+
end
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'sqlite3'
|
9
|
+
rescue LoadError
|
10
|
+
$stderr.print "Warning: no sqlite installed"
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'fileutils'
|
14
|
+
require 'optparse'
|
15
|
+
require 'ostruct'
|
16
|
+
require 'bio'
|
17
|
+
require 'csv'
|
18
|
+
|
19
|
+
|
20
|
+
module Genfrag
|
21
|
+
class App
|
22
|
+
|
23
|
+
|
24
|
+
# Create a new instance of App, and run the +genfrag+ application given
|
25
|
+
# the command line _args_.
|
26
|
+
#
|
27
|
+
def self.cli_run( args )
|
28
|
+
self.new.cli_run args
|
29
|
+
end
|
30
|
+
|
31
|
+
# Create a new main instance using _io_ for standard output and _err_ for
|
32
|
+
# error messages.
|
33
|
+
#
|
34
|
+
def initialize( out = STDOUT, err = STDERR )
|
35
|
+
@out = out
|
36
|
+
@err = err
|
37
|
+
end
|
38
|
+
|
39
|
+
# Parse the desired user command and run that command object.
|
40
|
+
#
|
41
|
+
def cli_run( args )
|
42
|
+
cmd_str = args.shift
|
43
|
+
cmd = case cmd_str
|
44
|
+
when 'index'; IndexCommand.new(@out, @err)
|
45
|
+
when 'search'; SearchCommand.new(@out, @err)
|
46
|
+
when 'info'; InfoCommand.new(@out, @err)
|
47
|
+
when nil, '-h', '--help'
|
48
|
+
help
|
49
|
+
when '-V', '--version'
|
50
|
+
@out.puts "Genfrag #{::Genfrag::VERSION}"
|
51
|
+
nil
|
52
|
+
else
|
53
|
+
raise "Unknown command #{cmd_str.inspect}"
|
54
|
+
end
|
55
|
+
|
56
|
+
cmd.cli_run args if cmd
|
57
|
+
|
58
|
+
rescue StandardError => err
|
59
|
+
@err.puts "ERROR: While executing genfrag ... (#{err.class})"
|
60
|
+
@err.puts " #{err.to_s}"
|
61
|
+
@err.puts %Q( #{err.backtrace.join("\n\t")})
|
62
|
+
exit 1
|
63
|
+
end
|
64
|
+
|
65
|
+
# Show the toplevel help message.
|
66
|
+
#
|
67
|
+
def help
|
68
|
+
@out.puts <<-MSG
|
69
|
+
|
70
|
+
GenFrag allows for rapid in-silico searching of fragments cut by
|
71
|
+
different restriction enzymes in large nucleotide acid databases,
|
72
|
+
followed by matching specificity adapters which allow a further data
|
73
|
+
reduction when looking for differential expression of genes and
|
74
|
+
markers.
|
75
|
+
|
76
|
+
Usage:
|
77
|
+
genfrag -h/--help
|
78
|
+
genfrag -V/--version
|
79
|
+
genfrag command [options] [arguments]
|
80
|
+
|
81
|
+
Examples:
|
82
|
+
genfrag index -f example.fasta --RE5 BstYI --RE3 MseI
|
83
|
+
genfrag search -f example.fasta --RE5 BstYI --RE3 MseI --adapter5 ct
|
84
|
+
|
85
|
+
Commands:
|
86
|
+
genfrag index initialize the index
|
87
|
+
genfrag search search FIXME
|
88
|
+
genfrag info show information about FIXME
|
89
|
+
|
90
|
+
Further Help:
|
91
|
+
Each command has a '--help' option that will provide detailed
|
92
|
+
information for that command.
|
93
|
+
|
94
|
+
http://genfrag.rubyforge.org/
|
95
|
+
|
96
|
+
MSG
|
97
|
+
nil
|
98
|
+
end
|
99
|
+
|
100
|
+
end # class App
|
101
|
+
end # module Genfrag
|
102
|
+
|
103
|
+
Genfrag.require_all_libs_relative_to(__FILE__)
|
104
|
+
|
105
|
+
# EOF
|
@@ -0,0 +1,145 @@
|
|
1
|
+
|
2
|
+
module Genfrag
|
3
|
+
class App
|
4
|
+
|
5
|
+
class Command
|
6
|
+
|
7
|
+
attr_accessor :options # a Hash used by optparse
|
8
|
+
attr_accessor :ops # an OpenStruct of the options
|
9
|
+
|
10
|
+
def initialize( out = STDOUT, err = STDERR )
|
11
|
+
@out = out
|
12
|
+
@err = err
|
13
|
+
@options = {
|
14
|
+
# :skeleton_dir => File.join(mrbones_dir, 'data'),
|
15
|
+
# :with_tasks => false,
|
16
|
+
# :verbose => false,
|
17
|
+
# :name => nil,
|
18
|
+
# :output_dir => nil
|
19
|
+
}
|
20
|
+
@ops = OpenStruct.new
|
21
|
+
#@options[:skeleton_dir] = ::Bones.path('data') unless test(?d, skeleton_dir)
|
22
|
+
end
|
23
|
+
|
24
|
+
def cli_run( args )
|
25
|
+
raise NotImplementedError
|
26
|
+
end
|
27
|
+
|
28
|
+
def run( args )
|
29
|
+
raise NotImplementedError
|
30
|
+
end
|
31
|
+
|
32
|
+
# Print running output when used in command-line mode
|
33
|
+
#
|
34
|
+
def cli_p(cli=true, str='')
|
35
|
+
return false if !cli or @ops.quiet
|
36
|
+
@out.puts str
|
37
|
+
end
|
38
|
+
|
39
|
+
# Print an error from the command-line options
|
40
|
+
#
|
41
|
+
def clierr_p(str)
|
42
|
+
@out.puts
|
43
|
+
@err.puts "Error: #{str}"
|
44
|
+
@out.puts
|
45
|
+
@out.puts opt_parser
|
46
|
+
end
|
47
|
+
|
48
|
+
# Define the command-line option available
|
49
|
+
#
|
50
|
+
def standard_options
|
51
|
+
{
|
52
|
+
:verbose => ['-v', '--verbose', 'enable verbose output',
|
53
|
+
lambda {
|
54
|
+
options[:verbose] = true
|
55
|
+
}],
|
56
|
+
:tracktime => ['-m', '--tracktime', 'track execution time',
|
57
|
+
lambda {
|
58
|
+
options[:tracktime] = true
|
59
|
+
}],
|
60
|
+
:quiet => ['-q', '--quiet', 'silence output',
|
61
|
+
lambda {
|
62
|
+
options[:quiet] = true
|
63
|
+
}],
|
64
|
+
:indir => ['-i', '--in DIR', String, 'input directory', "(default #{Dir.pwd})",
|
65
|
+
lambda{ |value|
|
66
|
+
options[:indir] = value
|
67
|
+
}],
|
68
|
+
:outdir => ['-o', '--out DIR', String, 'output directory', "(default #{Dir.pwd})",
|
69
|
+
lambda{ |value|
|
70
|
+
options[:outdir] = value
|
71
|
+
}],
|
72
|
+
:re5 => ['-5', '--re5 ENZYME', String, "5' restriction enzyme",
|
73
|
+
lambda { |value|
|
74
|
+
options[:re5] = value
|
75
|
+
}],
|
76
|
+
:re3 => ['-3', '--re3 ENZYME', String, "3' restriction enzyme",
|
77
|
+
lambda { |value|
|
78
|
+
options[:re3] = value
|
79
|
+
}],
|
80
|
+
:sqlite => ['-t', '--sqlite', 'use sqlite', '(default is CSV)',
|
81
|
+
lambda {
|
82
|
+
options[:sqlite] = true
|
83
|
+
}],
|
84
|
+
:filelookup => ['-l', '--lookup FILE', String, "name of the frequency lookup file generated by 'index'",
|
85
|
+
lambda { |value|
|
86
|
+
options[:filelookup] = value
|
87
|
+
}],
|
88
|
+
:filefasta => ['-f', '--fasta FILE', String, 'name of the Fasta sequences file',
|
89
|
+
lambda { |value|
|
90
|
+
options[:filefasta] = value
|
91
|
+
}],
|
92
|
+
:size => ['-s', '--size SIZE', Array, '',
|
93
|
+
lambda { |value|
|
94
|
+
options[:size] = value
|
95
|
+
}],
|
96
|
+
|
97
|
+
:adapter5 => ['-y', '--adapter5 ADAPTER', String, '',
|
98
|
+
lambda { |value|
|
99
|
+
options[:adapter5] = value
|
100
|
+
}],
|
101
|
+
:adapter3 => ['-z', '--adapter3 ADAPTER', String, '',
|
102
|
+
lambda { |value|
|
103
|
+
options[:adapter3] = value
|
104
|
+
}],
|
105
|
+
|
106
|
+
:named_adapter5 => ['-b', '--named-adapter5 NAME', String, '',
|
107
|
+
lambda { |value|
|
108
|
+
options[:named_adapter5] = value
|
109
|
+
}],
|
110
|
+
:named_adapter3 => ['-c', '--named-adapter3 NAME', String, '',
|
111
|
+
lambda { |value|
|
112
|
+
options[:named_adapter3] = value
|
113
|
+
}],
|
114
|
+
|
115
|
+
:adapter5_size => ['-d', '--adapter5-size SIZE', Integer, '',
|
116
|
+
lambda { |value|
|
117
|
+
options[:adapter5_size] = value
|
118
|
+
}],
|
119
|
+
:adapter3_size => ['-e', '--adapter3-size SIZE', Integer, '',
|
120
|
+
lambda { |value|
|
121
|
+
options[:adapter3_size] = value
|
122
|
+
}],
|
123
|
+
|
124
|
+
:adapter5_sequence => ['-w', '--adapter5-sequence SEQUENCE', String, '',
|
125
|
+
lambda { |value|
|
126
|
+
options[:adapter5_sequence] = value
|
127
|
+
}],
|
128
|
+
:adapter3_sequence => ['-x', '--adapter3-sequence SEQUENCE', String, '',
|
129
|
+
lambda { |value|
|
130
|
+
options[:adapter3_sequence] = value
|
131
|
+
}],
|
132
|
+
|
133
|
+
:fileadapters => ['-a', '--adapters FILE', String, '',
|
134
|
+
lambda { |value|
|
135
|
+
options[:fileadapters] = value
|
136
|
+
}]
|
137
|
+
|
138
|
+
}
|
139
|
+
end
|
140
|
+
|
141
|
+
end # class Command
|
142
|
+
end # class App
|
143
|
+
end # module Genfrag
|
144
|
+
|
145
|
+
# EOF
|