parse_fasta 2.0.0 → 2.0.1

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YzliYjhmZmMzNGRlYmFmNDQwOGE2NGFmNzgyZTliZDdhMDdkMTc0Zg==
5
- data.tar.gz: !binary |-
6
- OTgxOWFjYTEyMWI0MjNlNjBhZjJkNGZkMjFkZGFkZDNjNGJkNTk2NA==
2
+ SHA1:
3
+ metadata.gz: 9f779807eb98f39dfbbd67376e04a890be3a7bf9
4
+ data.tar.gz: 5f7201962d03a7c3b2553d576d4721822dbc24a2
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- OGQxNTg4YzYyYzQyZGM2YjM0NzYyMjFiYzUwMTllYjM3NzZiZjViNTQwMWFi
10
- NTI0NDk5NDY0NTc4YThhZTg4ODczYjAxZTA3MGNmZDdmMWYzNmMwMGFlMzhl
11
- ODFhM2Q1NzIxZDVlYjE0MjEwYTg0OTlkMzlmZDQyYjIzYjhjNGQ=
12
- data.tar.gz: !binary |-
13
- MTBlN2NmNmJkOGUwM2Q1MDZhZTkzM2NmMzNmOTY1YWUzMzVjNjdkN2NiMDM2
14
- NTJlYmU5Yzk1ODExNzczMGNkNTFkNzEwOWZkZGIwMjRiMjNiNGY5ZGM0MDJk
15
- ZmY3YWI0OGQwOTNiMzY2ODAzMzkxZjFkZmNiNTExMGE3NWFlZjk=
6
+ metadata.gz: 9ddd0ae41bde830edba8af62be8ee88700e6c309b2f61ef0887a67579551d88308e0e53bbcb57c5d18ddd0cbc4b79f60a47986df14f2578415fa983ddbeb317f
7
+ data.tar.gz: ad89bb85f6cfcd8ed8af0d7c518d1b773cff2c9edcc5f51b241a149a55c217d070cbedca0946edb506b53ce430117d41ef7058a130e7e7e013dcc64c4d41b110
@@ -2,11 +2,10 @@ language: ruby
2
2
  cache: bundler
3
3
 
4
4
  rvm:
5
- - 1.9.3
6
5
  - 2.0
7
6
  - 2.1
8
- - 2.2.0
9
- - 2.2.2
7
+ - 2.2
8
+ - 2.3
10
9
 
11
10
  script: 'bundle exec rake'
12
11
 
@@ -18,39 +18,6 @@
18
18
 
19
19
  require "zlib"
20
20
 
21
- def get_first_char fname
22
- if File.exists? fname
23
- begin
24
- f = Zlib::GzipReader.open fname
25
- rescue Zlib::GzipFile::Error
26
- f = File.open fname
27
- ensure
28
- # f.close
29
- end
30
-
31
- first_char = f.each_char.peek[0]
32
- f.close
33
- return first_char
34
- else
35
- raise ParseFasta::Error::FileNotFoundError,
36
- "No such file or directory -- #{fname}"
37
- end
38
- end
39
-
40
- def check_file fname
41
- first_char = get_first_char fname
42
-
43
- if first_char == ">"
44
- :fasta
45
- elsif first_char == "@"
46
- :fastq
47
- else
48
- raise ParseFasta::Error::DataFormatError,
49
- "The file does not look like fastA or fastQ " +
50
- "-- #{fname}"
51
- end
52
- end
53
-
54
21
  module ParseFasta
55
22
  class SeqFile
56
23
  # @!attribute type
@@ -250,5 +217,39 @@ module ParseFasta
250
217
 
251
218
  line_reader
252
219
  end
220
+
221
+ def get_first_char fname
222
+ if File.exists? fname
223
+ begin
224
+ f = Zlib::GzipReader.open fname
225
+ rescue Zlib::GzipFile::Error
226
+ f = File.open fname
227
+ end
228
+
229
+ begin
230
+ first_char = f.each_char.peek[0]
231
+ return first_char
232
+ ensure
233
+ f.close
234
+ end
235
+ else
236
+ raise ParseFasta::Error::FileNotFoundError,
237
+ "No such file or directory -- #{fname}"
238
+ end
239
+ end
240
+
241
+ def check_file fname
242
+ first_char = get_first_char fname
243
+
244
+ if first_char == ">"
245
+ :fasta
246
+ elsif first_char == "@"
247
+ :fastq
248
+ else
249
+ raise ParseFasta::Error::DataFormatError,
250
+ "The file does not look like fastA or fastQ " +
251
+ "-- #{fname}"
252
+ end
253
+ end
253
254
  end
254
255
  end
@@ -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 = "2.0.0"
20
+ VERSION = "2.0.1"
21
21
  end
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.required_ruby_version = ">= 1.9.3"
24
+ spec.required_ruby_version = ">= 2"
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.6"
27
27
  spec.add_development_dependency "rake", "~> 10.3"
