BioDSL 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
data/Rakefile CHANGED
@@ -1,17 +1,18 @@
1
1
  require 'bundler'
2
+ require 'English'
2
3
  require 'rake/testtask'
3
4
  require 'pp'
4
5
 
5
6
  Bundler::GemHelper.install_tasks
6
7
 
7
- task :default => 'test'
8
-
8
+ task default: 'test'
9
+
9
10
  Rake::TestTask.new do |t|
10
- t.description = "Run test suite"
11
+ t.description = 'Run test suite'
11
12
  t.test_files = Dir['test/**/*'].select { |f| f.match(/\.rb$/) }
12
13
  t.warning = true
13
14
  end
14
-
15
+
15
16
  desc 'Run test suite with simplecov'
16
17
  task :simplecov do
17
18
  ENV['SIMPLECOV'] = 'true'
@@ -23,7 +24,7 @@ task :doc do
23
24
  run_docgen
24
25
  end
25
26
 
26
- task :build => :boilerplate
27
+ task build: :boilerplate
27
28
 
28
29
  desc 'Add or update license boilerplate in source files'
29
30
  task :boilerplate do
@@ -31,9 +32,9 @@ task :boilerplate do
31
32
  end
32
33
 
33
34
  def run_docgen
34
- $stderr.puts "Building docs"
35
+ $stderr.puts 'Building docs'
35
36
  `yardoc lib/`
36
- $stderr.puts "Docs done"
37
+ $stderr.puts 'Docs done'
37
38
  end
38
39
 
39
40
  def run_boilerplate
@@ -61,7 +62,7 @@ def run_boilerplate
61
62
  # #
62
63
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
63
64
  # #
64
- # This software is part of BioDSL (www.github.com/maasha/BioDSL). #
65
+ # This software is part of BioDSL (http://maasha.github.io/BioDSL). #
65
66
  # #
66
67
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
67
68
  END
@@ -69,26 +70,27 @@ END
69
70
  files = Rake::FileList.new('bin/**/*', 'lib/**/*.rb', 'test/**/*.rb')
70
71
 
71
72
  files.each do |file|
72
- body = ""
73
+ body = ''
73
74
 
74
75
  File.open(file) do |ios|
75
76
  body = ios.read
76
77
  end
77
78
 
78
- if body.match(/Copyright \(C\) 2007-(\d{4}) Martin Asser Hansen/) and $1.to_i != Time.now.year
79
+ if body.match(/Copyright \(C\) 2007-(\d{4}) Martin Asser Hansen/) &&
80
+ Regexp.last_match[1].to_i != Time.now.year
79
81
  STDERR.puts "Updating boilerplate: #{file}"
80
82
 
81
- body.sub!(/Copyright \(C\) 2007-(\d{4}) Martin Asser Hansen/, "Copyright (C) 2007-#{Time.now.year} Martin Asser Hansen")
83
+ body.sub!(/Copyright \(C\) 2007-(\d{4}) Martin Asser Hansen/,
84
+ "Copyright (C) 2007-#{Time.now.year} Martin Asser Hansen")
82
85
 
83
86
  File.open(file, 'w') do |ios|
84
87
  ios.puts body
85
88
  end
86
89
  end
87
90
 
88
- unless body.match('Copyright')
89
- STDERR.puts "Warning: missing boilerplate in #{file}"
90
- STDERR.puts body.split($/).first(10).join($/)
91
- exit
92
- end
91
+ next if body.match('Copyright')
92
+ STDERR.puts "Warning: missing boilerplate in #{file}"
93
+ STDERR.puts body.split($RS).first(10).join($RS)
94
+ exit
93
95
  end
94
96
  end
@@ -21,7 +21,7 @@
21
21
  # #
22
22
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
23
23
  # #
24
- # This software is part of BioDSL (www.github.com/maasha/BioDSL). #
24
+ # This software is part of BioDSL (http://maasha.github.io/BioDSL). #
25
25
  # #
26
26
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
27
27
 
