bio-gff3 0.8.4 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+