bio-gff3 0.8.4 → 0.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/Gemfile +4 -5
  2. data/Gemfile.lock +4 -0
  3. data/Rakefile +12 -10
  4. data/VERSION +1 -1
  5. data/bin/gff3-fetch +104 -47
  6. data/bio-gff3.gemspec +40 -12
  7. data/lib/bio-gff3.rb +29 -1
  8. data/lib/bio/db/gff/{gffinmemory.rb → digest/gffinmemory.rb} +15 -2
  9. data/lib/bio/db/gff/{gffnocache.rb → digest/gffnocache.rb} +2 -0
  10. data/lib/bio/db/gff/{gffparser.rb → digest/gffparser.rb} +40 -49
  11. data/lib/bio/db/gff/{gfffasta.rb → file/gfffasta.rb} +1 -1
  12. data/lib/bio/db/gff/{gfffileiterator.rb → file/gfffileiterator.rb} +3 -1
  13. data/lib/bio/db/gff/{gffdb.rb → gff3.rb} +6 -11
  14. data/lib/bio/db/gff/gff3fasta.rb +25 -0
  15. data/lib/bio/db/gff/gff3parsefile.rb +33 -0
  16. data/lib/bio/db/gff/gff3parserec.rb +63 -0
  17. data/lib/bio/db/gff/gffcomponent.rb +94 -0
  18. data/lib/bio/db/gff/gffrecord.rb +71 -0
  19. data/lib/bio/db/gff/gffsection.rb +41 -0
  20. data/lib/bio/db/gff/gffsequence.rb +160 -0
  21. data/lib/bio/db/gff/gffvalidate.rb +90 -0
  22. data/lib/bio/output/gfflogger.rb +33 -0
  23. data/spec/gff3_assemble2_spec.rb +3 -3
  24. data/spec/gff3_assemble3_spec.rb +4 -4
  25. data/spec/gff3_assemble_spec.rb +3 -3
  26. data/spec/gffdb_spec.rb +15 -15
  27. data/spec/gffparserec.rb +44 -0
  28. data/test/data/gff/test-cds.gff3 +3 -7
  29. data/test/data/regression/test_ext_gff3.rtest +61 -0
  30. data/test/data/regression/test_gff3.rtest +65 -0
  31. data/test/data/regression/test_nocache_ext_gff3.rtest +56 -0
  32. data/test/data/regression/test_nocache_gff3.rtest +65 -0
  33. data/test/regressiontest.rb +52 -0
  34. data/test/test_bio-gff3.rb +34 -4
  35. metadata +103 -29
  36. data/lib/bio/db/gff/gffassemble.rb +0 -341
data/Gemfile CHANGED
@@ -1,8 +1,8 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
2
+
3
+ # Runtime dependencies
5
4
  gem "bio", ">= 1.3.1"
5
+ gem "bio-logger", "> 0.5.0"
6
6
 
7
7
  # Add dependencies to develop your gem here.
8
8
  # Include everything needed to run rake, tests, features, etc.
@@ -11,6 +11,5 @@ group :development do
11
11
  gem "bundler", "~> 1.0.0"
12
12
  gem "jeweler", "~> 1.5.2"
13
13
  gem "rcov", ">= 0"
14
- gem "bio", ">= 1.3.1"
15
- gem "rspec", ">= 2.0.0"
14
+ gem "rspec", ">= 2.0.0"
16
15
  end
@@ -2,12 +2,15 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  bio (1.4.1)
5
+ bio-logger (0.6.1)
6
+ log4r (> 1.1.6)
5
7
  diff-lcs (1.1.2)
6
8
  git (1.2.5)
7
9
  jeweler (1.5.2)
8
10
  bundler (~> 1.0.0)
9
11
  git (>= 1.2.5)
10
12
  rake
13
+ log4r (1.1.9)
11
14
  rake (0.8.7)
12
15
  rcov (0.9.9)
13
16
  rspec (2.3.0)
@@ -25,6 +28,7 @@ PLATFORMS
25
28
 
26
29
  DEPENDENCIES