@@ -1,34 +1,37 @@
1
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
2
- # #
3
- # Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
4
- # #
5
- # This program is free software; you can redistribute it and/or #
6
- # modify it under the terms of the GNU General Public License #
7
- # as published by the Free Software Foundation; either version 2 #
8
- # of the License, or (at your option) any later version. #
9
- # #
10
- # This program is distributed in the hope that it will be useful, #
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of #
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
13
- # GNU General Public License for more details. #
14
- # #
15
- # You should have received a copy of the GNU General Public License #
16
- # along with this program; if not, write to the Free Software #
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
18
- # #
19
- # http://www.gnu.org/copyleft/gpl.html #
20
- # #
21
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
22
- # #
23
- # This software is part of BioDSL (www.BioDSL.org). #
24
- # #
25
- # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
26
-
1
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
2
+ # #
3
+ # Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
4
+ # #
5
+ # This program is free software; you can redistribute it and/or #
6
+ # modify it under the terms of the GNU General Public License #
7
+ # as published by the Free Software Foundation; either version 2 #
8
+ # of the License, or (at your option) any later version. #
9
+ # #
10
+ # This program is distributed in the hope that it will be useful, #
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of #
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
13
+ # GNU General Public License for more details. #
14
+ # #
15
+ # You should have received a copy of the GNU General Public License #
16
+ # along with this program; if not, write to the Free Software #
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, #
18
+ # USA. #
19
+ # #
20
+ # http://www.gnu.org/copyleft/gpl.html #
21
+ # #
22
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
23
+ # #
24
+ # This software is part of BioDSL (http://maasha.github.io/BioDSL). #
25
+ # #
26
+ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
27
+
28
+ # Namespace for BioDSL.
27
29
  module BioDSL
28
30
  # Error class for all exceptions to do with CAry.
29
31
  class CAryError < StandardError; end
30
32
 
31
- # Class to manipulate a Ruby byte array which is fit for inline C manipulation.
33
+ # Class to manipulate a Ruby byte array which is fit for inline C
34
+ # manipulation.
32
35
  class CAry
33
36
  require 'inline'
34
37
 
@@ -37,8 +40,8 @@ module BioDSL
37
40
  # Class method to store to a given file a given ary.
38
41
  def self.store(file, ary)
39
42
  File.open(file, 'w') do |ios|
40
- ios.write([ary.count].pack("I"))
41
- ios.write([ary.size].pack("I"))
43
+ ios.write([ary.count].pack('I'))
44
+ ios.write([ary.size].pack('I'))
42
45
  ios.write(ary.ary)
43
46
  end
44
47
 
@@ -52,20 +55,20 @@ module BioDSL
52
55
  ary = nil
53
56
 
54
57
  File.open(file) do |ios|
55
- count = ios.read(4).unpack("I").first
56
- size = ios.read(4).unpack("I").first
58
+ count = ios.read(4).unpack('I').first
59
+ size = ios.read(4).unpack('I').first
57
60
  ary = ios.read
58
61
  end
59
62
 
60
63
  CAry.new(count, size, ary)
61
64
  end
62
65
 
63
- # Method to initialize a new CAry object which is either empty
64
- # or created from a given byte string. Count is the number of
65
- # elements in the ary, and size is the byte size of a element.
66
+ # Method to initialize a new CAry object which is either empty or created
67
+ # from a given byte string. Count is the number of elements in the ary, and
68
+ # size is the byte size of a element.
66
69
  def initialize(count, size, ary = nil)
67
- raise CAryError, "count must be positive - not #{count}" if count <= 0
68
- raise CAryError, "size must be positive - not #{size}" if size <= 0
70
+ fail CAryError, "count must be positive - not #{count}" if count <= 0
71
+ fail CAryError, "size must be positive - not #{size}" if size <= 0
69
72
 
70
73
  @count = count
71
74
  @size = size
@@ -95,34 +98,58 @@ module BioDSL
95
98
  end
96
99
 
97
100
  # Method to do bitwise AND operation between two CArys.
98
- def &(cary)
99
- raise BioDSL::CAryError, "Bad object type: #{cary.class}" unless cary.is_a? CAry
100
- raise BioDSL::CAryError, "Counts mismatch: #{self.count} != #{cary.count}" if self.count != cary.count
101
- raise BioDSL::CAryError, "Sizes mismatch: #{self.size} != #{cary.size}" if self.size != cary.size
101
+ def &(other)
102
+ unless other.is_a? CAry
103
+ fail BioDSL::CAryError, "Bad object type: #{other.class}"
104
+ end
102
105
 
103
- bitwise_and_C(@ary, cary.ary, @count * @size)
106
+ if @count != other.count
107
+ fail BioDSL::CAryError, "Counts mismatch: #{@count} != #{other.count}"
108
+ end
109
+
110
+ if @size != other.size
111
+ fail BioDSL::CAryError, "Sizes mismatch: #{@size} != #{other.size}"
112
+ end
113
+
114
+ bitwise_and_C(@ary, other.ary, @count * @size)
104
115
 
105
116
  self
106
117
  end
107
118
 
108
119
  # Method to do bitwise OR operation between two CArys.
