BioDSL 1.0.1 → 1.0.2

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.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/BioDSL.gemspec +1 -1
  4. data/Gemfile +6 -0
  5. data/README.md +289 -155
  6. data/Rakefile +18 -16
  7. data/lib/BioDSL.rb +1 -1
  8. data/lib/BioDSL/cary.rb +78 -53
  9. data/lib/BioDSL/command.rb +2 -2
  10. data/lib/BioDSL/commands.rb +1 -1
  11. data/lib/BioDSL/commands/add_key.rb +1 -1
  12. data/lib/BioDSL/commands/align_seq_mothur.rb +4 -4
  13. data/lib/BioDSL/commands/analyze_residue_distribution.rb +5 -5
  14. data/lib/BioDSL/commands/assemble_pairs.rb +13 -13
  15. data/lib/BioDSL/commands/assemble_seq_idba.rb +7 -9
  16. data/lib/BioDSL/commands/assemble_seq_ray.rb +13 -13
  17. data/lib/BioDSL/commands/assemble_seq_spades.rb +4 -4
  18. data/lib/BioDSL/commands/classify_seq.rb +8 -8
  19. data/lib/BioDSL/commands/classify_seq_mothur.rb +5 -5
  20. data/lib/BioDSL/commands/clip_primer.rb +7 -7
  21. data/lib/BioDSL/commands/cluster_otus.rb +5 -5
  22. data/lib/BioDSL/commands/collapse_otus.rb +2 -2
  23. data/lib/BioDSL/commands/collect_otus.rb +2 -2
  24. data/lib/BioDSL/commands/complement_seq.rb +4 -4
  25. data/lib/BioDSL/commands/count.rb +1 -1
  26. data/lib/BioDSL/commands/count_values.rb +2 -2
  27. data/lib/BioDSL/commands/degap_seq.rb +6 -7
  28. data/lib/BioDSL/commands/dereplicate_seq.rb +1 -1
  29. data/lib/BioDSL/commands/dump.rb +2 -2
  30. data/lib/BioDSL/commands/filter_rrna.rb +4 -4
  31. data/lib/BioDSL/commands/genecall.rb +7 -7
  32. data/lib/BioDSL/commands/grab.rb +1 -1
  33. data/lib/BioDSL/commands/index_taxonomy.rb +3 -3
  34. data/lib/BioDSL/commands/mask_seq.rb +4 -4
  35. data/lib/BioDSL/commands/mean_scores.rb +2 -2
  36. data/lib/BioDSL/commands/merge_pair_seq.rb +3 -3
  37. data/lib/BioDSL/commands/merge_table.rb +1 -1
  38. data/lib/BioDSL/commands/merge_values.rb +1 -1
  39. data/lib/BioDSL/commands/plot_heatmap.rb +4 -5
  40. data/lib/BioDSL/commands/plot_histogram.rb +4 -4
  41. data/lib/BioDSL/commands/plot_matches.rb +5 -5
  42. data/lib/BioDSL/commands/plot_residue_distribution.rb +6 -6
  43. data/lib/BioDSL/commands/plot_scores.rb +7 -7
  44. data/lib/BioDSL/commands/random.rb +1 -1
  45. data/lib/BioDSL/commands/read_fasta.rb +9 -9
  46. data/lib/BioDSL/commands/read_fastq.rb +16 -16
  47. data/lib/BioDSL/commands/read_table.rb +2 -3
  48. data/lib/BioDSL/commands/reverse_seq.rb +4 -4
  49. data/lib/BioDSL/commands/slice_align.rb +4 -4
  50. data/lib/BioDSL/commands/slice_seq.rb +3 -3
  51. data/lib/BioDSL/commands/sort.rb +1 -1
  52. data/lib/BioDSL/commands/split_pair_seq.rb +6 -7
  53. data/lib/BioDSL/commands/split_values.rb +2 -2
  54. data/lib/BioDSL/commands/trim_primer.rb +13 -8
  55. data/lib/BioDSL/commands/trim_seq.rb +5 -5
  56. data/lib/BioDSL/commands/uchime_ref.rb +6 -6
  57. data/lib/BioDSL/commands/uclust.rb +5 -5
  58. data/lib/BioDSL/commands/unique_values.rb +1 -1
  59. data/lib/BioDSL/commands/usearch_global.rb +2 -2
  60. data/lib/BioDSL/commands/usearch_local.rb +2 -2
  61. data/lib/BioDSL/commands/write_fasta.rb +7 -9
  62. data/lib/BioDSL/commands/write_fastq.rb +4 -4
  63. data/lib/BioDSL/commands/write_table.rb +3 -3
  64. data/lib/BioDSL/commands/write_tree.rb +2 -3
  65. data/lib/BioDSL/config.rb +2 -2
  66. data/lib/BioDSL/csv.rb +8 -10
  67. data/lib/BioDSL/debug.rb +1 -1
  68. data/lib/BioDSL/fasta.rb +54 -40
  69. data/lib/BioDSL/fastq.rb +35 -32
  70. data/lib/BioDSL/filesys.rb +56 -47
  71. data/lib/BioDSL/fork.rb +1 -1
  72. data/lib/BioDSL/hamming.rb +1 -1
  73. data/lib/BioDSL/helpers.rb +1 -1
  74. data/lib/BioDSL/helpers/aux_helper.rb +1 -1
  75. data/lib/BioDSL/helpers/email_helper.rb +1 -1
  76. data/lib/BioDSL/helpers/history_helper.rb +1 -1
  77. data/lib/BioDSL/helpers/log_helper.rb +1 -1
  78. data/lib/BioDSL/helpers/options_helper.rb +1 -1
  79. data/lib/BioDSL/helpers/status_helper.rb +1 -1
  80. data/lib/BioDSL/html_report.rb +1 -1
  81. data/lib/BioDSL/math.rb +1 -1
  82. data/lib/BioDSL/mummer.rb +1 -1
  83. data/lib/BioDSL/pipeline.rb +1 -1
  84. data/lib/BioDSL/seq.rb +240 -231
  85. data/lib/BioDSL/seq/ambiguity.rb +1 -1
  86. data/lib/BioDSL/seq/assemble.rb +1 -1
  87. data/lib/BioDSL/seq/backtrack.rb +93 -76
  88. data/lib/BioDSL/seq/digest.rb +1 -1
  89. data/lib/BioDSL/seq/dynamic.rb +43 -55
  90. data/lib/BioDSL/seq/homopolymer.rb +34 -36
  91. data/lib/BioDSL/seq/kmer.rb +67 -50
  92. data/lib/BioDSL/seq/levenshtein.rb +35 -40
  93. data/lib/BioDSL/seq/translate.rb +64 -55
  94. data/lib/BioDSL/seq/trim.rb +60 -50
  95. data/lib/BioDSL/serializer.rb +1 -1
  96. data/lib/BioDSL/stream.rb +1 -1
  97. data/lib/BioDSL/taxonomy.rb +1 -1
  98. data/lib/BioDSL/test.rb +1 -1
  99. data/lib/BioDSL/tmp_dir.rb +1 -1
  100. data/lib/BioDSL/usearch.rb +1 -1
  101. data/lib/BioDSL/verbose.rb +1 -1
  102. data/lib/BioDSL/version.rb +2 -2
  103. data/test/BioDSL/commands/test_add_key.rb +1 -1
  104. data/test/BioDSL/commands/test_align_seq_mothur.rb +1 -1
  105. data/test/BioDSL/commands/test_analyze_residue_distribution.rb +1 -1
  106. data/test/BioDSL/commands/test_assemble_pairs.rb +1 -1
  107. data/test/BioDSL/commands/test_assemble_seq_idba.rb +1 -1
  108. data/test/BioDSL/commands/test_assemble_seq_ray.rb +1 -1
  109. data/test/BioDSL/commands/test_assemble_seq_spades.rb +1 -1
  110. data/test/BioDSL/commands/test_classify_seq.rb +1 -1
  111. data/test/BioDSL/commands/test_classify_seq_mothur.rb +1 -1
  112. data/test/BioDSL/commands/test_clip_primer.rb +1 -1
  113. data/test/BioDSL/commands/test_cluster_otus.rb +1 -1
  114. data/test/BioDSL/commands/test_collapse_otus.rb +1 -1
  115. data/test/BioDSL/commands/test_collect_otus.rb +1 -1
  116. data/test/BioDSL/commands/test_complement_seq.rb +1 -1
  117. data/test/BioDSL/commands/test_count.rb +1 -1
  118. data/test/BioDSL/commands/test_count_values.rb +1 -1
  119. data/test/BioDSL/commands/test_degap_seq.rb +1 -1
  120. data/test/BioDSL/commands/test_dereplicate_seq.rb +1 -1
  121. data/test/BioDSL/commands/test_dump.rb +1 -1
  122. data/test/BioDSL/commands/test_filter_rrna.rb +1 -1
  123. data/test/BioDSL/commands/test_genecall.rb +1 -1
  124. data/test/BioDSL/commands/test_grab.rb +1 -1
  125. data/test/BioDSL/commands/test_index_taxonomy.rb +1 -1
  126. data/test/BioDSL/commands/test_mask_seq.rb +1 -1
  127. data/test/BioDSL/commands/test_mean_scores.rb +1 -1
  128. data/test/BioDSL/commands/test_merge_pair_seq.rb +1 -1
  129. data/test/BioDSL/commands/test_merge_table.rb +1 -1
  130. data/test/BioDSL/commands/test_merge_values.rb +1 -1
  131. data/test/BioDSL/commands/test_plot_heatmap.rb +1 -1
  132. data/test/BioDSL/commands/test_plot_histogram.rb +1 -1
  133. data/test/BioDSL/commands/test_plot_matches.rb +1 -1
  134. data/test/BioDSL/commands/test_plot_residue_distribution.rb +1 -1
  135. data/test/BioDSL/commands/test_plot_scores.rb +1 -1
  136. data/test/BioDSL/commands/test_random.rb +1 -1
  137. data/test/BioDSL/commands/test_read_fasta.rb +1 -1
  138. data/test/BioDSL/commands/test_read_fastq.rb +1 -1
  139. data/test/BioDSL/commands/test_read_table.rb +1 -1
  140. data/test/BioDSL/commands/test_reverse_seq.rb +1 -1
  141. data/test/BioDSL/commands/test_slice_align.rb +1 -1
  142. data/test/BioDSL/commands/test_slice_seq.rb +1 -1
  143. data/test/BioDSL/commands/test_sort.rb +1 -1
  144. data/test/BioDSL/commands/test_split_pair_seq.rb +1 -1
  145. data/test/BioDSL/commands/test_split_values.rb +1 -1
  146. data/test/BioDSL/commands/test_trim_primer.rb +1 -1
  147. data/test/BioDSL/commands/test_trim_seq.rb +1 -1
  148. data/test/BioDSL/commands/test_uchime_ref.rb +1 -1
  149. data/test/BioDSL/commands/test_uclust.rb +1 -1
  150. data/test/BioDSL/commands/test_unique_values.rb +1 -1
  151. data/test/BioDSL/commands/test_usearch_global.rb +1 -1
  152. data/test/BioDSL/commands/test_usearch_local.rb +1 -1
  153. data/test/BioDSL/commands/test_write_fasta.rb +1 -1
  154. data/test/BioDSL/commands/test_write_fastq.rb +1 -1
  155. data/test/BioDSL/commands/test_write_table.rb +1 -1
  156. data/test/BioDSL/commands/test_write_tree.rb +1 -1
  157. data/test/BioDSL/helpers/test_options_helper.rb +3 -3
  158. data/test/BioDSL/seq/test_assemble.rb +58 -56
  159. data/test/BioDSL/seq/test_backtrack.rb +83 -81
  160. data/test/BioDSL/seq/test_digest.rb +47 -45
  161. data/test/BioDSL/seq/test_dynamic.rb +66 -64
  162. data/test/BioDSL/seq/test_homopolymer.rb +35 -33
  163. data/test/BioDSL/seq/test_kmer.rb +29 -28
  164. data/test/BioDSL/seq/test_translate.rb +44 -42
  165. data/test/BioDSL/seq/test_trim.rb +59 -57
  166. data/test/BioDSL/test_cary.rb +1 -1
  167. data/test/BioDSL/test_command.rb +2 -2
  168. data/test/BioDSL/test_csv.rb +34 -31
  169. data/test/BioDSL/test_debug.rb +31 -31
  170. data/test/BioDSL/test_fasta.rb +30 -29
  171. data/test/BioDSL/test_fastq.rb +27 -26
  172. data/test/BioDSL/test_filesys.rb +28 -27
  173. data/test/BioDSL/test_fork.rb +29 -28
  174. data/test/BioDSL/test_math.rb +31 -30
  175. data/test/BioDSL/test_mummer.rb +1 -1
  176. data/test/BioDSL/test_pipeline.rb +1 -1
  177. data/test/BioDSL/test_seq.rb +42 -41
  178. data/test/BioDSL/test_serializer.rb +35 -33
  179. data/test/BioDSL/test_stream.rb +28 -27
  180. data/test/BioDSL/test_taxonomy.rb +38 -37
  181. data/test/BioDSL/test_test.rb +32 -31
  182. data/test/BioDSL/test_tmp_dir.rb +1 -1
  183. data/test/BioDSL/test_usearch.rb +28 -27
  184. data/test/BioDSL/test_verbose.rb +32 -31
  185. data/test/helper.rb +34 -31
  186. metadata +3 -2