27
30
  bio (>= 1.3.1)
31
+ bio-logger
28
32
  bundler (~> 1.0.0)
29
33
  jeweler (~> 1.5.2)
30
34
  rcov
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
1
  require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
2
+ # require 'bundler'
3
+ # begin
4
+ # Bundler.setup(:default, :development)
5
+ # rescue Bundler::BundlerError => e
6
+ # $stderr.puts e.message
7
+ # $stderr.puts "Run `bundle install` to install missing gems"
8
+ # exit e.status_code
9
+ # end
10
10
  require 'rake'
11
11
 
12
12
  require 'jeweler'
@@ -24,8 +24,10 @@ Support for external FASTA files.
24
24
  gem.authors = ["Pjotr Prins"]
25
25
  # Include your dependencies below. Runtime dependencies are required when using your gem,
26
26
  # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
27
- # gem.add_runtime_dependency 'jabber4r', '> 0.1'
28
- # gem.add_development_dependency 'rspec', '> 1.2.3'
27
+ gem.add_runtime_dependency 'bio', '>= 1.4.1'
28
+ gem.add_runtime_dependency 'log4r', '> 1.1.6'
29
+ gem.add_runtime_dependency 'bio-logger', '>= 0.6.1'
30
+ gem.add_development_dependency 'rspec', '> 2.0'
29
31
  end
30
32
  Jeweler::RubygemsDotOrgTasks.new
31
33
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.4
1
+ 0.8.5
@@ -10,32 +10,35 @@ USAGE = <<EOM
10
10
 
11
11
  Fetch and assemble GFF3 types (e.g. ORF, mRNA, CDS) + print in FASTA format.
12
12
 
13
- gff3-fetch [--low-mem] [--validate] type [filename.fa] filename.gff3
14
-
15
- Where (NYI == Not Yet Implemented):
16
-
17
- --translate : output as amino acid sequence
18
- --validate : validate GFF3 file by translating
19
- --fix : check 3-frame translation and fix, if possible
20
- --fix-wormbase : fix 3-frame translation on ORFs named 'gene1'
21
- --no-assemble : output each record as a sequence -- NYI
22
- --add-phase : output records using phase (useful w. no-assemble CDS to AA) --NYI
13
+ gff3-fetch [options] type [filename.fa] filename.gff3
14
+
15
+ --translate : output as amino acid sequence
16
+ --validate : validate GFF3 file by translating
17
+ --fix : check 3-frame translation and fix, if possible
18
+ --fix-wormbase : fix 3-frame translation on ORFs named 'gene1'
19
+ --no-assemble : output each record as a sequence
20
+ --phase : output records using phase (useful w. no-assemble CDS to AA)
23
21
 
24
22
  type is any valid type in the GFF3 definition. For example:
25
23
 
26
- mRNA : assemble mRNA
27
- CDS : assemble CDS
28
- exon : list all exons
29
- gene|ORF : list gene ORFs
30
- other : use any type from GFF3 definition, e.g. 'Terminate' -- NYI
24
+ mRNA : assemble mRNA
25
+ CDS : assemble CDS
26
+ exon : list all exons
27
+ gene|ORF : list gene ORFs
28
+ other : use any type from GFF3 definition, e.g. 'Terminate' -- NYI
31
29
 
32
30
  and the following performance options:
33
31
 
34
- --cache full : load all in RAM (fast)
35
- --cache none : do not load anything in memory (slow)
36
- --low-mem : use LRU cache (limit RAM use, fast) -- NYI
37
- --max-cpus num : use num threads -- NYI
38
- --emboss : use EMBOSS translation (fast) -- NYI
32
+ --parser bioruby : use BioRuby GFF3 parser (slow)
33
+ --parser line : use GFF3 line parser -- in preparation
34
+ --parser block : use GFF3 block parser (optimistic) -- NYI
35
+ --cache full : load all in RAM (fast, default)
36
+ --cache none : do not load anything in memory (slow)
37
+ --cache lru : use LRU cache (limit RAM use, fast) -- NYI
38
+ --max-cpus num : use num threads -- NYI
39
+ --emboss : use EMBOSS translation (fast) -- NYI
40
+
41
+ Where (NYI == Not Yet Implemented):
39
42
 
