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 +13 -5
- data/README.md +5 -1
- data/lib/parse_fasta/fasta_file.rb +27 -14
- data/lib/parse_fasta/fastq_file.rb +21 -6
- data/lib/parse_fasta/quality.rb +1 -1
- data/lib/parse_fasta/sequence.rb +1 -1
- data/lib/parse_fasta/version.rb +2 -2
- data/lib/parse_fasta.rb +1 -1
- data/parse_fasta.gemspec +5 -2
- data/spec/lib/fasta_file_spec.rb +67 -26
- data/spec/lib/fastq_file_spec.rb +57 -22
- data/spec/lib/quality_spec.rb +1 -1
- data/spec/lib/sequence_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/test_files/benchmark.rb +1 -1
- data/test_files/test.fa.gz +0 -0
- data/test_files/test.fq.gz +0 -0
- metadata +21 -18
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YTBkNDczMWQyMjI5YzNkMmEwY2M1MWY3ODRlMzI3ZjE2MThhM2FkMw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YzNlOGU2Y2FiMDlhMjMxMDkxNTE2Y2NjMzdlOWE2MmUzOWRlMzdiMw==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
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.
|
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
|
-
|
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
|
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
|
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'
|
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'
|
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<
|
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
|
-
|
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
|
-
|
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")
|
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
|
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'
|
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
|
-
|
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
|
data/lib/parse_fasta/quality.rb
CHANGED
data/lib/parse_fasta/sequence.rb
CHANGED
data/lib/parse_fasta/version.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.
|
@@ -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.
|
20
|
+
VERSION = "1.5.0"
|
21
21
|
end
|
data/lib/parse_fasta.rb
CHANGED
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 =
|
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
|
|
data/spec/lib/fasta_file_spec.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.
|
@@ -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(:
|
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
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
-
|
40
|
-
|
41
|
-
expect
|
42
|
-
|
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
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
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
|
-
|
55
|
-
|
56
|
-
|
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
|
+
|
data/spec/lib/fastq_file_spec.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.
|
@@ -19,32 +19,67 @@
|
|
19
19
|
require 'spec_helper'
|
20
20
|
|
21
21
|
describe FastqFile do
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
40
|
-
|
41
|
-
|
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
|
-
|
45
|
-
|
46
|
-
|
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
|
+
|
data/spec/lib/quality_spec.rb
CHANGED
data/spec/lib/sequence_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/test_files/benchmark.rb
CHANGED
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
|
+
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:
|
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:
|
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
|
-
-
|
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
|