@@ -1,173 +1,175 @@
1
1
  #!/usr/bin/env ruby
2
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', '..')
3
-
4
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
5
- # #
6
- # Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
7
- # #
8
- # This program is free software; you can redistribute it and/or #
9
- # modify it under the terms of the GNU General Public License #
10
- # as published by the Free Software Foundation; either version 2 #
11
- # of the License, or (at your option) any later version. #
12
- # #
13
- # This program is distributed in the hope that it will be useful, #
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of #
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
16
- # GNU General Public License for more details. #
17
- # #
18
- # You should have received a copy of the GNU General Public License #
19
- # along with this program; if not, write to the Free Software #
20
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
21
- # #
22
- # http://www.gnu.org/copyleft/gpl.html #
23
- # #
24
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
25
- # #
26
- # This software is part of BioDSL (www.BioDSL.org). #
27
- # #
28
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', '..', '..')
3
+
4
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
5
+ # #
6
+ # Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
7
+ # #
8
+ # This program is free software; you can redistribute it and/or #
9
+ # modify it under the terms of the GNU General Public License #
10
+ # as published by the Free Software Foundation; either version 2 #
11
+ # of the License, or (at your option) any later version. #
12
+ # #
13
+ # This program is distributed in the hope that it will be useful, #
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of #
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
16
+ # GNU General Public License for more details. #
17
+ # #
18
+ # You should have received a copy of the GNU General Public License #
19
+ # along with this program; if not, write to the Free Software #
20
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, #
21
+ # USA. #
22
+ # #
23
+ # http://www.gnu.org/copyleft/gpl.html #
24
+ # #
25
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
26
+ # #
27
+ # This software is part of BioDSL (http://maasha.github.io/BioDSL). #
28
+ # #
29
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
29
30
 