40
43
  Multiple GFF3 files can be used. With external FASTA files, always the last
41
44
  one before the GFF3 filename is matched.
@@ -52,7 +55,7 @@ USAGE = <<EOM
52
55
 
53
56
  Find CDS records from external FASTA file, adding phase and translate to protein sequence
54
57
 
55
- gff3-fetch --no-assemble --add-phase --translate CDS test/data/gff/MhA1_Contig1133.fa test/data/gff/MhA1_Contig1133.gff3
58
+ gff3-fetch --no-assemble --phase --translate CDS test/data/gff/MhA1_Contig1133.fa test/data/gff/MhA1_Contig1133.gff3
56
59
 
57
60
  Find mRNA from external FASTA file, without loading everything in RAM
58
61
 
@@ -67,14 +70,24 @@ USAGE = <<EOM
67
70
 
68
71
  gff3-fetch terminal chromosome1.fa geneid.gff3
69
72
 
73
+ Fine tuning output - show errors only
74
+
75
+ gff3-fetch mRNA test/data/gff/test.gff3 --trace ERROR
76
+
77
+ Fine tuning output - write log messages to file.log
78
+
79
+ gff3-fetch mRNA test/data/gff/test.gff3 --trace ERROR --logger file.log
80
+
70
81
  == Performance
71
82
 
72
- time gff3-fetch cds m_hapla.WS217.dna.fa m_hapla.WS217.gff3 > test.fa
83
+ time gff3-fetch cds m_hapla.WS217.dna.fa m_hapla.WS217.gff3 2> /dev/null > test.fa
73
84
 
74
- Cache real user sys
75
- ----------------------------------------------------
76
- full 12m41s 12m28s 0m09s (0.8.0 Jan. 2011)
77
- none 504m39s 477m49s 26m50s (0.8.0 Jan. 2011)
85
+ Cache real user sys
86
+ ------------------------------------------------------------
87
+ full,bioruby 12m41 12m28 0m09 (0.8.0)
88
+ full,line 12m13 12m06 0m07 (0.8.5)
89
+ none,bioruby 504m39 477m49 26m50 (0.8.0)
90
+ lru,bioruby ?
78
91
  ----------------------------------------------------
79
92
 
80
93
  where
@@ -97,10 +110,10 @@ Copyright (C) 2010,2011 Pjotr Prins <pjotr.prins@thebird.nl>
97
110
 
98
111
  EOM
99
112
 
100
- SEP = File::SEPARATOR
101
- rootpath = File.dirname(File.dirname(__FILE__))+SEP
102
- $: << rootpath+'lib'
103
- GFF3_VERSION = File.new(rootpath+'VERSION').read.chomp
113
+ rootpath = File.dirname(File.dirname(__FILE__))
114
+ $: << File.join(rootpath,'lib')
115
+
116
+ GFF3_VERSION = File.new(File.join(rootpath,'VERSION')).read.chomp
104
117
 
105
118
  require 'bio-gff3'
106
119
  require 'optparse'
@@ -113,7 +126,14 @@ if ARGV.size == 0
113
126
  print USAGE
114
127
  end
115
128
 
129
+ Bio::Log::CLI.logger('stderr')
130
+ Bio::Log::CLI.trace('info')
131
+
116
132
  options = OpenStruct.new()
