needleman_wunsch_aligner 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/doc/meta.md +1 -1
- data/lib/needleman_wunsch_aligner.rb +14 -5
- data/lib/needleman_wunsch_aligner/version.rb +1 -1
- data/spec/needleman_wunsch_aligner_spec.rb +16 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c31158bdb60168d6600691d6df14a5fb6f0a39b
|
4
|
+
data.tar.gz: 12d9fee51f294ba98563a4793b0d47327bd1006a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba889fca428eafdc9848931cbe6909c9a793737b8db258d5644d34482bd0cc58f9579be18b49d7effc3fa23c6b35d9c26846aa945865f30970a718789f4d3cf8
|
7
|
+
data.tar.gz: f322ae98853f08553b62975936818f5f316a1cfba4a72f987c6fc1ba8b10c787f23e9613e2c78271b74af755f3d0ee5a24e43216651cab9aa4b1dc5141290e11
|
data/CHANGELOG.md
CHANGED
data/doc/meta.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* Make and commit code changes.
|
6
6
|
* Update `CHANGELOG.md`.
|
7
7
|
* Update the gem version in `lib/needleman_wunsch_aligner/version.rb`.
|
8
|
-
* Commit version bump and changelog.
|
8
|
+
* Commit version bump and changelog with message ‘Bumped version to x.y.z’.
|
9
9
|
* Run `rake release`. This will perform the following steps:
|
10
10
|
* Build a gem package to e.g. pkg/needleman_wunsch_aligner-1.0.1.gem.
|
11
11
|
* Push the `.gem` package to `Rubygems.org`
|
@@ -54,12 +54,21 @@ class NeedlemanWunschAligner
|
|
54
54
|
def inspect_alignment(col_width = 20)
|
55
55
|
aligned_left_seq, aligned_top_seq = get_optimal_alignment
|
56
56
|
s = []
|
57
|
-
aligned_left_seq.each_with_index do |
|
58
|
-
|
57
|
+
aligned_left_seq.each_with_index do |left_el, idx|
|
58
|
+
top_el = aligned_top_seq[idx]
|
59
|
+
delimiter = if top_el == left_el
|
60
|
+
'=' # match
|
61
|
+
elsif gap_indicator == top_el
|
62
|
+
'-' # delete
|
63
|
+
elsif gap_indicator == left_el
|
64
|
+
'+' # insert
|
65
|
+
else
|
66
|
+
'!' # mismatch
|
67
|
+
end
|
59
68
|
s << [
|
60
|
-
|
61
|
-
|
62
|
-
].join(
|
69
|
+
left_el.inspect[0...col_width].rjust(col_width),
|
70
|
+
top_el.inspect[0...col_width].ljust(col_width),
|
71
|
+
].join(" #{ delimiter } ")
|
63
72
|
end
|
64
73
|
s.join("\n")
|
65
74
|
end
|
@@ -33,6 +33,14 @@ describe NeedlemanWunschAligner do
|
|
33
33
|
[1 ,2,3]
|
34
34
|
]
|
35
35
|
],
|
36
|
+
[
|
37
|
+
[1],
|
38
|
+
[1,2,3],
|
39
|
+
[
|
40
|
+
[1,nil,nil],
|
41
|
+
[1,2 ,3]
|
42
|
+
]
|
43
|
+
],
|
36
44
|
[
|
37
45
|
[1,1,1,1],
|
38
46
|
[2,2,2,2],
|
@@ -94,19 +102,19 @@ describe NeedlemanWunschAligner do
|
|
94
102
|
|
95
103
|
it 'prints the alignment' do
|
96
104
|
aligner.inspect_alignment.must_equal([
|
97
|
-
' 1
|
98
|
-
' 2
|
99
|
-
' 3
|
100
|
-
' nil
|
105
|
+
' 1 - nil ',
|
106
|
+
' 2 = 2 ',
|
107
|
+
' 3 = 3 ',
|
108
|
+
' nil + 4 ',
|
101
109
|
].join("\n"))
|
102
110
|
end
|
103
111
|
|
104
112
|
it 'adjusts the column width' do
|
105
113
|
aligner.inspect_alignment(4).must_equal([
|
106
|
-
' 1
|
107
|
-
' 2
|
108
|
-
' 3
|
109
|
-
' nil
|
114
|
+
' 1 - nil ',
|
115
|
+
' 2 = 2 ',
|
116
|
+
' 3 = 3 ',
|
117
|
+
' nil + 4 ',
|
110
118
|
].join("\n"))
|
111
119
|
end
|
112
120
|
|