109
- def |(cary)
110
- raise BioDSL::CAryError, "Bad object type: #{cary.class}" unless cary.is_a? CAry
111
- raise BioDSL::CAryError, "Counts mismatch: #{self.count} != #{cary.count}" if self.count != cary.count
112
- raise BioDSL::CAryError, "Sizes mismatch: #{self.size} != #{cary.size}" if self.size != cary.size
120
+ def |(other)
121
+ unless other.is_a? CAry
122
+ fail BioDSL::CAryError, "Bad object type: #{other.class}"
123
+ end
113
124
 
114
- bitwise_or_C(@ary, cary.ary, @count * @size)
125
+ if @count != other.count
126
+ fail BioDSL::CAryError, "Counts mismatch: #{@count} != #{other.count}"
127
+ end
128
+
129
+ if @size != other.size
130
+ fail BioDSL::CAryError, "Sizes mismatch: #{@size} != #{other.size}"
131
+ end
132
+
133
+ bitwise_or_C(@ary, other.ary, @count * @size)
115
134
 
116
135
  self
117
136
  end
118
137
 
119
138
  # Method to do bitwise XOR operation between two CArys.
120
- def ^(cary)
121
- raise BioDSL::CAryError, "Bad object type: #{cary.class}" unless cary.is_a? CAry
122
- raise BioDSL::CAryError, "Counts mismatch: #{self.count} != #{cary.count}" if self.count != cary.count
123
- raise BioDSL::CAryError, "Sizes mismatch: #{self.size} != #{cary.size}" if self.size != cary.size
139
+ def ^(other)
140
+ unless other.is_a? CAry
141
+ fail BioDSL::CAryError, "Bad object type: #{other.class}"
142
+ end
143
+
144
+ if @count != other.count
145
+ fail BioDSL::CAryError, "Counts mismatch: #{@count} != #{other.count}"
146
+ end
147
+
148
+ if @size != other.size
149
+ fail BioDSL::CAryError, "Sizes mismatch: #{@size} != #{other.size}"
150
+ end
124
151
 
125
- bitwise_xor_C(@ary, cary.ary, @count * @size)
152
+ bitwise_xor_C(@ary, other.ary, @count * @size)
126
153
 
127
154
  self
128
155
  end
@@ -138,8 +165,6 @@ module BioDSL
138
165
  @ary.unpack('B*').first
139
166
  end
140
167
 
141
- private
142
-
143
168
  inline do |builder|
144
169
  # Method that given a byte array and its size in bytes
145
170
  # sets all bytes to 0.
@@ -20,7 +20,7 @@
20
20
  # #
21
21
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
22
22
  # #
23
- # This software is part of BioDSL (www.github.com/maasha/BioDSL). #
23
+ # This software is part of BioDSL (http://maasha.github.io/BioDSL). #
24
24
  # #
25
25
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
26
26
  module BioDSL
@@ -80,7 +80,7 @@ module BioDSL
80
80
  # @return [BioDSL::Status] returns self.
81
81
  def calc_time_elapsed
82
82
  delta = @status[:time_stop] - @status[:time_start]
83
- @status[:time_elapsed] = (Time.mktime(0) + delta).strftime("%H:%M:%S")
83
+ @status[:time_elapsed] = (Time.mktime(0) + delta).strftime('%H:%M:%S')
84
84
 
85
85
  self
86
86
  end
@@ -16,7 +16,7 @@
16
16
  # #
17
17
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
18
18
  # #
19
- # This software is part of BioDSL (www.github.com/maasha/BioDSL). #
19
+ # This software is part of BioDSL (http://maasha.github.io/BioDSL). #
20
20
  # #
21
21
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
22
22
 
@@ -21,7 +21,7 @@
21
21
  # #
22
22
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
23
23
  # #
24
- # This software is part of the BioDSL framework (www.BioDSL.org). #
24
+ # This software is part of the BioDSL (www.BioDSL.org). #
25
25
  # #
26
26
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
27
27
 
@@ -21,7 +21,7 @@
21
21
  # #
22
22
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
23
23
  # #
24
- # This software is part of the BioDSL framework (www.BioDSL.org). #
24
+ # This software is part of the BioDSL (www.BioDSL.org). #
25
25
  # #
26
26
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
27
27
 
@@ -145,7 +145,7 @@ module BioDSL
145
145
  entry = BioDSL::Seq.new(seq_name: seq_name, seq: record[:SEQ])
146
146
 
147
147
  @status[:sequences_in] += 1
148
- @status[:residues_in] += entry.length
148
+ @status[:residues_in] += entry.length
149
149
 
150
150
  ios.puts entry.to_fasta
151
151
  end
@@ -158,9 +158,9 @@ module BioDSL
158
158
  BioDSL::Fasta.open(tmp_out) do |ios|
