mgnu 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +0 -0
  3. data/README.md +31 -0
  4. data/Rakefile +33 -0
  5. data/lib/mgnu.rb +9 -0
  6. data/lib/mgnu/alignment.rb +143 -0
  7. data/lib/mgnu/common.rb +68 -0
  8. data/lib/mgnu/genbank.rb +117 -0
  9. data/lib/mgnu/genbank/feature.rb +84 -0
  10. data/lib/mgnu/genbank/location.rb +150 -0
  11. data/lib/mgnu/genbank/qualifier.rb +45 -0
  12. data/lib/mgnu/genbank/reference.rb +114 -0
  13. data/lib/mgnu/genbank/source.rb +39 -0
  14. data/lib/mgnu/loggable.rb +61 -0
  15. data/lib/mgnu/parser.rb +50 -0
  16. data/lib/mgnu/parser/blast.rb +87 -0
  17. data/lib/mgnu/parser/blast/format0.rb +290 -0
  18. data/lib/mgnu/parser/blast/format7.rb +121 -0
  19. data/lib/mgnu/parser/blast/format8.rb +120 -0
  20. data/lib/mgnu/parser/blast/hsp.rb +75 -0
  21. data/lib/mgnu/parser/blast/query.rb +45 -0
  22. data/lib/mgnu/parser/blast/sbjct.rb +62 -0
  23. data/lib/mgnu/parser/clustalw.rb +72 -0
  24. data/lib/mgnu/parser/fasta.rb +61 -0
  25. data/lib/mgnu/parser/fasta_header_index.rb +39 -0
  26. data/lib/mgnu/parser/fasta_index.rb +57 -0
  27. data/lib/mgnu/parser/fastq.rb +61 -0
  28. data/lib/mgnu/parser/genbank.rb +187 -0
  29. data/lib/mgnu/parser/gff.rb +56 -0
  30. data/lib/mgnu/parser/iprscan/hit.rb +76 -0
  31. data/lib/mgnu/parser/iprscan_file.rb +39 -0
  32. data/lib/mgnu/parser/kegg_ontology_index.rb +163 -0
  33. data/lib/mgnu/parser/pilercr.rb +102 -0
  34. data/lib/mgnu/parser/prodigal.rb +170 -0
  35. data/lib/mgnu/parser/sam.rb +115 -0
  36. data/lib/mgnu/parser/sam/alignment.rb +22 -0
  37. data/lib/mgnu/parser/sam/header.rb +23 -0
  38. data/lib/mgnu/parser/sam/pair.rb +18 -0
  39. data/lib/mgnu/sequence.rb +207 -0
  40. data/lib/mgnu/sequence/fasta.rb +79 -0
  41. data/lib/mgnu/sequence/fastq.rb +43 -0
  42. data/lib/mgnu/version.rb +16 -0
  43. data/mgnu.gemspec +39 -0
  44. data/spec/mgnu/parser/blast_format0_spec.rb +114 -0
  45. data/spec/mgnu/parser/blast_format7_spec.rb +24 -0
  46. data/spec/mgnu/parser/blast_format8_spec.rb +26 -0
  47. data/spec/mgnu/parser/blast_multihsp_spec.rb +100 -0
  48. data/spec/mgnu/parser/blast_oof_spec.rb +53 -0
  49. data/spec/mgnu/parser/clustalw_spec.rb +90 -0
  50. data/spec/mgnu/parser/fasta_header_index_tc_parser_spec.rb +25 -0
  51. data/spec/mgnu/parser/fasta_index_tc_parser_spec.rb +25 -0
  52. data/spec/mgnu/parser/fasta_parser_spec.rb +53 -0
  53. data/spec/mgnu/parser_spec.rb +22 -0
  54. data/spec/mgnu/sequence/fasta_spec.rb +60 -0
  55. data/spec/mgnu/sequence/fastq_spec.rb +31 -0
  56. data/spec/mgnu/sequence_spec.rb +81 -0
  57. data/spec/mgnu_spec.rb +7 -0
  58. data/spec/spec_helper.rb +53 -0
  59. metadata +376 -0
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe MgNu::Parser::Fasta do
4
+ before do
5
+ @ff = MgNu::Parser::Fasta.new('data/test.fasta')
6
+ end
7
+
8
+ it 'should be know about attributes' do
9
+ expect(@ff).to be_a(MgNu::Parser::Fasta)
10
+ expect(@ff).to respond_to(:filename)
11
+ expect(@ff).to respond_to(:each)
12
+ end
13
+
14
+ it 'should yield MgNu::Sequence::Fasta objects' do
15
+ count = 0
16
+ @ff.each do |f|
17
+ expect(f).to be_a(MgNu::Sequence::Fasta)
18
+ expect(f.sequence).not_to be_nil
19
+ expect(f.header).not_to be_nil
20
+ count += 1
21
+ end
22
+ expect(count).to eq(2)
23
+ end
24
+
25
+ it 'should concatenate multiline seqeunces' do
26
+ @ff.each do |f|
27
+ expect(f.sequence).not_to match(/\n/)
28
+ end
29
+ end
30
+ end
31
+
32
+ describe 'MgNu::Parser::Fasta with a fasta quality file' do
33
+ before do
34
+ @ff = MgNu::Parser::Fasta.new('data/testqual.fasta.qual', true)
35
+ end
36
+
37
+ it 'should correctly format quality strings' do
38
+ @ff.each do |f|
39
+ expect(f).to be_a(MgNu::Sequence::Fasta)
40
+ expect(f).to respond_to(:header)
41
+ expect(f).to respond_to(:sequence)
42
+ expect(f.sequence).not_to be_nil
43
+ expect(f.header).not_to be_nil
44
+ str = f.to_s
45
+ temp = str.split(/\n/)
46
+ temp.shift # drop header line
47
+
48
+ temp.each do |qline|
49
+ expect(qline.split(/\s+/).length).to eq(17)
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe MgNu::Parser do
4
+ class DummyClass
5
+ include MgNu::Loggable
6
+ include MgNu::Parser
7
+ end
8
+
9
+ before(:each) do
10
+ @dummy_class = DummyClass.new
11
+ @dummy_class.extend(MgNu::Parser)
12
+ end
13
+
14
+ it 'can be included' do
15
+ expect(@dummy_class).to respond_to(:parse_until)
16
+ expect(@dummy_class).to respond_to(:strip_quotes)
17
+ end
18
+
19
+ it 'can strip quotes' do
20
+ expect(@dummy_class.strip_quotes('"ABC"')).to eq('ABC')
21
+ end
22
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ describe MgNu::Sequence::Fasta do
4
+ before do
5
+ @fs = MgNu::Sequence::Fasta.new(:header => 'test', :sequence => 'atgcatgcatgcatgcaaaa')
6
+ end
7
+
8
+ it 'knows about attributes' do
9
+ expect(@fs).to be_a(MgNu::Sequence::Fasta)
10
+ expect(@fs).to respond_to(:value)
11
+ expect(@fs).to respond_to(:sequence)
12
+ expect(@fs).to respond_to(:type)
13
+ expect(@fs).to respond_to(:reverse_complement)
14
+ expect(@fs).to respond_to(:translate)
15
+ expect(@fs).to respond_to(:levenshtein_distance)
16
+ expect(@fs).to respond_to(:distance)
17
+ expect(@fs).to respond_to(:percent_identity)
18
+ expect(@fs).to respond_to(:identity)
19
+ end
20
+
21
+ it 'can represent itself as a string' do
22
+ expect(@fs.to_s).to eq(">test\natgcatgcatgcatgcaaaa")
23
+
24
+ # create a long sequence
25
+ @fs.sequence << 'atgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaaatgcatgatgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaa'
26
+
27
+ # fasta entry with 60 (the default) chars/row
28
+ result = ">test\n"
29
+ result << "atgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaa\n"
30
+ result << "atgcatgcatgcatgcaaaaatgcatgatgcatgcatgcatgcaaaaatgcatgcatgca\n"
31
+ result << "tgcaaaaatgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaa\n"
32
+ expect(@fs.to_s).to eq(result)
33
+
34
+ # create a fasta entry with 50 chars/row
35
+ result = ">test\n"
36
+ result << "atgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaaatgcatgcat\n"
37
+ result << "gcatgcaaaaatgcatgcatgcatgcaaaaatgcatgatgcatgcatgca\n"
38
+ result << "tgcaaaaatgcatgcatgcatgcaaaaatgcatgcatgcatgcaaaaatg\n"
39
+ result << "catgcatgcatgcaaaa\n"
40
+ expect(@fs.to_s(50)).to eq(result)
41
+ end
42
+
43
+ it 'can revcomp' do
44
+ expect(@fs.reverse_complement).to eq('ttttgcatgcatgcatgcat')
45
+ end
46
+
47
+ it 'cat split on N' do
48
+ fs = MgNu::Sequence::Fasta.new(
49
+ :header => 'test',
50
+ :sequence => 'atgcatgcatgcatgcaaaaNNNNNNNNNNNNNNNNNNNNNNatgcatgcatgcatgcaaaa'
51
+ )
52
+ expect(fs.split_on_n.split("\n>").length).to eq(2)
53
+
54
+ fs = MgNu::Sequence::Fasta.new(
55
+ :header => 'test',
56
+ :sequence => 'atgcatgcatgcatgcaaaannnnnnnnnnnnnnnnnnnnnnatgcatgcatgcatgcaaaa'
57
+ )
58
+ expect(fs.split_on_n.split("\n>").length).to eq(2)
59
+ end
60
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+ describe MgNu::Sequence::Fastq do
3
+ before do
4
+ @fs = MgNu::Sequence::Fastq.new(
5
+ :header => 'HWI-EAS385_0092_FC:5:1:2510:1094#0/1',
6
+ :sequence => 'CAAAGGTGATTCATTTAACTGGCAATCNNNNNNNCGACCGTCGTTTTTTGTGCCT',
7
+ :quality => 'eWddWa`cbeffff__afff_ggggWWBBBBBBBUXW\YZcffbef_fbcZZa^^'
8
+ )
9
+ end
10
+
11
+ it 'knows about attributes' do
12
+ expect(@fs).to be_a(MgNu::Sequence::Fastq)
13
+ expect(@fs).to respond_to(:value)
14
+ expect(@fs).to respond_to(:value=)
15
+ expect(@fs).to respond_to(:sequence)
16
+ expect(@fs).to respond_to(:sequence=)
17
+ expect(@fs).to respond_to(:qualhdr)
18
+ expect(@fs).to respond_to(:quality)
19
+ expect(@fs).to respond_to(:unpack_quality)
20
+ end
21
+
22
+ it 'can represent itself as a string' do
23
+ result = <<EOT
24
+ @HWI-EAS385_0092_FC:5:1:2510:1094#0/1
25
+ CAAAGGTGATTCATTTAACTGGCAATCNNNNNNNCGACCGTCGTTTTTTGTGCCT
26
+ +
27
+ eWddWa`cbeffff__afff_ggggWWBBBBBBBUXW\\YZcffbef_fbcZZa^^
28
+ EOT
29
+ expect(@fs.to_s).to eq(result)
30
+ end
31
+ end
@@ -0,0 +1,81 @@
1
+ require 'spec_helper'
2
+ describe MgNu::Sequence do
3
+ before do
4
+ @s = MgNu::Sequence.new(:type => 'dna', :sequence => 'atgcatgcatgcatgcaaaa')
5
+ end
6
+
7
+ it 'knows about attributes' do
8
+ expect(@s).to be_a(MgNu::Sequence)
9
+ expect(@s).to respond_to(:value)
10
+ expect(@s).to respond_to(:value=)
11
+ expect(@s).to respond_to(:sequence)
12
+ expect(@s).to respond_to(:sequence=)
13
+ expect(@s).to respond_to(:type)
14
+ expect(@s).to respond_to(:reverse_complement)
15
+ expect(@s).to respond_to(:translate)
16
+ expect(@s).to respond_to(:levenshtein_distance)
17
+ expect(@s).to respond_to(:distance)
18
+ expect(@s).to respond_to(:percent_identity)
19
+ expect(@s).to respond_to(:identity)
20
+ end
21
+
22
+ it 'can determine dna/rna/protein' do
23
+ expect(@s.dna?).to be(true)
24
+ expect(@s.rna?).to be(false)
25
+ expect(@s.aa?).to be(false)
26
+ expect(@s.aminoacid?).to be(false)
27
+ expect(@s.protein?).to be(false)
28
+ end
29
+
30
+ it 'can reverse complement' do
31
+ expect(@s.reverse_complement).to eq('ttttgcatgcatgcatgcat')
32
+ end
33
+
34
+ it 'sequence unchanged after reverse complement' do
35
+ @s.reverse_complement
36
+ expect(@s.sequence).to eq('atgcatgcatgcatgcaaaa')
37
+ end
38
+
39
+ it 'sequence changed after reverse complement!' do
40
+ @s.reverse_complement!
41
+ expect(@s.sequence).to eq('ttttgcatgcatgcatgcat')
42
+ end
43
+
44
+ it 'can be changed' do
45
+ @s.value = 'atgc'
46
+ expect(@s.value).to eq('atgc')
47
+ @s.sequence = 'tacg'
48
+ expect(@s.sequence).to eq('tacg')
49
+ end
50
+
51
+ it 'can be translated' do
52
+ expect(@s.translate).to eq('MHACMQ')
53
+ expect(@s.translate(1)).to eq('MHACMQ')
54
+ expect(@s.translate(2)).to eq('CMHACK')
55
+ expect(@s.translate(3)).to eq('ACMHAK')
56
+ expect(@s.translate(-1)).to eq('FCMHAC')
57
+ end
58
+
59
+ it 'can compute a levenshtein distance' do
60
+ @s.sequence = 'kitten'
61
+ other = MgNu::Sequence.new(:value => 'knitting')
62
+ expect(@s.distance('knitting')).to eq(3)
63
+ expect(@s.distance(other)).to eq(3)
64
+ end
65
+
66
+ it 'can determine percent identity' do
67
+ @s.sequence = 'acgt'
68
+ other = MgNu::Sequence.new(:value => 'acgg')
69
+ expect(@s.identity('acgt')).to eq(1.0)
70
+ expect(@s.identity('acgg')).to eq(0.75)
71
+ expect(@s.identity(other)).to eq(0.75)
72
+ end
73
+
74
+ it 'can find blocks of N characters' do
75
+ sequence_with_nblocks = MgNu::Sequence.new(:type => 'dna',
76
+ :sequence => 'atgnnnncatgnnnnnnnncatgcnnnnnnnatgcnnnnaaaa')
77
+ pieces = sequence_with_nblocks.nblocks(3)
78
+ expect(pieces.length).to eq(5)
79
+ expect(pieces).to eq([1..3, 8..11, 20..24, 32..35, 40..43])
80
+ end
81
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe MgNu do
4
+ it 'has a version number' do
5
+ expect(MgNu::Version).not_to be nil
6
+ end
7
+ end
@@ -0,0 +1,53 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'rspec'
3
+ require 'timecop'
4
+
5
+ require 'mgnu'
6
+
7
+ # set up configure for RSpec
8
+ RSpec.configure do |config|
9
+ # config.before { MgNu::XXXXXX.reset_configuration }
10
+ config.expect_with :rspec do |c|
11
+ c.syntax = :expect
12
+ end
13
+ end
14
+
15
+ # base fixture path
16
+ #
17
+ # @return [String] load path for fixtures
18
+ def fixture_path
19
+ File.expand_path('../fixtures', __FILE__)
20
+ end
21
+
22
+ # return json given a fixture file name
23
+ #
24
+ # @param [String] file name
25
+ # @return [Hash] json hash
26
+ def fixture(file)
27
+ File.read(fixture_path + '/' + file)
28
+ end
29
+
30
+ # return multiple fixtures given multiple file names
31
+ #
32
+ # @param [Array] file names
33
+ # @return [Array] array of json hashes
34
+ def fixtures(files)
35
+ all = []
36
+ files.each do |file|
37
+ all << Yajl::Parser.parse(File.read(fixture_path + '/' + file))
38
+ end
39
+ Yajl::Encoder.encode(all)
40
+ end
41
+
42
+ # return a group of fixtures repeated count times
43
+ #
44
+ # @param [String,Fixnum] file name and integer count
45
+ # @return [Array] array of json hashes
46
+ def fixture_set(file, count)
47
+ all = []
48
+ content = Yajl::Parser.parse(fixture(file))
49
+ (1 .. count).each do
50
+ all << content
51
+ end
52
+ Yajl::Encoder.encode(all)
53
+ end
metadata ADDED
@@ -0,0 +1,376 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mgnu
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Brian C. Thomas
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-10-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: naught
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: moneta
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.0.1
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.0.1
53
+ - !ruby/object:Gem::Dependency
54
+ name: tokyocabinet
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.29'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.29.1
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.29'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.29.1
73
+ - !ruby/object:Gem::Dependency
74
+ name: ox
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '2.8'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 2.8.2
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.8'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 2.8.2
93
+ - !ruby/object:Gem::Dependency
94
+ name: memoizable
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '0.0'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 0.0.1
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.0'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.0.1
113
+ - !ruby/object:Gem::Dependency
114
+ name: yard
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '0.9'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 0.9.11
123
+ type: :runtime
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '0.9'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 0.9.11
133
+ - !ruby/object:Gem::Dependency
134
+ name: rake
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '12.0'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 12.0.0
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '12.0'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 12.0.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: mime-types
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.0'
160
+ - - ">"
161
+ - !ruby/object:Gem::Version
162
+ version: 0.0.1
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '0.0'
170
+ - - ">"
171
+ - !ruby/object:Gem::Version
172
+ version: 0.0.1
173
+ - !ruby/object:Gem::Dependency
174
+ name: rspec
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '0.0'
180
+ - - ">"
181
+ - !ruby/object:Gem::Version
182
+ version: 0.0.1
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '0.0'
190
+ - - ">"
191
+ - !ruby/object:Gem::Version
192
+ version: 0.0.1
193
+ - !ruby/object:Gem::Dependency
194
+ name: rubocop
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '0.49'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 0.49.0
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '0.49'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 0.49.0
213
+ - !ruby/object:Gem::Dependency
214
+ name: timecop
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: '0.0'
220
+ - - ">"
221
+ - !ruby/object:Gem::Version
222
+ version: 0.0.1
223
+ type: :development
224
+ prerelease: false
225
+ version_requirements: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '0.0'
230
+ - - ">"
231
+ - !ruby/object:Gem::Version
232
+ version: 0.0.1
233
+ - !ruby/object:Gem::Dependency
234
+ name: yardstick
235
+ requirement: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: '0.0'
240
+ - - ">"
241
+ - !ruby/object:Gem::Version
242
+ version: 0.0.1
243
+ type: :development
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '0.0'
250
+ - - ">"
251
+ - !ruby/object:Gem::Version
252
+ version: 0.0.1
253
+ - !ruby/object:Gem::Dependency
254
+ name: simplecov
255
+ requirement: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - "~>"
258
+ - !ruby/object:Gem::Version
259
+ version: '0.0'
260
+ - - ">"
261
+ - !ruby/object:Gem::Version
262
+ version: 0.0.1
263
+ type: :development
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '0.0'
270
+ - - ">"
271
+ - !ruby/object:Gem::Version
272
+ version: 0.0.1
273
+ description: Lightweight ruby bioinformatics library
274
+ email:
275
+ - bct.x42@gmail.com
276
+ executables: []
277
+ extensions: []
278
+ extra_rdoc_files: []
279
+ files:
280
+ - ".yardopts"
281
+ - README.md
282
+ - Rakefile
283
+ - lib/mgnu.rb
284
+ - lib/mgnu/alignment.rb
285
+ - lib/mgnu/common.rb
286
+ - lib/mgnu/genbank.rb
287
+ - lib/mgnu/genbank/feature.rb
288
+ - lib/mgnu/genbank/location.rb
289
+ - lib/mgnu/genbank/qualifier.rb
290
+ - lib/mgnu/genbank/reference.rb
291
+ - lib/mgnu/genbank/source.rb
292
+ - lib/mgnu/loggable.rb
293
+ - lib/mgnu/parser.rb
294
+ - lib/mgnu/parser/blast.rb
295
+ - lib/mgnu/parser/blast/format0.rb
296
+ - lib/mgnu/parser/blast/format7.rb
297
+ - lib/mgnu/parser/blast/format8.rb
298
+ - lib/mgnu/parser/blast/hsp.rb
299
+ - lib/mgnu/parser/blast/query.rb
300
+ - lib/mgnu/parser/blast/sbjct.rb
301
+ - lib/mgnu/parser/clustalw.rb
302
+ - lib/mgnu/parser/fasta.rb
303
+ - lib/mgnu/parser/fasta_header_index.rb
304
+ - lib/mgnu/parser/fasta_index.rb
305
+ - lib/mgnu/parser/fastq.rb
306
+ - lib/mgnu/parser/genbank.rb
307
+ - lib/mgnu/parser/gff.rb
308
+ - lib/mgnu/parser/iprscan/hit.rb
309
+ - lib/mgnu/parser/iprscan_file.rb
310
+ - lib/mgnu/parser/kegg_ontology_index.rb
311
+ - lib/mgnu/parser/pilercr.rb
312
+ - lib/mgnu/parser/prodigal.rb
313
+ - lib/mgnu/parser/sam.rb
314
+ - lib/mgnu/parser/sam/alignment.rb
315
+ - lib/mgnu/parser/sam/header.rb
316
+ - lib/mgnu/parser/sam/pair.rb
317
+ - lib/mgnu/sequence.rb
318
+ - lib/mgnu/sequence/fasta.rb
319
+ - lib/mgnu/sequence/fastq.rb
320
+ - lib/mgnu/version.rb
321
+ - mgnu.gemspec
322
+ - spec/mgnu/parser/blast_format0_spec.rb
323
+ - spec/mgnu/parser/blast_format7_spec.rb
324
+ - spec/mgnu/parser/blast_format8_spec.rb
325
+ - spec/mgnu/parser/blast_multihsp_spec.rb
326
+ - spec/mgnu/parser/blast_oof_spec.rb
327
+ - spec/mgnu/parser/clustalw_spec.rb
328
+ - spec/mgnu/parser/fasta_header_index_tc_parser_spec.rb
329
+ - spec/mgnu/parser/fasta_index_tc_parser_spec.rb
330
+ - spec/mgnu/parser/fasta_parser_spec.rb
331
+ - spec/mgnu/parser_spec.rb
332
+ - spec/mgnu/sequence/fasta_spec.rb
333
+ - spec/mgnu/sequence/fastq_spec.rb
334
+ - spec/mgnu/sequence_spec.rb
335
+ - spec/mgnu_spec.rb
336
+ - spec/spec_helper.rb
337
+ homepage: http://www.metagenomi.co
338
+ licenses:
339
+ - MIT
340
+ metadata: {}
341
+ post_install_message:
342
+ rdoc_options: []
343
+ require_paths:
344
+ - lib
345
+ required_ruby_version: !ruby/object:Gem::Requirement
346
+ requirements:
347
+ - - ">="
348
+ - !ruby/object:Gem::Version
349
+ version: '0'
350
+ required_rubygems_version: !ruby/object:Gem::Requirement
351
+ requirements:
352
+ - - ">="
353
+ - !ruby/object:Gem::Version
354
+ version: '0'
355
+ requirements: []
356
+ rubyforge_project:
357
+ rubygems_version: 2.7.6
358
+ signing_key:
359
+ specification_version: 4
360
+ summary: MgNu Ruby Bioinformatics Library
361
+ test_files:
362
+ - spec/mgnu/parser/blast_format0_spec.rb
363
+ - spec/mgnu/parser/blast_format7_spec.rb
364
+ - spec/mgnu/parser/blast_format8_spec.rb
365
+ - spec/mgnu/parser/blast_multihsp_spec.rb
366
+ - spec/mgnu/parser/blast_oof_spec.rb
367
+ - spec/mgnu/parser/clustalw_spec.rb
368
+ - spec/mgnu/parser/fasta_header_index_tc_parser_spec.rb
369
+ - spec/mgnu/parser/fasta_index_tc_parser_spec.rb
370
+ - spec/mgnu/parser/fasta_parser_spec.rb
371
+ - spec/mgnu/parser_spec.rb
372
+ - spec/mgnu/sequence/fasta_spec.rb
373
+ - spec/mgnu/sequence/fastq_spec.rb
374
+ - spec/mgnu/sequence_spec.rb
375
+ - spec/mgnu_spec.rb
376
+ - spec/spec_helper.rb