30
31
  require 'test/helper'
31
32
 
33
+ # Test class for BackTrack.
32
34
  class BackTrackTest < Test::Unit::TestCase
33
35
  def setup
34
36
  # 0 1
35
37
  # 01234567890123456789
36
- @seq = BioDSL::Seq.new(seq: "tacgatgctagcatgcacgg")
38
+ @seq = BioDSL::Seq.new(seq: 'tacgatgctagcatgcacgg')
37
39
  @seq.extend(BioDSL::BackTrack)
38
40
  end
39
41
 
40
- test "#patscan with bad pattern raises" do
41
- ["", "X", "1"].each { |pattern|
42
+ test '#patscan with bad pattern raises' do
43
+ ['', 'X', '1'].each { |pattern|
42
44
  assert_raise(BioDSL::BackTrackError) { @seq.patscan(pattern) }
43
45
  }
44
46
  end
45
47
 
46
- test "#patscan with OK pattern dont raise" do
47
- ["N", "atcg"].each { |pattern|
48
+ test '#patscan with OK pattern dont raise' do
49
+ ['N', 'atcg'].each { |pattern|
48
50
  assert_nothing_raised { @seq.patscan(pattern) }
49
51
  }
50
52
  end
51
53
 
52
- test "#patscan with bad start raises" do
54
+ test '#patscan with bad start raises' do
53
55
  [-1, 20].each { |start|
54
- assert_raise(BioDSL::BackTrackError) { @seq.patscan("N", start: start) }
56
+ assert_raise(BioDSL::BackTrackError) { @seq.patscan('N', start: start) }
55
57
  }
56
58
  end
57
59
 
58
- test "#patscan with OK start dont raise" do
60
+ test '#patscan with OK start dont raise' do
59
61
  [0, 19].each { |start|
60
- assert_nothing_raised { @seq.patscan("N", start: start) }
62
+ assert_nothing_raised { @seq.patscan('N', start: start) }
61
63
  }
62
64
  end
63
65
 
64
- test "#patscan with bad stop raises" do
66
+ test '#patscan with bad stop raises' do
65
67
  [-1, 20].each { |stop|
66
- assert_raise(BioDSL::BackTrackError) { @seq.patscan("N", stop: stop) }
68
+ assert_raise(BioDSL::BackTrackError) { @seq.patscan('N', stop: stop) }
67
69
  }
68
70
  end
69
71
 
70
- test "#patscan with OK stop dont raise" do
72
+ test '#patscan with OK stop dont raise' do
71
73
  [0, 19].each { |stop|
72
- assert_nothing_raised { @seq.patscan("N", stop: stop) }
74
+ assert_nothing_raised { @seq.patscan('N', stop: stop) }
73
75
  }
74
76
  end
75
77
 
76
- test "#patscan with stop returns correctly" do
77
- assert_nil(@seq.patmatch("G", start: 0, stop: 2))
78
- assert_equal("3:1:g", @seq.patmatch("G", start: 0, stop: 3).to_s)
78
+ test '#patscan with stop returns correctly' do
79
+ assert_nil(@seq.patmatch('G', start: 0, stop: 2))
80
+ assert_equal('3:1:g', @seq.patmatch('G', start: 0, stop: 3).to_s)
79
81
  end
80
82
 
81
- test "#patscan with bad mis raises" do
83
+ test '#patscan with bad mis raises' do
82
84
  [-1, 6].each { |mis|
83
- assert_raise(BioDSL::BackTrackError) { @seq.patscan("N", max_mismatches: mis) }
85
+ assert_raise(BioDSL::BackTrackError) { @seq.patscan('N', max_mismatches: mis) }
84
86
  }
85
87
  end
86
88
 
87
- test "#patscan with OK mis dont raise" do
89
+ test '#patscan with OK mis dont raise' do
88
90
  [0, 5].each { |mis|
89
- assert_nothing_raised { @seq.patscan("N", max_mismatches: mis) }
91
+ assert_nothing_raised { @seq.patscan('N', max_mismatches: mis) }
90
92
  }
91
93
  end
92
94
 
93
- test "#patscan with bad ins raises" do
95
+ test '#patscan with bad ins raises' do
94
96
  [-1, 6].each { |ins|
95
- assert_raise(BioDSL::BackTrackError) { @seq.patscan("N", max_insertions: ins) }
97
+ assert_raise(BioDSL::BackTrackError) { @seq.patscan('N', max_insertions: ins) }
96
98
  }
97
99
  end
98
100
 
99
- test "#patscan with OK ins dont raise" do
101
+ test '#patscan with OK ins dont raise' do
100
102
  [0, 5].each { |ins|
101
- assert_nothing_raised { @seq.patscan("N", max_insertions: ins) }
103
+ assert_nothing_raised { @seq.patscan('N', max_insertions: ins) }
102
104
  }
103
105
  end
104
106
 
105
- test "#patscan with bad del raises" do
107
+ test '#patscan with bad del raises' do
106
108
  [-1, 6].each { |del|
107
- assert_raise(BioDSL::BackTrackError) { @seq.patscan("N", max_deletions: del) }
109
+ assert_raise(BioDSL::BackTrackError) { @seq.patscan('N', max_deletions: del) }
108
110
  }
109
111
  end
110
112
 
111
- test "#patscan with OK del dont raise" do
113
+ test '#patscan with OK del dont raise' do
112
114
  [0, 5].each { |del|
113
- assert_nothing_raised { @seq.patscan("N", max_deletions: del) }
115
+ assert_nothing_raised { @seq.patscan('N', max_deletions: del) }
114
116
  }
115
117
  end
116
118
 
117
- test "#patscan perfect left is ok" do
118
- assert_equal("0:7:tacgatg", @seq.patscan("TACGATG").first.to_s)
119
+ test '#patscan perfect left is ok' do
120
+ assert_equal('0:7:tacgatg', @seq.patscan('TACGATG').first.to_s)
119
121
  end
120
122
 
121
- test "#patscan perfect right is ok" do
122
- assert_equal("13:7:tgcacgg", @seq.patscan("TGCACGG").first.to_s)
123
+ test '#patscan perfect right is ok' do
124
+ assert_equal('13:7:tgcacgg', @seq.patscan('TGCACGG').first.to_s)
123
125
  end
124
126
 
125
- test "#patscan ambiguity is ok" do
126
- assert_equal("13:7:tgcacgg", @seq.patscan("TGCACNN").first.to_s)
127
+ test '#patscan ambiguity is ok' do
128
+ assert_equal('13:7:tgcacgg', @seq.patscan('TGCACNN').first.to_s)
127
129
  end
128
130
 
129
- test "#patscan start is ok" do
130
- assert_equal("10:1:g", @seq.patscan("N", start: 10).first.to_s)
131
- assert_equal("19:1:g", @seq.patscan("N", start: 10).last.to_s)
131
+ test '#patscan start is ok' do
132
+ assert_equal('10:1:g', @seq.patscan('N', start: 10).first.to_s)
133
+ assert_equal('19:1:g', @seq.patscan('N', start: 10).last.to_s)
132
134
  end
133
135
 
134
- test "#patscan mis left is ok" do
135
- assert_equal("0:7:tacgatg", @seq.patscan("Aacgatg", max_mismatches: 1).first.to_s)
136
+ test '#patscan mis left is ok' do
137
+ assert_equal('0:7:tacgatg', @seq.patscan('Aacgatg', max_mismatches: 1).first.to_s)
136
138
  end
137
139
 
138
- test "#patscan mis right is ok" do
139
- assert_equal("13:7:tgcacgg", @seq.patscan("tgcacgA", max_mismatches: 1).first.to_s)
140
+ test '#patscan mis right is ok' do
141
+ assert_equal('13:7:tgcacgg', @seq.patscan('tgcacgA', max_mismatches: 1).first.to_s)
140
142
  end
141
143
 
142
- test "#patscan ins left is ok" do
143
- assert_equal("0:7:tacgatg", @seq.patscan("Atacgatg", max_insertions: 1).first.to_s)
144
+ test '#patscan ins left is ok' do
145
+ assert_equal('0:7:tacgatg', @seq.patscan('Atacgatg', max_insertions: 1).first.to_s)
144
146
  end
145
147
 
146
- test "#patscan ins right is ok" do
147
- assert_equal("13:7:tgcacgg", @seq.patscan("tgcacggA", max_insertions: 1).first.to_s)
148
+ test '#patscan ins right is ok' do
149
+ assert_equal('13:7:tgcacgg', @seq.patscan('tgcacggA', max_insertions: 1).first.to_s)
148
150
  end
149
151
 
150
- test "#patscan del left is ok" do
151
- assert_equal("0:7:tacgatg", @seq.patscan("acgatg", max_deletions: 1).first.to_s)
152
+ test '#patscan del left is ok' do
153
+ assert_equal('0:7:tacgatg', @seq.patscan('acgatg', max_deletions: 1).first.to_s)
152
154
  end
153
155
 
154
- test "#patscan del right is ok" do
155
- assert_equal("12:8:atgcacgg", @seq.patscan("tgcacgg", max_deletions: 1).first.to_s)
156
+ test '#patscan del right is ok' do
157
+ assert_equal('12:8:atgcacgg', @seq.patscan('tgcacgg', max_deletions: 1).first.to_s)
156
158
  end
157
159
 
158
- test "#patscan ambiguity mis ins del all ok" do
159
- assert_equal("0:20:tacgatgctagcatgcacgg", @seq.patscan("tacatgcNagGatgcCacgg",
160
+ test '#patscan ambiguity mis ins del all ok' do
161
+ assert_equal('0:20:tacgatgctagcatgcacgg', @seq.patscan('tacatgcNagGatgcCacgg',
160
162
  max_mismatches: 1,
161
163
  max_insertions: 1,
162
164
  max_deletions: 1).first.to_s)
163
165
  end
164
166
 
165
- test "#patmatch in block context returns correctly" do
166
- @seq.patmatch("tacatgcNagGatgcCacgg",
167
+ test '#patmatch in block context returns correctly' do
168
+ @seq.patmatch('tacatgcNagGatgcCacgg',
167
169
  max_mismatches: 1,
168
170
  max_insertions: 1,
169
171
  max_deletions: 1) do |hit|
170
- assert_equal("tacgatgctagcatgcacgg", hit.match)
172
+ assert_equal('tacgatgctagcatgcacgg', hit.match)
171
173
  assert_equal(0, hit.pos)
172
174
  assert_equal(20, hit.length)
173
175
  break
@@ -1,70 +1,72 @@
1
1
  #!/usr/bin/env ruby
2
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', '..')
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', '..', '..')
3
3
 
4
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
5
- # #
6
- # Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
7
- # #
8
- # This program is free software; you can redistribute it and/or #
9
- # modify it under the terms of the GNU General Public License #
10
- # as published by the Free Software Foundation; either version 2 #
11
- # of the License, or (at your option) any later version. #
12
- # #
13
- # This program is distributed in the hope that it will be useful, #
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of #
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
16
- # GNU General Public License for more details. #
17
- # #
18
- # You should have received a copy of the GNU General Public License #
19
- # along with this program; if not, write to the Free Software #
20
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
21
- # #
22
- # http://www.gnu.org/copyleft/gpl.html #
23
- # #
24
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
25
- # #
26
- # This software is part of BioDSL (www.BioDSL.org). #
27
- # #
28
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
4
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
5
+ # #
6
+ # Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
7
+ # #
8
+ # This program is free software; you can redistribute it and/or #
9
+ # modify it under the terms of the GNU General Public License #
10
+ # as published by the Free Software Foundation; either version 2 #
11
+ # of the License, or (at your option) any later version. #
12
+ # #
13
+ # This program is distributed in the hope that it will be useful, #
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of #
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
16
+ # GNU General Public License for more details. #
17
+ # #
18
+ # You should have received a copy of the GNU General Public License #
19
+ # along with this program; if not, write to the Free Software #
20
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, #
21
+ # USA. #
22
+ # #
23
+ # http://www.gnu.org/copyleft/gpl.html #
24
+ # #
25
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
26
+ # #
27
+ # This software is part of BioDSL (http://maasha.github.io/BioDSL). #
28
+ # #
29
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
29
30
 
30
31
  require 'test/helper'
31
32
 
33
+ # Test class for Digest.
32
34
  class TestDigest < Test::Unit::TestCase
33
35
  def setup
34
- @entry = BioDSL::Seq.new(seq: "cgatcgatcGGATCCgagagggtgtgtagtgGAATTCcgctgc")
36
+ @entry = BioDSL::Seq.new(seq: 'cgatcgatcGGATCCgagagggtgtgtagtgGAATTCcgctgc')
35
37
  end
36
38
 
37
- test "#each_digest with bad residue in pattern raises" do
38
- assert_raise(BioDSL::DigestError) { @entry.each_digest("X", 0).to_a }
39
+ test '#each_digest with bad residue in pattern raises' do
40
+ assert_raise(BioDSL::DigestError) { @entry.each_digest('X', 0).to_a }
39
41
  end
40
42
 
41
- test "#each_digest returns correctly" do
42
- digests = @entry.each_digest("GGATCC", 1).to_a
43
+ test '#each_digest returns correctly' do
44
+ digests = @entry.each_digest('GGATCC', 1).to_a
43
45
  assert_equal(2, digests.size)
44
- assert_equal("[0-9]", digests.first.seq_name)
45
- assert_equal("cgatcgatcG", digests.first.seq)
46
- assert_equal("[10-42]", digests.last.seq_name)
47
- assert_equal("GATCCgagagggtgtgtagtgGAATTCcgctgc", digests.last.seq)
46
+ assert_equal('[0-9]', digests.first.seq_name)
47
+ assert_equal('cgatcgatcG', digests.first.seq)
48
+ assert_equal('[10-42]', digests.last.seq_name)
49
+ assert_equal('GATCCgagagggtgtgtagtgGAATTCcgctgc', digests.last.seq)
48
50
  end
49
51
 
50
- test "#each_digest with negavive offset returns correctly" do
51
- digests = @entry.each_digest("CGATCG", -1).to_a
52
+ test '#each_digest with negavive offset returns correctly' do
53
+ digests = @entry.each_digest('CGATCG', -1).to_a
52
54
  assert_equal(1, digests.size)
53
- assert_equal("[0-42]", digests.first.seq_name)
55
+ assert_equal('[0-42]', digests.first.seq_name)
54
56
  assert_equal(@entry.seq, digests.first.seq)
55
57
  end
56
58
 
57
- test "#each_digest with offset out of bounds returns correctly" do
58
- digests = @entry.each_digest("AATTCcgctgc", 15).to_a
59
+ test '#each_digest with offset out of bounds returns correctly' do
60
+ digests = @entry.each_digest('AATTCcgctgc', 15).to_a
59
61
  assert_equal(1, digests.size)
60
- assert_equal("[0-42]", digests.first.seq_name)
62
+ assert_equal('[0-42]', digests.first.seq_name)
61
63
  assert_equal(@entry.seq, digests.first.seq)
62
64
  end
63
65
 
64
- test "#each_digest in block context returns correctly" do
65
- @entry.each_digest("GGATCC", 1) do |digest|
66
- assert_equal("[0-9]", digest.seq_name)
67
- assert_equal("cgatcgatcG", digest.seq)
66
+ test '#each_digest in block context returns correctly' do
67
+ @entry.each_digest('GGATCC', 1) do |digest|
68
+ assert_equal('[0-9]', digest.seq_name)
69
+ assert_equal('cgatcgatcG', digest.seq)
68
70
  break
69
71
  end
70
72
  end
@@ -1,133 +1,135 @@
1
1
  #!/usr/bin/env ruby
2
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', '..')
3
-
4
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
5
- # #
6
- # Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
7
- # #
8
- # This program is free software; you can redistribute it and/or #
9
- # modify it under the terms of the GNU General Public License #
10
- # as published by the Free Software Foundation; either version 2 #
11
- # of the License, or (at your option) any later version. #
12
- # #
13
- # This program is distributed in the hope that it will be useful, #
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of #
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
16
- # GNU General Public License for more details. #
17
- # #
18
- # You should have received a copy of the GNU General Public License #
19
- # along with this program; if not, write to the Free Software #
20
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
21
- # #
22
- # http://www.gnu.org/copyleft/gpl.html #
23
- # #
24
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
25
- # #
26
- # This software is part of BioDSL (www.BioDSL.org). #
27
- # #
28
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', '..', '..')
3
+
4
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
5
+ # #
6
+ # Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
7
+ # #
8
+ # This program is free software; you can redistribute it and/or #
9
+ # modify it under the terms of the GNU General Public License #
10
+ # as published by the Free Software Foundation; either version 2 #
11
+ # of the License, or (at your option) any later version. #
12
+ # #
13
+ # This program is distributed in the hope that it will be useful, #
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of #
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
16
+ # GNU General Public License for more details. #
17
+ # #
18
+ # You should have received a copy of the GNU General Public License #
19
+ # along with this program; if not, write to the Free Software #
20
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, #
21
+ # USA. #
22
+ # #
23
+ # http://www.gnu.org/copyleft/gpl.html #
24
+ # #
25
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
26
+ # #
27
+ # This software is part of BioDSL (http://maasha.github.io/BioDSL). #
28
+ # #
29
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
29
30
 
30
31
  require 'test/helper'
31
32
 
33
+ # Test class for Dynamic.
32
34
  class TestDynamic < Test::Unit::TestCase
33
35
  def setup
34
- @p = BioDSL::Seq.new(seq_name: "test", seq: "atcg")
36
+ @p = BioDSL::Seq.new(seq_name: 'test', seq: 'atcg')
35
37
  @p.extend(BioDSL::Dynamic)
36
38
  end
37
39
 
38
- test "#patmatch with no match returns nil" do
39
- assert_nil(@p.patmatch("gggg"))
40
+ test '#patmatch with no match returns nil' do
41
+ assert_nil(@p.patmatch('gggg'))
40
42
  end
41
43
 
42
- test "#patmatch with perfect match returns correctly" do
43
- m = @p.patmatch("atcg")
44
+ test '#patmatch with perfect match returns correctly' do
45
+ m = @p.patmatch('atcg')
44
46
  assert_equal(0, m.beg)
45
- assert_equal("atcg", m.match)
47
+ assert_equal('atcg', m.match)
46
48
  assert_equal(0, m.mis)
47
49
  assert_equal(0, m.ins)
48
50
  assert_equal(0, m.del)
49
51
  assert_equal(4, m.length)
50
52
  end
51
53
 
52
- test "#patmatch with perfect match with ambiguity codes returns correctly" do
53
- m = @p.patmatch("nnnn")
54
+ test '#patmatch with perfect match with ambiguity codes returns correctly' do
55
+ m = @p.patmatch('nnnn')
54
56
  assert_equal(0, m.beg)
55
- assert_equal("atcg", m.match)
57
+ assert_equal('atcg', m.match)
56
58
  assert_equal(0, m.mis)
57
59
  assert_equal(0, m.ins)
58
60
  assert_equal(0, m.del)
59
61
  assert_equal(4, m.length)
60
62
  end
61
63
 
62
- test "#patmatch with one mismatch and edit dist zero returns nil" do
63
- assert_nil(@p.patmatch("aCcg"))
64
+ test '#patmatch with one mismatch and edit dist zero returns nil' do
65
+ assert_nil(@p.patmatch('aCcg'))
64
66
  end
65
67
 
66
- test "#patmatch with one mismatch and edit dist one returns correctly" do
67
- m = @p.patmatch("aCcg", 0, 1)
68
+ test '#patmatch with one mismatch and edit dist one returns correctly' do
69
+ m = @p.patmatch('aCcg', 0, 1)
68
70
  assert_equal(0, m.beg)
69
- assert_equal("atcg", m.match)
71
+ assert_equal('atcg', m.match)
70
72
  assert_equal(1, m.mis)
71
73
  assert_equal(0, m.ins)
72
74
  assert_equal(0, m.del)
73
75
  assert_equal(4, m.length)
74
76
  end
75
77
 
76
- test "#patmatch with two mismatch and edit dist one returns nil" do
77
- assert_nil(@p.patmatch("aGcA", 0, 1))
78
+ test '#patmatch with two mismatch and edit dist one returns nil' do
79
+ assert_nil(@p.patmatch('aGcA', 0, 1))
78
80
  end
79
81
 
80
- test "#patmatch with one insertion and edit dist zero returns nil" do
81
- assert_nil(@p.patmatch("atGcg"))
82
+ test '#patmatch with one insertion and edit dist zero returns nil' do
83
+ assert_nil(@p.patmatch('atGcg'))
82
84
  end
83
85
 
84
- test "#patmatch with one insertion and edit dist one returns correctly" do
85
- m = @p.patmatch("atGcg", 0, 1)
86
+ test '#patmatch with one insertion and edit dist one returns correctly' do
87
+ m = @p.patmatch('atGcg', 0, 1)
86
88
  assert_equal(0, m.beg)
87
- assert_equal("atcg", m.match)
89
+ assert_equal('atcg', m.match)
88
90
  assert_equal(0, m.mis)
89
91
  assert_equal(1, m.ins)
90
92
  assert_equal(0, m.del)
91
93
  assert_equal(4, m.length)
92
94
  end
93
95
 
94
- test "#patmatch with two insertions and edit dist one returns nil" do
95
- assert_nil(@p.patmatch("atGcTg", 0, 1))
96
+ test '#patmatch with two insertions and edit dist one returns nil' do
97
+ assert_nil(@p.patmatch('atGcTg', 0, 1))
96
98
  end
97
99
 
98
- test "#patmatch with two insertions and edit dist two returns correctly" do
99
- m = @p.patmatch("atGcTg", 0, 2)
100
+ test '#patmatch with two insertions and edit dist two returns correctly' do
101
+ m = @p.patmatch('atGcTg', 0, 2)
100
102
  assert_equal(0, m.beg)
101
- assert_equal("atcg", m.match)
103
+ assert_equal('atcg', m.match)
102
104
  assert_equal(0, m.mis)
103
105
  assert_equal(2, m.ins)
104
106
  assert_equal(0, m.del)
105
107
  assert_equal(4, m.length)
106
108
  end
107
109
 
108
- test "#patmatch with one deletion and edit distance zero returns nil" do
109
- assert_nil(@p.patmatch("acg"))
110
+ test '#patmatch with one deletion and edit distance zero returns nil' do
111
+ assert_nil(@p.patmatch('acg'))
110
112
  end
111
113
 
112
- test "#patmatch with one deletion and edit distance one returns correctly" do
113
- m = @p.patmatch("acg", 0, 1)
114
+ test '#patmatch with one deletion and edit distance one returns correctly' do
115
+ m = @p.patmatch('acg', 0, 1)
114
116
  assert_equal(0, m.beg)
115
- assert_equal("atcg", m.match)
117
+ assert_equal('atcg', m.match)
116
118
  assert_equal(0, m.mis)
117
119
  assert_equal(0, m.ins)
118
120
  assert_equal(1, m.del)
119
121
  assert_equal(4, m.length)
120
122
  end
121
123
 
122
- test "#patscan locates three patterns ok" do
123
- p = BioDSL::Seq.new(seq_name: "test", seq: "ataacgagctagctagctagctgactac")
124
+ test '#patscan locates three patterns ok' do
125
+ p = BioDSL::Seq.new(seq_name: 'test', seq: 'ataacgagctagctagctagctgactac')
124
126
  p.extend(BioDSL::Dynamic)
125
- assert_equal(3, p.patscan("tag").count)
127
+ assert_equal(3, p.patscan('tag').count)
126
128
  end
127
129
 
128
- test "#patscan with pos locates two patterns ok" do
129
- p = BioDSL::Seq.new(seq_name: "test", seq: "ataacgagctagctagctagctgactac")
130
+ test '#patscan with pos locates two patterns ok' do
131
+ p = BioDSL::Seq.new(seq_name: 'test', seq: 'ataacgagctagctagctagctgactac')
130
132
  p.extend(BioDSL::Dynamic)
131
- assert_equal(2, p.patscan("tag", 10).count)
133
+ assert_equal(2, p.patscan('tag', 10).count)
132
134
  end
133
135
  end