parse_fasta 2.4.2 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c235357c072f2b4042b7723dd0c3eb686d5fc60d
4
- data.tar.gz: 7f1d7ba7d306774fe35b79f9ec6f773265e7c93e
3
+ metadata.gz: b58d57b0b3d32e90276f0a95e1bede38e0573439
4
+ data.tar.gz: 6577ae5b5793f164526b24c2f748a9d782150653
5
5
  SHA512:
6
- metadata.gz: b3ab4bc141fdd4ed995d9931ecee923e2a81bf07ade851275f9315fe2df09b94c09d6af372bf3b229caedba618c488fac77554b3b02f60ccfbb2e5f901030cbd
7
- data.tar.gz: 8d7bee5a8f0cf74db20616165dd0d00a4caa44eec7701e1a4a48ddf6349a6906aa05033307de01b05af8eb5b2fb5e96d7818058c744527ce5ec6cf68a7f1c6d8
6
+ metadata.gz: c4d717b98e4f8263b9e233bbf398cc09813a34c22dd5899fc4281909869f10776f3298412d546e9546acb423747b5e065d636e1ebbcdb3cb2e3d20bdc5bf2530
7
+ data.tar.gz: 222bb97de866d13b3e8eeac9208f0f3c838e6e00f8833962bae299de59045b7a9c2a9f58f4a95b81777a1fe0161c4646322dfb0d69e214ed4a7218d7bcfe60f0
data/.gitignore CHANGED
@@ -24,3 +24,6 @@ mkmf.log
24
24
  .idea
25
25
  time.html
26
26
  big_test_files
27
+
28
+ rake_?
29
+ ruby_rake_?
@@ -7,12 +7,41 @@ rvm:
7
7
  - 2.3
8
8
  - 2.4
9
9
  - 2.5
10
-
10
+ - ruby-head
11
+ - jruby-head
12
+
13
+ jdk:
14
+ - oraclejdk8
15
+ - oraclejdk9
16
+
17
+ matrix:
18
+ exclude:
19
+ - rvm: 2.1
20
+ jdk: oraclejdk8
21
+ - rvm: 2.1
22
+ jdk: oraclejdk9
23
+ - rvm: 2.2
24
+ jdk: oraclejdk8
25
+ - rvm: 2.2
26
+ jdk: oraclejdk9
27
+ - rvm: 2.3
28
+ jdk: oraclejdk8
29
+ - rvm: 2.3
30
+ jdk: oraclejdk9
31
+ - rvm: 2.4
32
+ jdk: oraclejdk8
33
+ - rvm: 2.4
34
+ jdk: oraclejdk9
35
+ - rvm: 2.5
36
+ jdk: oraclejdk8
37
+ - rvm: 2.5
38
+ jdk: oraclejdk9
39
+
11
40
  script: 'bundle exec rake'
12
41
 
13
42
  notifications:
14
43
  email:
15
44
  recipients:
16
45
  - moorer@udel.edu
17
- on_failure: change
18
- on_success: never
46
+ on_failure: always
47
+ on_success: always
data/README.md CHANGED
@@ -19,6 +19,10 @@ And then execute:
19
19
  Or install it yourself as:
20
20
 
21
21
  $ gem install parse_fasta
22
+
23
+ ### JRuby ###
24
+
25
+ If you want to use `ParseFasta` with JRuby, make sure to use version >= 2.5.
22
26
 
23
27
  ## Overview ##
24
28
 
@@ -209,6 +209,8 @@ module ParseFasta
209
209
  line_reader
210
210
  end
211
211
 
212
+ # Get the first char of the file whether it is gzip'd or not. No
213
+ # need to rewind the stream afterwards.
212
214
  def get_first_char fname
213
215
  if File.exists? fname
214
216
  begin
@@ -217,8 +219,10 @@ module ParseFasta
217
219
  f = File.open fname
218
220
  end
219
221
 
222
+
220
223
  begin
221
- first_char = f.each_char.peek[0]
224
+ first_char = f.each.peek[0]
225
+
222
226
  return first_char
223
227
  ensure
224
228
  f.close
@@ -1,3 +1,3 @@
1
1
  module ParseFasta
2
- VERSION = "2.4.2"
2
+ VERSION = "2.5.0"
3
3
  end