133
+
134
+ # ---- Default options
135
+ options.parser = :bioruby
136
+
117
137
  opts = OptionParser.new() { |opts|
118
138
  opts.on_tail("-h", "--help", "Show help and examples") {
119
139
  print(opts)
@@ -121,6 +141,17 @@ opts = OptionParser.new() { |opts|
121
141
  exit()
122
142
  }
123
143
 
144
+ opts.on("--parser [bioruby,line]", String, "Parser (default bioruby)") do |p|
145
+ case p.downcase
146
+ when 'bioruby'
147
+ options.parser = :bioruby
148
+ when 'line'
149
+ options.parser = :line
150
+ else
151
+ raise 'Unknown --parser option'
152
+ end
153
+ end
154
+
124
155
  opts.on("--cache [none,full]", String, "Caching (default full)") do |cache|
125
156
  case cache.downcase
126
157
  when 'none'
@@ -134,13 +165,20 @@ opts = OptionParser.new() { |opts|
134
165
  end
135
166
  end
136
167
 
168
+ opts.on("--no-assemble", "output sequences without assembling") do |b|
169
+ options.no_assemble = true
170
+ end
171
+
172
+ opts.on("--phase", "adjust for phase (useful for CDS --no-assemble --translate)") do |b|
173
+ options.phase = true
174
+ end
175
+
137
176
  opts.on("--translate", "output as amino acid sequence") do |b|
138
177
  options.translate = b
139
178
  end
140
179
 
141
180
  opts.on("--validate", "validate GFF3 file by translating") do |v|
142
181
  options.validate = v
143
- $stop_on_error = true # replace global in near future
144
182
  end
145
183
 
146
184
  opts.on("--fix", "Fix frame errors in the GFF3 definition") do |v|
@@ -151,20 +189,32 @@ opts = OptionParser.new() { |opts|
151
189
  options.fix_wormbase = true
152
190
  end
153
191
 
154
- # opts.on("-q", "--quiet", "Run quietly") do |q|
155
- # options.quiet = q
156
- # end
192
+ opts.on("--logger filename",String,"Log to file (default stderr)") do | name |
193
+ Bio::Log::CLI.logger(name)
194
+ end
195
+
196
+ opts.on("--trace options",String,"Set log level (default INFO, see bio-logger)") do | s |
197
+ Bio::Log::CLI.trace(s)
198
+ end
157
199
 
158
- # opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
159
- # options.verbose = v
160
- # end
200
+ opts.on("-q", "--quiet", "Run quietly") do |q|
201
+ Bio::Log::CLI.trace('error')
202
+ end
161
203
 
162
- # opts.on("-t", "--[no-]trace", "Debug") do |t|
163
- # options.trace = t
164
- # end
165
- }
204
+ opts.on("-v", "--verbose", "Run verbosely") do |v|
205
+ Bio::Log::CLI.trace('info')
206
+ end
207
+
208
+ opts.on("--debug", "Show debug messages") do |v|
209
+ Bio::Log::CLI.trace('debug')
210
+ options.debug = true
211
+ end
212
+
213
+ }
166
214
  opts.parse!(ARGV)
167
215
 
216
+ Bio::Log::CLI.configure('bio-gff3')
217
+
168
218
  gfftype = ARGV.shift
169
219
 
170
220
  fastafn = nil
@@ -177,15 +227,22 @@ ARGV.each do | fn |
177
227
  end
178
228
 
179
229
  opts = {}
180
- opts[:validate] = options.validate
230
+ opts[:validate] = options.validate
231
+ opts[:parser] = options.parser
181
232
  opts[:cache_components] = options.cache
182
233
  opts[:cache_records] = options.cache
183
- opts[:fasta_filename] = fastafn if fastafn
184
- opts[:fix_wormbase] = options.fix_wormbase
185
- opts[:fix] = options.fix
186
- gffdb = Bio::GFFbrowser::GFFdb.new(fn,opts)
187
- gff = gffdb.assembler
234
+ opts[:fasta_filename] = fastafn if fastafn
235
+ opts[:fix_wormbase] = options.fix_wormbase
236
+ opts[:fix] = options.fix
237
+ opts[:no_assemble] = options.no_assemble
238
+ opts[:phase] = options.phase
239
+ opts[:debug] = options.debug
240
+
241
+ gff3 = Bio::GFFbrowser::GFF3.new(fn,opts)
242
+
243
+ gff = gff3.assembler
188
244
  writer = Bio::GFFbrowser::FastaWriter.new(options.translate, options.validate)
245
+
189
246
  case gfftype.downcase
190
247
  when 'gene'
191
248
  gff.each_gene_seq do | id, seq |
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bio-gff3}
8
- s.version = "0.8.4"
8
+ s.version = "0.8.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Pjotr Prins"]
12
- s.date = %q{2011-01-03}
12
+ s.date = %q{2011-01-13}
13
13
  s.default_executable = %q{gff3-fetch}
