scbi_fasta 0.1.8 → 0.1.9
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.
- data/History.txt +4 -0
- data/lib/scbi_fasta.rb +1 -1
- data/lib/scbi_fasta/fasta_qual_file.rb +17 -12
- data/test/test_fasta_qual_file.rb +26 -25
- metadata +2 -2
data/History.txt
CHANGED
data/lib/scbi_fasta.rb
CHANGED
@@ -34,11 +34,12 @@ attr_accessor :num_seqs, :end_fasta
|
|
34
34
|
@with_qual = false
|
35
35
|
#raise "File #{qual_file_name} doesn't exists"
|
36
36
|
end
|
37
|
-
|
37
|
+
# puts "With_qual #{fasta_file_name}?: #{@with_qual}"
|
38
38
|
|
39
39
|
@num_seqs = 0 ;
|
40
40
|
|
41
41
|
@seq_name = '';
|
42
|
+
@seq_comment='';
|
42
43
|
@file_fasta = File.open(fasta_file_name) ;
|
43
44
|
@end_fasta=false;
|
44
45
|
|
@@ -67,16 +68,17 @@ attr_accessor :num_seqs, :end_fasta
|
|
67
68
|
|
68
69
|
rewind
|
69
70
|
|
70
|
-
n,f,q=next_seq
|
71
|
+
n,f,q,c = next_seq
|
71
72
|
while (!n.nil?)
|
72
73
|
|
73
74
|
if @with_qual
|
74
|
-
|
75
|
+
|
76
|
+
yield(n,f,q,c)
|
75
77
|
else
|
76
|
-
yield(n,f)
|
78
|
+
yield(n,f,q)
|
77
79
|
end
|
78
80
|
|
79
|
-
n,f,q=next_seq
|
81
|
+
n,f,q,c=next_seq
|
80
82
|
end
|
81
83
|
|
82
84
|
rewind
|
@@ -89,6 +91,7 @@ attr_accessor :num_seqs, :end_fasta
|
|
89
91
|
@num_seqs = 0 ;
|
90
92
|
|
91
93
|
@seq_name = '';
|
94
|
+
@seq_comment= '';
|
92
95
|
@file_fasta.pos=0
|
93
96
|
@end_fasta=false;
|
94
97
|
|
@@ -111,7 +114,7 @@ attr_accessor :num_seqs, :end_fasta
|
|
111
114
|
# envia on_process_sequence
|
112
115
|
if ((!@end_fasta) && (!@with_qual or !@end_qual))
|
113
116
|
|
114
|
-
name_f,fasta=read_fasta
|
117
|
+
name_f,fasta,comment=read_fasta
|
115
118
|
|
116
119
|
if @with_qual
|
117
120
|
|
@@ -129,9 +132,9 @@ attr_accessor :num_seqs, :end_fasta
|
|
129
132
|
if fasta.length == qual.count(' ') + 1
|
130
133
|
if @qual_to_array
|
131
134
|
a_qual = qual.strip.split(/\s/).map{|e| e.to_i}
|
132
|
-
res =[name_f,fasta,a_qual]
|
135
|
+
res =[name_f,fasta,a_qual,comment]
|
133
136
|
else
|
134
|
-
res =[name_f,fasta,qual]
|
137
|
+
res =[name_f,fasta,qual,comment]
|
135
138
|
end
|
136
139
|
|
137
140
|
else #if (!a_qual.empty?)
|
@@ -141,7 +144,7 @@ attr_accessor :num_seqs, :end_fasta
|
|
141
144
|
end
|
142
145
|
|
143
146
|
else # without qual
|
144
|
-
res =[name_f,fasta]
|
147
|
+
res =[name_f,fasta,comment]
|
145
148
|
end
|
146
149
|
end
|
147
150
|
|
@@ -179,17 +182,19 @@ attr_accessor :num_seqs, :end_fasta
|
|
179
182
|
if !@seq_name.empty?
|
180
183
|
# ya había leido una
|
181
184
|
#puts "leida #{@seq_name} + #{@seq_fasta}"
|
182
|
-
res = [@seq_name,seq_fasta]
|
185
|
+
res = [@seq_name,seq_fasta, @seq_comment]
|
183
186
|
end
|
184
187
|
|
185
188
|
|
186
189
|
#get only name
|
187
190
|
line_fasta.gsub!(/^>\s*/,'');
|
188
191
|
|
189
|
-
line_fasta =~ /(^[^\s]+)/
|
192
|
+
# line_fasta =~ /(^[^\s]+)/
|
193
|
+
line_fasta =~ /(^[^\s]+)\s*(.*)$/
|
190
194
|
# remove comments
|
191
195
|
|
192
196
|
@seq_name = $1
|
197
|
+
@seq_comment = $2
|
193
198
|
|
194
199
|
seq_fasta='';
|
195
200
|
|
@@ -211,7 +216,7 @@ attr_accessor :num_seqs, :end_fasta
|
|
211
216
|
|
212
217
|
#si no hay más secuencias hay que devolver la última, CASO EOF
|
213
218
|
if res.nil? and !@seq_name.empty?
|
214
|
-
res= [@seq_name,seq_fasta]
|
219
|
+
res= [@seq_name,seq_fasta, @seq_comment]
|
215
220
|
end
|
216
221
|
|
217
222
|
return res
|
@@ -4,7 +4,7 @@ class TestFastaQualFile < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
|
6
6
|
def setup
|
7
|
-
@test_file='/tmp/
|
7
|
+
@test_file='/tmp/scbi_fasta';
|
8
8
|
|
9
9
|
@seq_fasta='ACTG'
|
10
10
|
@seq_qual=[25]
|
@@ -19,7 +19,7 @@ class TestFastaQualFile < Test::Unit::TestCase
|
|
19
19
|
|
20
20
|
n.times do |c|
|
21
21
|
i = c+1
|
22
|
-
name = ">#{@seq_name+i.to_s} comments"
|
22
|
+
name = ">#{@seq_name+i.to_s} comments#{i}"
|
23
23
|
|
24
24
|
f.puts(name)
|
25
25
|
f.puts(@seq_fasta*i)
|
@@ -46,13 +46,13 @@ class TestFastaQualFile < Test::Unit::TestCase
|
|
46
46
|
|
47
47
|
100.times do |c|
|
48
48
|
i = c+1
|
49
|
-
n,s,q = fqr.next_seq
|
49
|
+
n,s,q,c = fqr.next_seq
|
50
50
|
|
51
51
|
#puts n,s.length,q.split(' ').length
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
52
|
+
assert_equal(@seq_name+i.to_s,n)
|
53
|
+
assert_equal(@seq_fasta*i,s)
|
54
|
+
assert_equal((@seq_qual*i*@seq_fasta.length).join(' '),q)
|
55
|
+
assert_equal('comments'+i.to_s,c)
|
56
56
|
end
|
57
57
|
|
58
58
|
fqr.close
|
@@ -74,13 +74,13 @@ class TestFastaQualFile < Test::Unit::TestCase
|
|
74
74
|
|
75
75
|
i=1
|
76
76
|
|
77
|
-
fqr.each do |n,s,q|
|
77
|
+
fqr.each do |n,s,q,c|
|
78
78
|
|
79
79
|
#puts n,s.length,q.split(' ').length
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
80
|
+
assert_equal(@seq_name+i.to_s,n)
|
81
|
+
assert_equal(@seq_fasta*i,s)
|
82
|
+
assert_equal((@seq_qual*i*@seq_fasta.length).join(' '),q)
|
83
|
+
assert_equal('comments'+i.to_s,c)
|
84
84
|
i+=1
|
85
85
|
end
|
86
86
|
|
@@ -105,11 +105,12 @@ class TestFastaQualFile < Test::Unit::TestCase
|
|
105
105
|
|
106
106
|
100.times do |c|
|
107
107
|
i = c+1
|
108
|
-
n,s,q = fqr.next_seq
|
108
|
+
n,s,c,q = fqr.next_seq
|
109
109
|
|
110
|
-
#puts n,s.length,q.split(' ').length
|
111
|
-
|
112
|
-
|
110
|
+
# puts n,s.length,q.split(' ').length
|
111
|
+
assert_equal(@seq_name+i.to_s,n)
|
112
|
+
assert_equal(@seq_fasta*i,s)
|
113
|
+
assert_equal('comments'+i.to_s,c)
|
113
114
|
assert(q.nil?)
|
114
115
|
|
115
116
|
end
|
@@ -135,12 +136,12 @@ class TestFastaQualFile < Test::Unit::TestCase
|
|
135
136
|
|
136
137
|
i=1
|
137
138
|
|
138
|
-
fqr.each do |n,s,q|
|
139
|
-
|
139
|
+
fqr.each do |n,s,c,q|
|
140
|
+
# puts n,s,q
|
140
141
|
#puts n,s.length,q.split(' ').length
|
141
|
-
|
142
|
-
|
143
|
-
|
142
|
+
assert_equal(@seq_name+i.to_s,n)
|
143
|
+
assert_equal(@seq_fasta*i,s)
|
144
|
+
assert_equal('comments'+i.to_s,c)
|
144
145
|
assert(q.nil?)
|
145
146
|
|
146
147
|
i+=1
|
@@ -150,10 +151,10 @@ class TestFastaQualFile < Test::Unit::TestCase
|
|
150
151
|
|
151
152
|
fqr.close
|
152
153
|
|
153
|
-
rescue Exception => e
|
154
|
-
|
155
|
-
|
156
|
-
|
154
|
+
# rescue Exception => e
|
155
|
+
# puts "failed in #{n} , #{s}"
|
156
|
+
# puts "expected #{@seq_name+i.to_s} , #{@seq_fasta*i==s}"
|
157
|
+
# puts e.message, e.backtrace
|
157
158
|
|
158
159
|
end
|
159
160
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: scbi_fasta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.9
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Almudena Bocinos
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-10-28 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hoe
|