dna 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/parsers/fasta.rb +20 -0
- data/lib/parsers/fastq.rb +26 -0
- data/lib/parsers/qseq.rb +26 -0
- data/spec/data/test.fasta +12 -0
- data/spec/data/test.fastq +8 -0
- data/spec/data/test.qseq +2 -0
- metadata +9 -3
@@ -0,0 +1,20 @@
|
|
1
|
+
class FastaParser
|
2
|
+
|
3
|
+
def initialize(handle)
|
4
|
+
@handle = handle
|
5
|
+
end
|
6
|
+
|
7
|
+
def each
|
8
|
+
sequence, header = nil, nil
|
9
|
+
@handle.each do |line|
|
10
|
+
if line[0].chr == '>'
|
11
|
+
yield Fasta.new(:name => header, :sequence => sequence) if sequence
|
12
|
+
sequence = ''
|
13
|
+
header = line[1..-1].strip
|
14
|
+
else
|
15
|
+
sequence << line.strip.tr(' ','')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
yield Fasta.new(:name => header, :sequence => sequence)
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class FastqParser
|
2
|
+
|
3
|
+
def initialize(handle)
|
4
|
+
@handle = handle
|
5
|
+
end
|
6
|
+
|
7
|
+
def each
|
8
|
+
c = (0..3).cycle
|
9
|
+
params = { :name => nil, :sequence => nil, :quality => nil }
|
10
|
+
@handle.each do |line|
|
11
|
+
n = c.next
|
12
|
+
case n
|
13
|
+
when 0
|
14
|
+
params[:name] = line.strip[1..-1]
|
15
|
+
when 1
|
16
|
+
params[:sequence] = line.strip
|
17
|
+
when 2
|
18
|
+
nil
|
19
|
+
when 3
|
20
|
+
params[:quality] = line.strip
|
21
|
+
record = Fastq.new params
|
22
|
+
yield record
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/parsers/qseq.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
class QSEQParser
|
2
|
+
|
3
|
+
def initialize(handle)
|
4
|
+
@handle = handle
|
5
|
+
end
|
6
|
+
|
7
|
+
def each
|
8
|
+
@handle.each do |line|
|
9
|
+
line = line.strip.split("\t")
|
10
|
+
record = QSEQ.new(
|
11
|
+
:machine => line[0],
|
12
|
+
:run => line[1],
|
13
|
+
:lane => line[2],
|
14
|
+
:tile => line[3],
|
15
|
+
:x => line[4],
|
16
|
+
:y => line[5],
|
17
|
+
:index => line[6],
|
18
|
+
:read_no => line[7],
|
19
|
+
:sequence => line[8],
|
20
|
+
:quality => line[9],
|
21
|
+
:filtered => line[10]
|
22
|
+
)
|
23
|
+
yield record
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
@1
|
2
|
+
TGAAACTTATTGATCACCCCGCTTGGCGTTGGGGAGAAATTCAGAAAAGAGTGCTTGATGGGGCGCCACATGCCGTGCAACCCACTCTCTTTCACGCAGCGCGCCCCA
|
3
|
+
+
|
4
|
+
5888.6778888650/-//&,(,./*-11'//0&,-0.(.,,,,/2/&-,,,,,.(.,(,..&---&-,,,((*-----*+.&,,,,,(//&,,,-(,,+(,,,--&(
|
5
|
+
@2
|
6
|
+
GTCGCGGCTTACCACCCAACGATTTTTTTTAGAGGTGCTGGTTTCA
|
7
|
+
+
|
8
|
+
2550//*-1./4.--/'+.2.,,,,,,,,&(/00.11426554+13
|
data/spec/data/test.qseq
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
HWUSI-EAS1690 0007 1 1 1139 20892 0 1 GTGTGCCAGCCGCCGCGGTAATACGTAGGTGGCAAGCGTTGTCCGGATTTATTGGGTGTAAAGGGCGCGTAGGCGGCCCTGTAAGTCAGTGGTGAAATCTC fffffffffffffffeeeeedddddabdd\dddabeeeee^aabdcabddaKdddc`RcY`_c`aT`Ib]Tc^\cZEKOZ_\]\bZVK^UZG]`[^BBBBB 1
|
2
|
+
HWUSI-EAS1690 0007 1 1 1174 18551 0 1 GTGTGCCAGCAGCCGCGGTAATACAGAGGGGGCAAGCGTTGTTCGGAATTACTGGGCGTAAAGGGCGCGTAGGCGGCCCGCTAAGCCGAACGTGAAATCCC ffffffffffcffffffeffddddYdb^ddbJ]Y^eeede^eadeedLeed\ddddIdddd`ddd^edcTacaa`aJ^aLZ^]Y^BBBBBBBBBBBBBBBB 1
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dna
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 8
|
10
|
+
version: 0.0.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Austin G. Davis-Richardson
|
@@ -28,9 +28,15 @@ extra_rdoc_files: []
|
|
28
28
|
|
29
29
|
files:
|
30
30
|
- lib/dna.rb
|
31
|
+
- lib/parsers/fasta.rb
|
32
|
+
- lib/parsers/fastq.rb
|
33
|
+
- lib/parsers/qseq.rb
|
31
34
|
- spec/dna_spec.rb
|
32
35
|
- spec/record_spec.rb
|
33
36
|
- spec/spec_helper.rb
|
37
|
+
- spec/data/test.fasta
|
38
|
+
- spec/data/test.fastq
|
39
|
+
- spec/data/test.qseq
|
34
40
|
- readme.md
|
35
41
|
homepage: http://github.com/audy/dna
|
36
42
|
licenses: []
|