159
159
  ios.each do |entry|
160
160
  output << entry.to_bp
161
- @status[:records_out] += 1
161
+ @status[:records_out] += 1
162
162
  @status[:sequences_out] += 1
163
- @status[:residues_out] += entry.length
163
+ @status[:residues_out] += entry.length
164
164
  end
165
165
  end
166
166
  end
@@ -21,7 +21,7 @@
21
21
  # #
22
22
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
23
23
  # #
24
- # This software is part of the BioDSL framework (www.BioDSL.org). #
24
+ # This software is part of the BioDSL (www.BioDSL.org). #
25
25
  # #
26
26
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
27
27
 
@@ -166,15 +166,15 @@ module BioDSL
166
166
  #
167
167
  # @param seq [String] - Sequence to analyze.
168
168
  def analyze_residues(seq)
169
- @status[:sequences_in] += 1
169
+ @status[:sequences_in] += 1
170
170
  @status[:sequences_out] += 1
171
- @status[:residues_in] += seq.length
172
- @status[:residues_out] += seq.length
171
+ @status[:residues_in] += seq.length
172
+ @status[:residues_out] += seq.length
173
173
 
174
174
  seq.upcase.chars.each_with_index do |char, i|
175
175
  c = char.to_sym
176
176
  @counts[i][c] += 1
177
- @total[i] += 1
177
+ @total[i] += 1
178
178
  @residues.add(c)
179
179
  end
180
180
  end
@@ -21,7 +21,7 @@
21
21
  # #
22
22
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
23
23
  # #
24
- # This software is part of the BioDSL framework (www.BioDSL.org). #
24
+ # This software is part of the BioDSL (www.BioDSL.org). #
25
25
  # #
26
26
  # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
27
27
 
@@ -160,7 +160,7 @@ module BioDSL
160
160
  # Set default options.
161
161
  def defaults
162
162
  @options[:mismatch_percent] ||= 20
163
- @options[:overlap_min] ||= 1
163
+ @options[:overlap_min] ||= 1
164
164
  end
165
165
 
166
166
  # Output a record to the stream if a stram is provided.
@@ -182,7 +182,7 @@ module BioDSL
182
182
  entry1, entry2 = records2entries(record1, record2)
183
183
 
184
184
  if overlap_possible?(entry1, entry2, @options[:overlap_min]) &&
185
- assembled = assemble_entries(entry1, entry2)
185
+ (assembled = assemble_entries(entry1, entry2))
186
186
  output_assembled(assembled, output)
187
187
  elsif @options[:merge_unassembled]
188
188
  output_merged(entry1, entry2, output)
@@ -211,7 +211,7 @@ module BioDSL
211
211
  end
212
212
 
213
213
  @status[:sequences_in] += 2
214
- @status[:residues_in] += entry1.length + entry2.length
214
+ @status[:residues_in] += entry1.length + entry2.length
215
215
 
216
216
  [entry1, entry2]
217
217
  end
@@ -252,10 +252,10 @@ module BioDSL
252
252
  def output_assembled(assembled, output)
253
253
  output << assembled2record(assembled)
254
254
 
255
- @status[:assembled] += 1
256
- @status[:records_out] += 1
255
+ @status[:assembled] += 1
256
+ @status[:records_out] += 1
257
257
  @status[:sequences_out] += 1
258
- @status[:residues_out] += assembled.length
258
+ @status[:residues_out] += assembled.length
259
259
  end
260
260
 
261
261
  # Convert a sequence entry to a BioPiece record with hamming distance and
@@ -289,10 +289,10 @@ module BioDSL
289
289
 
290
290
  output << entry2record(entry1)
291
291
 
292
- @status[:unassembled] += 1
292
+ @status[:unassembled] += 1
293
293
  @status[:sequences_out] += 1
294
- @status[:residues_out] += entry1.length
295
- @status[:records_out] += 1
294
+ @status[:residues_out] += entry1.length
295
+ @status[:records_out] += 1
296
296
  end
297
297
 
298
298
  # Output unassembled entries to the stream.
@@ -304,10 +304,10 @@ module BioDSL
304
304
  output << entry2record(entry1)
305
305
  output << entry2record(entry2)
306
306
 
307
- @status[:unassembled] += 2
307
+ @status[:unassembled] += 2
308
308
  @status[:sequences_out] += 2
309
- @status[:residues_out] += entry1.length + entry2.length
310
- @status[:records_out] += 2
309
+ @status[:residues_out] += entry1.length + entry2.length
310
+ @status[:records_out] += 2
311
311
  end
312
312
 
313
313
  # Converts a sequence entry to a BioPeice record.