@@ -1,34 +1,32 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'parse_fasta/version'
4
+ require "parse_fasta/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "parse_fasta"
8
- spec.version = ParseFasta::VERSION
9
- spec.authors = ["Ryan Moore"]
10
- spec.email = ["moorer@udel.edu"]
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 ;)"
16
- spec.homepage = "https://github.com/mooreryan/parse_fasta"
17
- spec.license = "GPLv3: http://www.gnu.org/licenses/gpl.txt"
7
+ spec.name = "parse_fasta"
8
+ spec.version = ParseFasta::VERSION
9
+ spec.authors = ["Ryan Moore"]
10
+ spec.email = ["moorer@udel.edu"]
11
+ spec.summary = %q{Easy-peasy parsing of fasta & fastq files!}
12
+ spec.description = <<-EOF
13
+ Provides nice, programmatic access to fasta and fastq files, as well as providing Sequence and Quality helper classes. No need for BioRuby ;)
14
+ EOF
15
+ spec.homepage = "https://github.com/mooreryan/parse_fasta"
16
+ spec.license = "MIT"
18
17
 
19
18
  spec.files = `git ls-files -z`.split("\x0")
20
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.executables = spec.files.grep(%r{^bin/}) {|f| File.basename(f)}
21
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
21
  spec.require_paths = ["lib"]
23
22
 
24
23
  spec.required_ruby_version = ">= 2.1"
25
24
 
26
- spec.add_development_dependency "bundler", "~> 1.6"
27
- spec.add_development_dependency "rake", "~> 10.3"
28
- spec.add_development_dependency "rspec", "~> 2.14"
25
+ spec.add_development_dependency "bundler", "~> 1.16", ">= 1.16.1"
26
+ spec.add_development_dependency "rake", "~> 12.3", ">= 12.3.1"
27
+ spec.add_development_dependency "rspec", "~> 3.7"
29
28
  spec.add_development_dependency "bio", "~> 1.4"
30
- spec.add_development_dependency "yard", "~> 0.8"
31
- spec.add_development_dependency "rdiscount"
32
- spec.add_development_dependency "coveralls", "~> 0.7"
29
+ spec.add_development_dependency "yard", "~> 0.9.12"
30
+ spec.add_development_dependency "coveralls", "~> 0.8.21"
33
31
  spec.add_development_dependency "benchmark-ips", "~> 2.7", ">= 2.7.2"
34
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parse_fasta
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2
4
+ version: 2.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: 2018-03-17 00:00:00.000000000 Z
11
+ date: 2018-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,42 +16,54 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '1.16'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.16.1
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: '1.6'
29
+ version: '1.16'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.16.1
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rake
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '10.3'
39
+ version: '12.3'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 12.3.1
34
43
  type: :development
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - "~>"
39
48
  - !ruby/object:Gem::Version
40
- version: '10.3'
49
+ version: '12.3'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 12.3.1
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: rspec
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
57
  - - "~>"
46
58
  - !ruby/object:Gem::Version
47
- version: '2.14'
59
+ version: '3.7'
48
60
  type: :development
49
61
  prerelease: false
50
62
  version_requirements: !ruby/object:Gem::Requirement
51
63
  requirements:
52
64
  - - "~>"
53
65
  - !ruby/object:Gem::Version
54
- version: '2.14'
66
+ version: '3.7'
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: bio
57
69
  requirement: !ruby/object:Gem::Requirement
@@ -72,42 +84,28 @@ dependencies:
72
84
  requirements:
73
85
  - - "~>"
74
86
  - !ruby/object:Gem::Version
75
- version: '0.8'
87
+ version: 0.9.12
76
88
  type: :development
77
89
  prerelease: false
78
90
  version_requirements: !ruby/object:Gem::Requirement
79
91
  requirements:
80
92
  - - "~>"
81
93
  - !ruby/object:Gem::Version
82
- version: '0.8'
83
- - !ruby/object:Gem::Dependency
84
- name: rdiscount
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
94
+ version: 0.9.12
97
95
  - !ruby/object:Gem::Dependency
98
96
  name: coveralls
99
97
  requirement: !ruby/object:Gem::Requirement
100
98
  requirements:
101
99
  - - "~>"
102
100
  - !ruby/object:Gem::Version
103
- version: '0.7'
101
+ version: 0.8.21
104
102
  type: :development
105
103
  prerelease: false
106
104
  version_requirements: !ruby/object:Gem::Requirement
107
105
  requirements:
108
106
  - - "~>"
109
107
  - !ruby/object:Gem::Version
