parse_fasta 1.4.0 → 1.5.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 689bddd57bc87d882ad8e8711acc84f0f1c33825
4
- data.tar.gz: 85d056f1581a23cc25c1a60224fd2c177266ab23
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YTBkNDczMWQyMjI5YzNkMmEwY2M1MWY3ODRlMzI3ZjE2MThhM2FkMw==
5
+ data.tar.gz: !binary |-
6
+ YzNlOGU2Y2FiMDlhMjMxMDkxNTE2Y2NjMzdlOWE2MmUzOWRlMzdiMw==
5
7
  SHA512:
6
- metadata.gz: f68c1541107d1881177606398c63d09b7da2b04d7e0f30b3165ebd51cc7310caddbcba7788f72db71f21c778c5c1f022382a17e4b450cd172946534665f360a1
7
- data.tar.gz: eb8a9bf47345d0ee4b164ef053da5ddb4cb6785d0c0a91424b2e4549d9231d2f55ab79f9355e0df8f924d51be7be738a95f5887b6333aa99c4a5a945941f34f3
8
+ metadata.gz: !binary |-
9
+ NGE2NGMyOThlODMzODk0M2ZjMTI2YjI3ZWY4MWVmMTgwODQzNjdhNmI1MjM2
10
+ NGNkNmFmODEzMTgxMTA1ZWIyN2NlZTBmZjg4NDgzZjEyMjE4ZGY1MDM0ZjBj
11
+ OGE3NTFiNzE2YjEyNDJlN2VmYjdlYWY1YmUwZTI4OGE3MmE5N2I=
12
+ data.tar.gz: !binary |-
13
+ ZjYwMzM2OWQ2MjA2MjE1ZTg4YWUyODdkZWMyODY4NjVhNjk1NDEwNGIwZmMz
14
+ YTJlM2U5YjFkMWI2MTNiZjEzMGY1MWIyZjQ2ZDZhOWFhZDBkMTk5NzhkMzg3
15
+ OTlhZDYyN2QxMThhNmU0ZDRiY2U4ODllMmVkNzZlY2YzNjJlMDc=
data/README.md CHANGED
@@ -29,7 +29,7 @@ and over.
29
29
  ## Documentation ##
30
30
 
31
31
  Checkout
