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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5b038fdcd831fb5de1e7d749633c39c15220d0ae
4
- data.tar.gz: f2d023f45f941cc6e04b9bd6954f882d00b32968
3
+ metadata.gz: 4c31158bdb60168d6600691d6df14a5fb6f0a39b
4
+ data.tar.gz: 12d9fee51f294ba98563a4793b0d47327bd1006a
5
5
  SHA512:
6
- metadata.gz: cd404a2146c193de74202b83706c6d205ecfa3fcf2dc79b648b068ca283fb7ba67e79db593fbbd6b89114449cf396a8ddd8883a8375597664ed2225eae135746
7
- data.tar.gz: 9c42647c54ce3d85908cfed82d4fdac5cc73afd5ceeb6346679a8a55025e7b9fb8f8c2d9968fedf4034f7348a2a00bf70ea741592605c7f70312aa12058f13ca
6
+ metadata.gz: ba889fca428eafdc9848931cbe6909c9a793737b8db258d5644d34482bd0cc58f9579be18b49d7effc3fa23c6b35d9c26846aa945865f30970a718789f4d3cf8
7
+ data.tar.gz: f322ae98853f08553b62975936818f5f316a1cfba4a72f987c6fc1ba8b10c787f23e9613e2c78271b74af755f3d0ee5a24e43216651cab9aa4b1dc5141290e11
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 1.0.3
2
+
3
+ * Improved #inspect_alignment output.
4
+
1
5
  ### 1.0.2
2
6
 
3
7
  * Memoized computation of optimal alignment for better performance.
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 |ls_el, idx|
58
- rs_el = aligned_top_seq[idx]
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
- ls_el.inspect[0...col_width].rjust(col_width),
61
- rs_el.inspect[0...col_width].ljust(col_width),
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
@@ -1,3 +1,3 @@
1
1
  class NeedlemanWunschAligner
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  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 | nil ',
98
- ' 2 | 2 ',
99
- ' 3 | 3 ',
100
- ' nil | 4 ',
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 | nil ',
107
- ' 2 | 2 ',
108
- ' 3 | 3 ',
109
- ' nil | 4 ',
114
+ ' 1 - nil ',
115
+ ' 2 = 2 ',
116
+ ' 3 = 3 ',
117
+ ' nil + 4 ',
110
118
  ].join("\n"))
111
119
  end
112
120
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: needleman_wunsch_aligner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jo Hund