110
- version: '0.7'
108
+ version: 0.8.21
111
109
  - !ruby/object:Gem::Dependency
112
110
  name: benchmark-ips
113
111
  requirement: !ruby/object:Gem::Requirement
@@ -128,8 +126,10 @@ dependencies:
128
126
  - - ">="
129
127
  - !ruby/object:Gem::Version
130
128
  version: 2.7.2
131
- description: Provides nice, programmatic access to fasta and fastq files, as well
129
+ description: 'Provides nice, programmatic access to fasta and fastq files, as well
132
130
  as providing Sequence and Quality helper classes. No need for BioRuby ;)
131
+
132
+ '
133
133
  email:
134
134
  - moorer@udel.edu
135
135
  executables:
@@ -142,8 +142,6 @@ files:
142
142
  - ".gitignore"
143
143
  - ".rspec"
144
144
  - ".travis.yml"
145
- - ".yardopts"
146
- - CHANGELOG.md
147
145
  - Gemfile
148
146
  - LICENSE
149
147
  - README.md
@@ -182,7 +180,7 @@ files:
182
180
  - spec/test_files/with_rec_sep_in_seq.fa
183
181
  homepage: https://github.com/mooreryan/parse_fasta
184
182
  licenses:
185
- - 'GPLv3: http://www.gnu.org/licenses/gpl.txt'
183
+ - MIT
186
184
  metadata: {}
187
185
  post_install_message:
188
186
  rdoc_options: []
@@ -200,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
198
  version: '0'
201
199
  requirements: []
202
200
  rubyforge_project:
203
- rubygems_version: 2.5.1
201
+ rubygems_version: 2.6.14
204
202
  signing_key:
205
203
  specification_version: 4
206
204
  summary: Easy-peasy parsing of fasta & fastq files!
@@ -228,4 +226,3 @@ test_files:
228
226
  - spec/test_files/seqs.fq.gz
229
227
  - spec/test_files/test.rb
230
228
  - spec/test_files/with_rec_sep_in_seq.fa
231
- has_rdoc:
data/.yardopts DELETED
@@ -1 +0,0 @@
1
- --markup-provider rdiscount
@@ -1,194 +0,0 @@
1
- ## Versions ##
2
-
3
- ### 2.3.0 ###
4
-
5
- Allow parsing of fastA files with `>` characters in the sequence with the `check_fasta_seq: false` option.
6
-
7
- ### 2.2.0 ###
8
-
9
- Add `id` attribute to `Record`.
10
-
11
- ### 2.1.1 ###
12
-
13
- Speed up `Record.new`
14
-
15
- ### 2.1.0 ###
16
-
17
- Add `#to_s`, `#to_fasta`, and `#to_fastq` to `Record`.
18
-
19
- ### 2.0.0 ###
20
-
21
- A weird feature of `Zlib::GzipReader` made it so that if a gzipped file was created like this.
22
-
23
- ```bash
24
- gzip -c a.fa > z.fa.gz
25
- gzip -c b.fa >> z.fa.gz
26
- ```
27
-
28
- Then the gzip reader would only read the lines from `a.fa` without some fiddling around. Since this was a pretty low level thing, I just decided to make a bunch of under the hood changes that I've been meaning to get to.
29
-
30
- #### Other things
31
-
32
- - Everything is namespaced under `ParseFasta` module
33
- - Removed `FastaFile` and `FastqFile` classes, `SeqFile` only remains
34
- - Removed `Sequence` and `Quality` classes. These might get put back in at some point, but I almost never used them anyway
35
- - `SeqFile#each_record` yields a `Record` object so you can use the same code to parse fastA and fastQ files
36
- - Other stuff that I'm forgetting!
37
-
38
-
39
- ### 1.9.2 ###
40
-
41
- Speed up fastA `each_record` and `each_record_fast`.
42
-
43
- ### 1.9.1 ###
44
-
45
- Speed up fastQ `each_record` and `each_record_fast`. Courtesy of
46
- [Matthew Ralston](https://github.com/MatthewRalston).
47
-
48
- ### 1.9.0 ###
49
-
50
- Added "fast" versions of `each_record` methods
51
- (`each_record_fast`). Basically, they return sequences and quality
52
- strings as Ruby `Sring` objects instead of aa `Sequence` or `Quality`
53
- objects. Also, if the sequence or quality string has spaces, they will
54
- be retained. If this is a problem, use the original `each_record`
55
- methods.
56
-
57
- ### 1.8.2 ###
58
-
59
- Speed up `FastqFile#each_record`.
60
-
61
- ### 1.8.1 ###
62
-
63
- An error will be raised if a fasta file has a `>` in the
64
- sequence. Sometimes files are not terminated with a newline
65
- character. If this is the case, then catting two fasta files will
66
- smush the first header of the second file right in with the last
67
- sequence of the first file. This is bad, raise an error! ;)
68
-
69
- Example
70
-
71
- >seq1
72
- ACTG>seq2
73
- ACTG
74
- >seq3
75
- ACTG
76
-
77
- This will raise `ParseFasta::SequenceFormatError`.
78
-
79
- Also, headers with lots of `>` within are fine now.
80
-
81
- ### 1.8 ###
82
-
83
- Add `Sequence#rev_comp`. It can handle IUPAC characters. Since
84
- `parse_fasta` doesn't check whether the seq is AA or NA, if called on
85
- an amino acid string, things will get weird as it will complement the
86
- IUPAC characters in the AA string and leave others.
87
-
88
- ### 1.7.2 ###
89
-
90
- Strip spaces (not all whitespace) from `Sequence` and `Quality` strings.
91
-
92
- Some alignment fastas have spaces for easier reading. Strip these
93
- out. For consistency, also strips spaces from `Quality` strings. If
94
- there are spaces that don't match in the quality and sequence in a
95
- fastQ file, then things will get messed up in the FastQ file. FastQ
96
- shouldn't have spaces though.
97
-
98
- ### 1.7 ###
99
-
100
- Add `SeqFile#to_hash`, `FastaFile#to_hash` and `FastqFile#to_hash`.
101
-
102
- ### 1.6.2 ###
103
-
104
- `FastaFile::open` now raises a `ParseFasta::DataFormatError` when passed files
105
- that don't begin with a `>`.
106
-
107
- ### 1.6.1 ###
108
-
109
- Better internal handling of empty sequences -- instead of raising
110
- errors, pass empty sequences.
111
-
112
- ### 1.6 ###
113
-
114
- Added `SeqFile` class, which accepts either fastA or fastQ files. It
115
- uses FastaFile and FastqFile internally. You can use this class if you
116
- want your scripts to accept either fastA or fastQ files.
117
-
118
- If you need the description and quality string, you should use
119
- FastqFile instead.
120
-
121
- ### 1.5 ###
122
-
123
- Now accepts gzipped files. Huzzah!
124
-
125
- ### 1.4 ###
126
-
127
- Added methods:
128
-
129
- Sequence.base_counts
130
- Sequence.base_frequencies
131
-
132
- ### 1.3 ###
133
-
134
- Add additional functionality to `each_record` method.
135
-
136
- #### Info ####
137
-
138
- I often like to use the fasta format for other things like so
139
-
140
- >fruits
141
- pineapple
142
- pear
143
- peach
144
- >veggies
145
- peppers
146
- parsnip
147
- peas
148
-
149
- rather than having this in a two column file like this
150
-
151
- fruit,pineapple
152
- fruit,pear
153
- fruit,peach
154
- veggie,peppers
155
- veggie,parsnip
156
- veggie,peas
157
-
158
- So I added functionality to `each_record` to keep each line a record
159
- separate in an array. Here's an example using the above file.
160
-
161
- info = []
162
- FastaFile.open(f, 'r').each_record(1) do |header, lines|
163
- info << [header, lines]
164
- end
165
-
166
- Then info will contain the following arrays
167
-
168
- ['fruits', ['pineapple', 'pear', 'peach']],
169
- ['veggies', ['peppers', 'parsnip', 'peas']]
170
-
171
- ### 1.2 ###
172
-
173
- Added `mean_qual` method to the `Quality` class.
174
-
175
- ### 1.1.2 ###
176
-
177
- Dropped Ruby requirement to 1.9.3
178
-
179
- (Note, if you want to build the docs with yard and you're using
180
- Ruby 1.9.3, you may have to install the redcarpet gem.)
181
-
182
- ### 1.1 ###
183
-
184
- Added: Fastq and Quality classes
185
-
186
- ### 1.0 ###
187
-
188
- Added: Fasta and Sequence classes
189
-
190
- Removed: File monkey patch
191
-
192
- ### 0.0.5 ###
193
-
194
- Last version with File monkey patch.