14
14
  s.description = %q{GFF3 (genome browser) information and digest mRNA and CDS sequences.
15
15
  Options for low memory use and caching of records.
@@ -31,20 +31,29 @@ Support for external FASTA files.
31
31
  "bin/gff3-fetch",
32
32
  "bio-gff3.gemspec",
33
33
  "lib/bio-gff3.rb",
34
- "lib/bio/db/gff/gffassemble.rb",
35
- "lib/bio/db/gff/gffdb.rb",
36
- "lib/bio/db/gff/gfffasta.rb",
37
- "lib/bio/db/gff/gfffileiterator.rb",
38
- "lib/bio/db/gff/gffinmemory.rb",
39
- "lib/bio/db/gff/gffnocache.rb",
40
- "lib/bio/db/gff/gffparser.rb",
34
+ "lib/bio/db/gff/digest/gffinmemory.rb",
35
+ "lib/bio/db/gff/digest/gffnocache.rb",
36
+ "lib/bio/db/gff/digest/gffparser.rb",
37
+ "lib/bio/db/gff/file/gfffasta.rb",
38
+ "lib/bio/db/gff/file/gfffileiterator.rb",
39
+ "lib/bio/db/gff/gff3.rb",
40
+ "lib/bio/db/gff/gff3fasta.rb",
41
+ "lib/bio/db/gff/gff3parsefile.rb",
42
+ "lib/bio/db/gff/gff3parserec.rb",
43
+ "lib/bio/db/gff/gffcomponent.rb",
44
+ "lib/bio/db/gff/gffrecord.rb",
45
+ "lib/bio/db/gff/gffsection.rb",
46
+ "lib/bio/db/gff/gffsequence.rb",
47
+ "lib/bio/db/gff/gffvalidate.rb",
41
48
  "lib/bio/output/gfffastawriter.rb",
49
+ "lib/bio/output/gfflogger.rb",
42
50
  "lib/bio/system/lruhash.rb",
43
51
  "spec/gff3_assemble2_spec.rb",
44
52
  "spec/gff3_assemble3_spec.rb",
45
53
  "spec/gff3_assemble_spec.rb",
46
54
  "spec/gff3_fileiterator_spec.rb",
47
55
  "spec/gffdb_spec.rb",
56
+ "spec/gffparserec.rb",
48
57
  "test/data/gff/MhA1_Contig1133.fa",
49
58
  "test/data/gff/MhA1_Contig1133.gff3",
50
59
  "test/data/gff/MhA1_Contig125.fa",
@@ -54,7 +63,12 @@ Support for external FASTA files.
54
63
  "test/data/gff/test-ext-fasta.fa",
55
64
  "test/data/gff/test-ext-fasta.gff3",
56
65
  "test/data/gff/test.gff3",
66
+ "test/data/regression/test_ext_gff3.rtest",
67
+ "test/data/regression/test_gff3.rtest",
68
+ "test/data/regression/test_nocache_ext_gff3.rtest",
69
+ "test/data/regression/test_nocache_gff3.rtest",
57
70
  "test/helper.rb",
71
+ "test/regressiontest.rb",
58
72
  "test/test_bio-gff3.rb"
59
73
  ]
60
74
  s.homepage = %q{http://github.com/pjotrp/bioruby-gff3}
@@ -68,7 +82,9 @@ Support for external FASTA files.
68
82
  "spec/gff3_assemble_spec.rb",
69
83
  "spec/gff3_fileiterator_spec.rb",
70
84
  "spec/gffdb_spec.rb",
85
+ "spec/gffparserec.rb",
71
86
  "test/helper.rb",
87
+ "test/regressiontest.rb",
72
88
  "test/test_bio-gff3.rb"
73
89
  ]
74
90
 
@@ -78,29 +94,41 @@ Support for external FASTA files.
78
94
 