32
- [parse_fasta docs](http://rubydoc.info/gems/parse_fasta/1.4.0/frames)
32
+ [parse_fasta docs](http://rubydoc.info/gems/parse_fasta/1.5.0/frames)
33
33
  to see the full documentation.
34
34
 
35
35
  ## Usage ##
@@ -58,6 +58,10 @@ Now we can parse fastq files as well!
58
58
 
59
59
  ## Versions ##
60
60
 
61
+ ### 1.5.0 ###
62
+
63
+ Now accepts gzipped files. Huzzah!
64
+
61
65
  ### 1.4.0 ###
62
66
 
63
67
  Added methods:
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -16,23 +16,26 @@
16
16
  # You should have received a copy of the GNU General Public License
17
17
  # along with parse_fasta. If not, see <http://www.gnu.org/licenses/>.
18
18
 
19
- # Provides simple interface for parsing fasta format files.
19
+ require 'zlib'
20
+
21
+ # Provides simple interface for parsing fasta format files. Gzipped
22
+ # files are no problem.
20
23
  class FastaFile < File
21
24
 
22
- # Analagous to File#each_line, #each_record is used to go through a
23
- # fasta file record by record.
25
+ # Analagous to IO#each_line, #each_record is used to go through a
26
+ # fasta file record by record. It will accept gzipped files as well.
24
27
  #
25
28
  # @param separate_lines [Object] If truthy, separate lines of record
26
- # into an array, but if falsy, yield a Sequence object for the
27
- # sequence instead.
29
+ # into an array of Sequences, but if falsy, yield a Sequence
30
+ # object for the sequence instead.
28
31
  #
29
- # @example Parsing a fasta file (default behavior)
30
- # FastaFile.open('reads.fna', 'r').each_record do |header, sequence|
32
+ # @example Parsing a fasta file (default behavior, gzip files are fine)
33
+ # FastaFile.open('reads.fna.gz').each_record do |header, sequence|
31
34
  # puts [header, sequence.gc].join("\t")
32
35
  # end
33
36
  #
34
37
  # @example Parsing a fasta file (with truthy value param)
35
- # FastaFile.open('reads.fna','r').each_record(1) do |header, sequence|
38
+ # FastaFile.open('reads.fna').each_record(1) do |header, sequence|
36
39
  # # header => 'sequence_1'
37
40
  # # sequence => ['AACTG', 'AGTCGT', ... ]
38
41
  # end
@@ -43,22 +46,31 @@ class FastaFile < File
43
46
  # @yieldparam header [String] The header of the fasta record without
44
47
  # the leading '>'
45
48
  #
46
- # @yieldparam sequence [Sequence, Array<String>] The sequence of the
49
+ # @yieldparam sequence [Sequence, Array<Sequence>] The sequence of the
47
50
  # fasta record. If `separate_lines` is falsy (the default
48
51
  # behavior), will be Sequence, but if truthy will be
49
52
  # Array<String>.
50
53
  def each_record(separate_lines=nil)
54
+ begin
55
+ f = Zlib::GzipReader.open(self)
56
+ rescue Zlib::GzipFile::Error => e
57
+ f = self
58
+ end
59
+
51
60
  if separate_lines
52
- self.each("\n>") do |line|
61
+ f.each("\n>") do |line|
53
62
  header, sequence = parse_line_separately(line)
54
63
  yield(header.strip, sequence)
55
64
  end
56
65
  else
57
- self.each("\n>") do |line|
66
+ f.each("\n>") do |line|
58
67
  header, sequence = parse_line(line)
59
68
  yield(header.strip, Sequence.new(sequence))
60
69
  end
61
70
  end
71
+
72
+ f.close if f.instance_of?(Zlib::GzipReader)
73
+ return f
62
74
  end
63
75
 
64
76
  private
@@ -67,10 +79,11 @@ class FastaFile < File
67
79
  end
68
80
 
69
81
  def parse_line_separately(line)
70
- #line.chomp.split("\n", 2).map { |s| s.gsub(/>/, '') }
71
82
  header, sequence =
72
83
  line.chomp.split("\n", 2).map { |s| s.gsub(/>/, '') }
73
- sequences = sequence.split("\n").reject { |s| s.empty? }
84
+ sequences = sequence.split("\n")
85
+ .reject { |s| s.empty? }
86
+ .map { |s| Sequence.new(s) }
74
87
 
75
88
  [header, sequences]
76
89
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -16,15 +16,21 @@
16
16
  # You should have received a copy of the GNU General Public License
17
17
  # along with parse_fasta. If not, see <http://www.gnu.org/licenses/>.
18
18
 
19
+ require 'zlib'
20
+
19
21
  # Provides simple interface for parsing four-line-per-record fastq
20
- # format files.
22
+ # format files. Gzipped files are no problem.
21
23
  class FastqFile < File
22
24
 
23
- # Analagous to File#each_line, #each_record is used to go through a
24
- # fastq file record by record.
25
+ # Analagous to IO#each_line, #each_record is used to go through a
26
+ # fastq file record by record. It will accept gzipped files as well.
25
27
  #
26
28
  # @example Parsing a fastq file
27
- # FastqFile.open('reads.fq', 'r').each_record do |head, seq, desc, qual|
29
+ # FastqFile.open('reads.fq').each_record do |head, seq, desc, qual|
30
+ # # do some fun stuff here!
31
+ # end
32
+ # @example Use the same syntax for gzipped files!
33
+ # FastqFile.open('reads.fq.gz').each_record do |head, seq, desc, qual|
28
34
  # # do some fun stuff here!
29
35
  # end
30
36
  #
@@ -43,8 +49,14 @@ class FastqFile < File
43
49
  sequence = ''
44
50
  description = ''
45
51
  quality = ''
52
+
53
+ begin
54
+ f = Zlib::GzipReader.open(self)
55
+ rescue Zlib::GzipFile::Error => e
56
+ f = self
57
+ end
46
58
 
47
- self.each_line do |line|
59
+ f.each_line do |line|
48
60
  line.chomp!
49
61
 
50
62
  case count % 4
@@ -61,5 +73,8 @@ class FastqFile < File
61
73
 
62
74
  count += 1
63
75
  end
76
+
77
+ f.close if f.instance_of?(Zlib::GzipReader)
78
+ return f
64
79
  end
65
80
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -17,5 +17,5 @@
17
17
  # along with parse_fasta. If not, see <http://www.gnu.org/licenses/>.
18
18
 
19
19
  module ParseFasta
20
- VERSION = "1.4.0"
20
+ VERSION = "1.5.0"
21
21
  end
data/lib/parse_fasta.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
data/parse_fasta.gemspec CHANGED
@@ -8,8 +8,11 @@ Gem::Specification.new do |spec|
8
8
  spec.version = ParseFasta::VERSION
9
9
  spec.authors = ["Ryan Moore"]
10
10
  spec.email = ["moorer@udel.edu"]
11
- spec.summary = %q{Easy-peasy parsing of fasta files}
12
- spec.description = %q{So you want to parse a fasta or fastq file...}
11
+ spec.summary = %q{Easy-peasy parsing of fasta & fastq files!}
12
+ spec.description =
13
+ "Provides nice, programmatic access to fasta " +
14
+ "and fastq files, as well as providing Sequence and Quality " +
15
+ "helper classes. No need for BioRuby ;)"
13
16
  spec.homepage = "https://github.com/mooreryan/parse_fasta"
14
17
  spec.license = "GPLv3: http://www.gnu.org/licenses/gpl.txt"
15
18
 
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -20,41 +20,82 @@ require 'spec_helper'
20
20
 
21
21
  describe FastaFile do
22
22
  describe "#each_record" do
23
+ let(:records) {
24
+ [["seq1 is fun", "AACTGGNNN"],
25
+ ["seq2", "AATCCTGNNN"],
26
+ ["seq3", "yyyyyyyyyyyyyyyNNN"]]
27
+ }
23
28
 
24
- let(:fname) { "#{File.dirname(__FILE__)}/../../test_files/test.fa" }
29
+ let(:truthy_records) {
30
+ [["seq1 is fun", ["AACTGGNNN"]],
31
+ ["seq2", ["AAT", "CCTGNNN"]],
32
+ ["seq3", ["yyyyyyyyyy", "yyyyy", "NNN"]]]
33
+ }
34
+ let(:f_handle) { FastaFile.open(@fname).each_record { |s| } }
25
35
 
26
- context "with no arguments" do
27
- it "yields header and sequence for each record in a fasta file" do
28
- seqs = []
29
- FastaFile.open(fname, 'r').each_record do |header, sequence|
30
- seqs << [header, sequence]
36
+ shared_examples_for "any FastaFile" do
37
+ context "with no arguments" do
38
+ it "yields proper header and sequence for each record" do
39
+ expect { |b|
40
+ FastaFile.open(@fname).each_record(&b)
41
+ }.to yield_successive_args(*records)
31
42
  end
32
-
33
- expect(seqs).to eq([["seq1 is fun", "AACTGGNNN"],
34
- ["seq2", "AATCCTGNNN"],
35
- ["seq3", "yyyyyyyyyyyyyyyNNN"]])
36
43
 
44
+ it "yields the sequence as a Sequence class" do
45
+ FastaFile.open(@fname).each_record do |_, seq|
46
+ expect(seq).to be_an_instance_of Sequence
47
+ end
48
+ end
37
49
  end
38
50
 
39
- it "yields sequence of type Sequence as second parameter" do
40
- FastaFile.open(fname, 'r').each_record do |header, sequence|
41
- expect(sequence).to be_an_instance_of Sequence
42
- break
51
+ context "with a truthy argument" do
52
+ it "yields proper header and sequence for each record" do
53
+ expect { |b|
54
+ FastaFile.open(@fname).each_record(1, &b)
55
+ }.to yield_successive_args(*truthy_records)
43
56
  end
44
- end
45
- end
46
57
 
47
- context "with a truthy argument" do
48
- it "yields header and array of lines for each record" do
49
- seqs = []
50
- FastaFile.open(fname, 'r').each_record(1) do |header, sequence|
51
- seqs << [header, sequence]
58
+ it "yields the sequence as a Sequence class" do
59
+ FastaFile.open(@fname).each_record(1) do |_, seq|
60
+ all_Sequences = seq.map { |s| s.instance_of?(Sequence) }.all?
61
+ expect(all_Sequences).to be true
62
+ end
52
63
  end
64
+
65
+ end
66
+ end
67
+
68
+ context "with a gzipped file" do
69
+ before(:each) do
70
+ @fname = "#{File.dirname(__FILE__)}/../../test_files/test.fa.gz"
71
+ end
72
+
73
+ it_behaves_like "any FastaFile"
74
+
75
+ it "closes the GzipReader" do
76
+ expect(f_handle).to be_closed
77
+ end
78
+
79
+ it "returns GzipReader object" do
80
+ expect(f_handle).to be_an_instance_of Zlib::GzipReader
81
+ end
82
+ end
83
+
84
+ context "with a non-gzipped file" do
85
+ before(:each) do
86
+ @fname = "#{File.dirname(__FILE__)}/../../test_files/test.fa"
87
+ end
88
+
89
+ it_behaves_like "any FastaFile"
53
90
 
54
- expect(seqs).to eq([["seq1 is fun", ["AACTGGNNN"]],
55
- ["seq2", ["AAT", "CCTGNNN"]],
56
- ["seq3", ["yyyyyyyyyy", "yyyyy", "NNN"]]])
91
+ it "doesn't close the FastqFile (approx regular file behavior)" do
92
+ expect(f_handle).not_to be_closed
93
+ end
94
+
95
+ it "returns FastaFile object" do
96
+ expect(f_handle).to be_an_instance_of FastaFile
57
97
  end
58
98
  end
59
- end
99
+ end
60
100
  end
101
+
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -19,32 +19,67 @@
19
19
  require 'spec_helper'
20
20
 
21
21
  describe FastqFile do
22
- describe "#each_record" do
23
- let(:fname) { "#{File.dirname(__FILE__)}/../../test_files/test.fq" }
24
-
25
- context "with a 4 line per record fastq file" do
26
- before do
27
- @records = []
28
- FastqFile.open(fname, 'r').each_record do |head, seq, desc, qual|
29
- @records << [head, seq, desc, qual]
30
- end
22
+ let(:records) {
23
+ [["seq1", "AACCTTGG", "", ")#3gTqN8"],
24
+ ["seq2 apples", "ACTG", "seq2 apples", "*ujM"]] }
25
+ let(:f_handle) { FastqFile.open(@fname).each_record { |s| } }
26
+
27
+
28
+ shared_examples_for "any FastqFile" do
29
+ it "yields proper header, sequence, description, and quality" do
30
+ expect { |b|
31
+ FastqFile.open(@fname).each_record(&b)
32
+ }.to yield_successive_args(records[0], records[1])
33
+ end
34
+
35
+ it "yields the sequence as a Sequence class" do
36
+ FastqFile.open(@fname).each_record do |_, seq, _, _|
37
+ expect(seq).to be_an_instance_of Sequence
31
38
  end
39
+ end
32
40
 
33
- it "yields the header, sequence, desc, and qual" do
34
- expect(@records).to eq([["seq1", "AACCTTGG", "", ")#3gTqN8"],
35
- ["seq2 apples", "ACTG", "seq2 apples",
36
- "*ujM"]])
41
+ it "yields the quality as a Quality class" do
42
+ FastqFile.open(@fname).each_record do |_, _, _, qual|
43
+ expect(qual).to be_an_instance_of Quality
37
44
  end
38
-
39
- it "yields the sequence as a Sequence class" do
40
- the_sequence = @records[0][1]
41
- expect(the_sequence).to be_a(Sequence)
45
+ end
46
+
47
+ end
48
+
49
+ context "with a 4 line per record fastq file" do
50
+ describe "#each_record" do
51
+ context "with a gzipped file" do
52
+ before(:each) do
53
+ @fname = "#{File.dirname(__FILE__)}/../../test_files/test.fq.gz"
54
+ end
55
+
56
+ it_behaves_like "any FastqFile"
57
+
58
+ it "closes the GzipReader" do
59
+ expect(f_handle).to be_closed
60
+ end
61
+
62
+ it "returns GzipReader object" do
63
+ expect(f_handle).to be_an_instance_of Zlib::GzipReader
64
+ end
42
65
  end
43
66
 
44
- it "yields the quality string as a Quality class" do
45
- the_quality = @records[0][3]
46
- expect(the_quality).to be_a(Quality)
67
+ context "with a non-gzipped file" do
68
+ before(:each) do
69
+ @fname = "#{File.dirname(__FILE__)}/../../test_files/test.fq"
70
+ end
71
+
72
+ it_behaves_like "any FastqFile"
73
+
74
+ it "doesn't close the FastqFile (approx regular file behavior)" do
75
+ expect(f_handle).not_to be_closed
76
+ end
77
+
78
+ it "returns FastqFile object" do
79
+ expect(f_handle).to be_an_instance_of FastqFile
80
+ end
47
81
  end
48
82
  end
49
- end
83
+ end
50
84
  end
85
+
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2014 Ryan Moore
1
+ # Copyright 2014, 2015 Ryan Moore
2
2
  # Contact: moorer@udel.edu
3
3
  #
4
4
  # This file is part of parse_fasta.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # Copyright 2014 Ryan Moore
3
+ # Copyright 2014, 2015 Ryan Moore
4
4
  # Contact: moorer@udel.edu
5
5
 
6
6
  # This file is part of parse_fasta.
Binary file
Binary file
metadata CHANGED
@@ -1,93 +1,94 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parse_fasta
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Moore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-13 00:00:00.000000000 Z
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '2.14'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.14'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bio
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yard
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.8'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.8'
83
- description: So you want to parse a fasta or fastq file...
83
+ description: Provides nice, programmatic access to fasta and fastq files, as well
84
+ as providing Sequence and Quality helper classes. No need for BioRuby ;)
84
85
  email:
85
86
  - moorer@udel.edu
86
87
  executables: []
87
88
  extensions: []
88
89
  extra_rdoc_files: []
89
90
  files:
90
- - ".gitignore"
91
+ - .gitignore
91
92
  - COPYING
92
93
  - Gemfile
93
94
  - README.md
@@ -106,10 +107,12 @@ files:
106
107
  - spec/spec_helper.rb
107
108
  - test_files/benchmark.rb
108
109
  - test_files/test.fa
110
+ - test_files/test.fa.gz
109
111
  - test_files/test.fq
112
+ - test_files/test.fq.gz
110
113
  homepage: https://github.com/mooreryan/parse_fasta
111
114
  licenses:
112
- - 'GPLv3: http://www.gnu.org/licenses/gpl.txt'
115
+ - ! 'GPLv3: http://www.gnu.org/licenses/gpl.txt'
113
116
  metadata: {}
114
117
  post_install_message:
115
118
  rdoc_options: []
@@ -117,12 +120,12 @@ require_paths:
117
120
  - lib
118
121
  required_ruby_version: !ruby/object:Gem::Requirement
119
122
  requirements:
120
- - - ">="
123
+ - - ! '>='
121
124
  - !ruby/object:Gem::Version
122
125
  version: 1.9.3
123
126
  required_rubygems_version: !ruby/object:Gem::Requirement
124
127
  requirements:
125
- - - ">="
128
+ - - ! '>='
126
129
  - !ruby/object:Gem::Version
127
130
  version: '0'
128
131
  requirements: []
@@ -130,7 +133,7 @@ rubyforge_project:
130
133
  rubygems_version: 2.2.2
131
134
  signing_key:
132
135
  specification_version: 4
133
- summary: Easy-peasy parsing of fasta files
136
+ summary: Easy-peasy parsing of fasta & fastq files!
134
137
  test_files:
135
138
  - spec/lib/fasta_file_spec.rb
136
139
  - spec/lib/fastq_file_spec.rb