@@ -0,0 +1,71 @@
1
+ require "parse_fasta"
2
+
3
+ fasta_records =
4
+ [ParseFasta::Record.new(header: "empty seq at beginning",
5
+ seq: ""),
6
+ ParseFasta::Record.new(header: "seq1 is fun",
7
+ seq: "AACTGGNNN"),
8
+ ParseFasta::Record.new(header: "seq2",
9
+ seq: "AATCCTGNNN"),
10
+ ParseFasta::Record.new(header: "empty seq 1",
11
+ seq: ""),
12
+ ParseFasta::Record.new(header: "empty seq 2",
13
+ seq: ""),
14
+ ParseFasta::Record.new(header: "seq3",
15
+ seq: "yyyyyyyyyyyyyyyNNN"),
16
+ ParseFasta::Record.new(header: "seq 4 > has many '>' in header",
17
+ seq: "ACTGactg"),
18
+ ParseFasta::Record.new(header: "empty seq at end",
19
+ seq: "")]
20
+
21
+ fastq_records =
22
+ [ParseFasta::Record.new(header: "seq1",
23
+ seq: "AA CC TT GG",
24
+ desc: "",
25
+ qual: ")# 3g Tq N8"),
26
+ ParseFasta::Record.new(header: "seq2 @pples",
27
+ seq: "ACTG",
28
+ desc: "seq2 +pples",
29
+ qual: "*ujM")]
30
+
31
+
32
+ line_endings_fastq_records =
33
+ [ParseFasta::Record.new(header: "apple", seq: "ACTG", desc: "", qual: "IIII"),
34
+ ParseFasta::Record.new(header: "pie", seq: "AACC", desc: "", qual: "BBBB"),]
35
+
36
+ line_endings_fasta_records =
37
+ [ParseFasta::Record.new(header: "apple", seq: "ACTG"),
38
+ ParseFasta::Record.new(header: "pie", seq: "AACC"),]
39
+
40
+ def check fname, expected_records
41
+ STDERR.puts "\nReading #{fname}"
42
+ recs = []
43
+ ParseFasta::SeqFile.open(File.join File.dirname(__FILE__), fname).each_record do |rec|
44
+ p [rec.header, rec.seq, rec.desc, rec.qual]
45
+ recs << rec
46
+ end
47
+ STDERR.puts "Good? #{recs == expected_records}"
48
+
49
+ $results << (recs == expected_records)
50
+ end
51
+
52
+ $results = []
53
+
54
+ check "seqs.fa", fasta_records
55
+ check "seqs.fa.gz", fasta_records
56
+ check "seqs.fq", fastq_records
57
+ check "seqs.fq.gz", fastq_records
58
+
59
+ check "cr.fa", line_endings_fasta_records
60
+ check "cr.fa.gz", line_endings_fasta_records
61
+ check "cr_nl.fa", line_endings_fasta_records
62
+ check "cr_nl.fa.gz", line_endings_fasta_records
63
+
64
+ check "cr.fq", line_endings_fastq_records
65
+ check "cr.fq.gz", line_endings_fastq_records
66
+ check "cr_nl.fq", line_endings_fastq_records
67
+ check "cr_nl.fq.gz", line_endings_fastq_records
68
+
69
+ if $results.all? { |res| res }
70
+ STDERR.puts "\nAll Good!\n\n"
71
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parse_fasta
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Moore
@@ -14,98 +14,98 @@ dependencies:
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
83
  - !ruby/object:Gem::Dependency
84
84
  name: rdiscount
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: coveralls
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0.7'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.7'
111
111
  description: Provides nice, programmatic access to fasta and fastq files, as well
@@ -118,11 +118,11 @@ executables:
118
118
  extensions: []
119
119
  extra_rdoc_files: []
120
120
  files:
121
- - .coveralls.yml
122
- - .gitignore
123
- - .rspec
124
- - .travis.yml
125
- - .yardopts
121
+ - ".coveralls.yml"
122
+ - ".gitignore"
123
+ - ".rspec"
124
+ - ".travis.yml"
125
+ - ".yardopts"
126
126
  - CHANGELOG.md
127
127
  - COPYING
128
128
  - Gemfile
@@ -156,9 +156,10 @@ files:
156
156
  - spec/test_files/seqs.fa.gz
157
157
  - spec/test_files/seqs.fq
158
158
  - spec/test_files/seqs.fq.gz
159
+ - spec/test_files/test.rb
159
160
  homepage: https://github.com/mooreryan/parse_fasta
160
161
  licenses:
161
- - ! 'GPLv3: http://www.gnu.org/licenses/gpl.txt'
162
+ - 'GPLv3: http://www.gnu.org/licenses/gpl.txt'
162
163
  metadata: {}
163
164
  post_install_message:
164
165
  rdoc_options: []
@@ -166,17 +167,17 @@ require_paths:
166
167
  - lib
167
168
  required_ruby_version: !ruby/object:Gem::Requirement
168
169
  requirements:
169
- - - ! '>='
170
+ - - ">="
170
171
  - !ruby/object:Gem::Version
171
- version: 1.9.3
172
+ version: '2'
172
173
  required_rubygems_version: !ruby/object:Gem::Requirement
173
174
  requirements:
174
- - - ! '>='
175
+ - - ">="
175
176
  - !ruby/object:Gem::Version
176
177
  version: '0'
177
178
  requirements: []
178
179
  rubyforge_project:
179
- rubygems_version: 2.4.8
180
+ rubygems_version: 2.5.1
180
181
  signing_key:
181
182
  specification_version: 4
182
183
  summary: Easy-peasy parsing of fasta & fastq files!
@@ -201,4 +202,5 @@ test_files:
201
202
  - spec/test_files/seqs.fa.gz
202
203
  - spec/test_files/seqs.fq
203
204
  - spec/test_files/seqs.fq.gz
205
+ - spec/test_files/test.rb
204
206
  has_rdoc: