dna 0.3.0 → 0.3.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 +7 -0
- data/.travis.yml +1 -0
- data/Gemfile +1 -0
- data/dna.gemspec +10 -5
- data/lib/dna.rb +6 -4
- data/lib/dna/parsers/fasta.rb +6 -2
- data/lib/dna/version.rb +1 -1
- data/readme.md +9 -10
- data/spec/data/single.fasta +2 -0
- data/spec/data/test.fasta +3 -1
- data/spec/dna_spec.rb +8 -1
- data/spec/spec_helper.rb +5 -1
- metadata +15 -20
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ad48f8e0c0cb16eb16b15aac96835dd3cf14f95f
|
4
|
+
data.tar.gz: d93f3466c1de438e5241af282cc33fbf4a050c7e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fbd9a6b2ac10635db59dbb23078fbc17889df5a49601ff59abcc0b1ce0d2a1fc157c9d2340487a58f9bb276ee3154b9633a9aae7df5c66b53dc3a11da56821b4
|
7
|
+
data.tar.gz: 0db717cea0f96fedbe4c33175e2f0b3a72a7421716f8feea4aa4783473d99036635486e781efe3f849a20a1694ee65d01313f4350ab7856622d2db4ff4ff391e
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/dna.gemspec
CHANGED
@@ -2,17 +2,22 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: dna 0.3.1 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = "dna"
|
8
|
-
s.version = "0.3.
|
9
|
+
s.version = "0.3.1"
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
11
13
|
s.authors = ["Austin G. Davis-Richardson"]
|
12
|
-
s.date = "
|
14
|
+
s.date = "2015-10-30"
|
13
15
|
s.description = "Simple FASTA/FASTQ/QSEQ parser library for Ruby."
|
14
16
|
s.email = "harekrishna@gmail.com"
|
15
17
|
s.executables = ["dna"]
|
18
|
+
s.extra_rdoc_files = [
|
19
|
+
"readme.md"
|
20
|
+
]
|
16
21
|
s.files = [
|
17
22
|
".rspec",
|
18
23
|
".rvmrc",
|
@@ -31,6 +36,7 @@ Gem::Specification.new do |s|
|
|
31
36
|
"lib/dna/version.rb",
|
32
37
|
"readme.md",
|
33
38
|
"spec/data/empty.txt",
|
39
|
+
"spec/data/single.fasta",
|
34
40
|
"spec/data/test.fasta",
|
35
41
|
"spec/data/test.fasta.gz",
|
36
42
|
"spec/data/test.fastq",
|
@@ -42,12 +48,11 @@ Gem::Specification.new do |s|
|
|
42
48
|
]
|
43
49
|
s.homepage = "http://audy.github.com/dna"
|
44
50
|
s.licenses = ["MIT"]
|
45
|
-
s.
|
46
|
-
s.rubygems_version = "1.8.25"
|
51
|
+
s.rubygems_version = "2.4.5.1"
|
47
52
|
s.summary = "Simple FASTA/FASTQ/QSEQ parser library for Ruby"
|
48
53
|
|
49
54
|
if s.respond_to? :specification_version then
|
50
|
-
s.specification_version =
|
55
|
+
s.specification_version = 4
|
51
56
|
|
52
57
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
53
58
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
data/lib/dna.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'zlib'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
$:.unshift(File.join(File.expand_path(File.dirname(__FILE__)), 'dna'))
|
4
|
+
|
5
|
+
require 'version'
|
6
|
+
require 'dna'
|
7
|
+
require 'phred'
|
8
|
+
require 'record'
|
data/lib/dna/parsers/fasta.rb
CHANGED
@@ -7,12 +7,16 @@ class FastaParser
|
|
7
7
|
def each
|
8
8
|
sequence, header = nil, nil
|
9
9
|
@handle.each do |line|
|
10
|
+
|
11
|
+
line.strip!
|
12
|
+
next if line.strip.empty? # skip blank lines
|
13
|
+
|
10
14
|
if line[0].chr == '>'
|
11
15
|
yield Fasta.new(:name => header, :sequence => sequence) if sequence
|
12
16
|
sequence = ''
|
13
|
-
header = line[1..-1]
|
17
|
+
header = line[1..-1]
|
14
18
|
else
|
15
|
-
sequence << line.
|
19
|
+
sequence << line.tr(' ','')
|
16
20
|
end
|
17
21
|
end
|
18
22
|
yield Fasta.new(:name => header, :sequence => sequence)
|
data/lib/dna/version.rb
CHANGED
data/readme.md
CHANGED
@@ -1,7 +1,4 @@
|
|
1
|
-
# DNA
|
2
|
-
|
3
|
-
[](http://travis-ci.org/audy/dna)
|
4
|
-
|
1
|
+
# DNA [](http://badge.fury.io/rb/dna) [](http://travis-ci.org/audy/dna) [](https://coveralls.io/r/audy/dna)
|
5
2
|
A biological sequence file parser for Ruby
|
6
3
|
|
7
4
|
Austin G. Davis-Richardson
|
@@ -12,9 +9,8 @@ Features
|
|
12
9
|
- [fasta](http://en.wikipedia.org/wiki/FASTA)
|
13
10
|
- [fastq](http://en.wikipedia.org/wiki/Fastq)
|
14
11
|
- [qseq](http://blog.kokocinski.net/index.php/qseq-files-format?blog=2)
|
15
|
-
-
|
16
|
-
-
|
17
|
-
- Files are read from disk (not stored in memory)
|
12
|
+
- Automatic format detection
|
13
|
+
- Lazy iteration
|
18
14
|
|
19
15
|
## Installation
|
20
16
|
|
@@ -53,9 +49,12 @@ File.open('sequences.qseq') do |handle|
|
|
53
49
|
puts records.first.inspect
|
54
50
|
end
|
55
51
|
|
56
|
-
#
|
57
|
-
#
|
58
|
-
|
52
|
+
# **caveat:** If you are reading from a compressed file
|
53
|
+
# or `stdin` you MUST specify the sequence format:
|
54
|
+
|
55
|
+
require 'zlib'
|
56
|
+
|
57
|
+
Zlib::GzipReader('sequences.fasta.gz') do |handle|
|
59
58
|
records = Dna.new handle, :format => :fasta
|
60
59
|
|
61
60
|
records.each do |record|
|
data/spec/data/test.fasta
CHANGED
data/spec/dna_spec.rb
CHANGED
@@ -13,6 +13,13 @@ describe Dna do
|
|
13
13
|
fasta.format == :empty
|
14
14
|
end
|
15
15
|
|
16
|
+
it 'can read a single record' do
|
17
|
+
File.open('spec/data/single.fasta') do |handle|
|
18
|
+
records = Dna.new(handle).to_a
|
19
|
+
records.first.sequence.should == 'GATC'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
16
23
|
it 'can automatically parse gzipped files' do
|
17
24
|
gzipped.format.should == :fasta
|
18
25
|
end
|
@@ -59,4 +66,4 @@ describe Dna do
|
|
59
66
|
it 'generates qseq objects from a qseq file' do
|
60
67
|
qseq.first.class.should == QSEQ
|
61
68
|
end
|
62
|
-
end
|
69
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
$LOAD_PATH << File.join(File.dirname(__FILE__), 'lib')
|
2
2
|
|
3
|
+
require 'coveralls'
|
4
|
+
Coveralls.wear!
|
5
|
+
|
3
6
|
require 'rspec'
|
4
7
|
require 'dna'
|
5
8
|
|
9
|
+
|
6
10
|
path = File.dirname(__FILE__)
|
7
11
|
fasta_file = File.readlines(File.join(path, 'data/test.fasta'))
|
8
12
|
fastq_file = File.readlines(File.join(path, 'data/test.fastq'))
|
@@ -17,4 +21,4 @@ shared_context "parser stuff" do
|
|
17
21
|
@empty_file = empty_file
|
18
22
|
@gzip_file = File.open(File.join(path, 'data/test.fasta.gz'))
|
19
23
|
end
|
20
|
-
end
|
24
|
+
end
|
metadata
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dna
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Austin G. Davis-Richardson
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-10-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: jeweler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 1.8.4
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 1.8.4
|
30
27
|
description: Simple FASTA/FASTQ/QSEQ parser library for Ruby.
|
@@ -32,11 +29,12 @@ email: harekrishna@gmail.com
|
|
32
29
|
executables:
|
33
30
|
- dna
|
34
31
|
extensions: []
|
35
|
-
extra_rdoc_files:
|
32
|
+
extra_rdoc_files:
|
33
|
+
- readme.md
|
36
34
|
files:
|
37
|
-
- .rspec
|
38
|
-
- .rvmrc
|
39
|
-
- .travis.yml
|
35
|
+
- ".rspec"
|
36
|
+
- ".rvmrc"
|
37
|
+
- ".travis.yml"
|
40
38
|
- Gemfile
|
41
39
|
- Rakefile
|
42
40
|
- bin/dna
|
@@ -51,6 +49,7 @@ files:
|
|
51
49
|
- lib/dna/version.rb
|
52
50
|
- readme.md
|
53
51
|
- spec/data/empty.txt
|
52
|
+
- spec/data/single.fasta
|
54
53
|
- spec/data/test.fasta
|
55
54
|
- spec/data/test.fasta.gz
|
56
55
|
- spec/data/test.fastq
|
@@ -62,29 +61,25 @@ files:
|
|
62
61
|
homepage: http://audy.github.com/dna
|
63
62
|
licenses:
|
64
63
|
- MIT
|
64
|
+
metadata: {}
|
65
65
|
post_install_message:
|
66
66
|
rdoc_options: []
|
67
67
|
require_paths:
|
68
68
|
- lib
|
69
69
|
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
70
|
requirements:
|
72
|
-
- -
|
71
|
+
- - ">="
|
73
72
|
- !ruby/object:Gem::Version
|
74
73
|
version: '0'
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
hash: -3491596072416341887
|
78
74
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
75
|
requirements:
|
81
|
-
- -
|
76
|
+
- - ">="
|
82
77
|
- !ruby/object:Gem::Version
|
83
78
|
version: '0'
|
84
79
|
requirements: []
|
85
80
|
rubyforge_project:
|
86
|
-
rubygems_version:
|
81
|
+
rubygems_version: 2.4.5.1
|
87
82
|
signing_key:
|
88
|
-
specification_version:
|
83
|
+
specification_version: 4
|
89
84
|
summary: Simple FASTA/FASTQ/QSEQ parser library for Ruby
|
90
85
|
test_files: []
|