79
95
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
80
96
  s.add_runtime_dependency(%q<bio>, [">= 1.3.1"])
97
+ s.add_runtime_dependency(%q<bio-logger>, ["> 0.5.0"])
81
98
  s.add_development_dependency(%q<shoulda>, [">= 0"])
82
99
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
83
100
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
84
101
  s.add_development_dependency(%q<rcov>, [">= 0"])
85
- s.add_development_dependency(%q<bio>, [">= 1.3.1"])
86
102
  s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
103
+ s.add_runtime_dependency(%q<bio>, [">= 1.4.1"])
104
+ s.add_runtime_dependency(%q<log4r>, ["> 1.1.6"])
105
+ s.add_runtime_dependency(%q<bio-logger>, [">= 0.6.1"])
106
+ s.add_development_dependency(%q<rspec>, ["> 2.0"])
87
107
  else
88
108
  s.add_dependency(%q<bio>, [">= 1.3.1"])
109
+ s.add_dependency(%q<bio-logger>, ["> 0.5.0"])
89
110
  s.add_dependency(%q<shoulda>, [">= 0"])
90
111
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
91
112
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
92
113
  s.add_dependency(%q<rcov>, [">= 0"])
93
- s.add_dependency(%q<bio>, [">= 1.3.1"])
94
114
  s.add_dependency(%q<rspec>, [">= 2.0.0"])
115
+ s.add_dependency(%q<bio>, [">= 1.4.1"])
116
+ s.add_dependency(%q<log4r>, ["> 1.1.6"])
117
+ s.add_dependency(%q<bio-logger>, [">= 0.6.1"])
118
+ s.add_dependency(%q<rspec>, ["> 2.0"])
95
119
  end
96
120
  else
97
121
  s.add_dependency(%q<bio>, [">= 1.3.1"])
122
+ s.add_dependency(%q<bio-logger>, ["> 0.5.0"])
98
123
  s.add_dependency(%q<shoulda>, [">= 0"])
99
124
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
100
125
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
101
126
  s.add_dependency(%q<rcov>, [">= 0"])
102
- s.add_dependency(%q<bio>, [">= 1.3.1"])
103
127
  s.add_dependency(%q<rspec>, [">= 2.0.0"])
128
+ s.add_dependency(%q<bio>, [">= 1.4.1"])
129
+ s.add_dependency(%q<log4r>, ["> 1.1.6"])
130
+ s.add_dependency(%q<bio-logger>, [">= 0.6.1"])
131
+ s.add_dependency(%q<rspec>, ["> 2.0"])
104
132
  end
105
133
  end
106
134
 
@@ -1 +1,29 @@
1
- require 'bio/db/gff/gffdb'
1
+ # find local plugin installation, and use it when there
2
+ rootpath = File.dirname(File.dirname(__FILE__))
3
+ bio_logger_path = File.join(rootpath,'..','bioruby-logger','lib')
4
+ if File.directory? bio_logger_path
5
+ $: << bio_logger_path
6
+ $stderr.print "bio-logger loaded directly\n"
7
+ else
8
+ require "rubygems"
9
+ gem "bio-logger"
10
+ end
11
+ require 'bio-logger'
12
+
13
+ Bio::Log::LoggerPlus.new('bio-gff3')
14
+
15
+ require 'bio'
16
+ require 'bio/output/gfflogger'
17
+ require 'bio/db/gff/gffvalidate'
18
+ require 'bio/db/gff/gffsection'
19
+ require 'bio/db/gff/gffcomponent'
20
+ require 'bio/db/gff/gffsequence'
21
+ require 'bio/db/gff/gffrecord'
22
+ require 'bio/db/gff/gff3parserec'
23
+ require 'bio/db/gff/gff3parsefile'
24
+ require 'bio/db/gff/gff3fasta'
25
+ require 'bio/db/gff/file/gfffileiterator'
26
+ require 'bio/db/gff/file/gfffasta'
27
+ require 'bio/db/gff/digest/gffparser'
28
+ require 'bio/db/gff/gff3'
29
+