]> git.donarmstrong.com Git - biopieces.git/commitdiff
changed layout of ruby source
authormartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Fri, 13 May 2011 19:46:09 +0000 (19:46 +0000)
committermartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Fri, 13 May 2011 19:46:09 +0000 (19:46 +0000)
git-svn-id: http://biopieces.googlecode.com/svn/trunk@1405 74ccb610-7750-0410-82ae-013aeee3265d

237 files changed:
bp_bin/analyze_assembly
bp_bin/analyze_seq
bp_bin/assemble_seq_idba
bp_bin/assemble_seq_velvet
bp_bin/bin_vals
bp_bin/calc_N50
bp_bin/clip_adaptor
bp_bin/clip_seq
bp_bin/digest_seq
bp_bin/find_adaptor
bp_bin/find_genes
bp_bin/find_homopolymers
bp_bin/find_mids
bp_bin/join_seq
bp_bin/kmer_freq
bp_bin/length_seq
bp_bin/mask_seq
bp_bin/pcr_seq
bp_bin/plot_scores
bp_bin/progress_meter
bp_bin/read_fasta
bp_bin/read_fastq
bp_bin/read_genbank
bp_bin/read_sff
bp_bin/remove_mids
bp_bin/scores_to_dec
bp_bin/shred_seq
bp_bin/shuffle_records
bp_bin/swapcase_seq
bp_bin/uclust_seq
bp_conf/bashrc
code_ruby/Maasha/Rakefile [deleted file]
code_ruby/Maasha/lib/base36.rb [deleted file]
code_ruby/Maasha/lib/biopieces.rb [deleted file]
code_ruby/Maasha/lib/bitarray.rb [deleted file]
code_ruby/Maasha/lib/bits.rb [deleted file]
code_ruby/Maasha/lib/digest.rb [deleted file]
code_ruby/Maasha/lib/doc/Base36.html [deleted file]
code_ruby/Maasha/lib/doc/Base36Error.html [deleted file]
code_ruby/Maasha/lib/doc/Biopieces.html [deleted file]
code_ruby/Maasha/lib/doc/BitArray.html [deleted file]
code_ruby/Maasha/lib/doc/BitArrayError.html [deleted file]
code_ruby/Maasha/lib/doc/Boulder.html [deleted file]
code_ruby/Maasha/lib/doc/BoulderError.html [deleted file]
code_ruby/Maasha/lib/doc/CastError.html [deleted file]
code_ruby/Maasha/lib/doc/Casts.html [deleted file]
code_ruby/Maasha/lib/doc/Digest.html [deleted file]
code_ruby/Maasha/lib/doc/DigestError.html [deleted file]
code_ruby/Maasha/lib/doc/Fasta.html [deleted file]
code_ruby/Maasha/lib/doc/FastaError.html [deleted file]
code_ruby/Maasha/lib/doc/Fastq.html [deleted file]
code_ruby/Maasha/lib/doc/FastqError.html [deleted file]
code_ruby/Maasha/lib/doc/Filesys.html [deleted file]
code_ruby/Maasha/lib/doc/FilesysError.html [deleted file]
code_ruby/Maasha/lib/doc/Genbank.html [deleted file]
code_ruby/Maasha/lib/doc/GenbankError.html [deleted file]
code_ruby/Maasha/lib/doc/GenbankFeatures.html [deleted file]
code_ruby/Maasha/lib/doc/Locator.html [deleted file]
code_ruby/Maasha/lib/doc/LocatorError.html [deleted file]
code_ruby/Maasha/lib/doc/OptionHandler.html [deleted file]
code_ruby/Maasha/lib/doc/Read.html [deleted file]
code_ruby/Maasha/lib/doc/SFF.html [deleted file]
code_ruby/Maasha/lib/doc/SFFError.html [deleted file]
code_ruby/Maasha/lib/doc/Seq.html [deleted file]
code_ruby/Maasha/lib/doc/SeqError.html [deleted file]
code_ruby/Maasha/lib/doc/Status.html [deleted file]
code_ruby/Maasha/lib/doc/Stream.html [deleted file]
code_ruby/Maasha/lib/doc/String.html [deleted file]
code_ruby/Maasha/lib/doc/StringError.html [deleted file]
code_ruby/Maasha/lib/doc/base36_rb.html [deleted file]
code_ruby/Maasha/lib/doc/biopieces_rb.html [deleted file]
code_ruby/Maasha/lib/doc/bitarray_rb.html [deleted file]
code_ruby/Maasha/lib/doc/bits_rb.html [deleted file]
code_ruby/Maasha/lib/doc/boulder_rb.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Biopieces.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000001.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000002.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000003.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000005.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000006.html [deleted file]
code_ruby/Maasha/lib/doc/classes/CastError.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Casts.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Casts.src/M000007.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Fasta.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Fasta.src/M000031.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Fasta.src/M000032.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Fasta.src/M000033.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Fasta.src/M000034.html [deleted file]
code_ruby/Maasha/lib/doc/classes/FastaError.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000008.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000009.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000010.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000011.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000012.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000013.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000014.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000015.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000016.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000017.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000018.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000019.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000020.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000021.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000022.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000023.html [deleted file]
code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000024.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000001.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000003.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000004.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000005.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000006.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000007.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000008.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000009.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000031.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000032.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000033.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000034.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000035.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000037.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000038.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000039.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000040.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000041.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000042.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000043.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq.src/M000044.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/AA.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/AA.src/M000036.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/AA.src/M000037.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000038.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000039.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000040.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000041.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000042.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000043.html [deleted file]
code_ruby/Maasha/lib/doc/classes/SeqError.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Status.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Status.src/M000025.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Status.src/M000026.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Status.src/M000027.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Status.src/M000028.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Status.src/M000029.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Stream.html [deleted file]
code_ruby/Maasha/lib/doc/classes/Stream.src/M000030.html [deleted file]
code_ruby/Maasha/lib/doc/created.rid [deleted file]
code_ruby/Maasha/lib/doc/digest_rb.html [deleted file]
code_ruby/Maasha/lib/doc/fasta_rb.html [deleted file]
code_ruby/Maasha/lib/doc/fastq_rb.html [deleted file]
code_ruby/Maasha/lib/doc/files/biopieces_rb.html [deleted file]
code_ruby/Maasha/lib/doc/files/fasta_rb.html [deleted file]
code_ruby/Maasha/lib/doc/files/seq_rb.html [deleted file]
code_ruby/Maasha/lib/doc/filesys_rb.html [deleted file]
code_ruby/Maasha/lib/doc/fr_class_index.html [deleted file]
code_ruby/Maasha/lib/doc/fr_file_index.html [deleted file]
code_ruby/Maasha/lib/doc/fr_method_index.html [deleted file]
code_ruby/Maasha/lib/doc/genbank_rb.html [deleted file]
code_ruby/Maasha/lib/doc/images/brick.png [deleted file]
code_ruby/Maasha/lib/doc/images/brick_link.png [deleted file]
code_ruby/Maasha/lib/doc/images/bug.png [deleted file]
code_ruby/Maasha/lib/doc/images/bullet_black.png [deleted file]
code_ruby/Maasha/lib/doc/images/bullet_toggle_minus.png [deleted file]
code_ruby/Maasha/lib/doc/images/bullet_toggle_plus.png [deleted file]
code_ruby/Maasha/lib/doc/images/date.png [deleted file]
code_ruby/Maasha/lib/doc/images/find.png [deleted file]
code_ruby/Maasha/lib/doc/images/loadingAnimation.gif [deleted file]
code_ruby/Maasha/lib/doc/images/macFFBgHack.png [deleted file]
code_ruby/Maasha/lib/doc/images/package.png [deleted file]
code_ruby/Maasha/lib/doc/images/page_green.png [deleted file]
code_ruby/Maasha/lib/doc/images/page_white_text.png [deleted file]
code_ruby/Maasha/lib/doc/images/page_white_width.png [deleted file]
code_ruby/Maasha/lib/doc/images/plugin.png [deleted file]
code_ruby/Maasha/lib/doc/images/ruby.png [deleted file]
code_ruby/Maasha/lib/doc/images/tag_green.png [deleted file]
code_ruby/Maasha/lib/doc/images/wrench.png [deleted file]
code_ruby/Maasha/lib/doc/images/wrench_orange.png [deleted file]
code_ruby/Maasha/lib/doc/images/zoom.png [deleted file]
code_ruby/Maasha/lib/doc/index.html [deleted file]
code_ruby/Maasha/lib/doc/js/darkfish.js [deleted file]
code_ruby/Maasha/lib/doc/js/jquery.js [deleted file]
code_ruby/Maasha/lib/doc/js/quicksearch.js [deleted file]
code_ruby/Maasha/lib/doc/js/thickbox-compressed.js [deleted file]
code_ruby/Maasha/lib/doc/rdoc-style.css [deleted file]
code_ruby/Maasha/lib/doc/rdoc.css [deleted file]
code_ruby/Maasha/lib/doc/seq_rb.html [deleted file]
code_ruby/Maasha/lib/doc/sff_rb.html [deleted file]
code_ruby/Maasha/lib/fasta.rb [deleted file]
code_ruby/Maasha/lib/fastq.rb [deleted file]
code_ruby/Maasha/lib/filesys.rb [deleted file]
code_ruby/Maasha/lib/genbank.rb [deleted file]
code_ruby/Maasha/lib/patscan.rb [deleted file]
code_ruby/Maasha/lib/patternmatcher.rb [deleted file]
code_ruby/Maasha/lib/prodigal.rb [deleted file]
code_ruby/Maasha/lib/seq.rb [deleted file]
code_ruby/Maasha/lib/sff.rb [deleted file]
code_ruby/Maasha/test/test_base36.rb [deleted file]
code_ruby/Maasha/test/test_biopieces.rb [deleted file]
code_ruby/Maasha/test/test_bitarray.rb [deleted file]
code_ruby/Maasha/test/test_bits.rb [deleted file]
code_ruby/Maasha/test/test_digest.rb [deleted file]
code_ruby/Maasha/test/test_fasta.rb [deleted file]
code_ruby/Maasha/test/test_fastq.rb [deleted file]
code_ruby/Maasha/test/test_genbank.rb [deleted file]
code_ruby/Maasha/test/test_patternmatcher.rb [deleted file]
code_ruby/Maasha/test/test_seq.rb [deleted file]
code_ruby/Sfern/test_module.rb [deleted file]
code_ruby/lib/maasha/base36.rb [new file with mode: 0644]
code_ruby/lib/maasha/biopieces.rb [new file with mode: 0644]
code_ruby/lib/maasha/bitarray.rb [new file with mode: 0644]
code_ruby/lib/maasha/bits.rb [new file with mode: 0644]
code_ruby/lib/maasha/boulder.rb [new file with mode: 0644]
code_ruby/lib/maasha/digest.rb [new file with mode: 0644]
code_ruby/lib/maasha/fasta.rb [new file with mode: 0644]
code_ruby/lib/maasha/fastq.rb [new file with mode: 0644]
code_ruby/lib/maasha/filesys.rb [new file with mode: 0644]
code_ruby/lib/maasha/genbank.rb [new file with mode: 0644]
code_ruby/lib/maasha/patscan.rb [new file with mode: 0644]
code_ruby/lib/maasha/patternmatcher.rb [new file with mode: 0644]
code_ruby/lib/maasha/prodigal.rb [new file with mode: 0644]
code_ruby/lib/maasha/seq.rb [new file with mode: 0644]
code_ruby/lib/maasha/sff.rb [new file with mode: 0644]
code_ruby/test/maasha/test_base36.rb [new file with mode: 0755]
code_ruby/test/maasha/test_biopieces.rb [new file with mode: 0755]
code_ruby/test/maasha/test_bitarray.rb [new file with mode: 0755]
code_ruby/test/maasha/test_bits.rb [new file with mode: 0755]
code_ruby/test/maasha/test_boulder.rb [new file with mode: 0755]
code_ruby/test/maasha/test_digest.rb [new file with mode: 0755]
code_ruby/test/maasha/test_fasta.rb [new file with mode: 0755]
code_ruby/test/maasha/test_fastq.rb [new file with mode: 0755]
code_ruby/test/maasha/test_genbank.rb [new file with mode: 0755]
code_ruby/test/maasha/test_patternmatcher.rb [new file with mode: 0755]
code_ruby/test/maasha/test_seq.rb [new file with mode: 0755]

index a946d2c17b48d4742f45aae1bbc3d2cb7aa353f0..bcc727ca9a97f47fee777a018abea8b1e359623a 100755 (executable)
@@ -29,9 +29,9 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'fasta'
-require 'prodigal'
+require 'maasha/biopieces'
+require 'maasha/fasta'
+require 'maasha/prodigal'
 require 'pp'
 
 casts = []
index f79d94a92134882b25584e65feccaccfc4be9882..303d5e4ae22c80bb853cea3952ee006f74ee6453 100755 (executable)
@@ -29,8 +29,8 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/seq'
 require 'pp'
 
 casts = []
index 43434e3c2dba15c78d1e4348cb75c1f6a9b114f8..da2f4dab4d4a0b03e56bce0ee8669954f86eb24b 100755 (executable)
@@ -28,8 +28,8 @@
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-require 'biopieces'
-require 'fasta'
+require 'maasha/biopieces'
+require 'maasha/fasta'
 
 casts = []
 casts << {:long=>'directory',  :short=>'d', :type=>'dir',    :mandatory=>true,  :default=>nil, :allowed=>nil, :disallowed=>nil}
index 85c5fa81c4d3469108dd4a898cb9d37b88abbd43..c3e25f35e35119b582ceaef72baa8bdee1142280 100755 (executable)
@@ -28,8 +28,8 @@
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-require 'biopieces'
-require 'fasta'
+require 'maasha/biopieces'
+require 'maasha/fasta'
 
 class Velvet
   def initialize(directory, sequence_file, verbose)
index 42fb7d6869eeecdec7af9412c50189ff18772338..5f1fd05f9eda24316148411ae220bb228981fcb6 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 casts = []
 casts << {:long=>'key',      :short=>'k', :type=>'string', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}
index a97fe0809a3b9e7367cd01c5907d68717a5afd33..38de30899931063befd26904561beee58d02a08b 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 require 'pp'
 
 casts = []
index 43997436e2e714129b2d544933e439e07661d0ed..2056f2d31a1fadfe960931fcc16898a460a5d427 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 casts = []
 
index c2f9d8eb9fdebfeb2d724e64f79b63d140b3043e..f26e10b9dea90023b800b3127e6cca9cacb290cf 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 casts = []
 
index 9fe81e9b83ad60162abc7711b95a3465182a865e..03e8ec9e0d0ebe303308b8eff8ee2aa9c347ba11 100755 (executable)
@@ -29,9 +29,9 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'fasta'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/fasta'
+require 'maasha/seq'
 
 casts = []
 casts << {:long=>'pattern', :short=>'p', :type=>'string', :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}
index e1ac8f38011dede6819f7b0e638d30e2bc63443f..aa1a0146ef7c1a16fff614810b6b474defda2be6 100755 (executable)
@@ -29,8 +29,8 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/seq'
 
 def disambiguate(adaptor)
   adaptor_disamb = adaptor.dup
index 367b9766763d85fe21dc9b8a080c764e3b168926..b365ab27a261d0cbf93d9659ce58009ca37ac26a 100755 (executable)
@@ -29,9 +29,9 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'fasta'
-require 'prodigal'
+require 'maasha/biopieces'
+require 'maasha/fasta'
+require 'maasha/prodigal'
 
 casts = []
 casts << {:long=>'full',      :short=>'f', :type=>'flag',   :mandatory=>false, :default=>nil,      :allowed=>nil,           :disallowed=>nil}
index ba9d63975906d61f2f37e0ed6edd08992f43ef14..5c9cd245dbcef4ba3373a512783b7b0756502510 100755 (executable)
@@ -29,8 +29,8 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/seq'
 require 'pp'
 
 casts = []
index 73bbfb60c3b696eb1f4ac5558c6c737676984ec4..81015f6667565e44188d13b1065fd91a484ffb1b 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 require 'pp'
 
 MID_LEN = 10
index 6abc8c8cdb5d31ccebba08f274385e846b2fceaa..de80ad2a53246c67385bc4c3a0d28a9f721e87f4 100755 (executable)
@@ -28,9 +28,9 @@
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-require 'biopieces'
-require 'fasta'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/fasta'
+require 'maasha/seq'
 
 casts = []
 
index 733eed3bb186d0a6d78eaf54ed562833e29e7361..7e412d8dbe39f59385beb88157dcaf284db5fa75 100755 (executable)
@@ -29,8 +29,8 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/seq'
 require 'pp'
 
 casts = []
index e3e6b094484db2fbb3a83f9344a35194f8fae2b1..0152ef497846afe930c11f4c7a32aeb44aa41efe 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 casts = []
 
index 20395c46aa3bfd91c1ddf9d8084831796ad04477..f29b68f95ae0fe3f84f01e7395916e7e2cecd43d 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 ILLUMINA_BASE = 64
 
index d3ce39a092a1fc6d68e08a8801c7eb9257b6d8a9..df97f20bb7ea3487d6cf15de68d2d2cb404fa31e 100755 (executable)
@@ -29,9 +29,9 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'fasta'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/fasta'
+require 'maasha/seq'
 require 'pp'
 
 class Pcr
index 4ddd7b35fba502e078bfaff4ace3b0606204e366..fd441498313a5754fb98e0e173dfb399bd95b418 100755 (executable)
@@ -25,7 +25,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 require 'gnuplot'
 require 'pp'
 
index b5e0c1c53e9288b45425b4ffc8ba6c049887ad60..7678d378f799a8df04c2905637ba12485f827f1f 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 casts = []
 casts << {:long=>'no_stream', :short => 'x', :type => 'flag', :mandatory => false, :default => nil,  :allowed => nil, :disallowed => nil}
index c0f9426ea52183c8afeadc876c08cfa325c61218..9b77008554c1dece44c0fcb257d7c9375bcf87b4 100755 (executable)
@@ -28,8 +28,8 @@
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-require 'biopieces'
-require 'fasta'
+require 'maasha/biopieces'
+require 'maasha/fasta'
 
 casts = []
 casts << {:long=>'data_in', :short=>'i', :type=>'files!', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
index fd88bf0d7aaa608f9b47169709293b54d51e9722..063edd6ce2883bbe5b46f286c59175c71cf55456 100755 (executable)
@@ -28,8 +28,8 @@
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-require 'biopieces'
-require 'fastq'
+require 'maasha/biopieces'
+require 'maasha/fastq'
 
 casts = []
 casts << {:long=>'data_in', :short=>'i', :type=>'files!', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
index 6e471bb24c048aa81019f8a1162eda2f93260e42..1ab92e42eae5bb9650ede59838dd9c1d78756840 100755 (executable)
@@ -28,8 +28,8 @@
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-require 'biopieces'
-require 'genbank'
+require 'maasha/biopieces'
+require 'maasha/genbank'
 
 casts = []
 casts << {:long=>'data_in',    :short=>'i', :type=>'files!', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
index a14048e5e3e933814f9abd20e9779f57d07d82dd..6e5febd247175040751cee158fa9123949ff6bbc 100755 (executable)
@@ -28,8 +28,8 @@
 
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
-require 'biopieces'
-require 'sff'
+require 'maasha/biopieces'
+require 'maasha/sff'
 
 casts = []
 casts << {:long=>'data_in', :short=>'i', :type=>'files!', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
index c42a6c0d6cdda5f5f448450065d50faad028de2a..a2d1fd8a5ab004e33361ed07aa982526da041ece 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 require 'pp'
 
 MID_LEN = 10
index ecf214848923f7ff08d149dc38e83ad363f42b1b..c5e7c1e2361788f51471f99886d11a400ca33948 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 ILLUMINA_BASE = 64
 
index f9e1a42d1181fe204cfadf8cde7c232fbb505aa0..86bf321a037eb8d7b07e5ff8ab38084fbd10705b 100755 (executable)
@@ -29,8 +29,8 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'seq'
+require 'maasha/biopieces'
+require 'maasha/seq'
 require 'pp'
 
 class Seq
index b13222956b797c5fd04ed5605cc1ff7e34ab3edf..194cab0b8815e2e600a3ebc907af4ee928efb0e4 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 casts = []
 
index cb1989cf9d1f10c4f0c6eef9c9048bea2062b707..60725f50bc0a68951ffdcc02f6ba0db920efc643 100755 (executable)
@@ -29,7 +29,7 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
+require 'maasha/biopieces'
 
 casts = []
 
index cbc0bc6ae9023df6585148d976da36506c203a22..76c56683b66a82d37ff39625412840f8049fc7b1 100755 (executable)
@@ -29,8 +29,8 @@
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
-require 'biopieces'
-require 'fasta'
+require 'maasha/biopieces'
+require 'maasha/fasta'
 
 class Uclust
   include Enumerable
index b5eb78994dc1714f688cd464af8fc61ced7bcd5f..782195e89672b8e999aa9049d6805ed2bb7c7a5c 100644 (file)
@@ -32,7 +32,7 @@ export PERL5LIB="$PERL5LIB:$BP_PERL"
 
 ### Here we add the Biopieces Ruby libraries to RUBYLIB.
 
-export RUBYLIB="$RUBYLIB:$BP_RUBY/Maasha/lib"
+export RUBYLIB="$RUBYLIB:$BP_RUBY/lib"
 
 ### Some useful aliases.
 
diff --git a/code_ruby/Maasha/Rakefile b/code_ruby/Maasha/Rakefile
deleted file mode 100644 (file)
index 8f5b25f..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-require 'rake/testtask'
-
-Rake::TestTask.new("test") do |t|
-  t.pattern = "test/test_*.rb"
-  t.warning = true
-end
diff --git a/code_ruby/Maasha/lib/base36.rb b/code_ruby/Maasha/lib/base36.rb
deleted file mode 100644 (file)
index 89d50e1..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (C) 2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# Error class for all exceptions to do with Base36.
-class Base36Error < StandardError; end
-
-ALPH   = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-BASE36 = 36
-
-# Class containing methods to encode and decode Base 36.
-# Note that the ALPH is [alph + num] and not [num + alph]
-# which prevents us from simply using .to_i(36) and .to_s(36).
-#
-# http://en.wikipedia.org/wiki/Base_36
-class Base36
-  # Method that encodes an integer into a base36 string
-  # that is returned.
-  def self.encode(num)
-    raise Base36Error unless num.is_a? Fixnum
-
-    base36 = ""
-
-    while num > 0
-      base36 << ALPH[(num % BASE36)]
-      num /= BASE36
-    end
-
-    base36 << ALPH[0] if num == 0
-
-    base36.reverse
-  end
-
-  # Method that decodes a base36 string and returns an integer.
-  def self.decode(base36)
-    raise Base36Error if base36.empty?
-
-    result = 0
-    pos    = 0
-
-    base36.upcase.reverse.each_char do |char|
-      result += ALPH.index(char) * (BASE36 ** pos)
-      pos    += 1
-    end
-
-    return result;
-  end
-end
-
-__END__
diff --git a/code_ruby/Maasha/lib/biopieces.rb b/code_ruby/Maasha/lib/biopieces.rb
deleted file mode 100644 (file)
index 8ee2423..0000000
+++ /dev/null
@@ -1,680 +0,0 @@
-raise "Ruby 1.9 or later required" if RUBY_VERSION < "1.9"
-
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'fileutils'
-require 'date'
-require 'optparse'
-require 'open3'
-require 'pp'
-
-# Biopieces are command line scripts and uses OptionParser to parse command line
-# options according to a list of casts. Each cast prescribes the long and short
-# name of the option, the type, if it is mandatory, the default value, and allowed
-# and disallowed values. An optional list of extra casts can be supplied, and the
-# integrity of the casts are checked. Following the command line parsing, the
-# options are checked according to the casts. Methods are also included for handling
-# the parsing and emitting of Biopiece records, which are ASCII text records consisting
-# of lines with a key/value pair separated by a colon and a white space ': '.
-# Each record is separated by a line with three dashes '---'.
-class Biopieces
-  include Enumerable
-
-  attr_accessor :out # accessor for out stream _ios_
-
-  # Initialize a Biopiece and write the status to file.
-  # Options are for testing purposes only.
-  def initialize(test=nil, input=STDIN, output=STDOUT)
-    @test   = test
-    @input  = input
-    @output = output
-  end
-
-  # Check the integrity of a list of casts, followed by parsion options from argv
-  # and finally checking the options according to the casts. Returns nil if argv
-  # is empty, otherwise an options hash.
-  def parse(argv, cast_list=[], script_path=$0)
-    casts          = Casts.new(cast_list)
-    option_handler = OptionHandler.new(argv, casts, script_path, @test)
-    @options       = option_handler.options_parse
-  end
-
-  # Open Biopiece input stream if not open and iterate over all Biopiece
-  # records in the stream.
-  def each_record
-    @in = Stream::open(@options, mode="r", @input) unless @in.is_a? IO
-    return if @in.nil?
-
-    record = {}
-
-    @in.each_line do |line|
-      case line
-      when /^([^:]+): (.*)$/
-        record[$1.to_sym] = $2
-      when /^---$/
-        yield record unless record.empty?
-        record = {}
-      else
-        raise "Bad record format: #{line}"
-      end
-    end
-
-    yield record unless record.empty?
-
-    self # conventionally
-  end
-
-  alias :each :each_record
-
-  # Open Biopiece output stream if not open and puts record to the stream.
-  def puts(record)
-    @out = Stream::open(@options, mode="w", @output) unless @out.is_a? IO
-
-    record.each do |key,value|
-      @out.print "#{key.to_s}: #{value}\n"
-    end
-
-    @out.print "---\n"
-  end
-
-  def to_s
-  end
-
-  # Create a temporary directory inside the ENV["BP_TMP"] dir.
-  def mktmpdir
-    time = Time.now.to_i
-    user = ENV["USER"]
-    pid  = $$
-    path = ENV["BP_TMP"] + "/" + [user, time + pid, pid, "bp_tmp"].join("_")
-    Dir.mkdir(path)
-    Status.new.set_tmpdir(path)
-    path
-  end
-end
-
-
-# Error class for all exceptions to do with option casts.
-class CastError < StandardError; end
-
-
-# Class to handle casts of command line options. Each cast prescribes the long and
-# short name of the option, the type, if it is mandatory, the default value, and
-# allowed and disallowed values. An optional list of extra casts can be supplied,
-# and the integrity of the casts are checked.
-class Casts < Array
-  TYPES     = %w[flag string list int uint float file file! files files! dir dir! genome]
-  MANDATORY = %w[long short type mandatory default allowed disallowed]
-
-  # Initialize cast object with an optional options cast list to which
-  # ubiquitous casts are added after which all casts are checked.
-  def initialize(cast_list=[])
-    @cast_list = cast_list
-    ubiquitous
-    check
-    long_to_sym
-    self.push(*@cast_list)
-  end
-
-  private
-
-  # Add ubiquitous options casts.
-  def ubiquitous
-    @cast_list << {:long=>'help',       :short=>'?', :type=>'flag',   :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    @cast_list << {:long=>'stream_in',  :short=>'I', :type=>'files!', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    @cast_list << {:long=>'stream_out', :short=>'O', :type=>'file',   :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    @cast_list << {:long=>'verbose',    :short=>'v', :type=>'flag',   :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-  end
-
-  # Check integrity of the casts.
-  def check
-    check_keys
-    check_values
-    check_duplicates
-  end
-  
-  # Check if all mandatory keys are present in casts and raise if not.
-  def check_keys
-    @cast_list.each do |cast|
-      MANDATORY.each do |mandatory|
-        raise CastError, "Missing symbol in cast: '#{mandatory.to_sym}'" unless cast.has_key? mandatory.to_sym
-      end
-    end
-  end
-
-  # Check if all values in casts are valid.
-  def check_values
-    @cast_list.each do |cast|
-      check_val_long(cast)
-      check_val_short(cast)
-      check_val_type(cast)
-      check_val_mandatory(cast)
-      check_val_default(cast)
-      check_val_allowed(cast)
-      check_val_disallowed(cast)
-    end
-  end
-
-  # Check if the values to long are legal and raise if not.
-  def check_val_long(cast)
-    unless cast[:long].is_a? String and cast[:long].length > 1
-      raise CastError, "Illegal cast of long: '#{cast[:long]}'"
-    end
-  end
-  
-  # Check if the values to short are legal and raise if not.
-  def check_val_short(cast)
-    unless cast[:short].is_a? String and cast[:short].length == 1
-      raise CastError, "Illegal cast of short: '#{cast[:short]}'"
-    end
-  end
-
-  # Check if values to type are legal and raise if not.
-  def check_val_type(cast)
-    type_hash = {}
-    TYPES.each do |type|
-      type_hash[type] = true
-    end
-
-    unless type_hash.has_key? cast[:type]
-      raise CastError, "Illegal cast of type: '#{cast[:type]}'"
-    end
-  end
-
-  # Check if values to mandatory are legal and raise if not.
-  def check_val_mandatory(cast)
-    unless cast[:mandatory] == true or cast[:mandatory] == false
-      raise CastError, "Illegal cast of mandatory: '#{cast[:mandatory]}'"
-    end
-  end
-
-  # Check if values to default are legal and raise if not.
-  def check_val_default(cast)
-    unless cast[:default].nil?          or
-           cast[:default].is_a? String  or
-           cast[:default].is_a? Integer or
-           cast[:default].is_a? Float
-      raise CastError, "Illegal cast of default: '#{cast[:default]}'"
-    end
-  end
-
-  # Check if values to allowed are legal and raise if not.
-  def check_val_allowed(cast)
-    unless cast[:allowed].is_a? String or cast[:allowed].nil?
-      raise CastError, "Illegal cast of allowed: '#{cast[:allowed]}'"
-    end
-  end
-
-  # Check if values to disallowed are legal and raise if not.
-  def check_val_disallowed(cast)
-    unless cast[:disallowed].is_a? String or cast[:disallowed].nil?
-      raise CastError, "Illegal cast of disallowed: '#{cast[:disallowed]}'"
-    end
-  end
-
-  # Check cast for duplicate long or short options names.
-  def check_duplicates
-    check_hash = {}
-    @cast_list.each do |cast|
-      raise CastError, "Duplicate argument: '--#{cast[:long]}'" if check_hash.has_key? cast[:long]
-      raise CastError, "Duplicate argument: '-#{cast[:short]}'" if check_hash.has_key? cast[:short]
-      check_hash[cast[:long]]  = true
-      check_hash[cast[:short]] = true
-    end
-  end
-
-  # Convert values to :long keys to symbols for all casts.
-  def long_to_sym
-    @cast_list.each do |cast|
-      cast[:long] = cast[:long].to_sym
-    end
-  end
-
-end
-
-
-# Class for parsing argv using OptionParser according to given casts.
-# Default options are set, file glob expressions expanded, and options are
-# checked according to the casts. Usage information is printed and exit called
-# if required.
-class OptionHandler
-  REGEX_LIST   = /^(list|files|files!)$/
-  REGEX_INT    = /^(int|uint)$/
-  REGEX_STRING = /^(file|file!|dir|dir!|genome)$/
-
-  def initialize(argv, casts, script_path, test=nil)
-    @argv        = argv
-    @casts       = casts
-    @script_path = script_path
-    @test        = test
-  end
-
-  # Parse options from argv using OptionParser and casts denoting long and
-  # short option names. Usage information is printed and exit called.
-  # A hash with options is returned.
-  def options_parse
-    @options = {}
-
-    option_parser = OptionParser.new do |option|
-      @casts.each do |cast|
-        case cast[:type]
-        when 'flag'
-          option.on("-#{cast[:short]}", "--#{cast[:long]}") do |o|
-            @options[cast[:long]] = o
-          end
-        when 'float'
-          option.on("-#{cast[:short]}", "--#{cast[:long]} F", Float) do |f|
-            @options[cast[:long]] = f
-          end
-        when 'string'
-          option.on("-#{cast[:short]}", "--#{cast[:long]} S", String) do |s|
-            @options[cast[:long]] = s.to_sym  # TODO: this to_sym - is that needed?
-          end
-        when REGEX_LIST
-          option.on( "-#{cast[:short]}", "--#{cast[:long]} A", Array) do |a|
-            @options[cast[:long]] = a
-          end
-        when REGEX_INT
-          option.on("-#{cast[:short]}", "--#{cast[:long]} I", Integer) do |i|
-            @options[cast[:long]] = i
-          end
-        when REGEX_STRING
-          option.on("-#{cast[:short]}", "--#{cast[:long]} S", String) do |s|
-            @options[cast[:long]] = s
-          end
-        else
-          raise ArgumentError, "Unknown option type: '#{cast[:type]}'"
-        end
-      end
-    end
-
-    option_parser.parse!(@argv)
-
-    if print_usage_full?
-      print_usage_and_exit(true)
-    elsif print_usage_short?
-      print_usage_and_exit
-    end
-
-    options_default
-    options_glob
-    options_check
-
-    @options
-  end
-
-  # Given the script name determine the path of the wiki file with the usage info.
-  def wiki_path
-    path = ENV["BP_DIR"] + "/bp_usage/" + File.basename(@script_path) + ".wiki"
-    raise "No such wiki file: #{path}" unless File.file? path
-    path
-  end
-
-  # Check if full "usage info" should be printed.
-  def print_usage_full?
-    @options[:help]
-  end
-
-  # Check if short "usage info" should be printed.
-  def print_usage_short?
-    if not $stdin.tty?
-      return false
-    elsif @options[:stream_in]
-      return false
-    elsif @options[:data_in]
-      return false
-    elsif wiki_path =~ /^(list_biopieces|list_genomes|list_mysql_databases|biostat)$/  # TODO get rid of this!
-      return false
-    else
-      return true
-    end
-  end
-
-  # Print usage info by Calling an external script 'print_wiki'
-  # using a system() call and exit. An optional 'full' flag
-  # outputs the full usage info.
-  def print_usage_and_exit(full=nil)
-    if @test
-      return
-    else
-      if full
-        system("print_wiki --data_in #{wiki_path} --help")
-      else
-        system("print_wiki --data_in #{wiki_path}")
-      end
-
-      raise "Failed printing wiki: #{wiki_path}" unless $?.success?
-
-      exit
-    end
-  end
-
-  # Set default options value from cast unless a value is set.
-  def options_default
-    @casts.each do |cast|
-      if cast[:default]
-        unless @options.has_key? cast[:long]
-          if cast[:type] == 'list'
-            @options[cast[:long]] = cast[:default].split ','
-          else
-            @options[cast[:long]] = cast[:default]
-          end
-        end
-      end
-    end
-  end
-
-  # Expands glob expressions to a full list of paths.
-  # Examples: "*.fna" or "foo.fna,*.fna" or "foo.fna,/bar/*.fna"
-  def options_glob
-    @casts.each do |cast|
-      if cast[:type] == 'files' or cast[:type] == 'files!'
-        if @options.has_key? cast[:long]
-          files = []
-        
-          @options[cast[:long]].each do |path|
-            if path.include? "*"
-              Dir.glob(path).each do |file|
-                files << file if File.file? file
-              end
-            else
-              files << path
-            end
-          end
-
-          @options[cast[:long]] = files
-        end
-      end
-    end
-  end
-
-  # Check all options according to casts.
-  def options_check
-    @casts.each do |cast|
-      options_check_mandatory(cast)
-      options_check_int(cast)
-      options_check_uint(cast)
-      options_check_file(cast)
-      options_check_files(cast)
-      options_check_dir(cast)
-      options_check_allowed(cast)
-      options_check_disallowed(cast)
-    end
-  end
-  
-  # Check if a mandatory option is set and raise if it isn't.
-  def options_check_mandatory(cast)
-    if cast[:mandatory]
-      raise ArgumentError, "Mandatory argument: --#{cast[:long]}" unless @options.has_key? cast[:long]
-    end
-  end
-
-  # Check int type option and raise if not an integer.
-  def options_check_int(cast)
-    if cast[:type] == 'int' and @options.has_key? cast[:long]
-      unless @options[cast[:long]].is_a? Integer
-        raise ArgumentError, "Argument to --#{cast[:long]} must be an integer, not '#{@options[cast[:long]]}'"
-      end
-    end
-  end
-  
-  # Check uint type option and raise if not an unsinged integer.
-  def options_check_uint(cast)
-    if cast[:type] == 'uint' and @options.has_key? cast[:long]
-      unless @options[cast[:long]].is_a? Integer and @options[cast[:long]] >= 0
-        raise ArgumentError, "Argument to --#{cast[:long]} must be an unsigned integer, not '#{@options[cast[:long]]}'"
-      end
-    end
-  end
-
-  # Check file! type argument and raise if file don't exists.
-  def options_check_file(cast)
-    if cast[:type] == 'file!' and @options.has_key? cast[:long]
-      raise ArgumentError, "No such file: '#{@options[cast[:long]]}'" unless File.file? @options[cast[:long]]
-    end
-  end
-
-  # Check files! type argument and raise if files don't exists.
-  def options_check_files(cast)
-    if cast[:type] == 'files!' and @options.has_key? cast[:long]
-      @options[cast[:long]].each do |path|
-        next if path == "-"
-        raise ArgumentError, "File not readable: '#{path}'" unless File.readable? path
-      end
-    end
-  end
-  
-  # Check dir! type argument and raise if directory don't exist.
-  def options_check_dir(cast)
-    if cast[:type] == 'dir!' and @options.has_key? cast[:long]
-      raise ArgumentError, "No such directory: '#{@options[cast[:long]]}'" unless File.directory? @options[cast[:long]]
-    end
-  end
-  
-  # Check options and raise unless allowed.
-  def options_check_allowed(cast)
-    if cast[:allowed] and @options.has_key? cast[:long]
-      allowed_hash = {}
-      cast[:allowed].split(',').each { |a| allowed_hash[a.to_s] = 1 }
-  
-      raise ArgumentError, "Argument '#{@options[cast[:long]]}' to --#{cast[:long]} not allowed" unless allowed_hash.has_key? @options[cast[:long]].to_s
-    end
-  end
-  
-  # Check disallowed argument values and raise if disallowed.
-  def options_check_disallowed(cast)
-    if cast[:disallowed] and @options.has_key? cast[:long]
-      cast[:disallowed].split(',').each do |val|
-        raise ArgumentError, "Argument '#{@options[cast[:long]]}' to --#{cast[:long]} is disallowed" if val.to_s == @options[cast[:long]].to_s
-      end
-    end
-  end
-end
-
-# Class for manipulating the execution status of Biopieces by setting a
-# status file with a time stamp, process id, and command arguments. The
-# status file is used for creating log entries and for displaying the
-# runtime status of Biopieces.
-class Status
-  # Write the status to a status file.
-  def set
-    time0  = Time.new.strftime("%Y-%m-%d %X")
-
-    File.open(path, mode="w") do |fh|
-      fh.puts [time0, ARGV.join(" ")].join(";")
-    end
-  end
-
-  # Append the a temporary directory path to the status file.
-  def set_tmpdir(tmpdir_path)
-    status = ""
-
-    File.open(path, mode="r") do |fh|
-      status = fh.read.chomp
-    end
-
-    status = "#{status};#{tmpdir_path}\n"
-
-    File.open(path, mode="w") do |fh|
-      fh << status
-    end
-  end
-
-  # Extract the temporary directory path from the status file,
-  # and return this or nil if not found.
-  def get_tmpdir
-    File.open(path, mode="r") do |fh|
-      tmpdir_path = fh.read.chomp.split(";").last
-      return tmpdir_path if File.directory?(tmpdir_path)
-    end
-
-    nil
-  end
-
-  # Write the Biopiece status to the log file.
-  def log(exit_status)
-    time1   = Time.new.strftime("%Y-%m-%d %X")
-    user    = ENV["USER"]
-    script  = File.basename($0)
-
-    stream = File.open(path)
-    time0, args, tmp_dir = stream.first.split(";")
-    stream.close
-
-    elap     = time_diff(time0, time1)
-    command  = [script, args].join(" ") 
-    log_file = ENV["BP_LOG"] + "/biopieces.log"
-
-    File.open(log_file, mode = "a") { |file| file.puts [time0, time1, elap, user, exit_status, command].join("\t") }
-  end
-
-  # Delete status file.
-  def delete
-    File.delete(path)
-  end
-  
-  private
-
-  # Path to status file
-  def path
-    user   = ENV["USER"]
-    script = File.basename($0)
-    pid    = $$
-    path   = ENV["BP_TMP"] + "/" + [user, script, pid, "status"].join(".")
-  end
-
-  # Get the elapsed time from the difference between two time stamps.
-  def time_diff(t0, t1)
-    Time.at((DateTime.parse(t1).to_time - DateTime.parse(t0).to_time).to_i).gmtime.strftime('%X')
-  end
-end
-
-
-class Stream < IO
-  # Open Biopieces output data stream for reading from stdin or a file
-  # specified in options[:stream_in] OR writing to stdout or a file
-  # specified in options[:stream_out] or options[:data_out].
-  def self.open(options, mode, stdio)
-    if mode == "r"
-      if options[:data_in] and options[:data_in].first == "-"
-        self.nread(["-"])
-      else
-        $stdin.tty? ? read(options[:stream_in]) : stdio
-      end
-    elsif mode == "w"
-      options[:stream_out] ? self.write(options[:stream_out], options[:compress]) : stdio
-    else
-      raise "Bad mode #{mode}"
-    end
-  end
-
-  private
-
-  # Opens a reads stream to a list of files.
-  def self.read(files)
-    return if files.nil? #TODO case/when
-    self.zipped?(files) ? self.zread(files) : self.nread(files)
-  end
-
-  # Opens a write stream to a file and returns a _io_ object.
-  def self.write(file, zip=nil)
-    zip ? self.zwrite(file) : self.nwrite(file)
-  end
-
-  # Opens a list of gzipped files for reading and return an _io_ object.
-  def self.zread(files)
-    stdin, stdout, stderr = Open3.popen3("zcat " + files.join(' '));
-    stdin.close
-    stderr.close
-    stdout
-  end
-
-  # Opens a file for gzipped writing and return an _io_ object.
-  def self.zwrite(file)
-    stdin, stdout, stderr = Open3.popen3("gzip -f > #{file}")
-    stderr.close
-    stdout.close
-    stdin
-  end
-
-  # Opens a list of files for reading and return an _io_ object.
-  def self.nread(files)
-    stdin, stdout, stderr = Open3.popen3("cat " + files.join(' '));
-    stdin.close
-    stderr.close
-    stdout
-  end
-
-  # Opens a file for writing and return an _io_ object.
-  def self.nwrite(file)
-    File.open(file, mode="w")
-  end
-
-  # Test if a list of files are gzipped or not.
-  # Raises if files are mixed zipped and unzipped.
-  def self.zipped?(files)
-    type_hash = {}
-
-    files.each do |file|
-      type = `file #{file}`
-
-      if type =~ /gzip compressed/
-        type_hash[:gzip] = true
-      else
-        type_hash[:ascii] = true
-      end
-    end
-
-    raise "Mixture of zipped and unzipped files" if type_hash.size == 2
-
-    type_hash[:gzip]
-  end
-end
-
-
-Status.new.set
-
-at_exit do
-  exit_status = $! ? $!.inspect : "OK"
-
-  case exit_status
-  when /error|errno/i
-    exit_status = "ERROR"
-  when "Interrupt"
-    exit_status = "INTERRUPTED"
-  when /SIGTERM/
-    exit_status = "TERMINATED"
-  when /SIGQUIT/
-    exit_status = "QUIT"
-  end
-
-  status = Status.new
-  tmpdir = status.get_tmpdir
-  FileUtils.remove_entry_secure(tmpdir) unless tmpdir.nil?
-  status.log(exit_status)
-  status.delete
-end
-
-
-__END__
diff --git a/code_ruby/Maasha/lib/bitarray.rb b/code_ruby/Maasha/lib/bitarray.rb
deleted file mode 100644 (file)
index 8113621..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-BitsInChar = 8
-
-# Error class for all exceptions to do with BitArray.
-class BitArrayError < StandardError; end
-
-# Class containing methods for creating and manipulating a bit array.
-class BitArray
-  attr_reader :size, :byte_array
-
-  # Method to initialize a new bit array of a given size.
-  def initialize(size)
-    @size        = size
-    @byte_array  = init_byte_array
-    @count_array = init_count_array
-  end
-
-  # Method to set a bit to 1 at a given position in the bit array.
-  def bit_set(pos)
-    raise BitArrayError, "Position #{pos} must be an integer."              unless pos.is_a? Fixnum
-    raise BitArrayError, "Position #{pos} outside of range: 0 ... #{@size}" unless (0 ... @size ).include? pos
-
-    @byte_array[byte_pos(pos)] = (@byte_array[byte_pos(pos)].ord | bit_pos(pos)).chr
-  end
-
-  # Method to check if a bit at a given position in the bit array is set.
-  def bit_set?(pos)
-    raise BitArrayError, "Position #{pos} must be an integer."              unless pos.is_a? Fixnum
-    raise BitArrayError, "Position #{pos} outside of range: 0 ... #{@size}" unless (0 ... @size ).include? pos
-
-    (@byte_array[byte_pos(pos)].ord & bit_pos(pos)) != 0
-  end
-
-  # Method that returns the number of bits set "on" in a bit array.
-  def bits_on 
-    bits_on = 0
-
-    (0 ... self.byte_array.size).each do |byte|
-      bits_on += @count_array[self.byte_array[byte].ord]
-    end
-
-    bits_on
-  end
-
-  # Method that returns the number of bits set "off" in a bit array.
-  def bits_off
-    @size - bits_on
-  end
-
-  # Method to run bitwise AND (&) on two bit arrays and return the
-  # result in a new bit array. Bits are copied if they exists in BOTH operands.
-  # 00111100 & 00001101 = 00001100
-  def &(ba)
-    raise BitArrayError, "uneven size of bit arrays: #{self.size} != #{ba.size}" if self.size != ba.size
-
-    result = BitArray.new(ba.size)
-
-    (0 ... ba.byte_array.size).each do |byte|
-      result.byte_array[byte] = (self.byte_array[byte].ord & ba.byte_array[byte].ord).chr
-    end
-
-    result
-  end
-
-  # Method to run bitwise OR (|) on two bit arrays and return the
-  # result in a new bit array. Bits are copied if they exists in EITHER operands.
-  # 00111100 | 00001101 = 00111101
-  def |(ba)
-    raise BitArrayError, "uneven size of bit arrays: #{self.size} != #{ba.size}" if self.size != ba.size
-
-    result = BitArray.new(ba.size)
-
-    (0 ... ba.byte_array.size).each do |byte|
-      result.byte_array[byte] = (self.byte_array[byte].ord | ba.byte_array[byte].ord).chr
-    end
-
-    result
-  end
-
-  # Method to run bitwise XOR (^) on two bit arrays and return the
-  # result in a new bit array. Bits are copied if they exists in ONE BUT NOT BOTH operands.
-  # 00111100 ^ 00001101 = 00110001
-  def ^(ba)
-    raise BitArrayError, "uneven size of bit arrays: #{self.size} != #{ba.size}" if self.size != ba.size
-
-    result = BitArray.new(ba.size)
-
-    (0 ... ba.byte_array.size).each do |byte|
-      result.byte_array[byte] = (self.byte_array[byte].ord ^ ba.byte_array[byte].ord).chr
-    end
-
-    result
-  end
-
-  # Method to convert a bit array to a string.
-  def to_s
-    string = ""
-
-    (0 ... @size).each do |pos|
-      if self.bit_set? pos 
-        string << "1"
-      else
-        string << "0"
-      end
-    end
-
-    string
-  end
-
-  alias :to_string :to_s
-
-  private
-
-  # Method to initialize the byte array (string) that constitutes the bit array.
-  def init_byte_array
-    raise BitArrayError, "Size must be an integer, not #{@size}" unless @size.is_a? Fixnum
-    raise BitArrayError, "Size must be positive, not #{@size}"   unless @size > 0
-
-    byte_array = ""
-    byte_array << 0.chr * (((@size - 1) / BitsInChar) + 1)
-
-    byte_array
-  end
-
-  # Method that returns an array where the element index value is
-  # the number of bits set for that index value.
-  def init_count_array
-    count_array = []
-
-    (0 ... (2 ** BitsInChar)).each do |i|
-      count_array << bits_in_char(i)
-    end
-
-    count_array
-  end
-
-  # Method that returns the number of set bits in a char.
-  def bits_in_char(char)
-    bits = 0
-
-    (0 ... BitsInChar).each do |pos|
-      bits += 1 if ((char & bit_pos(pos)) != 0)
-    end
-
-    bits
-  end
-
-  # Method that returns the byte position in the byte array for a given bit position.
-  def byte_pos(pos)
-    pos / BitsInChar
-  end
-
-  # Method that returns the bit position in a byte.
-  def bit_pos(pos)
-    1 << (BitsInChar - 1 - (pos % BitsInChar))
-  end
-end
-
diff --git a/code_ruby/Maasha/lib/bits.rb b/code_ruby/Maasha/lib/bits.rb
deleted file mode 100644 (file)
index b976c88..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# Error class for all exceptions to do with String.
-class StringError < StandardError; end
-
-# Monkey patching Class String to add bitwise operators.
-# Behaviour matching Perl's:
-# http://perldoc.perl.org/perlop.html#Bitwise-String-Operators
-class String
-  # Method to that returns the case senstive Hamming Distance between two strings.
-  # http://en.wikipedia.org/wiki/Hamming_distance
-  def self.hamming_dist(str1, str2)
-    raise StringError, "Uneven string lengths: #{str1.length} != #{str2.length}" if str1.length != str2.length
-    (str1 ^ str2 ).count("\x01-\xff")
-  end
-
-  # Method that performs bitwise AND operation where bits
-  # are copied if they exists in BOTH operands. If the operand
-  # sizes are different, the & operator methods acts as though
-  # the longer operand were truncated to the length of the shorter.
-  def &(str)
-    new = ""
-
-    (0 ... [self.length, str.length].min).each do |i|
-      new << (self[i].ord & str[i].ord)
-    end
-
-    new
-  end
-
-  # Method that performs bitwise OR operation where bits
-  # are copied if they exists in EITHER operands. If the operand
-  # sizes differ, the shorter operand is extended with the terminal
-  # part of the longer operand.
-  def |(str)
-    new = ""
-
-    min = [self.length, str.length].min
-
-    (0 ... min).each do |i|
-      new << (self[i].ord | str[i].ord)
-    end
-
-    if self.length > str.length
-      new << self[min ... self.length]
-    elsif self.length < str.length
-      new << str[min ... str.length]
-    end
-
-    new
-  end
-
-  # Method that performs bitwise XOR operation where bits
-  # are copied if they exists in ONE BUT NOT BOTH operands.
-  def ^(str)
-    new = ""
-
-    (0 ... [self.length, str.length].min).each do |i|
-      new << (self[i].ord ^ str[i].ord)
-    end
-
-    new
-  end
-end
diff --git a/code_ruby/Maasha/lib/digest.rb b/code_ruby/Maasha/lib/digest.rb
deleted file mode 100644 (file)
index 727e51c..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# Error class for all exceptions to do with Digest.
-class DigestError < StandardError; end
-
-class Digest
-  include Enumerable
-
-  # Initialize a digest object with the following arguments:
-  # - seq: A sequence object.
-  # - pattern: A restriction enzyme recognition pattern.
-  # - cut_pos: Offset from match position where the enzyme cuts.
-  def initialize(seq, pattern, cut_pos)
-    @seq     = seq
-    @pattern = disambiguate(pattern)
-    @cut_pos = cut_pos
-    @offset  = 0
-  end
-
-  # Method to get the next digestion product from a sequence.
-  def each
-    @seq.seq.upcase.scan @pattern do
-      pos = $`.length + @cut_pos - 1
-     
-      if pos >= 0 and pos < @seq.length - 2
-        seq = Seq.new("#{@seq.seq_name}[#{@offset}-#{pos}]", @seq.seq[@offset .. pos], @seq.type)
-
-        yield seq
-      end
-
-      @offset = pos + 1
-    end
-
-    if @offset < 0
-      @offset = 0
-    elsif @offset > @seq.length
-      @offset = 0
-    end
-
-    seq = Seq.new("#{@seq.seq_name}[#{@offset}-#{@seq.length - 1}]", @seq.seq[@offset .. @seq.length], @seq.type)
-
-    yield seq
-
-    self # conventionally
-  end
-
-  private
-
-  # Method that returns a regexp object with a restriction
-  # enzyme pattern with ambiguity codes substituted to the
-  # appropriate regexp.
-  def disambiguate(pattern)
-    ambiguity = {
-      'A' => "A",
-      'T' => "T",
-      'U' => "T",
-      'C' => "C",
-      'G' => "G",
-      'M' => "[AC]",
-      'R' => "[AG]",
-      'W' => "[AT]",
-      'S' => "[CG]",
-      'Y' => "[CT]",
-      'K' => "[GT]",
-      'V' => "[ACG]",
-      'H' => "[ACT]",
-      'D' => "[AGT]",
-      'B' => "[CGT]",
-      'N' => "[GATC]"
-    }
-
-    new_pattern = ""
-
-    pattern.upcase.each_char do |char|
-      if ambiguity.has_key? char
-        new_pattern << ambiguity[char]
-      else
-        raise DigestError, "Could not disambiguate residue: #{char}"
-      end
-    end
-
-    Regexp.new(new_pattern)
-  end
-end
diff --git a/code_ruby/Maasha/lib/doc/Base36.html b/code_ruby/Maasha/lib/doc/Base36.html
deleted file mode 100644 (file)
index c1078ec..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Base36</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./base36_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="base36.rb">base36.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-decode">::decode</a></li>
-                                       
-                                       <li><a href="#method-c-encode">::encode</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Base36</h1>
-
-               <div id="description">
-                       <p>
-Class containing methods to encode and decode Base 36. Note that the ALPH
-is [alph + num] and not [num + alph] which prevents us from simply using
-.to_i(36) and .to_s(36).
-</p>
-<p>
-<a
-href="http://en.wikipedia.org/wiki/Base_36">en.wikipedia.org/wiki/Base_36</a>
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="decode-method" class="method-detail ">
-                               <a name="method-c-decode"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">decode</span><span
-                                               class="method-args">(base36)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that decodes a base36 string and returns an integer.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="decode-source">
-<pre>
-    <span class="ruby-comment cmt"># File base36.rb, line 55</span>
-55:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decode</span>(<span class="ruby-identifier">base36</span>)
-56:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">Base36Error</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base36</span>.<span class="ruby-identifier">empty?</span>
-57: 
-58:     <span class="ruby-identifier">result</span> = <span class="ruby-value">0</span>
-59:     <span class="ruby-identifier">pos</span>    = <span class="ruby-value">0</span>
-60: 
-61:     <span class="ruby-identifier">base36</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
-62:       <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">ALPH</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">char</span>) * (<span class="ruby-constant">BASE36</span> <span class="ruby-operator">**</span> <span class="ruby-identifier">pos</span>)
-63:       <span class="ruby-identifier">pos</span>    <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-64:     <span class="ruby-keyword kw">end</span>
-65: 
-66:     <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>;
-67:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="encode-method" class="method-detail ">
-                               <a name="method-c-encode"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">encode</span><span
-                                               class="method-args">(num)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that encodes an integer into a base36 string that is returned.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="encode-source">
-<pre>
-    <span class="ruby-comment cmt"># File base36.rb, line 39</span>
-39:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode</span>(<span class="ruby-identifier">num</span>)
-40:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">Base36Error</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">num</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Fixnum</span>
-41: 
-42:     <span class="ruby-identifier">base36</span> = <span class="ruby-value str">&quot;&quot;</span>
-43: 
-44:     <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">num</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
-45:       <span class="ruby-identifier">base36</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">ALPH</span>[(<span class="ruby-identifier">num</span> <span class="ruby-operator">%</span> <span class="ruby-constant">BASE36</span>)]
-46:       <span class="ruby-identifier">num</span> <span class="ruby-operator">/=</span> <span class="ruby-constant">BASE36</span>
-47:     <span class="ruby-keyword kw">end</span>
-48: 
-49:     <span class="ruby-identifier">base36</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">ALPH</span>[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">num</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-50: 
-51:     <span class="ruby-identifier">base36</span>.<span class="ruby-identifier">reverse</span>
-52:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Base36Error.html b/code_ruby/Maasha/lib/doc/Base36Error.html
deleted file mode 100644 (file)
index 2e2be76..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Base36Error</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./base36_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="base36.rb">base36.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Base36Error</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a href="Base36.html">Base36</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Biopieces.html b/code_ruby/Maasha/lib/doc/Biopieces.html
deleted file mode 100644 (file)
index 3cacc08..0000000
+++ /dev/null
@@ -1,562 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Biopieces</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-each">#each</a></li>
-                                       
-                                       <li><a href="#method-i-each_record">#each_record</a></li>
-                                       
-                                       <li><a href="#method-i-mktmpdir">#mktmpdir</a></li>
-                                       
-                                       <li><a href="#method-i-parse">#parse</a></li>
-                                       
-                                       <li><a href="#method-i-puts">#puts</a></li>
-                                       
-                                       <li><a href="#method-i-to_s">#to_s</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-                       <div id="includes-section" class="section">
-                               <h3 class="section-header">Included Modules</h3>
-                               <ul class="link-list">
-                               
-                               
-                                       <li><span class="include">Enumerable</span></li>
-                               
-                               
-                               </ul>
-                       </div>
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Biopieces</h1>
-
-               <div id="description">
-                       <p>
-<a href="Biopieces.html">Biopieces</a> are command line scripts and uses
-OptionParser to parse command line options according to a list of casts.
-Each cast prescribes the long and short name of the option, the type, if it
-is mandatory, the default value, and allowed and disallowed values. An
-optional list of extra casts can be supplied, and the integrity of the
-casts are checked. Following the command line parsing, the options are
-checked according to the casts. Methods are also included for handling the
-parsing and emitting of Biopiece records, which are ASCII text records
-consisting of lines with a key/value pair separated by a colon and a white
-space &#8217;: &#8217;. Each record is separated by a line with three
-dashes &#8217;&#8212;&#8217;.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-               <div id="attribute-method-details" class="method-section section">
-                       <h3 class="section-header">Attributes</h3>
-
-                       
-                       <div id="out-attribute-method" class="method-detail">
-                               <a name="out"></a>
-                               
-                               <a name="out="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">out</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-               </div>
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(test=nil, input=STDIN, output=STDOUT)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Initialize a Biopiece and write the status to file. Options are for testing
-purposes only.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-    <span class="ruby-comment cmt"># File biopieces.rb, line 49</span>
-49:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">test</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">input</span>=<span class="ruby-constant">STDIN</span>, <span class="ruby-identifier">output</span>=<span class="ruby-constant">STDOUT</span>)
-50:     <span class="ruby-ivar">@test</span>   = <span class="ruby-identifier">test</span>
-51:     <span class="ruby-ivar">@input</span>  = <span class="ruby-identifier">input</span>
-52:     <span class="ruby-ivar">@output</span> = <span class="ruby-identifier">output</span>
-53:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="each-method" class="method-detail method-alias">
-                               <a name="method-i-each"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">each</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                               </div>
-
-                               
-
-                               
-                               <div class="aliases">
-          Alias for: <a href="Biopieces.html#method-i-each_record">each_record</a>
-                               </div>
-                               
-                       </div>
-
-               
-                       <div id="each-record-method" class="method-detail ">
-                               <a name="method-i-each_record"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">each_record</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Open Biopiece input stream if not open and iterate over all Biopiece
-records in the stream.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="each-record-source">
-<pre>
-    <span class="ruby-comment cmt"># File biopieces.rb, line 66</span>
-66:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_record</span>
-67:     <span class="ruby-ivar">@in</span> = <span class="ruby-constant">Stream</span><span class="ruby-operator">::</span><span class="ruby-identifier">open</span>(<span class="ruby-ivar">@options</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>, <span class="ruby-ivar">@input</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">IO</span>
-68:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">nil?</span>
-69: 
-70:     <span class="ruby-identifier">record</span> = {}
-71: 
-72:     <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
-73:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">line</span>
-74:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^([^:]+): (.*)$/</span>
-75:         <span class="ruby-identifier">record</span>[<span class="ruby-node">$1</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-node">$2</span>
-76:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^---$/</span>
-77:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">empty?</span>
-78:         <span class="ruby-identifier">record</span> = {}
-79:       <span class="ruby-keyword kw">else</span>
-80:         <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Bad record format: #{line}&quot;</span>
-81:       <span class="ruby-keyword kw">end</span>
-82:     <span class="ruby-keyword kw">end</span>
-83: 
-84:     <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">empty?</span>
-85: 
-86:     <span class="ruby-keyword kw">self</span> <span class="ruby-comment cmt"># conventionally</span>
-87:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-                               <div class="aliases">
-                                       Also aliased as: <a href="Biopieces.html#method-i-each">each</a>
-                               </div>
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="mktmpdir-method" class="method-detail ">
-                               <a name="method-i-mktmpdir"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">mktmpdir</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Create a temporary directory inside the ENV[&#8220;BP_TMP&#8220;] dir.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="mktmpdir-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 106</span>
-106:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mktmpdir</span>
-107:     <span class="ruby-identifier">time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_i</span>
-108:     <span class="ruby-identifier">user</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;USER&quot;</span>]
-109:     <span class="ruby-identifier">pid</span>  = <span class="ruby-identifier">$$</span>
-110:     <span class="ruby-identifier">path</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_TMP&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">user</span>, <span class="ruby-identifier">time</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">pid</span>, <span class="ruby-value str">&quot;bp_tmp&quot;</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;_&quot;</span>)
-111:     <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">path</span>)
-112:     <span class="ruby-constant">Status</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">set_tmpdir</span>(<span class="ruby-identifier">path</span>)
-113:     <span class="ruby-identifier">path</span>
-114:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="parse-method" class="method-detail ">
-                               <a name="method-i-parse"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">parse</span><span
-                                               class="method-args">(argv, cast_list=[], script_path=$0)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check the integrity of a list of casts, followed by parsion options from
-argv and finally checking the options according to the casts. Returns nil
-if argv is empty, otherwise an options hash.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="parse-source">
-<pre>
-    <span class="ruby-comment cmt"># File biopieces.rb, line 58</span>
-58:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">cast_list</span>=[], <span class="ruby-identifier">script_path</span>=<span class="ruby-identifier">$0</span>)
-59:     <span class="ruby-identifier">casts</span>          = <span class="ruby-constant">Casts</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">cast_list</span>)
-60:     <span class="ruby-identifier">option_handler</span> = <span class="ruby-constant">OptionHandler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">casts</span>, <span class="ruby-identifier">script_path</span>, <span class="ruby-ivar">@test</span>)
-61:     <span class="ruby-ivar">@options</span>       = <span class="ruby-identifier">option_handler</span>.<span class="ruby-identifier">options_parse</span>
-62:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="puts-method" class="method-detail ">
-                               <a name="method-i-puts"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">puts</span><span
-                                               class="method-args">(record)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Open Biopiece output stream if not open and puts record to the stream.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="puts-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 92</span>
- 92:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-identifier">record</span>)
- 93:     <span class="ruby-ivar">@out</span> = <span class="ruby-constant">Stream</span><span class="ruby-operator">::</span><span class="ruby-identifier">open</span>(<span class="ruby-ivar">@options</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>, <span class="ruby-ivar">@output</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">IO</span>
- 94: 
- 95:     <span class="ruby-identifier">record</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
- 96:       <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;#{key.to_s}: #{value}\n&quot;</span>
- 97:     <span class="ruby-keyword kw">end</span>
- 98: 
- 99:     <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;---\n&quot;</span>
-100:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-s-method" class="method-detail ">
-                               <a name="method-i-to_s"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_s</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-s-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 102</span>
-102:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
-103:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/BitArray.html b/code_ruby/Maasha/lib/doc/BitArray.html
deleted file mode 100644 (file)
index 44a12d4..0000000
+++ /dev/null
@@ -1,869 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: BitArray</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./bitarray_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="bitarray.rb">bitarray.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-%26">#&</a></li>
-                                       
-                                       <li><a href="#method-i-%5E">#^</a></li>
-                                       
-                                       <li><a href="#method-i-bit_pos">#bit_pos</a></li>
-                                       
-                                       <li><a href="#method-i-bit_set">#bit_set</a></li>
-                                       
-                                       <li><a href="#method-i-bit_set%3F">#bit_set?</a></li>
-                                       
-                                       <li><a href="#method-i-bits_in_char">#bits_in_char</a></li>
-                                       
-                                       <li><a href="#method-i-bits_off">#bits_off</a></li>
-                                       
-                                       <li><a href="#method-i-bits_on">#bits_on</a></li>
-                                       
-                                       <li><a href="#method-i-byte_pos">#byte_pos</a></li>
-                                       
-                                       <li><a href="#method-i-init_byte_array">#init_byte_array</a></li>
-                                       
-                                       <li><a href="#method-i-init_count_array">#init_count_array</a></li>
-                                       
-                                       <li><a href="#method-i-to_s">#to_s</a></li>
-                                       
-                                       <li><a href="#method-i-%7C">#|</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">BitArray</h1>
-
-               <div id="description">
-                       <p>
-Class containing methods for creating and manipulating a bit array.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-               <div id="attribute-method-details" class="method-section section">
-                       <h3 class="section-header">Attributes</h3>
-
-                       
-                       <div id="size-attribute-method" class="method-detail">
-                               <a name="size"></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">size</span><span
-                                               class="attribute-access-type">[R]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="byte-array-attribute-method" class="method-detail">
-                               <a name="byte_array"></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">byte_array</span><span
-                                               class="attribute-access-type">[R]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-               </div>
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(size)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to initialize a new bit array of a given size.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-    <span class="ruby-comment cmt"># File bitarray.rb, line 35</span>
-35:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">size</span>)
-36:     <span class="ruby-ivar">@size</span>        = <span class="ruby-identifier">size</span>
-37:     <span class="ruby-ivar">@byte_array</span>  = <span class="ruby-identifier">init_byte_array</span>
-38:     <span class="ruby-ivar">@count_array</span> = <span class="ruby-identifier">init_count_array</span>
-39:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="--method" class="method-detail ">
-                               <a name="method-i-%26"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">&amp;</span><span
-                                               class="method-args">(ba)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to run bitwise AND (&amp;) on two bit arrays and return the result
-in a new bit array. Bits are copied if they exists in BOTH operands.
-00111100 &amp; 00001101 = 00001100
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="--source">
-<pre>
-    <span class="ruby-comment cmt"># File bitarray.rb, line 76</span>
-76:   <span class="ruby-keyword kw">def</span> &amp;(<span class="ruby-identifier">ba</span>)
-77:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;uneven size of bit arrays: #{self.size} != #{ba.size}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>
-78: 
-79:     <span class="ruby-identifier">result</span> = <span class="ruby-constant">BitArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>)
-80: 
-81:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span>
-82:       <span class="ruby-identifier">result</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>] = (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span> &amp; <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span>).<span class="ruby-identifier">chr</span>
-83:     <span class="ruby-keyword kw">end</span>
-84: 
-85:     <span class="ruby-identifier">result</span>
-86:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="--method" class="method-detail ">
-                               <a name="method-i-%5E"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">^</span><span
-                                               class="method-args">(ba)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to run bitwise XOR (^) on two bit arrays and return the result in a
-new bit array. Bits are copied if they exists in ONE BUT NOT BOTH operands.
-00111100 ^ 00001101 = 00110001
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="--source">
-<pre>
-     <span class="ruby-comment cmt"># File bitarray.rb, line 106</span>
-106:   <span class="ruby-keyword kw">def</span> <span class="ruby-operator">^</span>(<span class="ruby-identifier">ba</span>)
-107:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;uneven size of bit arrays: #{self.size} != #{ba.size}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>
-108: 
-109:     <span class="ruby-identifier">result</span> = <span class="ruby-constant">BitArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>)
-110: 
-111:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span>
-112:       <span class="ruby-identifier">result</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>] = (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span> <span class="ruby-operator">^</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span>).<span class="ruby-identifier">chr</span>
-113:     <span class="ruby-keyword kw">end</span>
-114: 
-115:     <span class="ruby-identifier">result</span>
-116:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="bit-set-method" class="method-detail ">
-                               <a name="method-i-bit_set"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">bit_set</span><span
-                                               class="method-args">(pos)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to set a bit to 1 at a given position in the bit array.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="bit-set-source">
-<pre>
-    <span class="ruby-comment cmt"># File bitarray.rb, line 42</span>
-42:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bit_set</span>(<span class="ruby-identifier">pos</span>)
-43:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Position #{pos} must be an integer.&quot;</span>              <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">pos</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Fixnum</span>
-44:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Position #{pos} outside of range: 0 ... #{@size}&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-ivar">@size</span> ).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">pos</span>
-45: 
-46:     <span class="ruby-ivar">@byte_array</span>[<span class="ruby-identifier">byte_pos</span>(<span class="ruby-identifier">pos</span>)] = (<span class="ruby-ivar">@byte_array</span>[<span class="ruby-identifier">byte_pos</span>(<span class="ruby-identifier">pos</span>)].<span class="ruby-identifier">ord</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">bit_pos</span>(<span class="ruby-identifier">pos</span>)).<span class="ruby-identifier">chr</span>
-47:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="bit-set--method" class="method-detail ">
-                               <a name="method-i-bit_set%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">bit_set?</span><span
-                                               class="method-args">(pos)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to check if a bit at a given position in the bit array is set.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="bit-set--source">
-<pre>
-    <span class="ruby-comment cmt"># File bitarray.rb, line 50</span>
-50:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bit_set?</span>(<span class="ruby-identifier">pos</span>)
-51:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Position #{pos} must be an integer.&quot;</span>              <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">pos</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Fixnum</span>
-52:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Position #{pos} outside of range: 0 ... #{@size}&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-ivar">@size</span> ).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">pos</span>
-53: 
-54:     (<span class="ruby-ivar">@byte_array</span>[<span class="ruby-identifier">byte_pos</span>(<span class="ruby-identifier">pos</span>)].<span class="ruby-identifier">ord</span> &amp; <span class="ruby-identifier">bit_pos</span>(<span class="ruby-identifier">pos</span>)) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
-55:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="bits-off-method" class="method-detail ">
-                               <a name="method-i-bits_off"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">bits_off</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the number of bits set &#8220;off&#8221; in a bit
-array.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="bits-off-source">
-<pre>
-    <span class="ruby-comment cmt"># File bitarray.rb, line 69</span>
-69:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bits_off</span>
-70:     <span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">bits_on</span>
-71:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="bits-on-method" class="method-detail ">
-                               <a name="method-i-bits_on"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">bits_on</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the number of bits set &#8220;on&#8221; in a bit array.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="bits-on-source">
-<pre>
-    <span class="ruby-comment cmt"># File bitarray.rb, line 58</span>
-58:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bits_on</span> 
-59:     <span class="ruby-identifier">bits_on</span> = <span class="ruby-value">0</span>
-60: 
-61:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span>
-62:       <span class="ruby-identifier">bits_on</span> <span class="ruby-operator">+=</span> <span class="ruby-ivar">@count_array</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span>]
-63:     <span class="ruby-keyword kw">end</span>
-64: 
-65:     <span class="ruby-identifier">bits_on</span>
-66:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-s-method" class="method-detail ">
-                               <a name="method-i-to_s"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_s</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to convert a bit array to a string.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-s-source">
-<pre>
-     <span class="ruby-comment cmt"># File bitarray.rb, line 119</span>
-119:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
-120:     <span class="ruby-identifier">string</span> = <span class="ruby-value str">&quot;&quot;</span>
-121: 
-122:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-ivar">@size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pos</span><span class="ruby-operator">|</span>
-123:       <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bit_set?</span> <span class="ruby-identifier">pos</span> 
-124:         <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;1&quot;</span>
-125:       <span class="ruby-keyword kw">else</span>
-126:         <span class="ruby-identifier">string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span>
-127:       <span class="ruby-keyword kw">end</span>
-128:     <span class="ruby-keyword kw">end</span>
-129: 
-130:     <span class="ruby-identifier">string</span>
-131:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="--method" class="method-detail ">
-                               <a name="method-i-%7C"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">|</span><span
-                                               class="method-args">(ba)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to run bitwise OR (|) on two bit arrays and return the result in a
-new bit array. Bits are copied if they exists in EITHER operands. 00111100
-| 00001101 = 00111101
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="--source">
-<pre>
-     <span class="ruby-comment cmt"># File bitarray.rb, line 91</span>
- 91:   <span class="ruby-keyword kw">def</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">ba</span>)
- 92:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;uneven size of bit arrays: #{self.size} != #{ba.size}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>
- 93: 
- 94:     <span class="ruby-identifier">result</span> = <span class="ruby-constant">BitArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ba</span>.<span class="ruby-identifier">size</span>)
- 95: 
- 96:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">byte</span><span class="ruby-operator">|</span>
- 97:       <span class="ruby-identifier">result</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>] = (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">ba</span>.<span class="ruby-identifier">byte_array</span>[<span class="ruby-identifier">byte</span>].<span class="ruby-identifier">ord</span>).<span class="ruby-identifier">chr</span>
- 98:     <span class="ruby-keyword kw">end</span>
- 99: 
-100:     <span class="ruby-identifier">result</span>
-101:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="bit-pos-method" class="method-detail ">
-                               <a name="method-i-bit_pos"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">bit_pos</span><span
-                                               class="method-args">(pos)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the bit position in a byte.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="bit-pos-source">
-<pre>
-     <span class="ruby-comment cmt"># File bitarray.rb, line 177</span>
-177:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bit_pos</span>(<span class="ruby-identifier">pos</span>)
-178:     <span class="ruby-value">1</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-constant">BitsInChar</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">pos</span> <span class="ruby-operator">%</span> <span class="ruby-constant">BitsInChar</span>))
-179:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="bits-in-char-method" class="method-detail ">
-                               <a name="method-i-bits_in_char"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">bits_in_char</span><span
-                                               class="method-args">(char)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the number of set bits in a char.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="bits-in-char-source">
-<pre>
-     <span class="ruby-comment cmt"># File bitarray.rb, line 161</span>
-161:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bits_in_char</span>(<span class="ruby-identifier">char</span>)
-162:     <span class="ruby-identifier">bits</span> = <span class="ruby-value">0</span>
-163: 
-164:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-constant">BitsInChar</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pos</span><span class="ruby-operator">|</span>
-165:       <span class="ruby-identifier">bits</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">char</span> &amp; <span class="ruby-identifier">bit_pos</span>(<span class="ruby-identifier">pos</span>)) <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
-166:     <span class="ruby-keyword kw">end</span>
-167: 
-168:     <span class="ruby-identifier">bits</span>
-169:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="byte-pos-method" class="method-detail ">
-                               <a name="method-i-byte_pos"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">byte_pos</span><span
-                                               class="method-args">(pos)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the byte position in the byte array for a given bit
-position.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="byte-pos-source">
-<pre>
-     <span class="ruby-comment cmt"># File bitarray.rb, line 172</span>
-172:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">byte_pos</span>(<span class="ruby-identifier">pos</span>)
-173:     <span class="ruby-identifier">pos</span> <span class="ruby-operator">/</span> <span class="ruby-constant">BitsInChar</span>
-174:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="init-byte-array-method" class="method-detail ">
-                               <a name="method-i-init_byte_array"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">init_byte_array</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to initialize the byte array (string) that constitutes the bit
-array.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="init-byte-array-source">
-<pre>
-     <span class="ruby-comment cmt"># File bitarray.rb, line 138</span>
-138:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_byte_array</span>
-139:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Size must be an integer, not #{@size}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@size</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Fixnum</span>
-140:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">BitArrayError</span>, <span class="ruby-node">&quot;Size must be positive, not #{@size}&quot;</span>   <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
-141: 
-142:     <span class="ruby-identifier">byte_array</span> = <span class="ruby-value str">&quot;&quot;</span>
-143:     <span class="ruby-identifier">byte_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">0</span>.<span class="ruby-identifier">chr</span> * (((<span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">BitsInChar</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
-144: 
-145:     <span class="ruby-identifier">byte_array</span>
-146:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="init-count-array-method" class="method-detail ">
-                               <a name="method-i-init_count_array"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">init_count_array</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns an array where the element index value is the number of
-bits set for that index value.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="init-count-array-source">
-<pre>
-     <span class="ruby-comment cmt"># File bitarray.rb, line 150</span>
-150:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init_count_array</span>
-151:     <span class="ruby-identifier">count_array</span> = []
-152: 
-153:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> (<span class="ruby-value">2</span> <span class="ruby-operator">**</span> <span class="ruby-constant">BitsInChar</span>)).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
-154:       <span class="ruby-identifier">count_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">bits_in_char</span>(<span class="ruby-identifier">i</span>)
-155:     <span class="ruby-keyword kw">end</span>
-156: 
-157:     <span class="ruby-identifier">count_array</span>
-158:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/BitArrayError.html b/code_ruby/Maasha/lib/doc/BitArrayError.html
deleted file mode 100644 (file)
index 6b352ae..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: BitArrayError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./bitarray_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="bitarray.rb">bitarray.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">BitArrayError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a
-href="BitArray.html">BitArray</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Boulder.html b/code_ruby/Maasha/lib/doc/Boulder.html
deleted file mode 100644 (file)
index b1af1ca..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Boulder</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./boulder_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="boulder.rb">boulder.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link"><a href="Filesys.html">Filesys</a></p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-each">#each</a></li>
-                                       
-                                       <li><a href="#method-i-to_boulder">#to_boulder</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Boulder</h1>
-
-               <div id="description">
-                       <p>
-Class to manipulate boulder records - Lincoln Steins own YAML like format:
-<a
-href="http://stein.cshl.org/boulder/docs/Boulder.html">stein.cshl.org/boulder/docs/Boulder.html</a>
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(input=STDIN, output=STDOUT)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Initialize a <a href="Boulder.html">Boulder</a> object. Options are for
-testing purposes only.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-    <span class="ruby-comment cmt"># File boulder.rb, line 39</span>
-39:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">input</span>=<span class="ruby-constant">STDIN</span>, <span class="ruby-identifier">output</span>=<span class="ruby-constant">STDOUT</span>)
-40:     <span class="ruby-ivar">@input</span>  = <span class="ruby-identifier">input</span>
-41:     <span class="ruby-ivar">@output</span> = <span class="ruby-identifier">output</span>
-42:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="each-method" class="method-detail ">
-                               <a name="method-i-each"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">each</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="each-source">
-<pre>
-    <span class="ruby-comment cmt"># File boulder.rb, line 44</span>
-44:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
-45:     <span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@input</span>.<span class="ruby-identifier">eof?</span> <span class="ruby-keyword kw">do</span>
-46:       <span class="ruby-identifier">block</span> = <span class="ruby-ivar">@input</span>.<span class="ruby-identifier">gets</span>(<span class="ruby-constant">SEP</span>)
-47:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">BoulderError</span>, <span class="ruby-value str">&quot;Missing record seperator&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">block</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/#{SEP}$/</span>
-48: 
-49:       <span class="ruby-identifier">record</span> = {}
-50: 
-51:       <span class="ruby-identifier">block</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-constant">SEP</span>).<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
-52:         <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'='</span>, <span class="ruby-value">2</span>)
-53: 
-54:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">BoulderError</span>, <span class="ruby-value str">&quot;Missing key/value seperator&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">nil?</span>
-55:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">BoulderError</span>, <span class="ruby-value str">&quot;Missing key&quot;</span>                 <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">empty?</span>
-56:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">BoulderError</span>, <span class="ruby-value str">&quot;Missing value&quot;</span>               <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">empty?</span>
-57: 
-58:         <span class="ruby-identifier">record</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">val</span>
-59:       <span class="ruby-keyword kw">end</span>
-60: 
-61:       <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span>
-62:     <span class="ruby-keyword kw">end</span>
-63:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-boulder-method" class="method-detail ">
-                               <a name="method-i-to_boulder"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_boulder</span><span
-                                               class="method-args">(record)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that converts and returns a hash record as a <a
-href="Boulder.html">Boulder</a> string.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-boulder-source">
-<pre>
-    <span class="ruby-comment cmt"># File boulder.rb, line 67</span>
-67:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_boulder</span>(<span class="ruby-identifier">record</span>)
-68:     <span class="ruby-identifier">str</span> = <span class="ruby-value str">&quot;&quot;</span>
-69: 
-70:     <span class="ruby-identifier">record</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
-71:       <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{key}=#{val}\n&quot;</span>
-72:     <span class="ruby-keyword kw">end</span>
-73: 
-74:     <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;=\n&quot;</span>
-75: 
-76:     <span class="ruby-identifier">str</span>
-77:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/BoulderError.html b/code_ruby/Maasha/lib/doc/BoulderError.html
deleted file mode 100644 (file)
index ded84e1..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: BoulderError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./boulder_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="boulder.rb">boulder.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">BoulderError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a
-href="Boulder.html">Boulder</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/CastError.html b/code_ruby/Maasha/lib/doc/CastError.html
deleted file mode 100644 (file)
index 3689d7c..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: CastError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">CastError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with option casts.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Casts.html b/code_ruby/Maasha/lib/doc/Casts.html
deleted file mode 100644 (file)
index 8892aa8..0000000
+++ /dev/null
@@ -1,823 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Casts</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Array</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-check">#check</a></li>
-                                       
-                                       <li><a href="#method-i-check_duplicates">#check_duplicates</a></li>
-                                       
-                                       <li><a href="#method-i-check_keys">#check_keys</a></li>
-                                       
-                                       <li><a href="#method-i-check_val_allowed">#check_val_allowed</a></li>
-                                       
-                                       <li><a href="#method-i-check_val_default">#check_val_default</a></li>
-                                       
-                                       <li><a href="#method-i-check_val_disallowed">#check_val_disallowed</a></li>
-                                       
-                                       <li><a href="#method-i-check_val_long">#check_val_long</a></li>
-                                       
-                                       <li><a href="#method-i-check_val_mandatory">#check_val_mandatory</a></li>
-                                       
-                                       <li><a href="#method-i-check_val_short">#check_val_short</a></li>
-                                       
-                                       <li><a href="#method-i-check_val_type">#check_val_type</a></li>
-                                       
-                                       <li><a href="#method-i-check_values">#check_values</a></li>
-                                       
-                                       <li><a href="#method-i-long_to_sym">#long_to_sym</a></li>
-                                       
-                                       <li><a href="#method-i-ubiquitous">#ubiquitous</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Casts</h1>
-
-               <div id="description">
-                       <p>
-Class to handle casts of command line options. Each cast prescribes the
-long and short name of the option, the type, if it is mandatory, the
-default value, and allowed and disallowed values. An optional list of extra
-casts can be supplied, and the integrity of the casts are checked.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-               <div id="constants-list" class="section">
-                       <h3 class="section-header">Constants</h3>
-                       <dl>
-                       
-                               <dt><a name="TYPES">TYPES</a></dt>
-                               
-                               <dd class="description"></dd>
-                               
-                       
-                               <dt><a name="MANDATORY">MANDATORY</a></dt>
-                               
-                               <dd class="description"></dd>
-                               
-                       
-                       </dl>
-               </div>
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(cast_list=[])</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Initialize cast object with an optional options cast list to which
-ubiquitous casts are added after which all casts are checked.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 132</span>
-132:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">cast_list</span>=[])
-133:     <span class="ruby-ivar">@cast_list</span> = <span class="ruby-identifier">cast_list</span>
-134:     <span class="ruby-identifier">ubiquitous</span>
-135:     <span class="ruby-identifier">check</span>
-136:     <span class="ruby-identifier">long_to_sym</span>
-137:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">push</span> *<span class="ruby-ivar">@cast_list</span>
-138:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="check-method" class="method-detail ">
-                               <a name="method-i-check"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check integrity of the casts.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 151</span>
-151:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check</span>
-152:     <span class="ruby-identifier">check_keys</span>
-153:     <span class="ruby-identifier">check_values</span>
-154:     <span class="ruby-identifier">check_duplicates</span>
-155:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-duplicates-method" class="method-detail ">
-                               <a name="method-i-check_duplicates"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_duplicates</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check cast for duplicate long or short options names.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-duplicates-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 237</span>
-237:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_duplicates</span>
-238:     <span class="ruby-identifier">check_hash</span> = {}
-239:     <span class="ruby-ivar">@cast_list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-240:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Duplicate argument: '--#{cast[:long]}'&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-241:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Duplicate argument: '-#{cast[:short]}'&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:short</span>]
-242:       <span class="ruby-identifier">check_hash</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]]  = <span class="ruby-keyword kw">true</span>
-243:       <span class="ruby-identifier">check_hash</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:short</span>]] = <span class="ruby-keyword kw">true</span>
-244:     <span class="ruby-keyword kw">end</span>
-245:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-keys-method" class="method-detail ">
-                               <a name="method-i-check_keys"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_keys</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if all mandatory keys are present in casts and raise if not.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-keys-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 158</span>
-158:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_keys</span>
-159:     <span class="ruby-ivar">@cast_list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-160:       <span class="ruby-constant">MANDATORY</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mandatory</span><span class="ruby-operator">|</span>
-161:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Missing symbol in cast: '#{mandatory.to_sym}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">mandatory</span>.<span class="ruby-identifier">to_sym</span>
-162:       <span class="ruby-keyword kw">end</span>
-163:     <span class="ruby-keyword kw">end</span>
-164:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-val-allowed-method" class="method-detail ">
-                               <a name="method-i-check_val_allowed"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_val_allowed</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if values to allowed are legal and raise if not.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-val-allowed-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 223</span>
-223:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_allowed</span>(<span class="ruby-identifier">cast</span>)
-224:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:allowed</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:allowed</span>].<span class="ruby-identifier">nil?</span>
-225:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of allowed: '#{cast[:allowed]}'&quot;</span>
-226:     <span class="ruby-keyword kw">end</span>
-227:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-val-default-method" class="method-detail ">
-                               <a name="method-i-check_val_default"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_val_default</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if values to default are legal and raise if not.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-val-default-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 213</span>
-213:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_default</span>(<span class="ruby-identifier">cast</span>)
-214:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">nil?</span>          <span class="ruby-keyword kw">or</span>
-215:            <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span>  <span class="ruby-keyword kw">or</span>
-216:            <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Integer</span> <span class="ruby-keyword kw">or</span>
-217:            <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Float</span>
-218:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of default: '#{cast[:default]}'&quot;</span>
-219:     <span class="ruby-keyword kw">end</span>
-220:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-val-disallowed-method" class="method-detail ">
-                               <a name="method-i-check_val_disallowed"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_val_disallowed</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if values to disallowed are legal and raise if not.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-val-disallowed-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 230</span>
-230:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_disallowed</span>(<span class="ruby-identifier">cast</span>)
-231:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:disallowed</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:disallowed</span>].<span class="ruby-identifier">nil?</span>
-232:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of disallowed: '#{cast[:disallowed]}'&quot;</span>
-233:     <span class="ruby-keyword kw">end</span>
-234:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-val-long-method" class="method-detail ">
-                               <a name="method-i-check_val_long"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_val_long</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if the values to long are legal and raise if not.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-val-long-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 180</span>
-180:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_long</span>(<span class="ruby-identifier">cast</span>)
-181:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
-182:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of long: '#{cast[:long]}'&quot;</span>
-183:     <span class="ruby-keyword kw">end</span>
-184:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-val-mandatory-method" class="method-detail ">
-                               <a name="method-i-check_val_mandatory"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_val_mandatory</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if values to mandatory are legal and raise if not.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-val-mandatory-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 206</span>
-206:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_mandatory</span>(<span class="ruby-identifier">cast</span>)
-207:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:mandatory</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:mandatory</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">false</span>
-208:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of mandatory: '#{cast[:mandatory]}'&quot;</span>
-209:     <span class="ruby-keyword kw">end</span>
-210:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-val-short-method" class="method-detail ">
-                               <a name="method-i-check_val_short"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_val_short</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if the values to short are legal and raise if not.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-val-short-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 187</span>
-187:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_short</span>(<span class="ruby-identifier">cast</span>)
-188:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:short</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">String</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:short</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
-189:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of short: '#{cast[:short]}'&quot;</span>
-190:     <span class="ruby-keyword kw">end</span>
-191:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-val-type-method" class="method-detail ">
-                               <a name="method-i-check_val_type"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_val_type</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if values to type are legal and raise if not.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-val-type-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 194</span>
-194:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_val_type</span>(<span class="ruby-identifier">cast</span>)
-195:     <span class="ruby-identifier">type_hash</span> = {}
-196:     <span class="ruby-constant">TYPES</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span><span class="ruby-operator">|</span>
-197:       <span class="ruby-identifier">type_hash</span>[<span class="ruby-identifier">type</span>] = <span class="ruby-keyword kw">true</span>
-198:     <span class="ruby-keyword kw">end</span>
-199: 
-200:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">type_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>]
-201:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">CastError</span>, <span class="ruby-node">&quot;Illegal cast of type: '#{cast[:type]}'&quot;</span>
-202:     <span class="ruby-keyword kw">end</span>
-203:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-values-method" class="method-detail ">
-                               <a name="method-i-check_values"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_values</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if all values in casts are valid.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-values-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 167</span>
-167:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_values</span>
-168:     <span class="ruby-ivar">@cast_list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-169:       <span class="ruby-identifier">check_val_long</span>(<span class="ruby-identifier">cast</span>)
-170:       <span class="ruby-identifier">check_val_short</span>(<span class="ruby-identifier">cast</span>)
-171:       <span class="ruby-identifier">check_val_type</span>(<span class="ruby-identifier">cast</span>)
-172:       <span class="ruby-identifier">check_val_mandatory</span>(<span class="ruby-identifier">cast</span>)
-173:       <span class="ruby-identifier">check_val_default</span>(<span class="ruby-identifier">cast</span>)
-174:       <span class="ruby-identifier">check_val_allowed</span>(<span class="ruby-identifier">cast</span>)
-175:       <span class="ruby-identifier">check_val_disallowed</span>(<span class="ruby-identifier">cast</span>)
-176:     <span class="ruby-keyword kw">end</span>
-177:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="long-to-sym-method" class="method-detail ">
-                               <a name="method-i-long_to_sym"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">long_to_sym</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Convert values to :long keys to symbols for all casts.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="long-to-sym-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 248</span>
-248:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">long_to_sym</span>
-249:     <span class="ruby-ivar">@cast_list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-250:       <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>] = <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>].<span class="ruby-identifier">to_sym</span>
-251:     <span class="ruby-keyword kw">end</span>
-252:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="ubiquitous-method" class="method-detail ">
-                               <a name="method-i-ubiquitous"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">ubiquitous</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Add ubiquitous options casts.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="ubiquitous-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 143</span>
-143:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ubiquitous</span>
-144:     <span class="ruby-ivar">@cast_list</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-value">:long=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'help'</span>,       <span class="ruby-value">:short=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'?'</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'flag'</span>,   <span class="ruby-value">:mandatory=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-value">:default=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:allowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:disallowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>}
-145:     <span class="ruby-ivar">@cast_list</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-value">:long=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'stream_in'</span>,  <span class="ruby-value">:short=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'I'</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'files!'</span>, <span class="ruby-value">:mandatory=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-value">:default=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:allowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:disallowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>}
-146:     <span class="ruby-ivar">@cast_list</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-value">:long=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'stream_out'</span>, <span class="ruby-value">:short=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'O'</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'file'</span>,   <span class="ruby-value">:mandatory=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-value">:default=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:allowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:disallowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>}
-147:     <span class="ruby-ivar">@cast_list</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-value">:long=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'verbose'</span>,    <span class="ruby-value">:short=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'v'</span>, <span class="ruby-value">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'flag'</span>,   <span class="ruby-value">:mandatory=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-value">:default=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:allowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>, <span class="ruby-value">:disallowed=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">nil</span>}
-148:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Digest.html b/code_ruby/Maasha/lib/doc/Digest.html
deleted file mode 100644 (file)
index b25354f..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Digest</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./digest_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="digest.rb">digest.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-disambiguate">#disambiguate</a></li>
-                                       
-                                       <li><a href="#method-i-each">#each</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-                       <div id="includes-section" class="section">
-                               <h3 class="section-header">Included Modules</h3>
-                               <ul class="link-list">
-                               
-                               
-                                       <li><span class="include">Enumerable</span></li>
-                               
-                               
-                               </ul>
-                       </div>
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Digest</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(seq, pattern, cut_pos)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Initialize a digest object with the following arguments:
-</p>
-<ul>
-<li><p>
-seq: A sequence object.
-</p>
-</li>
-<li><p>
-pattern: A restriction enzyme recognition pattern.
-</p>
-</li>
-<li><p>
-cut_pos: Offset from match position where the enzyme cuts.
-</p>
-</li>
-</ul>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-    <span class="ruby-comment cmt"># File digest.rb, line 37</span>
-37:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">seq</span>, <span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">cut_pos</span>)
-38:     <span class="ruby-ivar">@seq</span>     = <span class="ruby-identifier">seq</span>
-39:     <span class="ruby-ivar">@pattern</span> = <span class="ruby-identifier">disambiguate</span>(<span class="ruby-identifier">pattern</span>)
-40:     <span class="ruby-ivar">@cut_pos</span> = <span class="ruby-identifier">cut_pos</span>
-41:     <span class="ruby-ivar">@offset</span>  = <span class="ruby-value">0</span>
-42:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="each-method" class="method-detail ">
-                               <a name="method-i-each"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">each</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to get the next digestion product from a sequence.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="each-source">
-<pre>
-    <span class="ruby-comment cmt"># File digest.rb, line 45</span>
-45:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
-46:     <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">scan</span> <span class="ruby-ivar">@pattern</span> <span class="ruby-keyword kw">do</span>
-47:       <span class="ruby-identifier">pos</span> = <span class="ruby-node">$`</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@cut_pos</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-48:      
-49:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>
-50:         <span class="ruby-identifier">seq</span> = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{@seq.seq_name}[#{@offset}-#{pos}]&quot;</span>, <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-ivar">@offset</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">pos</span>], <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">type</span>)
-51: 
-52:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">seq</span>
-53:       <span class="ruby-keyword kw">end</span>
-54: 
-55:       <span class="ruby-ivar">@offset</span> = <span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
-56:     <span class="ruby-keyword kw">end</span>
-57: 
-58:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@offset</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
-59:       <span class="ruby-ivar">@offset</span> = <span class="ruby-value">0</span>
-60:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@offset</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">length</span>
-61:       <span class="ruby-ivar">@offset</span> = <span class="ruby-value">0</span>
-62:     <span class="ruby-keyword kw">end</span>
-63: 
-64:     <span class="ruby-identifier">seq</span> = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{@seq.seq_name}[#{@offset}-#{@seq.length - 1}]&quot;</span>, <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-ivar">@offset</span> <span class="ruby-operator">..</span> <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">length</span>], <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">type</span>)
-65: 
-66:     <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">seq</span>
-67: 
-68:     <span class="ruby-keyword kw">self</span> <span class="ruby-comment cmt"># conventionally</span>
-69:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="disambiguate-method" class="method-detail ">
-                               <a name="method-i-disambiguate"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">disambiguate</span><span
-                                               class="method-args">(pattern)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns a regexp object with a restriction enzyme pattern with
-ambiguity codes substituted to the appropriate regexp.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="disambiguate-source">
-<pre>
-     <span class="ruby-comment cmt"># File digest.rb, line 76</span>
- 76:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disambiguate</span>(<span class="ruby-identifier">pattern</span>)
- 77:     <span class="ruby-identifier">ambiguity</span> = {
- 78:       <span class="ruby-value str">'A'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;A&quot;</span>,
- 79:       <span class="ruby-value str">'T'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;T&quot;</span>,
- 80:       <span class="ruby-value str">'U'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;T&quot;</span>,
- 81:       <span class="ruby-value str">'C'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;C&quot;</span>,
- 82:       <span class="ruby-value str">'G'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;G&quot;</span>,
- 83:       <span class="ruby-value str">'M'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[AC]&quot;</span>,
- 84:       <span class="ruby-value str">'R'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[AG]&quot;</span>,
- 85:       <span class="ruby-value str">'W'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[AT]&quot;</span>,
- 86:       <span class="ruby-value str">'S'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[CG]&quot;</span>,
- 87:       <span class="ruby-value str">'Y'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[CT]&quot;</span>,
- 88:       <span class="ruby-value str">'K'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[GT]&quot;</span>,
- 89:       <span class="ruby-value str">'V'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[ACG]&quot;</span>,
- 90:       <span class="ruby-value str">'H'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[ACT]&quot;</span>,
- 91:       <span class="ruby-value str">'D'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[AGT]&quot;</span>,
- 92:       <span class="ruby-value str">'B'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[CGT]&quot;</span>,
- 93:       <span class="ruby-value str">'N'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;[GATC]&quot;</span>
- 94:     }
- 95: 
- 96:     <span class="ruby-identifier">new_pattern</span> = <span class="ruby-value str">&quot;&quot;</span>
- 97: 
- 98:     <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
- 99:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ambiguity</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">char</span>
-100:         <span class="ruby-identifier">new_pattern</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">ambiguity</span>[<span class="ruby-identifier">char</span>]
-101:       <span class="ruby-keyword kw">else</span>
-102:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">DigestError</span>, <span class="ruby-node">&quot;Could not disambiguate residue: #{char}&quot;</span>
-103:       <span class="ruby-keyword kw">end</span>
-104:     <span class="ruby-keyword kw">end</span>
-105: 
-106:     <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">new_pattern</span>)
-107:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/DigestError.html b/code_ruby/Maasha/lib/doc/DigestError.html
deleted file mode 100644 (file)
index 6176583..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: DigestError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./digest_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="digest.rb">digest.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">DigestError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a href="Digest.html">Digest</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Fasta.html b/code_ruby/Maasha/lib/doc/Fasta.html
deleted file mode 100644 (file)
index 65ce1bb..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Fasta</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./fasta_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="fasta.rb">fasta.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link"><a href="Filesys.html">Filesys</a></p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-i-get_entry">#get_entry</a></li>
-                                       
-                                       <li><a href="#method-i-puts">#puts</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Fasta</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="get-entry-method" class="method-detail ">
-                               <a name="method-i-get_entry"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">get_entry</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to get the next FASTA entry form an ios and return this as a <a
-href="Seq.html">Seq</a> object. If no entry is found or eof then nil is
-returned.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="get-entry-source">
-<pre>
-    <span class="ruby-comment cmt"># File fasta.rb, line 34</span>
-34:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_entry</span>
-35:     <span class="ruby-identifier">block</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>(<span class="ruby-identifier">$/</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>)
-36:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">nil?</span>
-37: 
-38:     <span class="ruby-identifier">block</span>.<span class="ruby-identifier">chomp!</span>(<span class="ruby-identifier">$/</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>)
-39: 
-40:     (<span class="ruby-identifier">seq_name</span>, <span class="ruby-identifier">seq</span>) = <span class="ruby-identifier">block</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">$/</span>, <span class="ruby-value">2</span>)
-41: 
-42:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
-43: 
-44:     <span class="ruby-identifier">entry</span>          = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>
-45:     <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">type</span>     = <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">downcase</span>
-46:     <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq</span>      = <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s/</span>, <span class="ruby-value str">''</span>)
-47:     <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq_name</span> = <span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/^&gt;/</span>, <span class="ruby-value str">''</span>).<span class="ruby-identifier">rstrip</span>
-48: 
-49:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">empty?</span>
-50:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">empty?</span>
-51: 
-52:     <span class="ruby-identifier">entry</span>
-53:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="puts-method" class="method-detail ">
-                               <a name="method-i-puts"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">puts</span><span
-                                               class="method-args">(record)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-TODO - this should be some custom to_s method instead.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="puts-source">
-<pre>
-    <span class="ruby-comment cmt"># File fasta.rb, line 56</span>
-56:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-identifier">record</span>)
-57:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value">:SEQ_NAME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value">:SEQ</span>
-58:       <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;&gt;#{record[:SEQ_NAME]}\n&quot;</span>
-59:       <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;#{record[:SEQ]}\n&quot;</span>
-60:     <span class="ruby-keyword kw">end</span>
-61:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/FastaError.html b/code_ruby/Maasha/lib/doc/FastaError.html
deleted file mode 100644 (file)
index a5ec5a1..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: FastaError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./fasta_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="fasta.rb">fasta.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">FastaError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with FASTA.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Fastq.html b/code_ruby/Maasha/lib/doc/Fastq.html
deleted file mode 100644 (file)
index 5152dcf..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Fastq</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./fastq_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="fastq.rb">fastq.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link"><a href="Filesys.html">Filesys</a></p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-i-get_entry">#get_entry</a></li>
-                                       
-                                       <li><a href="#method-i-puts">#puts</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Fastq</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="get-entry-method" class="method-detail ">
-                               <a name="method-i-get_entry"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">get_entry</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to get the next FASTQ entry form an ios and return this as a <a
-href="Seq.html">Seq</a> object. If no entry is found or eof then nil is
-returned.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="get-entry-source">
-<pre>
-    <span class="ruby-comment cmt"># File fastq.rb, line 34</span>
-34:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_entry</span>
-35:     <span class="ruby-keyword kw">begin</span>
-36:       <span class="ruby-identifier">seq_name</span>       = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp!</span>
-37:       <span class="ruby-identifier">seq</span>            = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp!</span>
-38:       <span class="ruby-identifier">qual_name</span>      = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp!</span>
-39:       <span class="ruby-identifier">qual</span>           = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp!</span>
-40: 
-41:       <span class="ruby-identifier">entry</span>          = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>
-42:       <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">type</span>     = <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">downcase</span>
-43:       <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq</span>      = <span class="ruby-identifier">seq</span>
-44:       <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq_name</span> = <span class="ruby-identifier">seq_name</span>[<span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">length</span>]
-45:       <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">qual</span>     = <span class="ruby-identifier">qual</span>
-46: 
-47:       <span class="ruby-identifier">entry</span>
-48:     <span class="ruby-keyword kw">rescue</span>
-49:       <span class="ruby-keyword kw">nil</span>
-50:     <span class="ruby-keyword kw">end</span>
-51:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="puts-method" class="method-detail ">
-                               <a name="method-i-puts"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">puts</span><span
-                                               class="method-args">(record)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-TODO - this should be some custom to_s method instead.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="puts-source">
-<pre>
-    <span class="ruby-comment cmt"># File fastq.rb, line 54</span>
-54:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-identifier">record</span>)
-55:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value">:SEQ_NAME</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value">:SEQ</span>
-56:       <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;&gt;#{record[:SEQ_NAME]}\n&quot;</span>
-57:       <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;#{record[:SEQ]}\n&quot;</span>
-58:     <span class="ruby-keyword kw">end</span>
-59:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/FastqError.html b/code_ruby/Maasha/lib/doc/FastqError.html
deleted file mode 100644 (file)
index 0ec36b4..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: FastqError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./fastq_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="fastq.rb">fastq.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">FastqError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with FASTQ.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Filesys.html b/code_ruby/Maasha/lib/doc/Filesys.html
deleted file mode 100644 (file)
index 4c874ae..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Filesys</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./filesys_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="filesys.rb">filesys.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-c-open">::open</a></li>
-                                       
-                                       <li><a href="#method-c-zopen">::zopen</a></li>
-                                       
-                                       <li><a href="#method-i-close">#close</a></li>
-                                       
-                                       <li><a href="#method-i-each">#each</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-                       <div id="includes-section" class="section">
-                               <h3 class="section-header">Included Modules</h3>
-                               <ul class="link-list">
-                               
-                               
-                                       <li><span class="include">Enumerable</span></li>
-                               
-                               
-                               </ul>
-                       </div>
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Filesys</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(io, type=nil)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-    <span class="ruby-comment cmt"># File filesys.rb, line 58</span>
-58:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>)
-59:     <span class="ruby-ivar">@io</span>   = <span class="ruby-identifier">io</span>
-60:     <span class="ruby-ivar">@type</span> = <span class="ruby-identifier">type</span>
-61:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="open-method" class="method-detail ">
-                               <a name="method-c-open"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">open</span><span
-                                               class="method-args">(*args)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Class method allowing open to be used on (zipped) files. See File.open.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="open-source">
-<pre>
-    <span class="ruby-comment cmt"># File filesys.rb, line 35</span>
-35:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>)
-36:     <span class="ruby-identifier">args</span> = *<span class="ruby-identifier">args</span>
-37:     <span class="ruby-identifier">file</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>
-38: 
-39:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;-&quot;</span>
-40:       <span class="ruby-identifier">ios</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">STDIN</span>)
-41:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">pipe?</span> <span class="ruby-identifier">file</span>
-42:       <span class="ruby-identifier">ios</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>))
-43:     <span class="ruby-keyword kw">else</span>
-44:       <span class="ruby-identifier">ios</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zopen</span>(*<span class="ruby-identifier">args</span>)
-45:     <span class="ruby-keyword kw">end</span>
-46: 
-47:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
-48:       <span class="ruby-keyword kw">begin</span>
-49:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">ios</span>
-50:       <span class="ruby-keyword kw">ensure</span>
-51:         <span class="ruby-identifier">ios</span>.<span class="ruby-identifier">close</span>
-52:       <span class="ruby-keyword kw">end</span>
-53:     <span class="ruby-keyword kw">else</span>
-54:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">ios</span>
-55:     <span class="ruby-keyword kw">end</span>
-56:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-class-method-details" class="method-section section">
-                       <h3 class="section-header">Private Class Methods</h3>
-
-               
-                       <div id="zopen-method" class="method-detail ">
-                               <a name="method-c-zopen"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">zopen</span><span
-                                               class="method-args">(*args)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Helper method to return an ios to a file that may be zipped in which case
-the ios is unzipped on the fly. See File.open.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="zopen-source">
-<pre>
-    <span class="ruby-comment cmt"># File filesys.rb, line 79</span>
-79:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zopen</span>(*<span class="ruby-identifier">args</span>)
-80:     <span class="ruby-identifier">ios</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>)
-81: 
-82:     <span class="ruby-keyword kw">begin</span>
-83:       <span class="ruby-identifier">ios</span> = <span class="ruby-constant">Zlib</span><span class="ruby-operator">::</span><span class="ruby-constant">GzipReader</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
-84:     <span class="ruby-keyword kw">rescue</span>
-85:       <span class="ruby-identifier">ios</span>.<span class="ruby-identifier">rewind</span>
-86:     <span class="ruby-keyword kw">end</span>
-87: 
-88:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
-89:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="close-method" class="method-detail ">
-                               <a name="method-i-close"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">close</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to close ios.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="close-source">
-<pre>
-    <span class="ruby-comment cmt"># File filesys.rb, line 64</span>
-64:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
-65:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">close</span>
-66:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="each-method" class="method-detail ">
-                               <a name="method-i-each"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">each</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Iterator method for parsing entries.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="each-source">
-<pre>
-    <span class="ruby-comment cmt"># File filesys.rb, line 69</span>
-69:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
-70:     <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">get_entry</span> <span class="ruby-keyword kw">do</span>
-71:       <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">entry</span>
-72:     <span class="ruby-keyword kw">end</span>
-73:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/FilesysError.html b/code_ruby/Maasha/lib/doc/FilesysError.html
deleted file mode 100644 (file)
index 3a6624d..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: FilesysError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./filesys_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="filesys.rb">filesys.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">FilesysError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a
-href="Filesys.html">Filesys</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Genbank.html b/code_ruby/Maasha/lib/doc/Genbank.html
deleted file mode 100644 (file)
index ed25065..0000000
+++ /dev/null
@@ -1,521 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Genbank</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link"><a href="Filesys.html">Filesys</a></p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-each">#each</a></li>
-                                       
-                                       <li><a href="#method-i-get_entry">#get_entry</a></li>
-                                       
-                                       <li><a href="#method-i-get_keys">#get_keys</a></li>
-                                       
-                                       <li><a href="#method-i-get_seq">#get_seq</a></li>
-                                       
-                                       <li><a href="#method-i-want_key%3F">#want_key?</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Genbank</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(io)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-    <span class="ruby-comment cmt"># File genbank.rb, line 32</span>
-32:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>)
-33:     <span class="ruby-ivar">@io</span>      = <span class="ruby-identifier">io</span>
-34:     <span class="ruby-ivar">@entry</span>   = []
-35:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="each-method" class="method-detail ">
-                               <a name="method-i-each"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">each</span><span
-                                               class="method-args">(hash_keys, hash_feats, hash_quals)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Iterator method for parsing <a href="Genbank.html">Genbank</a> entries.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="each-source">
-<pre>
-    <span class="ruby-comment cmt"># File genbank.rb, line 38</span>
-38:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>(<span class="ruby-identifier">hash_keys</span>, <span class="ruby-identifier">hash_feats</span>, <span class="ruby-identifier">hash_quals</span>)
-39:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span> = <span class="ruby-identifier">get_entry</span> <span class="ruby-keyword kw">do</span>
-40:       <span class="ruby-identifier">keys</span> = <span class="ruby-identifier">get_keys</span>(<span class="ruby-identifier">hash_keys</span>)
-41:       <span class="ruby-identifier">seq</span>  = <span class="ruby-identifier">get_seq</span>
-42: 
-43:       <span class="ruby-identifier">features</span> = <span class="ruby-constant">GenbankFeatures</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@entry</span>, <span class="ruby-identifier">hash_feats</span>, <span class="ruby-identifier">hash_quals</span>)
-44: 
-45:       <span class="ruby-identifier">features</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">record</span><span class="ruby-operator">|</span>
-46:         <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">val</span><span class="ruby-operator">|</span> <span class="ruby-identifier">record</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">val</span> }
-47: 
-48:                                 <span class="ruby-identifier">loc</span> = <span class="ruby-constant">Locator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">record</span>[<span class="ruby-value">:LOCATOR</span>], <span class="ruby-identifier">seq</span>)
-49:                                 <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ</span>]     = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">subseq</span>.<span class="ruby-identifier">seq</span>
-50:         <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ_LEN</span>] = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">subseq</span>.<span class="ruby-identifier">length</span>
-51:                                 <span class="ruby-identifier">record</span>[<span class="ruby-value">:STRAND</span>]  = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">strand</span>
-52:                                 <span class="ruby-identifier">record</span>[<span class="ruby-value">:S_BEG</span>]   = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">s_beg</span>
-53:                                 <span class="ruby-identifier">record</span>[<span class="ruby-value">:S_END</span>]   = <span class="ruby-identifier">loc</span>.<span class="ruby-identifier">s_end</span>
-54: 
-55:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span>
-56:       <span class="ruby-keyword kw">end</span>
-57:     <span class="ruby-keyword kw">end</span>
-58:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="get-entry-method" class="method-detail ">
-                               <a name="method-i-get_entry"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">get_entry</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to get the next <a href="Genbank.html">Genbank</a> entry form an ios
-and return this.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="get-entry-source">
-<pre>
-    <span class="ruby-comment cmt"># File genbank.rb, line 63</span>
-63:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_entry</span>
-64:     <span class="ruby-identifier">block</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>(<span class="ruby-value str">&quot;//&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$/</span>)
-65:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">nil?</span>
-66: 
-67:     <span class="ruby-identifier">block</span>.<span class="ruby-identifier">chomp!</span>(<span class="ruby-value str">&quot;//&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$/</span> )
-68: 
-69:     <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">block</span>.<span class="ruby-identifier">split</span> <span class="ruby-identifier">$/</span>
-70: 
-71:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">empty?</span>
-72: 
-73:     <span class="ruby-identifier">entry</span>
-74:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="get-keys-method" class="method-detail ">
-                               <a name="method-i-get_keys"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">get_keys</span><span
-                                               class="method-args">(hash_keys)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to get the base keys from <a href="Genbank.html">Genbank</a> entry
-and return these in a hash.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="get-keys-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 93</span>
- 93:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_keys</span>(<span class="ruby-identifier">hash_keys</span>)
- 94:     <span class="ruby-identifier">keys</span> = {}
- 95:     <span class="ruby-identifier">i</span>    = <span class="ruby-value">0</span>
- 96:     <span class="ruby-identifier">j</span>    = <span class="ruby-value">0</span>
- 97: 
- 98:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">i</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^FEATURES/</span>
- 99:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s{0,3}([A-Z]{2})/</span>
-100:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">want_key?</span>(<span class="ruby-identifier">hash_keys</span>, <span class="ruby-node">$1</span>)
-101:           <span class="ruby-identifier">j</span> = <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
-102: 
-103:           <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span> = <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">lstrip</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value">2</span>)
-104: 
-105:           <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^\s{0,3}[A-Z]/</span>
-106:             <span class="ruby-identifier">val</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>].<span class="ruby-identifier">lstrip</span>
-107:             <span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-108:           <span class="ruby-keyword kw">end</span>
-109: 
-110:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>]
-111:             <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">val</span>
-112:           <span class="ruby-keyword kw">else</span>
-113:             <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">val</span>
-114:           <span class="ruby-keyword kw">end</span>
-115:         <span class="ruby-keyword kw">end</span>
-116:       <span class="ruby-keyword kw">end</span>
-117: 
-118:       <span class="ruby-identifier">j</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">i</span> = <span class="ruby-identifier">j</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-119:     <span class="ruby-keyword kw">end</span>
-120: 
-121:     <span class="ruby-identifier">keys</span>
-122:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="get-seq-method" class="method-detail ">
-                               <a name="method-i-get_seq"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">get_seq</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to get the DNA sequence from a <a href="Genbank.html">Genbank</a>
-entry and return this as a <a href="Seq.html">Seq</a> object.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="get-seq-source">
-<pre>
-    <span class="ruby-comment cmt"># File genbank.rb, line 78</span>
-78:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_seq</span>
-79:     <span class="ruby-identifier">i</span> = <span class="ruby-ivar">@entry</span>.<span class="ruby-identifier">size</span>
-80:     <span class="ruby-identifier">j</span> = <span class="ruby-identifier">i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-81: 
-82:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^[A-Z]/</span>
-83:       <span class="ruby-identifier">j</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
-84:     <span class="ruby-keyword kw">end</span>
-85: 
-86:     <span class="ruby-identifier">seq</span> = <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">j</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">i</span>].<span class="ruby-identifier">join</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">&quot; 0123456789&quot;</span>)
-87: 
-88:     <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">seq</span>, <span class="ruby-value str">&quot;dna&quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">seq</span>
-89:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="want-key--method" class="method-detail ">
-                               <a name="method-i-want_key%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">want_key?</span><span
-                                               class="method-args">(hash_keys, key)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="want-key--source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 124</span>
-124:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">want_key?</span>(<span class="ruby-identifier">hash_keys</span>, <span class="ruby-identifier">key</span>)
-125:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_keys</span>
-126:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_keys</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_sym</span>]
-127:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-128:       <span class="ruby-keyword kw">else</span>
-129:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-130:       <span class="ruby-keyword kw">end</span>
-131:     <span class="ruby-keyword kw">else</span>
-132:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-133:     <span class="ruby-keyword kw">end</span>
-134:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/GenbankError.html b/code_ruby/Maasha/lib/doc/GenbankError.html
deleted file mode 100644 (file)
index 5c0f160..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: GenbankError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">GenbankError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a
-href="Genbank.html">Genbank</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/GenbankFeatures.html b/code_ruby/Maasha/lib/doc/GenbankFeatures.html
deleted file mode 100644 (file)
index ac47161..0000000
+++ /dev/null
@@ -1,473 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: GenbankFeatures</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-each">#each</a></li>
-                                       
-                                       <li><a href="#method-i-get_quals">#get_quals</a></li>
-                                       
-                                       <li><a href="#method-i-want_feat%3F">#want_feat?</a></li>
-                                       
-                                       <li><a href="#method-i-want_qual%3F">#want_qual?</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">GenbankFeatures</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(entry, hash_feats, hash_quals)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 141</span>
-141:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">entry</span>, <span class="ruby-identifier">hash_feats</span>, <span class="ruby-identifier">hash_quals</span>)
-142:     <span class="ruby-ivar">@entry</span>      = <span class="ruby-identifier">entry</span>
-143:     <span class="ruby-ivar">@hash_feats</span> = <span class="ruby-identifier">hash_feats</span>
-144:     <span class="ruby-ivar">@hash_quals</span> = <span class="ruby-identifier">hash_quals</span>
-145:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="each-method" class="method-detail ">
-                               <a name="method-i-each"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">each</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="each-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 147</span>
-147:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
-148:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@i</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@i</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^ORIGIN/</span>
-149:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@i</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s{5}([A-Za-z_-]+)/</span>
-150:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">want_feat?</span> <span class="ruby-node">$1</span>
-151:           <span class="ruby-identifier">record</span> = {}
-152: 
-153:           <span class="ruby-identifier">feat</span>, <span class="ruby-identifier">loc</span> = <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@i</span>].<span class="ruby-identifier">lstrip</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value">2</span>)
-154: 
-155:           <span class="ruby-identifier">@@j</span> = <span class="ruby-identifier">@@i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
-156: 
-157:           <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^(\s{21}\/|\s{5}[A-Za-z_-]|[A-Z])/</span>
-158:             <span class="ruby-identifier">loc</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>].<span class="ruby-identifier">lstrip</span>
-159:             <span class="ruby-identifier">@@j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-160:           <span class="ruby-keyword kw">end</span>
-161: 
-162:           <span class="ruby-identifier">get_quals</span>.<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
-163:             <span class="ruby-identifier">record</span>[<span class="ruby-identifier">k</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">v</span>
-164:           }
-165: 
-166:           <span class="ruby-identifier">record</span>[<span class="ruby-value">:FEATURE</span>] = <span class="ruby-identifier">feat</span>
-167:           <span class="ruby-identifier">record</span>[<span class="ruby-value">:LOCATOR</span>] = <span class="ruby-identifier">loc</span>
-168: 
-169:           <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span>
-170:         <span class="ruby-keyword kw">end</span>
-171:       <span class="ruby-keyword kw">end</span>
-172: 
-173:       <span class="ruby-identifier">@@j</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">@@i</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">@@i</span> = <span class="ruby-identifier">@@j</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">@@i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-174:     <span class="ruby-keyword kw">end</span>
-175:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="get-quals-method" class="method-detail ">
-                               <a name="method-i-get_quals"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">get_quals</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="get-quals-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 179</span>
-179:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_quals</span>
-180:     <span class="ruby-identifier">quals</span> = {}
-181:     <span class="ruby-identifier">k</span>     = <span class="ruby-value">0</span>
-182: 
-183:     <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^\s{5}[A-Za-z_-]|^[A-Z]/</span>
-184:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">@@j</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s{21}\/([^=]+)=&quot;([^&quot;]+)/</span>
-185:         <span class="ruby-identifier">qual</span> = <span class="ruby-node">$1</span>
-186:         <span class="ruby-identifier">val</span>  = <span class="ruby-node">$2</span>
-187: 
-188:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">want_qual?</span> <span class="ruby-identifier">qual</span>
-189:           <span class="ruby-identifier">k</span> = <span class="ruby-identifier">@@j</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
-190: 
-191:           <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">k</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/^(\s{21}\/|\s{5}[A-Za-z_-]|[A-Z])/</span>
-192:             <span class="ruby-identifier">val</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@entry</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">lstrip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-value str">'&quot;'</span>)
-193:             <span class="ruby-identifier">k</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-194:           <span class="ruby-keyword kw">end</span>
-195: 
-196:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">quals</span>[<span class="ruby-identifier">qual</span>]
-197:             <span class="ruby-identifier">quals</span>[<span class="ruby-identifier">qual</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">val</span>
-198:           <span class="ruby-keyword kw">else</span>
-199:             <span class="ruby-identifier">quals</span>[<span class="ruby-identifier">qual</span>] = <span class="ruby-identifier">val</span>
-200:           <span class="ruby-keyword kw">end</span>
-201:         <span class="ruby-keyword kw">end</span>
-202:       <span class="ruby-keyword kw">end</span>
-203: 
-204:       <span class="ruby-identifier">k</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">@@j</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">@@j</span> = <span class="ruby-identifier">k</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">@@j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-205:     <span class="ruby-keyword kw">end</span>
-206: 
-207:     <span class="ruby-identifier">quals</span>
-208:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="want-feat--method" class="method-detail ">
-                               <a name="method-i-want_feat%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">want_feat?</span><span
-                                               class="method-args">(feat)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="want-feat--source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 210</span>
-210:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">want_feat?</span>(<span class="ruby-identifier">feat</span>)
-211:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hash_feats</span>
-212:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hash_feats</span>[<span class="ruby-identifier">feat</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_sym</span>]
-213:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-214:       <span class="ruby-keyword kw">else</span>
-215:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-216:       <span class="ruby-keyword kw">end</span>
-217:     <span class="ruby-keyword kw">else</span>
-218:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-219:     <span class="ruby-keyword kw">end</span>
-220:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="want-qual--method" class="method-detail ">
-                               <a name="method-i-want_qual%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">want_qual?</span><span
-                                               class="method-args">(qual)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="want-qual--source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 222</span>
-222:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">want_qual?</span>(<span class="ruby-identifier">qual</span>)
-223:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hash_quals</span>
-224:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@hash_quals</span>[<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_sym</span>]
-225:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-226:       <span class="ruby-keyword kw">else</span>
-227:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-228:       <span class="ruby-keyword kw">end</span>
-229:     <span class="ruby-keyword kw">else</span>
-230:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-231:     <span class="ruby-keyword kw">end</span>
-232:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Locator.html b/code_ruby/Maasha/lib/doc/Locator.html
deleted file mode 100644 (file)
index 95dadba..0000000
+++ /dev/null
@@ -1,586 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Locator</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-balance_parens%3F">#balance_parens?</a></li>
-                                       
-                                       <li><a href="#method-i-parse_locator">#parse_locator</a></li>
-                                       
-                                       <li><a href="#method-i-s_beg">#s_beg</a></li>
-                                       
-                                       <li><a href="#method-i-s_end">#s_end</a></li>
-                                       
-                                       <li><a href="#method-i-strand">#strand</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Locator</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-               <div id="attribute-method-details" class="method-section section">
-                       <h3 class="section-header">Attributes</h3>
-
-                       
-                       <div id="locator-attribute-method" class="method-detail">
-                               <a name="locator"></a>
-                               
-                               <a name="locator="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">locator</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="seq-attribute-method" class="method-detail">
-                               <a name="seq"></a>
-                               
-                               <a name="seq="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">seq</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="subseq-attribute-method" class="method-detail">
-                               <a name="subseq"></a>
-                               
-                               <a name="subseq="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">subseq</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-               </div>
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(locator, seq)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 242</span>
-242:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">seq</span>)
-243:     <span class="ruby-ivar">@locator</span> = <span class="ruby-identifier">locator</span>
-244:     <span class="ruby-ivar">@seq</span>     = <span class="ruby-identifier">seq</span>
-245:     <span class="ruby-ivar">@subseq</span>  = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-value str">&quot;dna&quot;</span>)
-246:     <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>)
-247:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="s-beg-method" class="method-detail ">
-                               <a name="method-i-s_beg"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">s_beg</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="s-beg-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 257</span>
-257:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">s_beg</span>
-258:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@locator</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/(\d+)/</span>
-259:       <span class="ruby-keyword kw">return</span> <span class="ruby-node">$1</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-260:     <span class="ruby-keyword kw">end</span>
-261:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="s-end-method" class="method-detail ">
-                               <a name="method-i-s_end"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">s_end</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="s-end-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 263</span>
-263:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">s_end</span>
-264:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@locator</span>.<span class="ruby-identifier">reverse</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/(\d+)/</span>
-265:       <span class="ruby-keyword kw">return</span> <span class="ruby-node">$1</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-266:     <span class="ruby-keyword kw">end</span>
-267:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="strand-method" class="method-detail ">
-                               <a name="method-i-strand"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">strand</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="strand-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 249</span>
-249:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">strand</span>
-250:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@locator</span>.<span class="ruby-identifier">match</span>(<span class="ruby-value str">&quot;complement&quot;</span>)
-251:       <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;-&quot;</span>
-252:     <span class="ruby-keyword kw">else</span>
-253:       <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;+&quot;</span>
-254:     <span class="ruby-keyword kw">end</span>
-255:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="balance-parens--method" class="method-detail ">
-                               <a name="method-i-balance_parens%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">balance_parens?</span><span
-                                               class="method-args">(locator)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="balance-parens--source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 342</span>
-342:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">balance_parens?</span>(<span class="ruby-identifier">locator</span>)
-343:     <span class="ruby-identifier">parens</span> = <span class="ruby-value">0</span>
-344: 
-345:     <span class="ruby-identifier">locator</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
-346:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">char</span>
-347:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'('</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">parens</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-348:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">')'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">parens</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
-349:       <span class="ruby-keyword kw">end</span>
-350:     <span class="ruby-keyword kw">end</span>
-351: 
-352:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parens</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-353:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-354:     <span class="ruby-keyword kw">else</span>
-355:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-356:     <span class="ruby-keyword kw">end</span>
-357:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="parse-locator-method" class="method-detail ">
-                               <a name="method-i-parse_locator"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">parse_locator</span><span
-                                               class="method-args">(locator, join = nil, comp = nil, order = nil)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that uses recursion to parse a locator string from a feature table
-and fetches the appropriate subsequence. the operators join(),
-complement(), and order() are handled. the locator string is broken into a
-comma separated lists, and modified if the parens donnot balance. otherwise
-the comma separated list of ranges are stripped from operators, and the
-subsequence are fetched and handled according to the operators. SNP
-locators are also dealt with (single positions).
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="parse-locator-source">
-<pre>
-     <span class="ruby-comment cmt"># File genbank.rb, line 279</span>
-279:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">comp</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">order</span> = <span class="ruby-keyword kw">nil</span>)
-280:     <span class="ruby-identifier">intervals</span> = <span class="ruby-identifier">locator</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;,&quot;</span>)
-281: 
-282:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">balance_parens?</span>(<span class="ruby-identifier">intervals</span>.<span class="ruby-identifier">first</span>)   <span class="ruby-comment cmt"># locator includes a join/comp/order of several ranges</span>
-283:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">locator</span>
-284:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^join\((.*)\)$/</span>
-285:         <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
-286:         <span class="ruby-identifier">join</span>     = <span class="ruby-keyword kw">true</span>
-287:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^complement\((.*)\)$/</span>
-288:         <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
-289:         <span class="ruby-identifier">comp</span>     = <span class="ruby-keyword kw">true</span>
-290:       <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^order\((.*)\)$/</span>
-291:         <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
-292:         <span class="ruby-identifier">order</span>    = <span class="ruby-keyword kw">true</span>
-293:       <span class="ruby-keyword kw">end</span>
-294: 
-295:       <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span>, <span class="ruby-identifier">comp</span>, <span class="ruby-identifier">order</span>)
-296:     <span class="ruby-keyword kw">else</span>
-297:       <span class="ruby-identifier">intervals</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">interval</span><span class="ruby-operator">|</span>
-298:         <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">interval</span>
-299:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^join\((.*)\)$/</span>
-300:           <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
-301:           <span class="ruby-identifier">join</span>    = <span class="ruby-keyword kw">true</span>
-302:           <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span>, <span class="ruby-identifier">comp</span>, <span class="ruby-identifier">order</span>)
-303:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^complement\((.*)\)$/</span>
-304:           <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
-305:           <span class="ruby-identifier">comp</span>    = <span class="ruby-keyword kw">true</span>
-306:           <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span>, <span class="ruby-identifier">comp</span>, <span class="ruby-identifier">order</span>)
-307:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^order\((.*)\)$/</span>
-308:           <span class="ruby-identifier">locator</span> = <span class="ruby-node">$1</span>
-309:           <span class="ruby-identifier">order</span>   = <span class="ruby-keyword kw">true</span>
-310:           <span class="ruby-identifier">parse_locator</span>(<span class="ruby-identifier">locator</span>, <span class="ruby-identifier">join</span>, <span class="ruby-identifier">comp</span>, <span class="ruby-identifier">order</span>)
-311:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^[&lt;&gt;]?(\d+)[^\d]+(\d+)$/</span>
-312:           <span class="ruby-identifier">int_beg</span> = <span class="ruby-node">$1</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-313:           <span class="ruby-identifier">int_end</span> = <span class="ruby-node">$2</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-314: 
-315:           <span class="ruby-identifier">newseq</span> = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">int_beg</span><span class="ruby-operator">...</span><span class="ruby-identifier">int_end</span>], <span class="ruby-value str">&quot;dna&quot;</span>)
-316: 
-317:                                         <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
-318:                                                 <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">revcomp</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">comp</span>
-319: 
-320:                                                 <span class="ruby-ivar">@subseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">order</span> <span class="ruby-operator">?</span> <span class="ruby-value str">&quot; &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span>)
-321:                                         <span class="ruby-keyword kw">end</span>
-322:         <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^(\d+)$/</span>
-323:           <span class="ruby-identifier">pos</span> = <span class="ruby-node">$1</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-324: 
-325:           <span class="ruby-identifier">newseq</span> = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>, <span class="ruby-ivar">@seq</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">pos</span>], <span class="ruby-value str">&quot;dna&quot;</span>)
-326: 
-327:                                         <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
-328:                 <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">revcomp</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">comp</span> 
-329: 
-330:                 <span class="ruby-ivar">@subseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">order</span> <span class="ruby-operator">?</span> <span class="ruby-value str">&quot; &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">newseq</span>.<span class="ruby-identifier">seq</span>)
-331:                                         <span class="ruby-keyword kw">end</span>
-332:         <span class="ruby-keyword kw">else</span>
-333:           <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;WARNING: Could not match locator -&gt; #{locator}&quot;</span>;
-334:           <span class="ruby-ivar">@subseq</span>.<span class="ruby-identifier">seq</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&quot;</span>
-335:         <span class="ruby-keyword kw">end</span>
-336:       <span class="ruby-keyword kw">end</span>
-337:     <span class="ruby-keyword kw">end</span>
-338: 
-339:     <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@subseq</span>
-340:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/LocatorError.html b/code_ruby/Maasha/lib/doc/LocatorError.html
deleted file mode 100644 (file)
index 6cf4391..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: LocatorError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./genbank_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="genbank.rb">genbank.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">LocatorError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with Genbank/EMBL/DDBJ feature table
-locators.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/OptionHandler.html b/code_ruby/Maasha/lib/doc/OptionHandler.html
deleted file mode 100644 (file)
index d9bc163..0000000
+++ /dev/null
@@ -1,1028 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: OptionHandler</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-options_check">#options_check</a></li>
-                                       
-                                       <li><a href="#method-i-options_check_allowed">#options_check_allowed</a></li>
-                                       
-                                       <li><a href="#method-i-options_check_dir">#options_check_dir</a></li>
-                                       
-                                       <li><a href="#method-i-options_check_disallowed">#options_check_disallowed</a></li>
-                                       
-                                       <li><a href="#method-i-options_check_file">#options_check_file</a></li>
-                                       
-                                       <li><a href="#method-i-options_check_files">#options_check_files</a></li>
-                                       
-                                       <li><a href="#method-i-options_check_int">#options_check_int</a></li>
-                                       
-                                       <li><a href="#method-i-options_check_mandatory">#options_check_mandatory</a></li>
-                                       
-                                       <li><a href="#method-i-options_check_uint">#options_check_uint</a></li>
-                                       
-                                       <li><a href="#method-i-options_default">#options_default</a></li>
-                                       
-                                       <li><a href="#method-i-options_glob">#options_glob</a></li>
-                                       
-                                       <li><a href="#method-i-options_parse">#options_parse</a></li>
-                                       
-                                       <li><a href="#method-i-print_usage_and_exit">#print_usage_and_exit</a></li>
-                                       
-                                       <li><a href="#method-i-print_usage_full%3F">#print_usage_full?</a></li>
-                                       
-                                       <li><a href="#method-i-print_usage_short%3F">#print_usage_short?</a></li>
-                                       
-                                       <li><a href="#method-i-wiki_path">#wiki_path</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">OptionHandler</h1>
-
-               <div id="description">
-                       <p>
-Class for parsing argv using OptionParser according to given casts. Default
-options are set, file glob expressions expanded, and options are checked
-according to the casts. Usage information is printed and exit called if
-required.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-               <div id="constants-list" class="section">
-                       <h3 class="section-header">Constants</h3>
-                       <dl>
-                       
-                               <dt><a name="REGEX_LIST">REGEX_LIST</a></dt>
-                               
-                               <dd class="description"></dd>
-                               
-                       
-                               <dt><a name="REGEX_INT">REGEX_INT</a></dt>
-                               
-                               <dd class="description"></dd>
-                               
-                       
-                               <dt><a name="REGEX_STRING">REGEX_STRING</a></dt>
-                               
-                               <dd class="description"></dd>
-                               
-                       
-                       </dl>
-               </div>
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(argv, casts, script_path, test=nil)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 266</span>
-266:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">casts</span>, <span class="ruby-identifier">script_path</span>, <span class="ruby-identifier">test</span>=<span class="ruby-keyword kw">nil</span>)
-267:     <span class="ruby-ivar">@argv</span>        = <span class="ruby-identifier">argv</span>
-268:     <span class="ruby-ivar">@casts</span>       = <span class="ruby-identifier">casts</span>
-269:     <span class="ruby-ivar">@script_path</span> = <span class="ruby-identifier">script_path</span>
-270:     <span class="ruby-ivar">@test</span>        = <span class="ruby-identifier">test</span>
-271:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="options-check-method" class="method-detail ">
-                               <a name="method-i-options_check"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check all options according to casts.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 407</span>
-407:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check</span>
-408:     <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-409:       <span class="ruby-identifier">options_check_mandatory</span>(<span class="ruby-identifier">cast</span>)
-410:       <span class="ruby-identifier">options_check_int</span>(<span class="ruby-identifier">cast</span>)
-411:       <span class="ruby-identifier">options_check_uint</span>(<span class="ruby-identifier">cast</span>)
-412:       <span class="ruby-identifier">options_check_file</span>(<span class="ruby-identifier">cast</span>)
-413:       <span class="ruby-identifier">options_check_files</span>(<span class="ruby-identifier">cast</span>)
-414:       <span class="ruby-identifier">options_check_dir</span>(<span class="ruby-identifier">cast</span>)
-415:       <span class="ruby-identifier">options_check_allowed</span>(<span class="ruby-identifier">cast</span>)
-416:       <span class="ruby-identifier">options_check_disallowed</span>(<span class="ruby-identifier">cast</span>)
-417:     <span class="ruby-keyword kw">end</span>
-418:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-check-allowed-method" class="method-detail ">
-                               <a name="method-i-options_check_allowed"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check_allowed</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check options and raise unless allowed.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-allowed-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 470</span>
-470:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_allowed</span>(<span class="ruby-identifier">cast</span>)
-471:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:allowed</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-472:       <span class="ruby-identifier">allowed_hash</span> = {}
-473:       <span class="ruby-identifier">cast</span>[<span class="ruby-value">:allowed</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">','</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">allowed_hash</span>[<span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-value">1</span> }
-474:   
-475:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument '#{@options[cast[:long]]}' to --#{cast[:long]} not allowed&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">allowed_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">to_s</span>
-476:     <span class="ruby-keyword kw">end</span>
-477:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-check-dir-method" class="method-detail ">
-                               <a name="method-i-options_check_dir"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check_dir</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check dir! type argument and raise if directory don&#8217;t exist.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-dir-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 463</span>
-463:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_dir</span>(<span class="ruby-identifier">cast</span>)
-464:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'dir!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-465:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;No such directory: '#{@options[cast[:long]]}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]]
-466:     <span class="ruby-keyword kw">end</span>
-467:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-check-disallowed-method" class="method-detail ">
-                               <a name="method-i-options_check_disallowed"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check_disallowed</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check disallowed argument values and raise if disallowed.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-disallowed-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 480</span>
-480:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_disallowed</span>(<span class="ruby-identifier">cast</span>)
-481:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:disallowed</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-482:       <span class="ruby-identifier">cast</span>[<span class="ruby-value">:disallowed</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">','</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
-483:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument '#{@options[cast[:long]]}' to --#{cast[:long]} is disallowed&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">to_s</span>
-484:       <span class="ruby-keyword kw">end</span>
-485:     <span class="ruby-keyword kw">end</span>
-486:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-check-file-method" class="method-detail ">
-                               <a name="method-i-options_check_file"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check_file</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check file! type argument and raise if file don&#8217;t exists.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-file-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 446</span>
-446:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_file</span>(<span class="ruby-identifier">cast</span>)
-447:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'file!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-448:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;No such file: '#{@options[cast[:long]]}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]]
-449:     <span class="ruby-keyword kw">end</span>
-450:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-check-files-method" class="method-detail ">
-                               <a name="method-i-options_check_files"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check_files</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check files! type argument and raise if files don&#8217;t exists.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-files-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 453</span>
-453:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_files</span>(<span class="ruby-identifier">cast</span>)
-454:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-455:       <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
-456:         <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;-&quot;</span>
-457:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;File not readable: '#{path}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">readable?</span> <span class="ruby-identifier">path</span>
-458:       <span class="ruby-keyword kw">end</span>
-459:     <span class="ruby-keyword kw">end</span>
-460:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-check-int-method" class="method-detail ">
-                               <a name="method-i-options_check_int"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check_int</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check int type option and raise if not an integer.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-int-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 428</span>
-428:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_int</span>(<span class="ruby-identifier">cast</span>)
-429:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'int'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-430:       <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Integer</span>
-431:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument to --#{cast[:long]} must be an integer, not '#{@options[cast[:long]]}'&quot;</span>
-432:       <span class="ruby-keyword kw">end</span>
-433:     <span class="ruby-keyword kw">end</span>
-434:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-check-mandatory-method" class="method-detail ">
-                               <a name="method-i-options_check_mandatory"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check_mandatory</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if a mandatory option is set and raise if it isn&#8217;t.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-mandatory-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 421</span>
-421:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_mandatory</span>(<span class="ruby-identifier">cast</span>)
-422:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:mandatory</span>]
-423:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Mandatory argument: --#{cast[:long]}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-424:     <span class="ruby-keyword kw">end</span>
-425:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-check-uint-method" class="method-detail ">
-                               <a name="method-i-options_check_uint"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_check_uint</span><span
-                                               class="method-args">(cast)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check uint type option and raise if not an unsinged integer.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-check-uint-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 437</span>
-437:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_uint</span>(<span class="ruby-identifier">cast</span>)
-438:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'uint'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-439:       <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Integer</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
-440:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument to --#{cast[:long]} must be an unsigned integer, not '#{@options[cast[:long]]}'&quot;</span>
-441:       <span class="ruby-keyword kw">end</span>
-442:     <span class="ruby-keyword kw">end</span>
-443:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-default-method" class="method-detail ">
-                               <a name="method-i-options_default"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_default</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Set default options value from cast unless a value is set.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-default-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 374</span>
-374:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_default</span>
-375:     <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-376:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>]
-377:         <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">cast</span>[<span class="ruby-value">:default</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-378:       <span class="ruby-keyword kw">end</span>
-379:     <span class="ruby-keyword kw">end</span>
-380:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-glob-method" class="method-detail ">
-                               <a name="method-i-options_glob"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_glob</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Expands glob expressions to a full list of paths. Examples:
-&#8220;*.fna&#8221; or &#8220;foo.fna,*.fna&#8221; or
-&#8220;foo.fna,/bar/*.fna&#8220;
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-glob-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 384</span>
-384:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_glob</span>
-385:     <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-386:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files'</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files!'</span>
-387:         <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]
-388:           <span class="ruby-identifier">files</span> = []
-389:         
-390:           <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
-391:             <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">&quot;*&quot;</span>
-392:               <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
-393:                 <span class="ruby-identifier">files</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">file</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">file</span>
-394:               <span class="ruby-keyword kw">end</span>
-395:             <span class="ruby-keyword kw">else</span>
-396:               <span class="ruby-identifier">files</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">path</span>
-397:             <span class="ruby-keyword kw">end</span>
-398:           <span class="ruby-keyword kw">end</span>
-399: 
-400:           <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">files</span>
-401:         <span class="ruby-keyword kw">end</span>
-402:       <span class="ruby-keyword kw">end</span>
-403:     <span class="ruby-keyword kw">end</span>
-404:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="options-parse-method" class="method-detail ">
-                               <a name="method-i-options_parse"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">options_parse</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Parse options from argv using OptionParser and casts denoting long and
-short option names. Usage information is printed and exit called. A hash
-with options is returned.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="options-parse-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 276</span>
-276:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_parse</span>
-277:     <span class="ruby-ivar">@options</span> = {}
-278: 
-279:     <span class="ruby-identifier">option_parser</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">option</span><span class="ruby-operator">|</span>
-280:       <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-281:         <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cast</span>[<span class="ruby-value">:type</span>]
-282:         <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'flag'</span>
-283:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]}&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
-284:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">o</span>
-285:           <span class="ruby-keyword kw">end</span>
-286:         <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'float'</span>
-287:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} F&quot;</span>, <span class="ruby-constant">Float</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
-288:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">f</span>
-289:           <span class="ruby-keyword kw">end</span>
-290:         <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'string'</span>
-291:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} S&quot;</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
-292:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">to_sym</span>
-293:           <span class="ruby-keyword kw">end</span>
-294:         <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_LIST</span>
-295:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>( <span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} A&quot;</span>, <span class="ruby-constant">Array</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span>
-296:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">a</span>
-297:           <span class="ruby-keyword kw">end</span>
-298:         <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_INT</span>
-299:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} I&quot;</span>, <span class="ruby-constant">Integer</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
-300:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">i</span>
-301:           <span class="ruby-keyword kw">end</span>
-302:         <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_STRING</span>
-303:           <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} S&quot;</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
-304:             <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-value">:long</span>]] = <span class="ruby-identifier">s</span>
-305:           <span class="ruby-keyword kw">end</span>
-306:         <span class="ruby-keyword kw">else</span>
-307:           <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Unknown option type: '#{cast[:type]}'&quot;</span>
-308:         <span class="ruby-keyword kw">end</span>
-309:       <span class="ruby-keyword kw">end</span>
-310:     <span class="ruby-keyword kw">end</span>
-311: 
-312:     <span class="ruby-identifier">option_parser</span>.<span class="ruby-identifier">parse!</span>(<span class="ruby-ivar">@argv</span>)
-313: 
-314:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">print_usage_full?</span>
-315:       <span class="ruby-identifier">print_usage_and_exit</span>(<span class="ruby-keyword kw">true</span>)
-316:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">print_usage_short?</span>
-317:       <span class="ruby-identifier">print_usage_and_exit</span>
-318:     <span class="ruby-keyword kw">end</span>
-319: 
-320:     <span class="ruby-identifier">options_default</span>
-321:     <span class="ruby-identifier">options_glob</span>
-322:     <span class="ruby-identifier">options_check</span>
-323: 
-324:     <span class="ruby-ivar">@options</span>
-325:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="print-usage-and-exit-method" class="method-detail ">
-                               <a name="method-i-print_usage_and_exit"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">print_usage_and_exit</span><span
-                                               class="method-args">(full=nil)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Print usage info by Calling an external script &#8216;print_wiki&#8217;
-using a system() call and exit. An optional &#8216;full&#8217; flag outputs
-the full usage info.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="print-usage-and-exit-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 357</span>
-357:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_and_exit</span>(<span class="ruby-identifier">full</span>=<span class="ruby-keyword kw">nil</span>)
-358:     <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@test</span>
-359:       <span class="ruby-keyword kw">return</span>
-360:     <span class="ruby-keyword kw">else</span>
-361:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full</span>
-362:         <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;print_wiki --data_in #{wiki_path} --help&quot;</span>)
-363:       <span class="ruby-keyword kw">else</span>
-364:         <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;print_wiki --data_in #{wiki_path}&quot;</span>)
-365:       <span class="ruby-keyword kw">end</span>
-366: 
-367:       <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Failed printing wiki: #{wiki_path}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">$?</span>.<span class="ruby-identifier">success?</span>
-368: 
-369:       <span class="ruby-identifier">exit</span>
-370:     <span class="ruby-keyword kw">end</span>
-371:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="print-usage-full--method" class="method-detail ">
-                               <a name="method-i-print_usage_full%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">print_usage_full?</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if full &#8220;usage info&#8221; should be printed.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="print-usage-full--source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 335</span>
-335:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_full?</span>
-336:     <span class="ruby-ivar">@options</span>[<span class="ruby-value">:help</span>]
-337:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="print-usage-short--method" class="method-detail ">
-                               <a name="method-i-print_usage_short%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">print_usage_short?</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Check if short &#8220;usage info&#8221; should be printed.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="print-usage-short--source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 340</span>
-340:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_short?</span>
-341:     <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">$stdin</span>.<span class="ruby-identifier">tty?</span>
-342:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-343:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:stream_in</span>]
-344:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-345:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">:data_in</span>]
-346:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-347:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">wiki_path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^(list_biopieces|list_genomes|list_mysql_databases|biostat)$/</span>  <span class="ruby-comment cmt"># TODO get rid of this!</span>
-348:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-349:     <span class="ruby-keyword kw">else</span>
-350:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-351:     <span class="ruby-keyword kw">end</span>
-352:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="wiki-path-method" class="method-detail ">
-                               <a name="method-i-wiki_path"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">wiki_path</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Given the script name determine the path of the wiki file with the usage
-info.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="wiki-path-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 328</span>
-328:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_path</span>
-329:     <span class="ruby-identifier">path</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_DIR&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/bp_usage/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-ivar">@script_path</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;.wiki&quot;</span>
-330:     <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;No such wiki file: #{path}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">path</span>
-331:     <span class="ruby-identifier">path</span>
-332:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Read.html b/code_ruby/Maasha/lib/doc/Read.html
deleted file mode 100644 (file)
index 32cd91e..0000000
+++ /dev/null
@@ -1,646 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Read</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./sff_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="sff.rb">sff.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-i-clip">#clip</a></li>
-                                       
-                                       <li><a href="#method-i-coordinates_get">#coordinates_get</a></li>
-                                       
-                                       <li><a href="#method-i-mask">#mask</a></li>
-                                       
-                                       <li><a href="#method-i-to_bp">#to_bp</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Read</h1>
-
-               <div id="description">
-                       <p>
-Class containing data accessor methods for an <a href="SFF.html">SFF</a>
-entry and methods for manipulating this entry.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-               <div id="attribute-method-details" class="method-section section">
-                       <h3 class="section-header">Attributes</h3>
-
-                       
-                       <div id="read-header-length-attribute-method" class="method-detail">
-                               <a name="read_header_length"></a>
-                               
-                               <a name="read_header_length="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">read_header_length</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="name-length-attribute-method" class="method-detail">
-                               <a name="name_length"></a>
-                               
-                               <a name="name_length="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">name_length</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="number-of-bases-attribute-method" class="method-detail">
-                               <a name="number_of_bases"></a>
-                               
-                               <a name="number_of_bases="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">number_of_bases</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="clip-qual-left-attribute-method" class="method-detail">
-                               <a name="clip_qual_left"></a>
-                               
-                               <a name="clip_qual_left="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">clip_qual_left</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="clip-qual-right-attribute-method" class="method-detail">
-                               <a name="clip_qual_right"></a>
-                               
-                               <a name="clip_qual_right="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">clip_qual_right</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="clip-adapter-left-attribute-method" class="method-detail">
-                               <a name="clip_adapter_left"></a>
-                               
-                               <a name="clip_adapter_left="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">clip_adapter_left</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="clip-adaptor-right-attribute-method" class="method-detail">
-                               <a name="clip_adaptor_right"></a>
-                               
-                               <a name="clip_adaptor_right="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">clip_adaptor_right</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="name-attribute-method" class="method-detail">
-                               <a name="name"></a>
-                               
-                               <a name="name="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">name</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="flowgram-values-attribute-method" class="method-detail">
-                               <a name="flowgram_values"></a>
-                               
-                               <a name="flowgram_values="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">flowgram_values</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="flow-index-per-base-attribute-method" class="method-detail">
-                               <a name="flow_index_per_base"></a>
-                               
-                               <a name="flow_index_per_base="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">flow_index_per_base</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="bases-attribute-method" class="method-detail">
-                               <a name="bases"></a>
-                               
-                               <a name="bases="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">bases</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="quality-scores-attribute-method" class="method-detail">
-                               <a name="quality_scores"></a>
-                               
-                               <a name="quality_scores="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">quality_scores</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="x-pos-attribute-method" class="method-detail">
-                               <a name="x_pos"></a>
-                               
-                               <a name="x_pos="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">x_pos</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="y-pos-attribute-method" class="method-detail">
-                               <a name="y_pos"></a>
-                               
-                               <a name="y_pos="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">y_pos</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-               </div>
-               
-
-               <!-- Methods -->
-               
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="clip-method" class="method-detail ">
-                               <a name="method-i-clip"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">clip</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that clips sequence (i.e. trims) according to <a
-href="Read.html#clip_qual_left">clip_qual_left</a> and <a
-href="Read.html#clip_qual_right">clip_qual_right</a> information.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="clip-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 228</span>
-228:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clip</span>
-229:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>          = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
-230:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
-231:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="mask-method" class="method-detail ">
-                               <a name="method-i-mask"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">mask</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that soft masks the sequence (i.e. lowercases sequence) according to
-<a href="Read.html#clip_qual_left">clip_qual_left</a> and <a
-href="Read.html#clip_qual_right">clip_qual_right</a> information.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="mask-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 218</span>
-218:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mask</span>
-219:     <span class="ruby-identifier">left</span>   = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>].<span class="ruby-identifier">downcase</span>
-220:     <span class="ruby-identifier">middle</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
-221:     <span class="ruby-identifier">right</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">downcase</span>
-222: 
-223:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span> = <span class="ruby-identifier">left</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">middle</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">right</span>
-224:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-bp-method" class="method-detail ">
-                               <a name="method-i-to_bp"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_bp</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that converts a <a href="Read.html">Read</a> object&#8217;s data to
-a Biopiece record (a hash).
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-bp-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 197</span>
-197:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_bp</span>
-198:     <span class="ruby-identifier">coordinates_get</span>
-199: 
-200:     <span class="ruby-identifier">hash</span> = {}
-201: 
-202:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ_NAME</span>]           = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>
-203:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ</span>]                = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>
-204:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ_LEN</span>]            = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>.<span class="ruby-identifier">length</span>
-205:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_QUAL_LEFT</span>]     = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span>     <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-206:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_QUAL_RIGHT</span>]    = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>    <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-207:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_ADAPTOR_LEFT</span>]  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_adapter_left</span>  <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-208:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_ADAPTOR_RIGHT</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_adaptor_right</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-209:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SCORES</span>]             = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">64</span>).<span class="ruby-identifier">chr</span> }.<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
-210:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:X_POS</span>]              = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">x_pos</span>
-211:     <span class="ruby-identifier">hash</span>[<span class="ruby-value">:Y_POS</span>]              = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">y_pos</span>
-212: 
-213:     <span class="ruby-identifier">hash</span>
-214:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="coordinates-get-method" class="method-detail ">
-                               <a name="method-i-coordinates_get"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">coordinates_get</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that extracts the X/Y coordinates from an <a href="SFF.html">SFF</a>
-read name encoded with base36.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="coordinates-get-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 237</span>
-237:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coordinates_get</span>
-238:     <span class="ruby-identifier">base36</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>[<span class="ruby-value">5</span>, <span class="ruby-value">5</span>]
-239:     <span class="ruby-identifier">num</span>    = <span class="ruby-constant">Base36</span>.<span class="ruby-identifier">decode</span>(<span class="ruby-identifier">base36</span>)
-240: 
-241:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">x_pos</span> = <span class="ruby-identifier">num</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-constant">BIT_SHIFT</span>
-242:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">y_pos</span> = <span class="ruby-identifier">num</span> &amp;  <span class="ruby-constant">BIT_MASK</span>
-243:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/SFF.html b/code_ruby/Maasha/lib/doc/SFF.html
deleted file mode 100644 (file)
index f3497f6..0000000
+++ /dev/null
@@ -1,712 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: SFF</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./sff_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="sff.rb">sff.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-c-open">::open</a></li>
-                                       
-                                       <li><a href="#method-i-check_header_length">#check_header_length</a></li>
-                                       
-                                       <li><a href="#method-i-check_magic_number">#check_magic_number</a></li>
-                                       
-                                       <li><a href="#method-i-check_version">#check_version</a></li>
-                                       
-                                       <li><a href="#method-i-close">#close</a></li>
-                                       
-                                       <li><a href="#method-i-each">#each</a></li>
-                                       
-                                       <li><a href="#method-i-fast_forward">#fast_forward</a></li>
-                                       
-                                       <li><a href="#method-i-header_parse">#header_parse</a></li>
-                                       
-                                       <li><a href="#method-i-read_parse">#read_parse</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-                       <div id="includes-section" class="section">
-                               <h3 class="section-header">Included Modules</h3>
-                               <ul class="link-list">
-                               
-                               
-                                       <li><span class="include">Enumerable</span></li>
-                               
-                               
-                               </ul>
-                       </div>
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">SFF</h1>
-
-               <div id="description">
-                       <p>
-Class containing methods to parse <a href="SFF.html">SFF</a> files: <a
-href="http://www.ncbi.nlm.nih.gov/Traces/trace.cgi?cmd=show&f=formats&m=doc&s=format#sff">www.ncbi.nlm.nih.gov/Traces/trace.cgi?cmd=show&f=formats&m=doc&s=format#sff</a>
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(io)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to initialize an <a href="SFF.html">SFF</a> object along with
-instance variables pertaining to the <a href="SFF.html">SFF</a> header
-section.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-    <span class="ruby-comment cmt"># File sff.rb, line 58</span>
-58:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>)
-59:     <span class="ruby-ivar">@io</span>                       = <span class="ruby-identifier">io</span>
-60:     <span class="ruby-ivar">@magic_number</span>             = <span class="ruby-value">0</span>
-61:     <span class="ruby-ivar">@version</span>                  = <span class="ruby-value str">&quot;&quot;</span>
-62:     <span class="ruby-ivar">@index_offset</span>             = <span class="ruby-value">0</span>
-63:     <span class="ruby-ivar">@index_length</span>             = <span class="ruby-value">0</span>
-64:     <span class="ruby-ivar">@number_of_reads</span>          = <span class="ruby-value">0</span>
-65:     <span class="ruby-ivar">@header_length</span>            = <span class="ruby-value">0</span>
-66:     <span class="ruby-ivar">@key_length</span>               = <span class="ruby-value">0</span>
-67:     <span class="ruby-ivar">@number_of_flows_per_read</span> = <span class="ruby-value">0</span>
-68:     <span class="ruby-ivar">@flowgram_format_code</span>     = <span class="ruby-value">0</span>
-69:     <span class="ruby-ivar">@flow_chars</span>               = <span class="ruby-value str">&quot;&quot;</span>
-70:     <span class="ruby-ivar">@key_sequence</span>             = <span class="ruby-value str">&quot;&quot;</span>
-71:     <span class="ruby-ivar">@eight_byte_padding</span>       = <span class="ruby-value">0</span>
-72: 
-73:     <span class="ruby-identifier">header_parse</span>
-74:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="open-method" class="method-detail ">
-                               <a name="method-c-open"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">open</span><span
-                                               class="method-args">(*args)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Class method for opening <a href="SFF.html">SFF</a> files.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="open-source">
-<pre>
-    <span class="ruby-comment cmt"># File sff.rb, line 41</span>
-41:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>)
-42:     <span class="ruby-identifier">ios</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(*<span class="ruby-identifier">args</span>)
-43: 
-44:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
-45:       <span class="ruby-keyword kw">begin</span>
-46:         <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
-47:       <span class="ruby-keyword kw">ensure</span>
-48:         <span class="ruby-identifier">ios</span>.<span class="ruby-identifier">close</span>
-49:       <span class="ruby-keyword kw">end</span>
-50:     <span class="ruby-keyword kw">else</span>
-51:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
-52:     <span class="ruby-keyword kw">end</span>
-53:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="close-method" class="method-detail ">
-                               <a name="method-i-close"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">close</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to close ios.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="close-source">
-<pre>
-    <span class="ruby-comment cmt"># File sff.rb, line 77</span>
-77:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
-78:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">close</span>
-79:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="each-method" class="method-detail ">
-                               <a name="method-i-each"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">each</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to iterate over each <a href="SFF.html">SFF</a> entry.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="each-source">
-<pre>
-    <span class="ruby-comment cmt"># File sff.rb, line 82</span>
-82:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
-83:     <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">read</span> = <span class="ruby-identifier">read_parse</span>) <span class="ruby-keyword kw">do</span>
-84:       <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">read</span>
-85:     <span class="ruby-keyword kw">end</span>
-86: 
-87:     <span class="ruby-keyword kw">self</span>   <span class="ruby-comment cmt"># conventionally</span>
-88:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="check-header-length-method" class="method-detail ">
-                               <a name="method-i-check_header_length"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_header_length</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to check the header length of an <a href="SFF.html">SFF</a> file.
-Raises an error if the header length don&#8217;t match the file position
-after reading the header section.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-header-length-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 183</span>
-183:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_header_length</span>
-184:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SFFError</span>, <span class="ruby-node">&quot;Bad header length: #{header_length}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">pos</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@header_length</span>
-185:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-magic-number-method" class="method-detail ">
-                               <a name="method-i-check_magic_number"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_magic_number</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to check the magic number of an <a href="SFF.html">SFF</a> file.
-Raises an error if the magic number don&#8217;t match.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-magic-number-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 170</span>
-170:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_magic_number</span>
-171:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SFFError</span>, <span class="ruby-value str">&quot;Badly formatted SFF file.&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@magic_number</span> <span class="ruby-operator">==</span> <span class="ruby-value">779314790</span>
-172:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="check-version-method" class="method-detail ">
-                               <a name="method-i-check_version"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">check_version</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to check the version number of an <a href="SFF.html">SFF</a> file.
-Raises an error if the version don&#8217;t match.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="check-version-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 176</span>
-176:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_version</span>
-177:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SFFError</span>, <span class="ruby-node">&quot;Wrong version: #{@version}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@version</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
-178:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="fast-forward-method" class="method-detail ">
-                               <a name="method-i-fast_forward"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">fast_forward</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that reads the eight_byte_padding field found at the end of the data
-section and fast forwards, i.e. move the file read pointer, so that the
-length of the section is divisible by 8.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="fast-forward-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 122</span>
-122:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fast_forward</span>
-123:     <span class="ruby-identifier">eight_byte_padding</span> = <span class="ruby-value">8</span> <span class="ruby-operator">-</span> (<span class="ruby-ivar">@io</span>.<span class="ruby-identifier">pos</span> <span class="ruby-operator">%</span> <span class="ruby-value">8</span>)
-124: 
-125:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">eight_byte_padding</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">eight_byte_padding</span> <span class="ruby-operator">==</span> <span class="ruby-value">8</span>
-126:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="header-parse-method" class="method-detail ">
-                               <a name="method-i-header_parse"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">header_parse</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to parse the <a href="SFF.html">SFF</a> file&#8217;s header section
-and load the information into the instance variables.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="header-parse-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 94</span>
- 94:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">header_parse</span>
- 95:     <span class="ruby-identifier">template</span>     = <span class="ruby-value str">&quot;NC4N2NNnnnC&quot;</span>
- 96:     <span class="ruby-identifier">bits_in_uint</span> = <span class="ruby-value">32</span>
- 97: 
- 98:     <span class="ruby-identifier">data</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">31</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">template</span>)
- 99:     
-100:     <span class="ruby-ivar">@magic_number</span>             = <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>]
-101:     <span class="ruby-ivar">@version</span>                  = <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-value">4</span>].<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
-102:     <span class="ruby-ivar">@index_offset</span>             = (<span class="ruby-identifier">data</span>[<span class="ruby-value">5</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">bits_in_uint</span>) <span class="ruby-operator">|</span> <span class="ruby-identifier">data</span>[<span class="ruby-value">6</span>]
-103:     <span class="ruby-ivar">@index_length</span>             = <span class="ruby-identifier">data</span>[<span class="ruby-value">7</span>]
-104:     <span class="ruby-ivar">@number_of_reads</span>          = <span class="ruby-identifier">data</span>[<span class="ruby-value">8</span>]
-105:     <span class="ruby-ivar">@header_length</span>            = <span class="ruby-identifier">data</span>[<span class="ruby-value">9</span>]
-106:     <span class="ruby-ivar">@key_length</span>               = <span class="ruby-identifier">data</span>[<span class="ruby-value">10</span>]
-107:     <span class="ruby-ivar">@number_of_flows_per_read</span> = <span class="ruby-identifier">data</span>[<span class="ruby-value">11</span>]
-108:     <span class="ruby-ivar">@flowgram_format_code</span>     = <span class="ruby-identifier">data</span>[<span class="ruby-value">12</span>]
-109:     <span class="ruby-ivar">@flow_chars</span>               = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@number_of_flows_per_read</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;A*&quot;</span>).<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
-110:     <span class="ruby-ivar">@key_sequence</span>             = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-ivar">@key_length</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;A*&quot;</span>).<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
-111: 
-112:     <span class="ruby-identifier">fast_forward</span>
-113: 
-114:     <span class="ruby-identifier">check_magic_number</span>
-115:     <span class="ruby-identifier">check_version</span>
-116:     <span class="ruby-identifier">check_header_length</span>
-117:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="read-parse-method" class="method-detail ">
-                               <a name="method-i-read_parse"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">read_parse</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to parse a read section of an <a href="SFF.html">SFF</a> file.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="read-parse-source">
-<pre>
-     <span class="ruby-comment cmt"># File sff.rb, line 129</span>
-129:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_parse</span>
-130:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@number_of_reads</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">@@count</span>
-131: 
-132:     <span class="ruby-identifier">template</span> = <span class="ruby-value str">&quot;nnNnnnn&quot;</span>
-133: 
-134:     <span class="ruby-identifier">read</span> = <span class="ruby-constant">Read</span>.<span class="ruby-identifier">new</span>()
-135: 
-136:     <span class="ruby-identifier">data</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">16</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">template</span>)
-137: 
-138:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">read_header_length</span>  = <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>]
-139:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">name_length</span>         = <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span>]
-140:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">number_of_bases</span>     = <span class="ruby-identifier">data</span>[<span class="ruby-value">2</span>]
-141:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">clip_qual_left</span>      = <span class="ruby-identifier">data</span>[<span class="ruby-value">3</span>]
-142:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">clip_qual_right</span>     = <span class="ruby-identifier">data</span>[<span class="ruby-value">4</span>]
-143:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">clip_adapter_left</span>   = <span class="ruby-identifier">data</span>[<span class="ruby-value">5</span>]
-144:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">clip_adaptor_right</span>  = <span class="ruby-identifier">data</span>[<span class="ruby-value">6</span>]
-145:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">name</span>                = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">read</span>.<span class="ruby-identifier">name_length</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;A*&quot;</span>).<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
-146: 
-147:     <span class="ruby-identifier">fast_forward</span>
-148: 
-149:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">2</span> * <span class="ruby-ivar">@number_of_flows_per_read</span>) <span class="ruby-comment cmt"># skip through flowgram_values</span>
-150:     <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">read</span>.<span class="ruby-identifier">number_of_bases</span>)          <span class="ruby-comment cmt"># skip through flow_index_per_base</span>
-151: 
-152:     <span class="ruby-comment cmt"># NB! Parsing of flowgram_values and flow_index_per_base is currently disabled since these are not needed.</span>
-153:     <span class="ruby-comment cmt"># read.flowgram_values     = @io.read(2 * @number_of_flows_per_read).unpack(&quot;n*&quot;).map { |val| val = sprintf(&quot;%.2f&quot;, val * 0.01) }</span>
-154:     <span class="ruby-comment cmt"># flow_index_per_base      = @io.read(read.number_of_bases).unpack(&quot;C*&quot;)</span>
-155:     <span class="ruby-comment cmt"># (1 ... flow_index_per_base.length).each { |i| flow_index_per_base[i] += flow_index_per_base[i - 1] }</span>
-156:     <span class="ruby-comment cmt"># read.flow_index_per_base = flow_index_per_base</span>
-157: 
-158:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">bases</span>               = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">read</span>.<span class="ruby-identifier">number_of_bases</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;A*&quot;</span>).<span class="ruby-identifier">join</span> <span class="ruby-value str">&quot;&quot;</span>
-159:     <span class="ruby-identifier">read</span>.<span class="ruby-identifier">quality_scores</span>      = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">read</span>.<span class="ruby-identifier">number_of_bases</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">&quot;C*&quot;</span>)
-160: 
-161:     <span class="ruby-identifier">fast_forward</span>
-162: 
-163:     <span class="ruby-identifier">@@count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-164: 
-165:     <span class="ruby-identifier">read</span>
-166:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/SFFError.html b/code_ruby/Maasha/lib/doc/SFFError.html
deleted file mode 100644 (file)
index 5ce72a1..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: SFFError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./sff_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="sff.rb">sff.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">SFFError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a href="SFF.html">SFF</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Seq.html b/code_ruby/Maasha/lib/doc/Seq.html
deleted file mode 100644 (file)
index b458f01..0000000
+++ /dev/null
@@ -1,1825 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Seq</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./seq_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="seq.rb">seq.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-generate_oligos">::generate_oligos</a></li>
-                                       
-                                       <li><a href="#method-c-new">::new</a></li>
-                                       
-                                       <li><a href="#method-i-adaptor_clip_left">#adaptor_clip_left</a></li>
-                                       
-                                       <li><a href="#method-i-adaptor_clip_right">#adaptor_clip_right</a></li>
-                                       
-                                       <li><a href="#method-i-adaptor_locate_left">#adaptor_locate_left</a></li>
-                                       
-                                       <li><a href="#method-i-adaptor_locate_right">#adaptor_locate_right</a></li>
-                                       
-                                       <li><a href="#method-i-complement">#complement</a></li>
-                                       
-                                       <li><a href="#method-i-composition">#composition</a></li>
-                                       
-                                       <li><a href="#method-i-convert_phred2illumina%21">#convert_phred2illumina!</a></li>
-                                       
-                                       <li><a href="#method-i-convert_solexa2illumina%21">#convert_solexa2illumina!</a></li>
-                                       
-                                       <li><a href="#method-i-generate">#generate</a></li>
-                                       
-                                       <li><a href="#method-i-hard_mask">#hard_mask</a></li>
-                                       
-                                       <li><a href="#method-i-homopol_max">#homopol_max</a></li>
-                                       
-                                       <li><a href="#method-i-indels">#indels</a></li>
-                                       
-                                       <li><a href="#method-i-is_dna%3F">#is_dna?</a></li>
-                                       
-                                       <li><a href="#method-i-is_protein%3F">#is_protein?</a></li>
-                                       
-                                       <li><a href="#method-i-is_rna%3F">#is_rna?</a></li>
-                                       
-                                       <li><a href="#method-i-len">#len</a></li>
-                                       
-                                       <li><a href="#method-i-length">#length</a></li>
-                                       
-                                       <li><a href="#method-i-match">#match</a></li>
-                                       
-                                       <li><a href="#method-i-revcomp">#revcomp</a></li>
-                                       
-                                       <li><a href="#method-i-reverse">#reverse</a></li>
-                                       
-                                       <li><a href="#method-i-reverse_complement">#reverse_complement</a></li>
-                                       
-                                       <li><a href="#method-i-soft_mask">#soft_mask</a></li>
-                                       
-                                       <li><a href="#method-i-solexa2phred">#solexa2phred</a></li>
-                                       
-                                       <li><a href="#method-i-solexa_char2illumina_char">#solexa_char2illumina_char</a></li>
-                                       
-                                       <li><a href="#method-i-subseq">#subseq</a></li>
-                                       
-                                       <li><a href="#method-i-subseq%21">#subseq!</a></li>
-                                       
-                                       <li><a href="#method-i-subseq_rand">#subseq_rand</a></li>
-                                       
-                                       <li><a href="#method-i-to_bp">#to_bp</a></li>
-                                       
-                                       <li><a href="#method-i-to_dna">#to_dna</a></li>
-                                       
-                                       <li><a href="#method-i-to_fasta">#to_fasta</a></li>
-                                       
-                                       <li><a href="#method-i-to_key">#to_key</a></li>
-                                       
-                                       <li><a href="#method-i-to_rna">#to_rna</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-                       <div id="includes-section" class="section">
-                               <h3 class="section-header">Included Modules</h3>
-                               <ul class="link-list">
-                               
-                               
-                                       <li><span class="include">Amatch</span></li>
-                               
-                               
-                               </ul>
-                       </div>
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Seq</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-               <div id="attribute-method-details" class="method-section section">
-                       <h3 class="section-header">Attributes</h3>
-
-                       
-                       <div id="seq-name-attribute-method" class="method-detail">
-                               <a name="seq_name"></a>
-                               
-                               <a name="seq_name="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">seq_name</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="seq-attribute-method" class="method-detail">
-                               <a name="seq"></a>
-                               
-                               <a name="seq="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">seq</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="type-attribute-method" class="method-detail">
-                               <a name="type"></a>
-                               
-                               <a name="type="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">type</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-                       <div id="qual-attribute-method" class="method-detail">
-                               <a name="qual"></a>
-                               
-                               <a name="qual="></a>
-                               
-                               <div class="method-heading attribute-method-heading">
-                                       <span class="method-name">qual</span><span
-                                               class="attribute-access-type">[RW]</span>
-                               </div>
-
-                               <div class="method-description">
-                               
-                               
-                               
-                               </div>
-                       </div>
-                       
-               </div>
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="generate-oligos-method" class="method-detail ">
-                               <a name="method-c-generate_oligos"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">generate_oligos</span><span
-                                               class="method-args">(length, type)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that generates all possible oligos of a specifed length and type.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="generate-oligos-source">
-<pre>
-    <span class="ruby-comment cmt"># File seq.rb, line 47</span>
-47:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">generate_oligos</span>(<span class="ruby-identifier">length</span>, <span class="ruby-identifier">type</span>)
-48:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot generate negative oligo length: #{length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
-49: 
-50:     <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
-51:     <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/dna/</span>     <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">alph</span> = <span class="ruby-constant">DNA</span>
-52:     <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/rna/</span>     <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">alph</span> = <span class="ruby-constant">RNA</span>
-53:     <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/protein/</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">alph</span> = <span class="ruby-constant">PROTEIN</span>
-54:     <span class="ruby-keyword kw">else</span>
-55:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Unknown sequence type: #{type}&quot;</span>
-56:     <span class="ruby-keyword kw">end</span>
-57: 
-58:     <span class="ruby-identifier">oligos</span> = [<span class="ruby-value str">&quot;&quot;</span>]
-59: 
-60:     (<span class="ruby-value">1</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">length</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span>
-61:       <span class="ruby-identifier">list</span> = []
-62: 
-63:       <span class="ruby-identifier">oligos</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">oligo</span><span class="ruby-operator">|</span>
-64:         <span class="ruby-identifier">alph</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
-65:           <span class="ruby-identifier">list</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">oligo</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">char</span>
-66:         <span class="ruby-keyword kw">end</span>
-67:       <span class="ruby-keyword kw">end</span>
-68: 
-69:       <span class="ruby-identifier">oligos</span> = <span class="ruby-identifier">list</span>
-70:     <span class="ruby-keyword kw">end</span>
-71: 
-72:     <span class="ruby-identifier">oligos</span>
-73:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="new-method" class="method-detail ">
-                               <a name="method-c-new"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">new</span><span
-                                               class="method-args">(seq_name = nil, seq = nil, type = nil, qual = nil)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Initialize a sequence object with the following arguments:
-</p>
-<ul>
-<li><p>
-<a href="Seq.html#seq_name">seq_name</a>: Name of the sequence.
-</p>
-</li>
-<li><p>
-seq: The sequence.
-</p>
-</li>
-<li><p>
-type: The sequence type - DNA, RNA, or protein
-</p>
-</li>
-<li><p>
-qual: An Illumina type quality scores string.
-</p>
-</li>
-</ul>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="new-source">
-<pre>
-    <span class="ruby-comment cmt"># File seq.rb, line 80</span>
-80:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">seq_name</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">seq</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">type</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">nil</span>)
-81:     <span class="ruby-ivar">@seq_name</span> = <span class="ruby-identifier">seq_name</span>
-82:     <span class="ruby-ivar">@seq</span>      = <span class="ruby-identifier">seq</span>
-83:     <span class="ruby-ivar">@type</span>     = <span class="ruby-identifier">type</span>
-84:     <span class="ruby-ivar">@qual</span>     = <span class="ruby-identifier">qual</span>
-85:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="adaptor-clip-left-method" class="method-detail ">
-                               <a name="method-i-adaptor_clip_left"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">adaptor_clip_left</span><span
-                                               class="method-args">(adaptor, hd_percent = 0)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that locates an adaptor or part thereof in the sequence of a <a
-href="Seq.html">Seq</a> object beginning from the left and removes the
-adaptor sequence if found. The hd_percent is used to calculate the maximum
-hamming distance allowed for all possible overlaps.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="adaptor-clip-left-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 377</span>
-377:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adaptor_clip_left</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span> = <span class="ruby-value">0</span>)
-378:     <span class="ruby-identifier">pos</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">adaptor_locate_left</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span>)
-379: 
-380:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
-381:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>]
-382:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>[<span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">length</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">nil?</span>
-383:     <span class="ruby-keyword kw">end</span>
-384:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="adaptor-clip-right-method" class="method-detail ">
-                               <a name="method-i-adaptor_clip_right"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">adaptor_clip_right</span><span
-                                               class="method-args">(adaptor, hd_percent = 0)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that locates an adaptor or part thereof in the sequence of a <a
-href="Seq.html">Seq</a> object beginning from the right and removes the
-adaptor sequence if found. The hd_percent is used to calculate the maximum
-hamming distance allowed for all possible overlaps.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="adaptor-clip-right-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 364</span>
-364:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adaptor_clip_right</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span> = <span class="ruby-value">0</span>)
-365:     <span class="ruby-identifier">pos</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">adaptor_locate_right</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span>)
-366: 
-367:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
-368:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">pos</span>]
-369:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">pos</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">nil?</span>
-370:     <span class="ruby-keyword kw">end</span>
-371:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="adaptor-locate-left-method" class="method-detail ">
-                               <a name="method-i-adaptor_locate_left"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">adaptor_locate_left</span><span
-                                               class="method-args">(adaptor, hd_percent = 0)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that locates an adaptor or part thereof in the sequence of a <a
-href="Seq.html">Seq</a> object beginning from the left. Returns the
-location in the sequence that overlaps with the adaptor or -1 if the
-adaptor was not found. The hd_percent is used to calculate the maximum
-hamming distance allowed for all possible overlaps.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="adaptor-locate-left-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 340</span>
-340:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adaptor_locate_left</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span> = <span class="ruby-value">0</span>)
-341:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Hamming distance percent out of range #{hd_percent}&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">..</span> <span class="ruby-value">100</span>).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">hd_percent</span>
-342:     <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">adaptor</span>.<span class="ruby-identifier">length</span>
-343: 
-344:     <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
-345:       <span class="ruby-identifier">len</span>          = <span class="ruby-identifier">pos</span>
-346:       <span class="ruby-identifier">subseq</span>       = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">len</span>].<span class="ruby-identifier">upcase</span>
-347:       <span class="ruby-identifier">subadaptor</span>   = <span class="ruby-identifier">adaptor</span>[<span class="ruby-identifier">adaptor</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">len</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">adaptor</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">upcase</span>
-348:       <span class="ruby-identifier">m</span>            = <span class="ruby-constant">Hamming</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">subseq</span>)
-349:       <span class="ruby-identifier">hamming_dist</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">subadaptor</span>)
-350:       <span class="ruby-identifier">hamming_max</span>  = (<span class="ruby-identifier">len</span> * <span class="ruby-identifier">hd_percent</span> * <span class="ruby-value">0.01</span>).<span class="ruby-identifier">round</span>
-351: 
-352:       <span class="ruby-identifier">pos</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
-353: 
-354:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">pos</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hamming_dist</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">hamming_max</span>
-355:     <span class="ruby-keyword kw">end</span>
-356:     
-357:     <span class="ruby-value">1</span>
-358:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="adaptor-locate-right-method" class="method-detail ">
-                               <a name="method-i-adaptor_locate_right"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">adaptor_locate_right</span><span
-                                               class="method-args">(adaptor, hd_percent = 0)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that locates an adaptor or part thereof in the sequence of a <a
-href="Seq.html">Seq</a> object beginning from the right. Returns the
-location in the sequence that overlaps with the adaptor or -1 if the
-adaptor was not found. The hd_percent is used to calculate the maximum
-hamming distance allowed for all possible overlaps.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="adaptor-locate-right-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 316</span>
-316:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adaptor_locate_right</span>(<span class="ruby-identifier">adaptor</span>, <span class="ruby-identifier">hd_percent</span> = <span class="ruby-value">0</span>)
-317:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Hamming distance percent out of range #{hd_percent}&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">..</span> <span class="ruby-value">100</span>).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">hd_percent</span>
-318:     <span class="ruby-identifier">pos</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">adaptor</span>.<span class="ruby-identifier">length</span>
-319: 
-320:     <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
-321:       <span class="ruby-identifier">len</span>          = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">pos</span>
-322:       <span class="ruby-identifier">subseq</span>       = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">pos</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">pos</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">len</span>].<span class="ruby-identifier">upcase</span>
-323:       <span class="ruby-identifier">subadaptor</span>   = <span class="ruby-identifier">adaptor</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">len</span>].<span class="ruby-identifier">upcase</span>
-324:       <span class="ruby-identifier">m</span>            = <span class="ruby-constant">Hamming</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">subseq</span>)
-325:       <span class="ruby-identifier">hamming_dist</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">subadaptor</span>)
-326:       <span class="ruby-identifier">hamming_max</span>  = (<span class="ruby-identifier">len</span> * <span class="ruby-identifier">hd_percent</span> * <span class="ruby-value">0.01</span>).<span class="ruby-identifier">round</span>
-327:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">pos</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hamming_dist</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">hamming_max</span>
-328: 
-329:       <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-330:     <span class="ruby-keyword kw">end</span>
-331: 
-332:     <span class="ruby-value">1</span>
-333:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="complement-method" class="method-detail ">
-                               <a name="method-i-complement"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">complement</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that complements sequence including ambiguity codes.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="complement-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 196</span>
-196:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">complement</span>
-197:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot complement 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-198: 
-199:     <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_dna?</span>
-200:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'TCGAAYRWSKMDHBVNtcgaayrwskmdhbvn'</span> )
-201:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_rna?</span>
-202:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'UCGAAYRWSKMDHBVNucgaayrwskmdhbvn'</span> )
-203:     <span class="ruby-keyword kw">else</span>
-204:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot complement sequence type: #{self.type}&quot;</span>
-205:     <span class="ruby-keyword kw">end</span>
-206:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="composition-method" class="method-detail ">
-                               <a name="method-i-composition"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">composition</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the residue compositions of a sequence in a hash where
-the key is the residue and the value is the residue count.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="composition-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 272</span>
-272:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">composition</span>
-273:     <span class="ruby-identifier">comp</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>);
-274: 
-275:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
-276:       <span class="ruby-identifier">comp</span>[<span class="ruby-identifier">char</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
-277:     <span class="ruby-keyword kw">end</span>
-278: 
-279:     <span class="ruby-identifier">comp</span>
-280:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="convert-phred-illumina--method" class="method-detail ">
-                               <a name="method-i-convert_phred2illumina%21"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">convert_phred2illumina!</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to convert the quality scores from a specified base to another base.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="convert-phred-illumina--source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 388</span>
-388:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert_phred2illumina!</span>
-389:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">/./</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">score</span><span class="ruby-operator">|</span>
-390:       <span class="ruby-identifier">score_phred</span>  = <span class="ruby-identifier">score</span>.<span class="ruby-identifier">ord</span> <span class="ruby-operator">-</span> <span class="ruby-constant">SCORE_PHRED</span>
-391:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Bad Phred score: #{score} (#{score_phred})&quot;</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-value">0</span> <span class="ruby-operator">..</span> <span class="ruby-value">40</span>).<span class="ruby-identifier">include?</span> <span class="ruby-identifier">score_phred</span>
-392:       <span class="ruby-identifier">score_illumina</span> = <span class="ruby-identifier">score_phred</span> <span class="ruby-operator">+</span> <span class="ruby-constant">SCORE_ILLUMINA</span>
-393:       <span class="ruby-identifier">score</span>          = <span class="ruby-identifier">score_illumina</span>.<span class="ruby-identifier">chr</span>
-394:     <span class="ruby-keyword kw">end</span>
-395:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="convert-solexa-illumina--method" class="method-detail ">
-                               <a name="method-i-convert_solexa2illumina%21"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">convert_solexa2illumina!</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to convert the quality scores from Solexa odd/ratio to Illumina
-format.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="convert-solexa-illumina--source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 399</span>
-399:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">convert_solexa2illumina!</span>
-400:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-regexp re">/./</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">score</span><span class="ruby-operator">|</span>
-401:       <span class="ruby-identifier">score</span> = <span class="ruby-identifier">solexa_char2illumina_char</span>(<span class="ruby-identifier">score</span>)
-402:     <span class="ruby-keyword kw">end</span>
-403:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="generate-method" class="method-detail ">
-                               <a name="method-i-generate"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">generate</span><span
-                                               class="method-args">(length, type)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that generates a random sequence of a given length and type.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="generate-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 209</span>
-209:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">length</span>, <span class="ruby-identifier">type</span>)
-210:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot generate sequence length &lt; 1: #{length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
-211: 
-212:     <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
-213:     <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;dna&quot;</span>
-214:       <span class="ruby-identifier">alph</span> = <span class="ruby-constant">DNA</span>
-215:     <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rna&quot;</span>
-216:       <span class="ruby-identifier">alph</span> = <span class="ruby-constant">RNA</span>
-217:     <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;protein&quot;</span>
-218:       <span class="ruby-identifier">alph</span> = <span class="ruby-constant">PROTEIN</span>
-219:     <span class="ruby-keyword kw">else</span>
-220:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Unknown sequence type: #{type}&quot;</span>
-221:     <span class="ruby-keyword kw">end</span>
-222: 
-223:     <span class="ruby-identifier">seq_new</span>   = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">length</span>) { <span class="ruby-identifier">alph</span>[<span class="ruby-identifier">rand</span>(<span class="ruby-identifier">alph</span>.<span class="ruby-identifier">size</span>)] }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;&quot;</span>)
-224:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-identifier">seq_new</span>
-225:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
-226:     <span class="ruby-identifier">seq_new</span>
-227:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="hard-mask-method" class="method-detail ">
-                               <a name="method-i-hard_mask"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">hard_mask</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the percentage of hard masked residues or N&#8217;s in
-a sequence.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="hard-mask-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 301</span>
-301:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hard_mask</span>
-302:     ((<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-value str">&quot;N&quot;</span>).<span class="ruby-identifier">size</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">len</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">indels</span>).<span class="ruby-identifier">to_f</span>) * <span class="ruby-value">100</span>).<span class="ruby-identifier">round</span>(<span class="ruby-value">2</span>)
-303:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="homopol-max-method" class="method-detail ">
-                               <a name="method-i-homopol_max"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">homopol_max</span><span
-                                               class="method-args">(min = 1)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the length of the longest homopolymeric stretch found
-in a sequence.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="homopol-max-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 284</span>
-284:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">homopol_max</span>(<span class="ruby-identifier">min</span> = <span class="ruby-value">1</span>)
-285:     <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">empty?</span>
-286: 
-287:     <span class="ruby-identifier">found</span> = <span class="ruby-keyword kw">false</span>
-288: 
-289:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-node">/A{#{min},}|T{#{min},}|G{#{min},}|C{#{min},}|N{#{min},}/</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
-290:       <span class="ruby-identifier">found</span> = <span class="ruby-keyword kw">true</span>
-291:       <span class="ruby-identifier">min</span>   = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">min</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">min</span>
-292:     <span class="ruby-keyword kw">end</span>
-293: 
-294:     <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">found</span>
-295:  
-296:     <span class="ruby-identifier">min</span>
-297:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="indels-method" class="method-detail ">
-                               <a name="method-i-indels"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">indels</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Return the number indels in a sequence.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="indels-source">
-<pre>
-    <span class="ruby-comment cmt"># File seq.rb, line 95</span>
-95:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indels</span>
-96:     <span class="ruby-identifier">regex</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">/[#{Regexp.escape(INDELS.join(&quot;&quot;))}]/</span>)
-97:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">regex</span>).<span class="ruby-identifier">size</span>
-98:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="is-dna--method" class="method-detail ">
-                               <a name="method-i-is_dna%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">is_dna?</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns true is a given sequence type is DNA.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="is-dna--source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 101</span>
-101:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_dna?</span>
-102:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'dna'</span>
-103:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="is-protein--method" class="method-detail ">
-                               <a name="method-i-is_protein%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">is_protein?</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns true is a given sequence type is protein.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="is-protein--source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 111</span>
-111:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_protein?</span>
-112:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'protein'</span>
-113:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="is-rna--method" class="method-detail ">
-                               <a name="method-i-is_rna%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">is_rna?</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns true is a given sequence type is RNA.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="is-rna--source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 106</span>
-106:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_rna?</span>
-107:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'rna'</span>
-108:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="len-method" class="method-detail method-alias">
-                               <a name="method-i-len"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">len</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                               </div>
-
-                               
-
-                               
-                               <div class="aliases">
-          Alias for: <a href="Seq.html#method-i-length">length</a>
-                               </div>
-                               
-                       </div>
-
-               
-                       <div id="length-method" class="method-detail ">
-                               <a name="method-i-length"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">length</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Returns the length of a sequence.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="length-source">
-<pre>
-    <span class="ruby-comment cmt"># File seq.rb, line 88</span>
-88:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
-89:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">length</span>
-90:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-                               <div class="aliases">
-                                       Also aliased as: <a href="Seq.html#method-i-len">len</a>
-                               </div>
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="match-method" class="method-detail ">
-                               <a name="method-i-match"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">match</span><span
-                                               class="method-args">(patter, pos)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <hr style="height: 10px"></hr><pre>
-  seq.match(pattern[, pos ] [, hd=max] [, ed=max]) -&gt; matchdata or nil
-</pre>
-<hr style="height: 10px"></hr><p>
-Method to locate a pattern in a sequence  and return the position of the
-match or nil if no match was found. Optional maximum Hamming and Edit
-distance can be specified.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="match-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 411</span>
-411:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">match</span>(<span class="ruby-identifier">patter</span>, <span class="ruby-identifier">pos</span>)
-412:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="revcomp-method" class="method-detail method-alias">
-                               <a name="method-i-revcomp"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">revcomp</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       
-                                       
-
-                                       
-                               </div>
-
-                               
-
-                               
-                               <div class="aliases">
-          Alias for: <a href="Seq.html#method-i-reverse_complement">reverse_complement</a>
-                               </div>
-                               
-                       </div>
-
-               
-                       <div id="reverse-method" class="method-detail ">
-                               <a name="method-i-reverse"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">reverse</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to reverse the sequence.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="reverse-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 191</span>
-191:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse</span>
-192:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">reverse!</span>
-193:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="reverse-complement-method" class="method-detail ">
-                               <a name="method-i-reverse_complement"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">reverse_complement</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to reverse complement sequence.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="reverse-complement-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 183</span>
-183:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_complement</span>
-184:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">reverse</span>
-185:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">complement</span>
-186:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-                               <div class="aliases">
-                                       Also aliased as: <a href="Seq.html#method-i-revcomp">revcomp</a>
-                               </div>
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="soft-mask-method" class="method-detail ">
-                               <a name="method-i-soft_mask"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">soft_mask</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns the percentage of soft masked residues or lower cased
-residues in a sequence.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="soft-mask-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 307</span>
-307:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">soft_mask</span>
-308:     ((<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/[a-z]/</span>).<span class="ruby-identifier">size</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> (<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">len</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">indels</span>).<span class="ruby-identifier">to_f</span>) * <span class="ruby-value">100</span>).<span class="ruby-identifier">round</span>(<span class="ruby-value">2</span>)
-309:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="subseq-method" class="method-detail ">
-                               <a name="method-i-subseq"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">subseq</span><span
-                                               class="method-args">(start, length = self.length - start)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns a subsequence of from a given start position and of a
-given length.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="subseq-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 231</span>
-231:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">subseq</span>(<span class="ruby-identifier">start</span>, <span class="ruby-identifier">length</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start</span>)
-232:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence start: #{start} &lt; 0&quot;</span>                                                <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span>  <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
-233:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence length: #{length} &lt; 1&quot;</span>                                              <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
-234:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence start + length &gt; Seq.length: #{start} + #{length} &gt; #{self.length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
-235: 
-236:     <span class="ruby-identifier">stop</span> = <span class="ruby-identifier">start</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-237: 
-238:     <span class="ruby-identifier">seq</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">start</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">stop</span>]
-239:     <span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>[<span class="ruby-identifier">start</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">stop</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">nil?</span>
-240: 
-241:     <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>, <span class="ruby-identifier">seq</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">qual</span>)
-242:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="subseq--method" class="method-detail ">
-                               <a name="method-i-subseq%21"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">subseq!</span><span
-                                               class="method-args">(start, length = self.length - start)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that replaces a sequence with a subsequence from a given start
-position and of a given length.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="subseq--source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 246</span>
-246:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">subseq!</span>(<span class="ruby-identifier">start</span>, <span class="ruby-identifier">length</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start</span>)
-247:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence start: #{start} &lt; 0&quot;</span>                                                <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span>  <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
-248:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence length: #{length} &lt; 1&quot;</span>                                              <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
-249:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;subsequence start + length &gt; Seq.length: #{start} + #{length} &gt; #{self.length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">start</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
-250: 
-251:     <span class="ruby-identifier">stop</span> = <span class="ruby-identifier">start</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
-252: 
-253:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>[<span class="ruby-identifier">start</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">stop</span>]
-254:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>[<span class="ruby-identifier">start</span> <span class="ruby-operator">..</span> <span class="ruby-identifier">stop</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>.<span class="ruby-identifier">nil?</span>
-255:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="subseq-rand-method" class="method-detail ">
-                               <a name="method-i-subseq_rand"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">subseq_rand</span><span
-                                               class="method-args">(length)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that returns a subsequence of a given length beginning at a random
-position.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="subseq-rand-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 259</span>
-259:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">subseq_rand</span>(<span class="ruby-identifier">length</span>)
-260:     <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-261:       <span class="ruby-identifier">start</span> = <span class="ruby-value">0</span>
-262:     <span class="ruby-keyword kw">else</span>
-263:       <span class="ruby-identifier">start</span> = <span class="ruby-identifier">rand</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
-264:     <span class="ruby-keyword kw">end</span>
-265: 
-266:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">subseq</span>(<span class="ruby-identifier">start</span>, <span class="ruby-identifier">length</span>)
-267:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-bp-method" class="method-detail ">
-                               <a name="method-i-to_bp"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_bp</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that given a <a href="Seq.html">Seq</a> entry returns a <a
-href="Biopieces.html">Biopieces</a> record (a hash).
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-bp-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 132</span>
-132:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_bp</span>
-133:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq_name&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">nil?</span>
-134:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq&quot;</span>      <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
-135:     <span class="ruby-identifier">record</span>             = {}
-136:     <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ_NAME</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>
-137:     <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ</span>]      = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>
-138:     <span class="ruby-identifier">record</span>[<span class="ruby-value">:SEQ_LEN</span>]  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
-139:     <span class="ruby-identifier">record</span>[<span class="ruby-value">:SCORES</span>]   = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">qual</span>
-140:     <span class="ruby-identifier">record</span>
-141:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-dna-method" class="method-detail ">
-                               <a name="method-i-to_dna"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_dna</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to reverse-transcribe RNA to DNA.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-dna-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 124</span>
-124:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_dna</span>
-125:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot reverse-transcribe 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-126:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot reverse-transcribe sequence type: #{self.type}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_rna?</span>
-127:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'dna'</span>
-128:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">'Uu'</span>,<span class="ruby-value str">'Tt'</span>)
-129:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-fasta-method" class="method-detail ">
-                               <a name="method-i-to_fasta"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_fasta</span><span
-                                               class="method-args">(wrap = nil)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that given a <a href="Seq.html">Seq</a> entry returns a FASTA entry
-(a string).
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-fasta-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 144</span>
-144:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_fasta</span>(<span class="ruby-identifier">wrap</span> = <span class="ruby-keyword kw">nil</span>)
-145:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq_name&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">nil?</span>
-146:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq&quot;</span>      <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
-147: 
-148:     <span class="ruby-identifier">seq_name</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>
-149:     <span class="ruby-identifier">seq</span>      = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>
-150: 
-151:     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">wrap</span>.<span class="ruby-identifier">nil?</span>
-152:       <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">gsub!</span> <span class="ruby-node">/(.{#{wrap}})/</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span>
-153:         <span class="ruby-identifier">match</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;\n&quot;</span>
-154:       <span class="ruby-keyword kw">end</span>
-155: 
-156:       <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">chomp!</span>
-157:     <span class="ruby-keyword kw">end</span>
-158: 
-159:     <span class="ruby-node">&quot;&gt;#{seq_name}\n#{seq}\n&quot;</span>
-160:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-key-method" class="method-detail ">
-                               <a name="method-i-to_key"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_key</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that generates a unique key for a DNA sequence and return this key
-as a Fixnum.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-key-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 164</span>
-164:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_key</span>
-165:     <span class="ruby-identifier">key</span> = <span class="ruby-value">0</span>
-166:     
-167:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">each_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">char</span><span class="ruby-operator">|</span>
-168:       <span class="ruby-identifier">key</span> <span class="ruby-operator">&lt;&lt;=</span> <span class="ruby-value">2</span>
-169:       
-170:       <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">char</span>
-171:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'A'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">|=</span> <span class="ruby-value">0</span>
-172:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'C'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">|=</span> <span class="ruby-value">1</span>
-173:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'G'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">|=</span> <span class="ruby-value">2</span>
-174:       <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'T'</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">key</span> <span class="ruby-operator">|=</span> <span class="ruby-value">3</span>
-175:       <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Bad residue: #{char}&quot;</span>
-176:       <span class="ruby-keyword kw">end</span>
-177:     <span class="ruby-keyword kw">end</span>
-178:     
-179:     <span class="ruby-identifier">key</span>
-180:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="to-rna-method" class="method-detail ">
-                               <a name="method-i-to_rna"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">to_rna</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to transcribe DNA to RNA.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="to-rna-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 116</span>
-116:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rna</span>
-117:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot transcribe 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-118:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot transcribe sequence type: #{self.type}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_dna?</span>
-119:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'rna'</span>
-120:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">'Tt'</span>,<span class="ruby-value str">'Uu'</span>)
-121:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="solexa-phred-method" class="method-detail ">
-                               <a name="method-i-solexa2phred"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">solexa2phred</span><span
-                                               class="method-args">(score)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to convert a Solexa score (odd ratio) to a phred (probability)
-integer score.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="solexa-phred-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 418</span>
-418:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">solexa2phred</span>(<span class="ruby-identifier">score</span>)
-419:     (<span class="ruby-value">10.0</span> * <span class="ruby-constant">Math</span>.<span class="ruby-identifier">log</span>(<span class="ruby-value">10.0</span> <span class="ruby-operator">**</span> (<span class="ruby-identifier">score</span> <span class="ruby-operator">/</span> <span class="ruby-value">10.0</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1.0</span>, <span class="ruby-value">10</span>)).<span class="ruby-identifier">to_i</span>
-420:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="solexa-char-illumina-char-method" class="method-detail ">
-                               <a name="method-i-solexa_char2illumina_char"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">solexa_char2illumina_char</span><span
-                                               class="method-args">(char)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to convert a Solexa score encoded using base 64 ASCII to a Phred
-score encoded using base 64 ASCII.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="solexa-char-illumina-char-source">
-<pre>
-     <span class="ruby-comment cmt"># File seq.rb, line 424</span>
-424:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">solexa_char2illumina_char</span>(<span class="ruby-identifier">char</span>)
-425:     <span class="ruby-identifier">score_solexa</span> = <span class="ruby-identifier">char</span>.<span class="ruby-identifier">ord</span> <span class="ruby-operator">-</span> <span class="ruby-value">64</span>
-426:     <span class="ruby-identifier">score_phred</span>  = <span class="ruby-identifier">solexa2phred</span>(<span class="ruby-identifier">score_solexa</span>)
-427:     (<span class="ruby-identifier">score_phred</span> <span class="ruby-operator">+</span> <span class="ruby-value">64</span>).<span class="ruby-identifier">chr</span>
-428:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/SeqError.html b/code_ruby/Maasha/lib/doc/SeqError.html
deleted file mode 100644 (file)
index 16dca69..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: SeqError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./seq_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="seq.rb">seq.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">SeqError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a href="Seq.html">Seq</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Status.html b/code_ruby/Maasha/lib/doc/Status.html
deleted file mode 100644 (file)
index a06e728..0000000
+++ /dev/null
@@ -1,524 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Status</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-i-delete">#delete</a></li>
-                                       
-                                       <li><a href="#method-i-get_tmpdir">#get_tmpdir</a></li>
-                                       
-                                       <li><a href="#method-i-log">#log</a></li>
-                                       
-                                       <li><a href="#method-i-path">#path</a></li>
-                                       
-                                       <li><a href="#method-i-set">#set</a></li>
-                                       
-                                       <li><a href="#method-i-set_tmpdir">#set_tmpdir</a></li>
-                                       
-                                       <li><a href="#method-i-time_diff">#time_diff</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Status</h1>
-
-               <div id="description">
-                       <p>
-Class for manipulating the execution status of <a
-href="Biopieces.html">Biopieces</a> by setting a status file with a time
-stamp, process id, and command arguments. The status file is used for
-creating log entries and for displaying the runtime status of <a
-href="Biopieces.html">Biopieces</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="delete-method" class="method-detail ">
-                               <a name="method-i-delete"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">delete</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Delete status file.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="delete-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 547</span>
-547:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>
-548:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">path</span>)
-549:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="get-tmpdir-method" class="method-detail ">
-                               <a name="method-i-get_tmpdir"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">get_tmpdir</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Extract the temporary directory path from the status file, and return this
-or nil if not found.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="get-tmpdir-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 520</span>
-520:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_tmpdir</span>
-521:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
-522:       <span class="ruby-identifier">tmpdir_path</span> = <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">read</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;;&quot;</span>).<span class="ruby-identifier">last</span>
-523:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tmpdir_path</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">tmpdir_path</span>)
-524:     <span class="ruby-keyword kw">end</span>
-525: 
-526:     <span class="ruby-keyword kw">nil</span>
-527:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="log-method" class="method-detail ">
-                               <a name="method-i-log"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">log</span><span
-                                               class="method-args">(exit_status)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Write the Biopiece status to the log file.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="log-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 530</span>
-530:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log</span>(<span class="ruby-identifier">exit_status</span>)
-531:     <span class="ruby-identifier">time1</span>   = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d %X&quot;</span>)
-532:     <span class="ruby-identifier">user</span>    = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;USER&quot;</span>]
-533:     <span class="ruby-identifier">script</span>  = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">$0</span>)
-534: 
-535:     <span class="ruby-identifier">stream</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>)
-536:     <span class="ruby-identifier">time0</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">tmp_dir</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;;&quot;</span>)
-537:     <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">close</span>
-538: 
-539:     <span class="ruby-identifier">elap</span>     = <span class="ruby-identifier">time_diff</span>(<span class="ruby-identifier">time0</span>, <span class="ruby-identifier">time1</span>)
-540:     <span class="ruby-identifier">command</span>  = [<span class="ruby-identifier">script</span>, <span class="ruby-identifier">args</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot; &quot;</span>) 
-541:     <span class="ruby-identifier">log_file</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_LOG&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/biopieces.log&quot;</span>
-542: 
-543:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">log_file</span>, <span class="ruby-identifier">mode</span> = <span class="ruby-value str">&quot;a&quot;</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">puts</span> [<span class="ruby-identifier">time0</span>, <span class="ruby-identifier">time1</span>, <span class="ruby-identifier">elap</span>, <span class="ruby-identifier">user</span>, <span class="ruby-identifier">exit_status</span>, <span class="ruby-identifier">command</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\t&quot;</span>) }
-544:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="set-method" class="method-detail ">
-                               <a name="method-i-set"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">set</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Write the status to a status file.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="set-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 495</span>
-495:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>
-496:     <span class="ruby-identifier">time0</span>  = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d %X&quot;</span>)
-497: 
-498:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
-499:       <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">puts</span> [<span class="ruby-identifier">time0</span>, <span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot; &quot;</span>)].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;;&quot;</span>)
-500:     <span class="ruby-keyword kw">end</span>
-501:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="set-tmpdir-method" class="method-detail ">
-                               <a name="method-i-set_tmpdir"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">set_tmpdir</span><span
-                                               class="method-args">(tmpdir_path)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Append the a temporary directory path to the status file.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="set-tmpdir-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 504</span>
-504:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_tmpdir</span>(<span class="ruby-identifier">tmpdir_path</span>)
-505:     <span class="ruby-identifier">status</span> = <span class="ruby-value str">&quot;&quot;</span>
-506: 
-507:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
-508:       <span class="ruby-identifier">status</span> = <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">read</span>.<span class="ruby-identifier">chomp</span>
-509:     <span class="ruby-keyword kw">end</span>
-510: 
-511:     <span class="ruby-identifier">status</span> = <span class="ruby-node">&quot;#{status};#{tmpdir_path}\n&quot;</span>
-512: 
-513:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
-514:       <span class="ruby-identifier">fh</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">status</span>
-515:     <span class="ruby-keyword kw">end</span>
-516:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Private Instance Methods</h3>
-
-               
-                       <div id="path-method" class="method-detail ">
-                               <a name="method-i-path"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">path</span><span
-                                               class="method-args">()</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Path to status file
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="path-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 554</span>
-554:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path</span>
-555:     <span class="ruby-identifier">user</span>   = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;USER&quot;</span>]
-556:     <span class="ruby-identifier">script</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">$0</span>)
-557:     <span class="ruby-identifier">pid</span>    = <span class="ruby-identifier">$$</span>
-558:     <span class="ruby-identifier">path</span>   = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_TMP&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">user</span>, <span class="ruby-identifier">script</span>, <span class="ruby-identifier">pid</span>, <span class="ruby-value str">&quot;status&quot;</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;.&quot;</span>)
-559:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="time-diff-method" class="method-detail ">
-                               <a name="method-i-time_diff"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">time_diff</span><span
-                                               class="method-args">(t0, t1)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Get the elapsed time from the difference between two time stamps.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="time-diff-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 562</span>
-562:   <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">time_diff</span>(<span class="ruby-identifier">t0</span>, <span class="ruby-identifier">t1</span>)
-563:     <span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>((<span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t1</span>).<span class="ruby-identifier">to_time</span> <span class="ruby-operator">-</span> <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">t0</span>).<span class="ruby-identifier">to_time</span>).<span class="ruby-identifier">to_i</span>).<span class="ruby-identifier">gmtime</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">'%X'</span>)
-564:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/Stream.html b/code_ruby/Maasha/lib/doc/Stream.html
deleted file mode 100644 (file)
index 24d3772..0000000
+++ /dev/null
@@ -1,557 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: Stream</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./biopieces_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="biopieces.rb">biopieces.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">IO</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-nread">::nread</a></li>
-                                       
-                                       <li><a href="#method-c-nwrite">::nwrite</a></li>
-                                       
-                                       <li><a href="#method-c-open">::open</a></li>
-                                       
-                                       <li><a href="#method-c-read">::read</a></li>
-                                       
-                                       <li><a href="#method-c-write">::write</a></li>
-                                       
-                                       <li><a href="#method-c-zipped%3F">::zipped?</a></li>
-                                       
-                                       <li><a href="#method-c-zread">::zread</a></li>
-                                       
-                                       <li><a href="#method-c-zwrite">::zwrite</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">Stream</h1>
-
-               <div id="description">
-                       
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="open-method" class="method-detail ">
-                               <a name="method-c-open"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">open</span><span
-                                               class="method-args">(options, mode, stdio)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Open <a href="Biopieces.html">Biopieces</a> output data stream for reading
-from stdin or a file specified in options[:stream_in] OR writing to stdout
-or a file specified in options[:stream_out] or options[:data_out].
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="open-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 572</span>
-572:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">options</span>, <span class="ruby-identifier">mode</span>, <span class="ruby-identifier">stdio</span>)
-573:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;r&quot;</span>
-574:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:data_in</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:data_in</span>].<span class="ruby-identifier">first</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;-&quot;</span>
-575:         <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nread</span>([<span class="ruby-value str">&quot;-&quot;</span>])
-576:       <span class="ruby-keyword kw">else</span>
-577:         <span class="ruby-identifier">$stdin</span>.<span class="ruby-identifier">tty?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:stream_in</span>]) <span class="ruby-operator">:</span> <span class="ruby-identifier">stdio</span>
-578:       <span class="ruby-keyword kw">end</span>
-579:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;w&quot;</span>
-580:       <span class="ruby-identifier">options</span>[<span class="ruby-value">:stream_out</span>] <span class="ruby-operator">?</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:stream_out</span>], <span class="ruby-identifier">options</span>[<span class="ruby-value">:compress</span>]) <span class="ruby-operator">:</span> <span class="ruby-identifier">stdio</span>
-581:     <span class="ruby-keyword kw">else</span>
-582:       <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Bad mode #{mode}&quot;</span>
-583:     <span class="ruby-keyword kw">end</span>
-584:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="private-class-method-details" class="method-section section">
-                       <h3 class="section-header">Private Class Methods</h3>
-
-               
-                       <div id="nread-method" class="method-detail ">
-                               <a name="method-c-nread"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">nread</span><span
-                                               class="method-args">(files)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Opens a list of files for reading and return an <em>io</em> object.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="nread-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 616</span>
-616:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nread</span>(<span class="ruby-identifier">files</span>)
-617:     <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span> = <span class="ruby-constant">Open3</span>.<span class="ruby-identifier">popen3</span>(<span class="ruby-value str">&quot;cat &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>));
-618:     <span class="ruby-identifier">stdin</span>.<span class="ruby-identifier">close</span>
-619:     <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">close</span>
-620:     <span class="ruby-identifier">stdout</span>
-621:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="nwrite-method" class="method-detail ">
-                               <a name="method-c-nwrite"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">nwrite</span><span
-                                               class="method-args">(file)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Opens a file for writing and return an <em>io</em> object.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="nwrite-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 624</span>
-624:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nwrite</span>(<span class="ruby-identifier">file</span>)
-625:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>)
-626:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="read-method" class="method-detail ">
-                               <a name="method-c-read"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">read</span><span
-                                               class="method-args">(files)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Opens a reads stream to a list of files.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="read-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 589</span>
-589:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">files</span>)
-590:     <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-comment cmt">#TODO case/when</span>
-591:     <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zipped?</span>(<span class="ruby-identifier">files</span>) <span class="ruby-operator">?</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zread</span>(<span class="ruby-identifier">files</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nread</span>(<span class="ruby-identifier">files</span>)
-592:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="write-method" class="method-detail ">
-                               <a name="method-c-write"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">write</span><span
-                                               class="method-args">(file, zip=nil)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Opens a write stream to a file and returns a <em>io</em> object.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="write-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 595</span>
-595:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">zip</span>=<span class="ruby-keyword kw">nil</span>)
-596:     <span class="ruby-identifier">zip</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zwrite</span>(<span class="ruby-identifier">file</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">nwrite</span>(<span class="ruby-identifier">file</span>)
-597:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="zipped--method" class="method-detail ">
-                               <a name="method-c-zipped%3F"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">zipped?</span><span
-                                               class="method-args">(files)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Test if a list of files are gzipped or not. Raises if files are mixed
-zipped and unzipped.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="zipped--source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 630</span>
-630:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zipped?</span>(<span class="ruby-identifier">files</span>)
-631:     <span class="ruby-identifier">type_hash</span> = {}
-632: 
-633:     <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
-634:       <span class="ruby-identifier">type</span> = <span class="ruby-node">`file #{file}`</span>
-635: 
-636:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/gzip compressed/</span>
-637:         <span class="ruby-identifier">type_hash</span>[<span class="ruby-value">:gzip</span>] = <span class="ruby-keyword kw">true</span>
-638:       <span class="ruby-keyword kw">else</span>
-639:         <span class="ruby-identifier">type_hash</span>[<span class="ruby-value">:ascii</span>] = <span class="ruby-keyword kw">true</span>
-640:       <span class="ruby-keyword kw">end</span>
-641:     <span class="ruby-keyword kw">end</span>
-642: 
-643:     <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Mixture of zipped and unzipped files&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type_hash</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
-644: 
-645:     <span class="ruby-identifier">type_hash</span>[<span class="ruby-value">:gzip</span>]
-646:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="zread-method" class="method-detail ">
-                               <a name="method-c-zread"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">zread</span><span
-                                               class="method-args">(files)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Opens a list of gzipped files for reading and return an <em>io</em> object.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="zread-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 600</span>
-600:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zread</span>(<span class="ruby-identifier">files</span>)
-601:     <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span> = <span class="ruby-constant">Open3</span>.<span class="ruby-identifier">popen3</span>(<span class="ruby-value str">&quot;zcat &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>));
-602:     <span class="ruby-identifier">stdin</span>.<span class="ruby-identifier">close</span>
-603:     <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">close</span>
-604:     <span class="ruby-identifier">stdout</span>
-605:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="zwrite-method" class="method-detail ">
-                               <a name="method-c-zwrite"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">zwrite</span><span
-                                               class="method-args">(file)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Opens a file for gzipped writing and return an <em>io</em> object.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="zwrite-source">
-<pre>
-     <span class="ruby-comment cmt"># File biopieces.rb, line 608</span>
-608:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zwrite</span>(<span class="ruby-identifier">file</span>)
-609:     <span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span> = <span class="ruby-constant">Open3</span>.<span class="ruby-identifier">popen3</span>(<span class="ruby-node">&quot;gzip -f &gt; #{file}&quot;</span>)
-610:     <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">close</span>
-611:     <span class="ruby-identifier">stdout</span>.<span class="ruby-identifier">close</span>
-612:     <span class="ruby-identifier">stdin</span>
-613:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/String.html b/code_ruby/Maasha/lib/doc/String.html
deleted file mode 100644 (file)
index 61c0653..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: String</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./bits_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="bits.rb">bits.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">Object</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-                       <div id="method-list-section" class="section">
-                               <h3 class="section-header">Methods</h3>
-                               <ul class="link-list">
-                                       
-                                       <li><a href="#method-c-hamming_dist">::hamming_dist</a></li>
-                                       
-                                       <li><a href="#method-i-%26">#&</a></li>
-                                       
-                                       <li><a href="#method-i-%5E">#^</a></li>
-                                       
-                                       <li><a href="#method-i-%7C">#|</a></li>
-                                       
-                               </ul>
-                       </div>
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">String</h1>
-
-               <div id="description">
-                       <p>
-Monkey patching Class <a href="String.html">String</a> to add bitwise
-operators. Behaviour matching Perl&#8217;s: <a
-href="http://perldoc.perl.org/perlop.html#Bitwise-String-Operators">perldoc.perl.org/perlop.html#Bitwise-String-Operators</a>
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-               <div id="public-class-method-details" class="method-section section">
-                       <h3 class="section-header">Public Class Methods</h3>
-
-               
-                       <div id="hamming-dist-method" class="method-detail ">
-                               <a name="method-c-hamming_dist"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">hamming_dist</span><span
-                                               class="method-args">(str1, str2)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method to that returns the case senstive Hamming Distance between two
-strings. <a
-href="http://en.wikipedia.org/wiki/Hamming_distance">en.wikipedia.org/wiki/Hamming_distance</a>
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="hamming-dist-source">
-<pre>
-    <span class="ruby-comment cmt"># File bits.rb, line 34</span>
-34:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hamming_dist</span>(<span class="ruby-identifier">str1</span>, <span class="ruby-identifier">str2</span>)
-35:     <span class="ruby-identifier">raise</span> <span class="ruby-constant">StringError</span>, <span class="ruby-node">&quot;Uneven string lengths: #{str1.length} != #{str2.length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str1</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">str2</span>.<span class="ruby-identifier">length</span>
-36:     (<span class="ruby-identifier">str1</span> <span class="ruby-operator">^</span> <span class="ruby-identifier">str2</span> ).<span class="ruby-identifier">count</span>(<span class="ruby-value str">&quot;\x01-\xff&quot;</span>)
-37:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-               <div id="public-instance-method-details" class="method-section section">
-                       <h3 class="section-header">Public Instance Methods</h3>
-
-               
-                       <div id="--method" class="method-detail ">
-                               <a name="method-i-%26"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">&amp;</span><span
-                                               class="method-args">(str)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that performs bitwise AND operation where bits are copied if they
-exists in BOTH operands. If the operand sizes are different, the &amp;
-operator methods acts as though the longer operand were truncated to the
-length of the shorter.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="--source">
-<pre>
-    <span class="ruby-comment cmt"># File bits.rb, line 43</span>
-43:   <span class="ruby-keyword kw">def</span> &amp;(<span class="ruby-identifier">str</span>)
-44:     <span class="ruby-identifier">new</span> = <span class="ruby-value str">&quot;&quot;</span>
-45: 
-46:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> [<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">min</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
-47:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span> &amp; <span class="ruby-identifier">str</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span>)
-48:     <span class="ruby-keyword kw">end</span>
-49: 
-50:     <span class="ruby-identifier">new</span>
-51:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="--method" class="method-detail ">
-                               <a name="method-i-%5E"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">^</span><span
-                                               class="method-args">(str)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that performs bitwise XOR operation where bits are copied if they
-exists in ONE BUT NOT BOTH operands.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="--source">
-<pre>
-    <span class="ruby-comment cmt"># File bits.rb, line 77</span>
-77:   <span class="ruby-keyword kw">def</span> <span class="ruby-operator">^</span>(<span class="ruby-identifier">str</span>)
-78:     <span class="ruby-identifier">new</span> = <span class="ruby-value str">&quot;&quot;</span>
-79: 
-80:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> [<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">min</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
-81:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span> <span class="ruby-operator">^</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span>)
-82:     <span class="ruby-keyword kw">end</span>
-83: 
-84:     <span class="ruby-identifier">new</span>
-85:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-                       <div id="--method" class="method-detail ">
-                               <a name="method-i-%7C"></a>
-
-                               <div class="method-heading">
-                               
-                                       <span class="method-name">|</span><span
-                                               class="method-args">(str)</span>
-                                       <span class="method-click-advice">click to toggle source</span>
-                               
-                               </div>
-
-                               <div class="method-description">
-                                       
-                                       <p>
-Method that performs bitwise OR operation where bits are copied if they
-exists in EITHER operands. If the operand sizes differ, the shorter operand
-is extended with the terminal part of the longer operand.
-</p>
-                                       
-
-                                       
-                                       <div class="method-source-code"
-                                               id="--source">
-<pre>
-    <span class="ruby-comment cmt"># File bits.rb, line 57</span>
-57:   <span class="ruby-keyword kw">def</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">str</span>)
-58:     <span class="ruby-identifier">new</span> = <span class="ruby-value str">&quot;&quot;</span>
-59: 
-60:     <span class="ruby-identifier">min</span> = [<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">min</span>
-61: 
-62:     (<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">min</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
-63:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">ord</span>)
-64:     <span class="ruby-keyword kw">end</span>
-65: 
-66:     <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>
-67:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">min</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>]
-68:     <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>
-69:       <span class="ruby-identifier">new</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>[<span class="ruby-identifier">min</span> <span class="ruby-operator">...</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">length</span>]
-70:     <span class="ruby-keyword kw">end</span>
-71: 
-72:     <span class="ruby-identifier">new</span>
-73:   <span class="ruby-keyword kw">end</span></pre>
-                                       </div>
-                                       
-                               </div>
-
-                               
-
-                               
-                       </div>
-
-               
-               </div>
-       
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/StringError.html b/code_ruby/Maasha/lib/doc/StringError.html
deleted file mode 100644 (file)
index 2151699..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>Class: StringError</title>
-
-       <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-
-</head>
-<body class="class">
-
-       <div id="metadata">
-               <div id="home-metadata">
-                       <div id="home-section" class="section">
-        <h3 class="section-header">
-          <a href="./index.html">Home</a>
-          <a href="./index.html#classes">Classes</a>
-          <a href="./index.html#methods">Methods</a>
-        </h3>
-                       </div>
-               </div>
-
-               <div id="file-metadata">
-                       <div id="file-list-section" class="section">
-                               <h3 class="section-header">In Files</h3>
-                               <div class="section-body">
-                                       <ul>
-                                       
-                                               <li><a href="./bits_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
-                                                       class="thickbox" title="bits.rb">bits.rb</a></li>
-                                       
-                                       </ul>
-                               </div>
-                       </div>
-
-                       
-               </div>
-
-               <div id="class-metadata">
-
-                       <!-- Parent Class -->
-                       
-                       <div id="parent-class-section" class="section">
-                               <h3 class="section-header">Parent</h3>
-                               
-                               <p class="link">StandardError</p>
-                               
-                       </div>
-                       
-
-                       <!-- Namespace Contents -->
-                       
-
-                       <!-- Method Quickref -->
-                       
-
-                       <!-- Included Modules -->
-                       
-               </div>
-
-               <div id="project-metadata">
-                       
-                       
-
-                       <div id="classindex-section" class="section project-section">
-                               <h3 class="section-header">Class Index
-                                       <span class="search-toggle"><img src="./images/find.png"
-                                               height="16" width="16" alt="[+]"
-                                               title="show/hide quicksearch" /></span></h3>
-                               <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
-                               <fieldset>
-                                       <legend>Quicksearch</legend>
-                                       <input type="text" name="quicksearch" value=""
-                                               class="quicksearch-field" />
-                               </fieldset>
-                               </form>
-
-                               <ul class="link-list">
-                               
-                                       <li><a href="./Base36.html">Base36</a></li>
-                               
-                                       <li><a href="./Base36Error.html">Base36Error</a></li>
-                               
-                                       <li><a href="./Biopieces.html">Biopieces</a></li>
-                               
-                                       <li><a href="./BitArray.html">BitArray</a></li>
-                               
-                                       <li><a href="./BitArrayError.html">BitArrayError</a></li>
-                               
-                                       <li><a href="./Boulder.html">Boulder</a></li>
-                               
-                                       <li><a href="./BoulderError.html">BoulderError</a></li>
-                               
-                                       <li><a href="./CastError.html">CastError</a></li>
-                               
-                                       <li><a href="./Casts.html">Casts</a></li>
-                               
-                                       <li><a href="./Digest.html">Digest</a></li>
-                               
-                                       <li><a href="./DigestError.html">DigestError</a></li>
-                               
-                                       <li><a href="./Fasta.html">Fasta</a></li>
-                               
-                                       <li><a href="./FastaError.html">FastaError</a></li>
-                               
-                                       <li><a href="./Fastq.html">Fastq</a></li>
-                               
-                                       <li><a href="./FastqError.html">FastqError</a></li>
-                               
-                                       <li><a href="./Filesys.html">Filesys</a></li>
-                               
-                                       <li><a href="./FilesysError.html">FilesysError</a></li>
-                               
-                                       <li><a href="./Genbank.html">Genbank</a></li>
-                               
-                                       <li><a href="./GenbankError.html">GenbankError</a></li>
-                               
-                                       <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
-                               
-                                       <li><a href="./Locator.html">Locator</a></li>
-                               
-                                       <li><a href="./LocatorError.html">LocatorError</a></li>
-                               
-                                       <li><a href="./OptionHandler.html">OptionHandler</a></li>
-                               
-                                       <li><a href="./Read.html">Read</a></li>
-                               
-                                       <li><a href="./SFF.html">SFF</a></li>
-                               
-                                       <li><a href="./SFFError.html">SFFError</a></li>
-                               
-                                       <li><a href="./Seq.html">Seq</a></li>
-                               
-                                       <li><a href="./SeqError.html">SeqError</a></li>
-                               
-                                       <li><a href="./Status.html">Status</a></li>
-                               
-                                       <li><a href="./Stream.html">Stream</a></li>
-                               
-                                       <li><a href="./String.html">String</a></li>
-                               
-                                       <li><a href="./StringError.html">StringError</a></li>
-                               
-                               </ul>
-                               <div id="no-class-search-results" style="display: none;">No matching classes.</div>
-                       </div>
-
-                       
-               </div>
-       </div>
-
-       <div id="documentation">
-               <h1 class="class">StringError</h1>
-
-               <div id="description">
-                       <p>
-Error class for all exceptions to do with <a href="String.html">String</a>.
-</p>
-
-               </div>
-
-               <!-- Constants -->
-               
-
-               <!-- Attributes -->
-               
-
-               <!-- Methods -->
-               
-
-       </div>
-
-
-       <div id="rdoc-debugging-section-dump" class="debugging-section">
-       
-               <p>Disabled; run with --debug to generate this.</p>
-       
-       </div>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/base36_rb.html b/code_ruby/Maasha/lib/doc/base36_rb.html
deleted file mode 100644 (file)
index 5b15245..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: base36.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-02-11 19:42:32 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/biopieces_rb.html b/code_ruby/Maasha/lib/doc/biopieces_rb.html
deleted file mode 100644 (file)
index 9757f4c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: biopieces.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-19 09:14:44 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>fileutils</li>
-                               
-                                       <li>date</li>
-                               
-                                       <li>optparse</li>
-                               
-                                       <li>open3</li>
-                               
-                                       <li>pp</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/bitarray_rb.html b/code_ruby/Maasha/lib/doc/bitarray_rb.html
deleted file mode 100644 (file)
index bb50590..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: bitarray.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-17 15:02:03 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/bits_rb.html b/code_ruby/Maasha/lib/doc/bits_rb.html
deleted file mode 100644 (file)
index 2380506..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: bits.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-08 11:37:57 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/boulder_rb.html b/code_ruby/Maasha/lib/doc/boulder_rb.html
deleted file mode 100644 (file)
index 5416de3..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: boulder.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-19 09:17:13 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>filesys</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/classes/Biopieces.html b/code_ruby/Maasha/lib/doc/classes/Biopieces.html
deleted file mode 100644 (file)
index b5ad0f7..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Biopieces [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Biopieces</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/biopieces_rb.html">
-
-                biopieces.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                Object
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-<a href="Biopieces.html">Biopieces</a> are command line scripts and uses
-OptionParser to parse command line options according to a list of casts.
-Each cast prescribes the long and short name of the option, the type, if it
-is mandatory, the default value, and allowed and disallowed values. An
-optional list of extra casts can be supplied, and the integrity of the
-casts are checked. Following the command line parsing, the options are
-checked according to the casts. Methods are also included for handling the
-parsing and emitting of Biopiece records, which are ASCII text records
-consisting of lines with a key/value pair seperated by a colon and a white
-space &#8217;: &#8217;. Each record is separated by a line with three
-dashes &#8217;&#8212;&#8217;.
-</p>
-
-    </div>
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000004">each</a>&nbsp;&nbsp;
-
-        <a href="#M000003">each_record</a>&nbsp;&nbsp;
-
-        <a href="#M000006">mktmpdir</a>&nbsp;&nbsp;
-
-        <a href="#M000001">new</a>&nbsp;&nbsp;
-
-        <a href="#M000002">parse</a>&nbsp;&nbsp;
-
-        <a href="#M000005">puts</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Class methods</h3>
-
-
-      <div id="method-M000001" class="method-detail">
-        <a name="M000001"></a>
-
-        <div class="method-heading">
-
-          <a href="Biopieces.src/M000001.html" target="Code" class="method-signature"
-            onclick="popupCode('Biopieces.src/M000001.html');return false;">
-
-          <span class="method-name">new</span><span class="method-args">(test=nil, input=STDIN, output=STDOUT)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Initialize a Biopiece and write the status to file. Options are for testing
-purposes only.
-</p>
-
-        </div>
-      </div>
-
-
-      <h3 class="section-bar">Public Instance methods</h3>
-
-
-      <div id="method-M000004" class="method-detail">
-        <a name="M000004"></a>
-
-        <div class="method-heading">
-
-          <span class="method-name">each</span><span class="method-args">()</span>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Alias for <a href="Biopieces.html#M000003">each_record</a>
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000003" class="method-detail">
-        <a name="M000003"></a>
-
-        <div class="method-heading">
-
-          <a href="Biopieces.src/M000003.html" target="Code" class="method-signature"
-            onclick="popupCode('Biopieces.src/M000003.html');return false;">
-
-          <span class="method-name">each_record</span><span class="method-args">() {|record unless record.empty?| ...}</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Open Biopiece input stream if not open and iterate over all Biopiece
-records in the stream.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000006" class="method-detail">
-        <a name="M000006"></a>
-
-        <div class="method-heading">
-
-          <a href="Biopieces.src/M000006.html" target="Code" class="method-signature"
-            onclick="popupCode('Biopieces.src/M000006.html');return false;">
-
-          <span class="method-name">mktmpdir</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Create a temporary directory inside the ENV[&#8220;BP_TMP&#8220;] dir.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000002" class="method-detail">
-        <a name="M000002"></a>
-
-        <div class="method-heading">
-
-          <a href="Biopieces.src/M000002.html" target="Code" class="method-signature"
-            onclick="popupCode('Biopieces.src/M000002.html');return false;">
-
-          <span class="method-name">parse</span><span class="method-args">(argv, cast_list=[], script_path=$0)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check the integrity of a list of casts, followed by parsion options from
-argv and finally checking the options according to the casts. Returns nil
-if argv is empty, otherwise an options hash.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000005" class="method-detail">
-        <a name="M000005"></a>
-
-        <div class="method-heading">
-
-          <a href="Biopieces.src/M000005.html" target="Code" class="method-signature"
-            onclick="popupCode('Biopieces.src/M000005.html');return false;">
-
-          <span class="method-name">puts</span><span class="method-args">(record)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Open Biopiece output stream if not open and puts record to the stream.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000001.html b/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000001.html
deleted file mode 100644 (file)
index 7e9371a..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>new (Biopieces)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 43</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">test</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">input</span>=<span class="ruby-constant">STDIN</span>, <span class="ruby-identifier">output</span>=<span class="ruby-constant">STDOUT</span>)
-    <span class="ruby-ivar">@test</span>   = <span class="ruby-identifier">test</span>
-    <span class="ruby-ivar">@input</span>  = <span class="ruby-identifier">input</span>
-    <span class="ruby-ivar">@output</span> = <span class="ruby-identifier">output</span>
-    <span class="ruby-ivar">@status</span> = <span class="ruby-constant">Status</span>.<span class="ruby-identifier">new</span>
-    <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">set</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@test</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000002.html b/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000002.html
deleted file mode 100644 (file)
index b69e120..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>parse (Biopieces)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 54</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">cast_list</span>=[], <span class="ruby-identifier">script_path</span>=<span class="ruby-identifier">$0</span>)
-    <span class="ruby-identifier">casts</span>          = <span class="ruby-constant">Casts</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">cast_list</span>)
-    <span class="ruby-identifier">option_handler</span> = <span class="ruby-constant">OptionHandler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">casts</span>, <span class="ruby-identifier">script_path</span>, <span class="ruby-ivar">@test</span>)
-    <span class="ruby-ivar">@options</span>       = <span class="ruby-identifier">option_handler</span>.<span class="ruby-identifier">options_parse</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000003.html b/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000003.html
deleted file mode 100644 (file)
index 2675d14..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>each_record (Biopieces)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 62</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_record</span>
-    <span class="ruby-ivar">@in</span> = <span class="ruby-constant">Stream</span><span class="ruby-operator">::</span><span class="ruby-identifier">open</span>(<span class="ruby-ivar">@options</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>, <span class="ruby-ivar">@input</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">IO</span>
-    <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">nil?</span>
-
-    <span class="ruby-identifier">record</span> = {}
-
-    <span class="ruby-ivar">@in</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
-      <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">line</span>
-      <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^([^:]+): (.*)$/</span>
-        <span class="ruby-identifier">record</span>[<span class="ruby-identifier">$1</span>] = <span class="ruby-identifier">$2</span>
-      <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^---$/</span>
-        <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">empty?</span>
-        <span class="ruby-identifier">record</span> = {}
-      <span class="ruby-keyword kw">else</span>
-        <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Bad record format: #{line}&quot;</span>
-      <span class="ruby-keyword kw">end</span>
-    <span class="ruby-keyword kw">end</span>
-
-    <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">record</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">record</span>.<span class="ruby-identifier">empty?</span>
-
-    <span class="ruby-keyword kw">self</span> <span class="ruby-comment cmt"># conventionally</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000005.html b/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000005.html
deleted file mode 100644 (file)
index cb2274b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>puts (Biopieces)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 88</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-identifier">record</span>)
-    <span class="ruby-ivar">@out</span> = <span class="ruby-constant">Stream</span><span class="ruby-operator">::</span><span class="ruby-identifier">open</span>(<span class="ruby-ivar">@options</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>, <span class="ruby-ivar">@output</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">IO</span>
-
-    <span class="ruby-identifier">record</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>,<span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
-      <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;#{key}: #{value}\n&quot;</span>
-    <span class="ruby-keyword kw">end</span>
-
-    <span class="ruby-ivar">@out</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;---\n&quot;</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000006.html b/code_ruby/Maasha/lib/doc/classes/Biopieces.src/M000006.html
deleted file mode 100644 (file)
index 9e4ff5e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>mktmpdir (Biopieces)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 99</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mktmpdir</span>
-    <span class="ruby-identifier">time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_i</span>
-    <span class="ruby-identifier">user</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;USER&quot;</span>]
-    <span class="ruby-identifier">pid</span>  = <span class="ruby-identifier">$$</span>
-    <span class="ruby-identifier">path</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_TMP&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/&quot;</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">user</span>, <span class="ruby-identifier">time</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">pid</span>, <span class="ruby-value str">&quot;bp_tmp&quot;</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;_&quot;</span>)
-    <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">path</span>)
-    <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">set_tmpdir</span>(<span class="ruby-identifier">path</span>)
-    <span class="ruby-identifier">path</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/CastError.html b/code_ruby/Maasha/lib/doc/classes/CastError.html
deleted file mode 100644 (file)
index bec2260..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: CastError [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">CastError</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/biopieces_rb.html">
-
-                biopieces.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                StandardError
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Error class for all exceptions to do with option casts.
-</p>
-
-    </div>
-
-   </div>
-
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Casts.html b/code_ruby/Maasha/lib/doc/classes/Casts.html
deleted file mode 100644 (file)
index b0a6e48..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Casts [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Casts</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/biopieces_rb.html">
-
-                biopieces.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                Array
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Class to handle casts of command line options. Each cast prescribes the
-long and short name of the option, the type, if it is mandatory, the
-default value, and allowed and disallowed values. An optional list of extra
-casts can be supplied, and the integrity of the casts are checked.
-</p>
-
-    </div>
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000007">new</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-    <div id="constants-list">
-      <h3 class="section-bar">Constants</h3>
-
-      <div class="name-list">
-        <table summary="Constants">
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">TYPES</td>
-          <td>=</td>
-          <td class="context-item-value">%w[flag string list int uint float file file! files files! dir dir! genome]</td>
-
-        </tr>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">MANDATORY</td>
-          <td>=</td>
-          <td class="context-item-value">%w[long short type mandatory default allowed disallowed]</td>
-
-        </tr>
-
-        </table>
-      </div>
-    </div>
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Class methods</h3>
-
-
-      <div id="method-M000007" class="method-detail">
-        <a name="M000007"></a>
-
-        <div class="method-heading">
-
-          <a href="Casts.src/M000007.html" target="Code" class="method-signature"
-            onclick="popupCode('Casts.src/M000007.html');return false;">
-
-          <span class="method-name">new</span><span class="method-args">(cast_list=[])</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Initialize cast object with an optional options cast list to which
-ubiquitous casts are added after which all casts are checked.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Casts.src/M000007.html b/code_ruby/Maasha/lib/doc/classes/Casts.src/M000007.html
deleted file mode 100644 (file)
index 8ae5d3f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>new (Casts)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 125</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">cast_list</span>=[])
-    <span class="ruby-ivar">@cast_list</span> = <span class="ruby-identifier">cast_list</span>
-    <span class="ruby-identifier">ubiquitous</span>
-    <span class="ruby-identifier">check</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">push</span> <span class="ruby-operator">*</span><span class="ruby-ivar">@cast_list</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Fasta.html b/code_ruby/Maasha/lib/doc/classes/Fasta.html
deleted file mode 100644 (file)
index ab36f56..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Fasta [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Fasta</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/fasta_rb.html">
-
-                fasta.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                Object
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000003">close</a>&nbsp;&nbsp;
-
-        <a href="#M000004">each</a>&nbsp;&nbsp;
-
-        <a href="#M000005">get_entry</a>&nbsp;&nbsp;
-
-        <a href="#M000002">new</a>&nbsp;&nbsp;
-
-        <a href="#M000001">open</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="includes">
-      <h3 class="section-bar">Included Modules</h3>
-
-      <div id="includes-list">
-
-        <span class="include-name">Enumerable</span>
-
-      </div>
-    </div>
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Class methods</h3>
-
-
-      <div id="method-M000002" class="method-detail">
-        <a name="M000002"></a>
-
-        <div class="method-heading">
-
-          <a href="Fasta.src/M000002.html" target="Code" class="method-signature"
-            onclick="popupCode('Fasta.src/M000002.html');return false;">
-
-          <span class="method-name">new</span><span class="method-args">(io, type=nil)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-        </div>
-      </div>
-
-
-      <div id="method-M000001" class="method-detail">
-        <a name="M000001"></a>
-
-        <div class="method-heading">
-
-          <a href="Fasta.src/M000001.html" target="Code" class="method-signature"
-            onclick="popupCode('Fasta.src/M000001.html');return false;">
-
-          <span class="method-name">open</span><span class="method-args">(*args) {|ios| ...}</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Class method allowing open to be used on (zipped) files. See File.open.
-</p>
-
-        </div>
-      </div>
-
-
-      <h3 class="section-bar">Public Instance methods</h3>
-
-
-      <div id="method-M000003" class="method-detail">
-        <a name="M000003"></a>
-
-        <div class="method-heading">
-
-          <a href="Fasta.src/M000003.html" target="Code" class="method-signature"
-            onclick="popupCode('Fasta.src/M000003.html');return false;">
-
-          <span class="method-name">close</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method to close ios.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000004" class="method-detail">
-        <a name="M000004"></a>
-
-        <div class="method-heading">
-
-          <a href="Fasta.src/M000004.html" target="Code" class="method-signature"
-            onclick="popupCode('Fasta.src/M000004.html');return false;">
-
-          <span class="method-name">each</span><span class="method-args">() {|entry| ...}</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Iterator method for parsing FASTA enries.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000005" class="method-detail">
-        <a name="M000005"></a>
-
-        <div class="method-heading">
-
-          <a href="Fasta.src/M000005.html" target="Code" class="method-signature"
-            onclick="popupCode('Fasta.src/M000005.html');return false;">
-
-          <span class="method-name">get_entry</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method to get the next FASTA entry form an ios and return this as a Seq
-object. If no entry is found or eof then nil is returned.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Fasta.src/M000031.html b/code_ruby/Maasha/lib/doc/classes/Fasta.src/M000031.html
deleted file mode 100644 (file)
index c9a4be0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>open (Fasta)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File fasta.rb, line 33</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
-    <span class="ruby-identifier">ios</span>   = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
-    <span class="ruby-identifier">fasta</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ios</span>)
-
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
-      <span class="ruby-keyword kw">begin</span>
-        <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">fasta</span>
-      <span class="ruby-keyword kw">ensure</span>
-        <span class="ruby-identifier">ios</span>.<span class="ruby-identifier">close</span>
-      <span class="ruby-keyword kw">end</span>
-
-      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-    <span class="ruby-keyword kw">else</span>
-      <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">fasta</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Fasta.src/M000032.html b/code_ruby/Maasha/lib/doc/classes/Fasta.src/M000032.html
deleted file mode 100644 (file)
index ad1c045..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>new (Fasta)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File fasta.rb, line 50</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">io</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>)
-    <span class="ruby-ivar">@io</span>   = <span class="ruby-identifier">io</span>
-    <span class="ruby-ivar">@type</span> = <span class="ruby-identifier">type</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Fasta.src/M000033.html b/code_ruby/Maasha/lib/doc/classes/Fasta.src/M000033.html
deleted file mode 100644 (file)
index 40d2bc9..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>each (Fasta)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File fasta.rb, line 56</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
-    <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">entry</span> = <span class="ruby-identifier">get_entry</span> <span class="ruby-keyword kw">do</span>
-      <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">entry</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Fasta.src/M000034.html b/code_ruby/Maasha/lib/doc/classes/Fasta.src/M000034.html
deleted file mode 100644 (file)
index 62a8104..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>get_entry (Fasta)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File fasta.rb, line 64</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_entry</span>
-    <span class="ruby-identifier">block</span> = <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">gets</span>(<span class="ruby-identifier">$/</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>)
-    <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">nil?</span>
-
-    <span class="ruby-identifier">block</span>.<span class="ruby-identifier">chomp!</span>(<span class="ruby-identifier">$/</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>)
-
-    (<span class="ruby-identifier">seq_name</span>, <span class="ruby-identifier">seq</span>) = <span class="ruby-identifier">block</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">$/</span>, <span class="ruby-value">2</span>)
-
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
-
-    <span class="ruby-identifier">entry</span>          = <span class="ruby-constant">Seq</span>.<span class="ruby-identifier">new</span>
-    <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">type</span>     = <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@type</span>.<span class="ruby-identifier">downcase</span>
-    <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq</span>      = <span class="ruby-identifier">seq</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s/</span>, <span class="ruby-value str">''</span>)
-    <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq_name</span> = <span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/^&gt;/</span>, <span class="ruby-value str">''</span>).<span class="ruby-identifier">rstrip</span>
-
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">empty?</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">FastaError</span>, <span class="ruby-value str">&quot;Bad FASTA format&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">empty?</span>
-
-    <span class="ruby-identifier">entry</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/FastaError.html b/code_ruby/Maasha/lib/doc/classes/FastaError.html
deleted file mode 100644 (file)
index d188d55..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: FastaError [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">FastaError</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/fasta_rb.html">
-
-                fasta.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                StandardError
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Error class for all exceptions to do with FASTA.
-</p>
-
-    </div>
-
-   </div>
-
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.html
deleted file mode 100644 (file)
index 177aca6..0000000
+++ /dev/null
@@ -1,615 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: OptionHandler [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">OptionHandler</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/biopieces_rb.html">
-
-                biopieces.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                Object
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Class for parsing argv using OptionParser according to given casts. Default
-options are set, file glob expressions expanded, and options are checked
-according to the casts. Usage information is printed and exit called if
-required.
-</p>
-
-    </div>
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000008">new</a>&nbsp;&nbsp;
-
-        <a href="#M000016">options_check</a>&nbsp;&nbsp;
-
-        <a href="#M000023">options_check_allowed</a>&nbsp;&nbsp;
-
-        <a href="#M000022">options_check_dir</a>&nbsp;&nbsp;
-
-        <a href="#M000024">options_check_disallowed</a>&nbsp;&nbsp;
-
-        <a href="#M000020">options_check_file</a>&nbsp;&nbsp;
-
-        <a href="#M000021">options_check_files</a>&nbsp;&nbsp;
-
-        <a href="#M000018">options_check_int</a>&nbsp;&nbsp;
-
-        <a href="#M000017">options_check_mandatory</a>&nbsp;&nbsp;
-
-        <a href="#M000019">options_check_uint</a>&nbsp;&nbsp;
-
-        <a href="#M000014">options_default</a>&nbsp;&nbsp;
-
-        <a href="#M000015">options_glob</a>&nbsp;&nbsp;
-
-        <a href="#M000009">options_parse</a>&nbsp;&nbsp;
-
-        <a href="#M000013">print_usage_and_exit</a>&nbsp;&nbsp;
-
-        <a href="#M000011">print_usage_full?</a>&nbsp;&nbsp;
-
-        <a href="#M000012">print_usage_short?</a>&nbsp;&nbsp;
-
-        <a href="#M000010">wiki_path</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-    <div id="constants-list">
-      <h3 class="section-bar">Constants</h3>
-
-      <div class="name-list">
-        <table summary="Constants">
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">REGEX_LIST</td>
-          <td>=</td>
-          <td class="context-item-value">/^(list|files|files!)$/</td>
-
-        </tr>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">REGEX_INT</td>
-          <td>=</td>
-          <td class="context-item-value">/^(int|uint)$/</td>
-
-        </tr>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">REGEX_STRING</td>
-          <td>=</td>
-          <td class="context-item-value">/^(string|file|file!|dir|dir!|genome)$/</td>
-
-        </tr>
-
-        </table>
-      </div>
-    </div>
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Class methods</h3>
-
-
-      <div id="method-M000008" class="method-detail">
-        <a name="M000008"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000008.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000008.html');return false;">
-
-          <span class="method-name">new</span><span class="method-args">(argv, casts, script_path, test=nil)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-        </div>
-      </div>
-
-
-      <h3 class="section-bar">Public Instance methods</h3>
-
-
-      <div id="method-M000016" class="method-detail">
-        <a name="M000016"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000016.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000016.html');return false;">
-
-          <span class="method-name">options_check</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check all options according to casts.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000023" class="method-detail">
-        <a name="M000023"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000023.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000023.html');return false;">
-
-          <span class="method-name">options_check_allowed</span><span class="method-args">(cast)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check options and raise unless allowed.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000022" class="method-detail">
-        <a name="M000022"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000022.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000022.html');return false;">
-
-          <span class="method-name">options_check_dir</span><span class="method-args">(cast)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check dir! type argument and raise if directory don&#8217;t exist.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000024" class="method-detail">
-        <a name="M000024"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000024.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000024.html');return false;">
-
-          <span class="method-name">options_check_disallowed</span><span class="method-args">(cast)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check disallowed argument values and raise if disallowed.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000020" class="method-detail">
-        <a name="M000020"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000020.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000020.html');return false;">
-
-          <span class="method-name">options_check_file</span><span class="method-args">(cast)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check file! type argument and raise if file don&#8217;t exists.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000021" class="method-detail">
-        <a name="M000021"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000021.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000021.html');return false;">
-
-          <span class="method-name">options_check_files</span><span class="method-args">(cast)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check files! type argument and raise if files don&#8217;t exists.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000018" class="method-detail">
-        <a name="M000018"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000018.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000018.html');return false;">
-
-          <span class="method-name">options_check_int</span><span class="method-args">(cast)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check int type option and raise if not an integer.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000017" class="method-detail">
-        <a name="M000017"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000017.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000017.html');return false;">
-
-          <span class="method-name">options_check_mandatory</span><span class="method-args">(cast)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check if a mandatory option is set and raise if it isn&#8217;t.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000019" class="method-detail">
-        <a name="M000019"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000019.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000019.html');return false;">
-
-          <span class="method-name">options_check_uint</span><span class="method-args">(cast)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check uint type option and raise if not an unsinged integer.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000014" class="method-detail">
-        <a name="M000014"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000014.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000014.html');return false;">
-
-          <span class="method-name">options_default</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Set default options value from cast unless a value is set.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000015" class="method-detail">
-        <a name="M000015"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000015.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000015.html');return false;">
-
-          <span class="method-name">options_glob</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Expands glob expressions to a full list of paths. Examples:
-&#8220;*.fna&#8221; or &#8220;foo.fna,*.fna&#8221; or
-&#8220;foo.fna,/bar/*.fna&#8220;
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000009" class="method-detail">
-        <a name="M000009"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000009.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000009.html');return false;">
-
-          <span class="method-name">options_parse</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Parse options from argv using OptionParser and casts denoting long and
-short option names. Usage information is printed and exit called. A hash
-with options is returned.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000013" class="method-detail">
-        <a name="M000013"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000013.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000013.html');return false;">
-
-          <span class="method-name">print_usage_and_exit</span><span class="method-args">(full=nil)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Print usage info by Calling an external script &#8216;print_wiki&#8217;
-using a system() call and exit. An optional &#8216;full&#8217; flag outputs
-the full usage info.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000011" class="method-detail">
-        <a name="M000011"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000011.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000011.html');return false;">
-
-          <span class="method-name">print_usage_full?</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check if full &#8220;usage info&#8221; should be printed.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000012" class="method-detail">
-        <a name="M000012"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000012.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000012.html');return false;">
-
-          <span class="method-name">print_usage_short?</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Check if short &#8220;usage info&#8221; should be printed.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000010" class="method-detail">
-        <a name="M000010"></a>
-
-        <div class="method-heading">
-
-          <a href="OptionHandler.src/M000010.html" target="Code" class="method-signature"
-            onclick="popupCode('OptionHandler.src/M000010.html');return false;">
-
-          <span class="method-name">wiki_path</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Given the script name determine the path of the wiki file with the usage
-info.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000008.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000008.html
deleted file mode 100644 (file)
index 5a296d0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>new (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 250</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">casts</span>, <span class="ruby-identifier">script_path</span>, <span class="ruby-identifier">test</span>=<span class="ruby-keyword kw">nil</span>)
-    <span class="ruby-ivar">@argv</span>        = <span class="ruby-identifier">argv</span>
-    <span class="ruby-ivar">@casts</span>       = <span class="ruby-identifier">casts</span>
-    <span class="ruby-ivar">@script_path</span> = <span class="ruby-identifier">script_path</span>
-    <span class="ruby-ivar">@test</span>        = <span class="ruby-identifier">test</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000009.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000009.html
deleted file mode 100644 (file)
index 97be195..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_parse (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 260</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_parse</span>
-    <span class="ruby-ivar">@options</span> = {}
-
-    <span class="ruby-identifier">option_parser</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">option</span><span class="ruby-operator">|</span>
-      <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-        <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:type</span>]
-        <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'flag'</span>
-          <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]}&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
-            <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]] = <span class="ruby-identifier">o</span>
-          <span class="ruby-keyword kw">end</span>
-        <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'float'</span>
-          <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} F&quot;</span>, <span class="ruby-constant">Float</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
-            <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]] = <span class="ruby-identifier">f</span>
-          <span class="ruby-keyword kw">end</span>
-        <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_LIST</span>
-          <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>( <span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} A&quot;</span>, <span class="ruby-constant">Array</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span>
-            <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]] = <span class="ruby-identifier">a</span>
-          <span class="ruby-keyword kw">end</span>
-        <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_INT</span>
-          <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} I&quot;</span>, <span class="ruby-constant">Integer</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
-            <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]] = <span class="ruby-identifier">i</span>
-          <span class="ruby-keyword kw">end</span>
-        <span class="ruby-keyword kw">when</span> <span class="ruby-constant">REGEX_STRING</span>
-          <span class="ruby-identifier">option</span>.<span class="ruby-identifier">on</span>(<span class="ruby-node">&quot;-#{cast[:short]}&quot;</span>, <span class="ruby-node">&quot;--#{cast[:long]} S&quot;</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
-            <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]] = <span class="ruby-identifier">s</span>
-          <span class="ruby-keyword kw">end</span>
-        <span class="ruby-keyword kw">else</span>
-          <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Unknown option type: '#{cast[:type]}'&quot;</span>
-        <span class="ruby-keyword kw">end</span>
-      <span class="ruby-keyword kw">end</span>
-    <span class="ruby-keyword kw">end</span>
-
-    <span class="ruby-identifier">option_parser</span>.<span class="ruby-identifier">parse!</span>(<span class="ruby-ivar">@argv</span>)
-
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">print_usage_full?</span>
-      <span class="ruby-identifier">print_usage_and_exit</span>(<span class="ruby-keyword kw">true</span>)
-    <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">print_usage_short?</span>
-      <span class="ruby-identifier">print_usage_and_exit</span>
-    <span class="ruby-keyword kw">end</span>
-
-    <span class="ruby-identifier">options_default</span>
-    <span class="ruby-identifier">options_glob</span>
-    <span class="ruby-identifier">options_check</span>
-
-    <span class="ruby-ivar">@options</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000010.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000010.html
deleted file mode 100644 (file)
index f8f6991..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>wiki_path (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 308</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_path</span>
-    <span class="ruby-identifier">path</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_DIR&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/bp_usage/&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-ivar">@script_path</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;.wiki&quot;</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;No such wiki file: #{path}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">path</span>
-    <span class="ruby-identifier">path</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000011.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000011.html
deleted file mode 100644 (file)
index fc4110d..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>print_usage_full? (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 315</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_full?</span>
-    <span class="ruby-ivar">@options</span>[<span class="ruby-value str">&quot;help&quot;</span>]
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000012.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000012.html
deleted file mode 100644 (file)
index 454bef7..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>print_usage_short? (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 320</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_short?</span>
-    <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">$stdin</span>.<span class="ruby-identifier">tty?</span>
-      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-    <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value str">&quot;stream_in&quot;</span>]
-      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-    <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value str">&quot;data_in&quot;</span>]
-      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-    <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">wiki_path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^(list_biopieces|list_genomes|list_mysql_databases|biostat)$/</span>  <span class="ruby-comment cmt"># TODO get rid of this!</span>
-      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
-    <span class="ruby-keyword kw">else</span>
-      <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000013.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000013.html
deleted file mode 100644 (file)
index 859c8a1..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>print_usage_and_exit (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 337</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print_usage_and_exit</span>(<span class="ruby-identifier">full</span>=<span class="ruby-keyword kw">nil</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@test</span>
-      <span class="ruby-keyword kw">return</span>
-    <span class="ruby-keyword kw">else</span>
-      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full</span>
-        <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;print_wiki --data_in #{wiki_path} --help&quot;</span>)
-      <span class="ruby-keyword kw">else</span>
-        <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;print_wiki --data_in #{wiki_path}&quot;</span>)
-      <span class="ruby-keyword kw">end</span>
-
-      <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Failed printing wiki: #{wiki_path}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">$?</span>.<span class="ruby-identifier">success?</span>
-
-      <span class="ruby-identifier">exit</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000014.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000014.html
deleted file mode 100644 (file)
index 6666325..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_default (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 354</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_default</span>
-    <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:default</span>]
-        <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]] = <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:default</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-      <span class="ruby-keyword kw">end</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000015.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000015.html
deleted file mode 100644 (file)
index 44dfb09..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_glob (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 364</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_glob</span>
-    <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-      <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files'</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files!'</span>
-        <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-          <span class="ruby-identifier">files</span> = []
-        
-          <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
-            <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">&quot;*&quot;</span>
-              <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
-                <span class="ruby-identifier">files</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">file</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">file</span>
-              <span class="ruby-keyword kw">end</span>
-            <span class="ruby-keyword kw">else</span>
-              <span class="ruby-identifier">files</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">path</span>
-            <span class="ruby-keyword kw">end</span>
-          <span class="ruby-keyword kw">end</span>
-
-          <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]] = <span class="ruby-identifier">files</span>
-        <span class="ruby-keyword kw">end</span>
-      <span class="ruby-keyword kw">end</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000016.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000016.html
deleted file mode 100644 (file)
index 59771a2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 387</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check</span>
-    <span class="ruby-ivar">@casts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cast</span><span class="ruby-operator">|</span>
-      <span class="ruby-identifier">options_check_mandatory</span>(<span class="ruby-identifier">cast</span>)
-      <span class="ruby-identifier">options_check_int</span>(<span class="ruby-identifier">cast</span>)
-      <span class="ruby-identifier">options_check_uint</span>(<span class="ruby-identifier">cast</span>)
-      <span class="ruby-identifier">options_check_file</span>(<span class="ruby-identifier">cast</span>)
-      <span class="ruby-identifier">options_check_files</span>(<span class="ruby-identifier">cast</span>)
-      <span class="ruby-identifier">options_check_dir</span>(<span class="ruby-identifier">cast</span>)
-      <span class="ruby-identifier">options_check_allowed</span>(<span class="ruby-identifier">cast</span>)
-      <span class="ruby-identifier">options_check_disallowed</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000017.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000017.html
deleted file mode 100644 (file)
index f6c78dd..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check_mandatory (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 401</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_mandatory</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:mandatory</span>]
-      <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Mandatory argument: --#{cast[:long]}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000018.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000018.html
deleted file mode 100644 (file)
index 91480ab..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check_int (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 408</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_int</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'int'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-      <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Integer</span>
-        <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument to --#{cast[:long]} must be an integer, not '#{@options[cast[:long]]}'&quot;</span>
-      <span class="ruby-keyword kw">end</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000019.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000019.html
deleted file mode 100644 (file)
index 2bae214..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check_uint (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 417</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_uint</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'uint'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-      <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Integer</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]] <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
-        <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument to --#{cast[:long]} must be an unsigned integer, not '#{@options[cast[:long]]}'&quot;</span>
-      <span class="ruby-keyword kw">end</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000020.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000020.html
deleted file mode 100644 (file)
index c4ad6f1..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check_file (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 426</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_file</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'file!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-      <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;No such file: '#{@options[cast[:long]]}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]]
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000021.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000021.html
deleted file mode 100644 (file)
index 12c6e7b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check_files (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 433</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_files</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'files!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-      <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
-        <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;No such file: '#{path}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">path</span>
-      <span class="ruby-keyword kw">end</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000022.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000022.html
deleted file mode 100644 (file)
index b7399d7..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check_dir (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 442</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_dir</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'dir!'</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-      <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;No such directory: '#{@options[cast[:long]]}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]]
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000023.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000023.html
deleted file mode 100644 (file)
index de6439e..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check_allowed (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 449</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_allowed</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:allowed</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-      <span class="ruby-identifier">allowed_hash</span> = {}
-      <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:allowed</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">','</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">allowed_hash</span>[<span class="ruby-identifier">a</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-value">1</span> }
-  
-      <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument '#{@options[cast[:long]]}' to --#{cast[:long]} not allowed&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">allowed_hash</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]].<span class="ruby-identifier">to_s</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000024.html b/code_ruby/Maasha/lib/doc/classes/OptionHandler.src/M000024.html
deleted file mode 100644 (file)
index 5bbf893..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>options_check_disallowed (OptionHandler)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 459</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options_check_disallowed</span>(<span class="ruby-identifier">cast</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:disallowed</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]
-      <span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:disallowed</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">','</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
-        <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Argument '#{@options[cast[:long]]}' to --#{cast[:long]} is disallowed&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">cast</span>[<span class="ruby-identifier">:long</span>]].<span class="ruby-identifier">to_s</span>
-      <span class="ruby-keyword kw">end</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.html b/code_ruby/Maasha/lib/doc/classes/Seq.html
deleted file mode 100644 (file)
index 2617168..0000000
+++ /dev/null
@@ -1,412 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Seq [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Seq</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/seq_rb.html">
-
-                seq.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                Object
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000043">complement</a>&nbsp;&nbsp;
-
-        <a href="#M000044">generate</a>&nbsp;&nbsp;
-
-        <a href="#M000037">is_dna</a>&nbsp;&nbsp;
-
-        <a href="#M000039">is_protein</a>&nbsp;&nbsp;
-
-        <a href="#M000038">is_rna</a>&nbsp;&nbsp;
-
-        <a href="#M000036">len</a>&nbsp;&nbsp;
-
-        <a href="#M000035">length</a>&nbsp;&nbsp;
-
-        <a href="#M000042">to_bp</a>&nbsp;&nbsp;
-
-        <a href="#M000041">to_dna</a>&nbsp;&nbsp;
-
-        <a href="#M000040">to_rna</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-    <div id="attribute-list">
-      <h3 class="section-bar">Attributes</h3>
-
-      <div class="name-list">
-        <table>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">qual</td>
-
-          <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
-
-          <td class="context-item-desc"></td>
-        </tr>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">seq</td>
-
-          <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
-
-          <td class="context-item-desc"></td>
-        </tr>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">seq_name</td>
-
-          <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
-
-          <td class="context-item-desc"></td>
-        </tr>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">type</td>
-
-          <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
-
-          <td class="context-item-desc"></td>
-        </tr>
-
-        </table>
-      </div>
-    </div>
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Instance methods</h3>
-
-
-      <div id="method-M000043" class="method-detail">
-        <a name="M000043"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000043.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000043.html');return false;">
-
-          <span class="method-name">complement</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that complements sequence including ambiguity codes.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000044" class="method-detail">
-        <a name="M000044"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000044.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000044.html');return false;">
-
-          <span class="method-name">generate</span><span class="method-args">(length,type)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that generates a random sequence of a given length.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000037" class="method-detail">
-        <a name="M000037"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000037.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000037.html');return false;">
-
-          <span class="method-name">is_dna</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that returns true is a given sequence type is DNA.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000039" class="method-detail">
-        <a name="M000039"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000039.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000039.html');return false;">
-
-          <span class="method-name">is_protein</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-        </div>
-      </div>
-
-
-      <div id="method-M000038" class="method-detail">
-        <a name="M000038"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000038.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000038.html');return false;">
-
-          <span class="method-name">is_rna</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-        </div>
-      </div>
-
-
-      <div id="method-M000036" class="method-detail">
-        <a name="M000036"></a>
-
-        <div class="method-heading">
-
-          <span class="method-name">len</span><span class="method-args">()</span>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Alias for <a href="Seq.html#M000035">length</a>
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000035" class="method-detail">
-        <a name="M000035"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000035.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000035.html');return false;">
-
-          <span class="method-name">length</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-        </div>
-      </div>
-
-
-      <div id="method-M000042" class="method-detail">
-        <a name="M000042"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000042.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000042.html');return false;">
-
-          <span class="method-name">to_bp</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that given a <a href="Seq.html">Seq</a> entry returns a <a
-href="Biopieces.html">Biopieces</a> record (a hash).
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000041" class="method-detail">
-        <a name="M000041"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000041.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000041.html');return false;">
-
-          <span class="method-name">to_dna</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method to reverse-transcribe RNA to DNA.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000040" class="method-detail">
-        <a name="M000040"></a>
-
-        <div class="method-heading">
-
-          <a href="Seq.src/M000040.html" target="Code" class="method-signature"
-            onclick="popupCode('Seq.src/M000040.html');return false;">
-
-          <span class="method-name">to_rna</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method to transcribe DNA to RNA.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000001.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000001.html
deleted file mode 100644 (file)
index 9817e7f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>length (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 11</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">length</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000003.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000003.html
deleted file mode 100644 (file)
index bb35b7f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>is_dna (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 18</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_dna</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'dna'</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000004.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000004.html
deleted file mode 100644 (file)
index 1ab276a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>is_rna (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 22</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_rna</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'rna'</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000005.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000005.html
deleted file mode 100644 (file)
index 445bd31..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>is_protein (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 26</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_protein</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'protein'</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000006.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000006.html
deleted file mode 100644 (file)
index 0d2143f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>to_rna (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 31</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rna</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot transcribe 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot transcribe sequence type: #{self.type}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_dna</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'rna'</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">'Tt'</span>,<span class="ruby-value str">'Uu'</span>)
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000007.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000007.html
deleted file mode 100644 (file)
index 84cddb0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>to_dna (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 39</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_dna</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot reverse-transcribe 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot reverse-transcribe sequence type: #{self.type}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_rna</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'dna'</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">'Uu'</span>,<span class="ruby-value str">'Tt'</span>)
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000008.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000008.html
deleted file mode 100644 (file)
index cde9366..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>complement (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 47</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">complement</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot complement 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-
-    <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_dna</span>
-      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'TCGAAYRWSKMDHBVNtcgaayrwskmdhbvn'</span> )
-    <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_rna</span>
-      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'UCGAAYRWSKMDHBVNucgaayrwskmdhbvn'</span> )
-    <span class="ruby-keyword kw">else</span>
-      <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot complement sequence type: #{self.type}&quot;</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000009.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000009.html
deleted file mode 100644 (file)
index fc415c3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>generate (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 60</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">length</span>,<span class="ruby-identifier">type</span>)
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot generate negative sequence length: #{length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
-
-    <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
-    <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;dna&quot;</span>
-      <span class="ruby-identifier">alph</span> = <span class="ruby-constant">DNA</span>
-    <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rna&quot;</span>
-      <span class="ruby-identifier">alph</span> = <span class="ruby-constant">RNA</span>
-    <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;protein&quot;</span>
-      <span class="ruby-identifier">alph</span> = <span class="ruby-constant">PROTEIN</span>
-    <span class="ruby-keyword kw">else</span>
-      <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Unknown sequence type: #{type}&quot;</span>
-    <span class="ruby-keyword kw">end</span>
-
-    <span class="ruby-identifier">seq_new</span>   = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">length</span>) { <span class="ruby-identifier">alph</span>[<span class="ruby-identifier">rand</span>(<span class="ruby-identifier">alph</span>.<span class="ruby-identifier">size</span>)] }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;&quot;</span>)
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-identifier">seq_new</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
-
-    <span class="ruby-identifier">seq_new</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000031.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000031.html
deleted file mode 100644 (file)
index 1a623c0..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>guess_type (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 4</span>
-        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">guess_type</span>
-                <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;No sequence.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">empty?</span>
-
-                <span class="ruby-identifier">seq_beg</span> = <span class="ruby-keyword kw">self</span>[ <span class="ruby-value">0</span>, <span class="ruby-value">100</span> ].<span class="ruby-identifier">upcase</span>
-
-                <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">seq_beg</span>.<span class="ruby-identifier">count</span>( <span class="ruby-value str">&quot;FLPQIE&quot;</span> ) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
-                        <span class="ruby-constant">Seq</span><span class="ruby-operator">::</span><span class="ruby-constant">AA</span>.<span class="ruby-identifier">new</span>( <span class="ruby-keyword kw">self</span> )
-                <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">seq_beg</span>.<span class="ruby-identifier">count</span>( <span class="ruby-value str">&quot;U&quot;</span> ) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
-                        <span class="ruby-constant">Seq</span><span class="ruby-operator">::</span><span class="ruby-constant">NA</span><span class="ruby-operator">::</span><span class="ruby-constant">RNA</span>.<span class="ruby-identifier">new</span>( <span class="ruby-keyword kw">self</span> )
-                <span class="ruby-keyword kw">else</span>
-                        <span class="ruby-constant">Seq</span><span class="ruby-operator">::</span><span class="ruby-constant">NA</span><span class="ruby-operator">::</span><span class="ruby-constant">DNA</span>.<span class="ruby-identifier">new</span>( <span class="ruby-keyword kw">self</span> )
-                <span class="ruby-keyword kw">end</span>
-        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000032.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000032.html
deleted file mode 100644 (file)
index a03cc80..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>wrap (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 19</span>
-        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wrap</span>( <span class="ruby-identifier">width</span> = <span class="ruby-value">80</span>, <span class="ruby-identifier">delimit</span> = <span class="ruby-value str">&quot;\n&quot;</span> )
-                <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Cannot wrap sequence to negative width: #{ width }.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">width</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
-
-                <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete!</span>( <span class="ruby-value str">&quot; \t\n\r&quot;</span> )
-                <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gsub</span>( <span class="ruby-node">/.{#{ width }}(?!$)/</span>, <span class="ruby-node">&quot;\\0#{ delimit }&quot;</span> )
-        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000033.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000033.html
deleted file mode 100644 (file)
index a6e505c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>wrap! (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 27</span>
-        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wrap!</span>( <span class="ruby-identifier">width</span> = <span class="ruby-value">80</span>, <span class="ruby-identifier">delimit</span> = <span class="ruby-value str">&quot;\n&quot;</span> )
-                <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">wrap</span>( <span class="ruby-identifier">width</span>, <span class="ruby-identifier">delimit</span> ) )
-        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000034.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000034.html
deleted file mode 100644 (file)
index e50a92b..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>generate (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 32</span>
-        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>( <span class="ruby-identifier">length</span> )
-                <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Cannot generate negative sequence length: #{ length }.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
-
-                <span class="ruby-identifier">alph</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">residues</span>
-                <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">length</span> ) { <span class="ruby-identifier">alph</span>[ <span class="ruby-identifier">rand</span>( <span class="ruby-identifier">alph</span>.<span class="ruby-identifier">size</span> ) ] }.<span class="ruby-identifier">join</span>( <span class="ruby-value str">&quot;&quot;</span> )
-        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000035.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000035.html
deleted file mode 100644 (file)
index 9817e7f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>length (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 11</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">length</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000037.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000037.html
deleted file mode 100644 (file)
index bb35b7f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>is_dna (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 18</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_dna</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'dna'</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000038.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000038.html
deleted file mode 100644 (file)
index 1ab276a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>is_rna (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 22</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_rna</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'rna'</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000039.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000039.html
deleted file mode 100644 (file)
index 445bd31..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>is_protein (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 26</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_protein</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'protein'</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000040.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000040.html
deleted file mode 100644 (file)
index 0d2143f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>to_rna (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 31</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_rna</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot transcribe 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot transcribe sequence type: #{self.type}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_dna</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'rna'</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">'Tt'</span>,<span class="ruby-value str">'Uu'</span>)
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000041.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000041.html
deleted file mode 100644 (file)
index 84cddb0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>to_dna (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 39</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_dna</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot reverse-transcribe 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot reverse-transcribe sequence type: #{self.type}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_rna</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-value str">'dna'</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">'Uu'</span>,<span class="ruby-value str">'Tt'</span>)
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000042.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000042.html
deleted file mode 100644 (file)
index 85e6cb2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>to_bp (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 47</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_bp</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq_name&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>.<span class="ruby-identifier">nil?</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Missing seq&quot;</span>      <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">nil?</span>
-    <span class="ruby-identifier">record</span>             = {}
-    <span class="ruby-identifier">record</span>[<span class="ruby-value str">'SEQ_NAME'</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq_name</span>
-    <span class="ruby-identifier">record</span>[<span class="ruby-value str">'SEQ'</span>]      = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>
-    <span class="ruby-identifier">record</span>[<span class="ruby-value str">'SEQ_LEN'</span>]  = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>
-    <span class="ruby-identifier">record</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000043.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000043.html
deleted file mode 100644 (file)
index 19a14ca..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>complement (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 58</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">complement</span>
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-value str">&quot;Cannot complement 0 length sequence&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
-
-    <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_dna</span>
-      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'TCGAAYRWSKMDHBVNtcgaayrwskmdhbvn'</span> )
-    <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">is_rna</span>
-      <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'UCGAAYRWSKMDHBVNucgaayrwskmdhbvn'</span> )
-    <span class="ruby-keyword kw">else</span>
-      <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot complement sequence type: #{self.type}&quot;</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq.src/M000044.html b/code_ruby/Maasha/lib/doc/classes/Seq.src/M000044.html
deleted file mode 100644 (file)
index 7b22124..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>generate (Seq)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 71</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">length</span>,<span class="ruby-identifier">type</span>)
-    <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Cannot generate negative sequence length: #{length}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
-
-    <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
-    <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;dna&quot;</span>
-      <span class="ruby-identifier">alph</span> = <span class="ruby-constant">DNA</span>
-    <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rna&quot;</span>
-      <span class="ruby-identifier">alph</span> = <span class="ruby-constant">RNA</span>
-    <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;protein&quot;</span>
-      <span class="ruby-identifier">alph</span> = <span class="ruby-constant">PROTEIN</span>
-    <span class="ruby-keyword kw">else</span>
-      <span class="ruby-identifier">raise</span> <span class="ruby-constant">SeqError</span>, <span class="ruby-node">&quot;Unknown sequence type: #{type}&quot;</span>
-    <span class="ruby-keyword kw">end</span>
-
-    <span class="ruby-identifier">seq_new</span>   = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">length</span>) { <span class="ruby-identifier">alph</span>[<span class="ruby-identifier">rand</span>(<span class="ruby-identifier">alph</span>.<span class="ruby-identifier">size</span>)] }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;&quot;</span>)
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">seq</span>  = <span class="ruby-identifier">seq_new</span>
-    <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">type</span> = <span class="ruby-identifier">type</span>.<span class="ruby-identifier">downcase</span>
-    <span class="ruby-identifier">seq_new</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/AA.html b/code_ruby/Maasha/lib/doc/classes/Seq/AA.html
deleted file mode 100644 (file)
index 985ba72..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Seq::AA [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Seq::AA</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../../files/seq_rb.html">
-
-                seq.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                <a href="../Seq.html">
-
-                Seq
-
-               </a>
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Class containing methods specific for amino acid (<a href="AA.html">AA</a>)
-sequences.
-</p>
-
-    </div>
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000037">mol_weight</a>&nbsp;&nbsp;
-
-        <a href="#M000036">residues</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Instance methods</h3>
-
-
-      <div id="method-M000037" class="method-detail">
-        <a name="M000037"></a>
-
-        <div class="method-heading">
-
-          <a href="AA.src/M000037.html" target="Code" class="method-signature"
-            onclick="popupCode('AA.src/M000037.html');return false;">
-
-          <span class="method-name">mol_weight</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Calculate the molecular weight of an amino acid seuqunce. The caluculation
-is only approximate since there is no correction for amino bond formation
-and the MW used are somewhat imprecise: <a
-href="http://www.expasy.ch/tools/pscale/Molecularweight.html">www.expasy.ch/tools/pscale/Molecularweight.html</a>
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000036" class="method-detail">
-        <a name="M000036"></a>
-
-        <div class="method-heading">
-
-          <a href="AA.src/M000036.html" target="Code" class="method-signature"
-            onclick="popupCode('AA.src/M000036.html');return false;">
-
-          <span class="method-name">residues</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that returns an array of amino acid residues.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/AA.src/M000036.html b/code_ruby/Maasha/lib/doc/classes/Seq/AA.src/M000036.html
deleted file mode 100644 (file)
index db8e35b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>residues (Seq::AA)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 47</span>
-                <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">residues</span>
-                        <span class="ruby-node">%w{ F L S Y C W P H Q R I M T N K V A D E G }</span>
-                <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/AA.src/M000037.html b/code_ruby/Maasha/lib/doc/classes/Seq/AA.src/M000037.html
deleted file mode 100644 (file)
index 6bf454b..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>mol_weight (Seq::AA)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 55</span>
-                <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mol_weight</span>
-                        <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;invalid residues found: #{self.delete(&quot;#{residues.join( &quot;&quot; )}&quot;)}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">upcase</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/[^#{residues.join( &quot;&quot; )}]/</span>
-
-                        <span class="ruby-identifier">mol_weight_aa</span> = {
-                                <span class="ruby-value str">&quot;A&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">89.000</span>,    <span class="ruby-comment cmt"># Ala</span>
-                                <span class="ruby-value str">&quot;R&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">174.000</span>,   <span class="ruby-comment cmt"># Arg</span>
-                                <span class="ruby-value str">&quot;N&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">132.000</span>,   <span class="ruby-comment cmt"># Asn</span>
-                                <span class="ruby-value str">&quot;D&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">133.000</span>,   <span class="ruby-comment cmt"># Asp</span>
-                                <span class="ruby-value str">&quot;C&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">121.000</span>,   <span class="ruby-comment cmt"># Cys</span>
-                                <span class="ruby-value str">&quot;Q&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">146.000</span>,   <span class="ruby-comment cmt"># Gln</span>
-                                <span class="ruby-value str">&quot;E&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">147.000</span>,   <span class="ruby-comment cmt"># Glu</span>
-                                <span class="ruby-value str">&quot;G&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">75.000</span>,    <span class="ruby-comment cmt"># Gly</span>
-                                <span class="ruby-value str">&quot;H&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">155.000</span>,   <span class="ruby-comment cmt"># His</span>
-                                <span class="ruby-value str">&quot;I&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">131.000</span>,   <span class="ruby-comment cmt"># Ile</span>
-                                <span class="ruby-value str">&quot;L&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">131.000</span>,   <span class="ruby-comment cmt"># Leu</span>
-                                <span class="ruby-value str">&quot;K&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">146.000</span>,   <span class="ruby-comment cmt"># Lys</span>
-                                <span class="ruby-value str">&quot;M&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">149.000</span>,   <span class="ruby-comment cmt"># Met</span>
-                                <span class="ruby-value str">&quot;F&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">165.000</span>,   <span class="ruby-comment cmt"># Phe</span>
-                                <span class="ruby-value str">&quot;P&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">115.000</span>,   <span class="ruby-comment cmt"># Pro</span>
-                                <span class="ruby-value str">&quot;S&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">105.000</span>,   <span class="ruby-comment cmt"># Ser</span>
-                                <span class="ruby-value str">&quot;T&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">119.000</span>,   <span class="ruby-comment cmt"># Thr</span>
-                                <span class="ruby-value str">&quot;W&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">204.000</span>,   <span class="ruby-comment cmt"># Trp</span>
-                                <span class="ruby-value str">&quot;Y&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">181.000</span>,   <span class="ruby-comment cmt"># Tyr</span>
-                                <span class="ruby-value str">&quot;V&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">117.000</span>,   <span class="ruby-comment cmt"># Val</span>
-                        }
-
-                        <span class="ruby-identifier">mw</span> = <span class="ruby-value">0</span><span class="ruby-value">.0</span>
-
-                        <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">each_char</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">mw</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">mol_weight_aa</span>[ <span class="ruby-identifier">c</span> ] }
-
-                        <span class="ruby-identifier">mw</span>
-                <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA.html
deleted file mode 100644 (file)
index 97c8ec4..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Seq::NA [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Seq::NA</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../../files/seq_rb.html">
-
-                seq.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                <a href="../Seq.html">
-
-                Seq
-
-               </a>
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Class containing methods specific for nucleic acid (<a
-href="NA.html">NA</a>) sequences.
-</p>
-
-    </div>
-
-   </div>
-
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-    <div id="class-list">
-      <h3 class="section-bar">Classes and Modules</h3>
-
-      Class <a href="NA/DNA.html" class="link">Seq::NA::DNA</a><br />
-Class <a href="NA/RNA.html" class="link">Seq::NA::RNA</a><br />
-
-    </div>
-
-
-
-
-    <!-- if method_list -->
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.html
deleted file mode 100644 (file)
index 778adf2..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Seq::NA::DNA [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Seq::NA::DNA</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../../../files/seq_rb.html">
-
-                seq.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                <a href="../NA.html">
-
-                Seq::NA
-
-               </a>
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Class containing methods specific for <a href="DNA.html">DNA</a> sequences.
-</p>
-
-    </div>
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000040">complement</a>&nbsp;&nbsp;
-
-        <a href="#M000038">residues</a>&nbsp;&nbsp;
-
-        <a href="#M000039">to_RNA</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Instance methods</h3>
-
-
-      <div id="method-M000040" class="method-detail">
-        <a name="M000040"></a>
-
-        <div class="method-heading">
-
-          <a href="DNA.src/M000040.html" target="Code" class="method-signature"
-            onclick="popupCode('DNA.src/M000040.html');return false;">
-
-          <span class="method-name">complement</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that complements <a href="DNA.html">DNA</a> sequence including
-ambiguity codes.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000038" class="method-detail">
-        <a name="M000038"></a>
-
-        <div class="method-heading">
-
-          <a href="DNA.src/M000038.html" target="Code" class="method-signature"
-            onclick="popupCode('DNA.src/M000038.html');return false;">
-
-          <span class="method-name">residues</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that returns an array of <a href="DNA.html">DNA</a> residues.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000039" class="method-detail">
-        <a name="M000039"></a>
-
-        <div class="method-heading">
-
-          <a href="DNA.src/M000039.html" target="Code" class="method-signature"
-            onclick="popupCode('DNA.src/M000039.html');return false;">
-
-          <span class="method-name">to_RNA</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method to transcribe <a href="DNA.html">DNA</a> to <a
-href="RNA.html">RNA</a>.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000038.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000038.html
deleted file mode 100644 (file)
index cf7df44..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>residues (Seq::NA::DNA)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 94</span>
-                        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">residues</span>
-                                <span class="ruby-node">%w{ A T C G }</span>
-                        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000039.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000039.html
deleted file mode 100644 (file)
index 60835d9..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>to_RNA (Seq::NA::DNA)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 99</span>
-                        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_RNA</span>
-                                <span class="ruby-constant">Seq</span><span class="ruby-operator">::</span><span class="ruby-constant">NA</span><span class="ruby-operator">::</span><span class="ruby-constant">RNA</span>.<span class="ruby-identifier">new</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">tr</span>( <span class="ruby-value str">'Tt'</span>, <span class="ruby-value str">'Uu'</span> ) )
-                        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000040.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA/DNA.src/M000040.html
deleted file mode 100644 (file)
index 6e79d17..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>complement (Seq::NA::DNA)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 104</span>
-                        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">complement</span>
-                                <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'TCGAAYRWSKMDHBVNtcgaayrwskmdhbvn'</span> )
-                        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.html
deleted file mode 100644 (file)
index 2345f3f..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Seq::NA::RNA [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Seq::NA::RNA</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../../../files/seq_rb.html">
-
-                seq.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                <a href="../NA.html">
-
-                Seq::NA
-
-               </a>
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Class containing methods specific for <a href="RNA.html">RNA</a> sequences.
-</p>
-
-    </div>
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000043">complement</a>&nbsp;&nbsp;
-
-        <a href="#M000041">residues</a>&nbsp;&nbsp;
-
-        <a href="#M000042">to_DNA</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Instance methods</h3>
-
-
-      <div id="method-M000043" class="method-detail">
-        <a name="M000043"></a>
-
-        <div class="method-heading">
-
-          <a href="RNA.src/M000043.html" target="Code" class="method-signature"
-            onclick="popupCode('RNA.src/M000043.html');return false;">
-
-          <span class="method-name">complement</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that complements <a href="RNA.html">RNA</a> sequence including
-ambiguity codes.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000041" class="method-detail">
-        <a name="M000041"></a>
-
-        <div class="method-heading">
-
-          <a href="RNA.src/M000041.html" target="Code" class="method-signature"
-            onclick="popupCode('RNA.src/M000041.html');return false;">
-
-          <span class="method-name">residues</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method that returns an array of <a href="RNA.html">RNA</a> residues.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000042" class="method-detail">
-        <a name="M000042"></a>
-
-        <div class="method-heading">
-
-          <a href="RNA.src/M000042.html" target="Code" class="method-signature"
-            onclick="popupCode('RNA.src/M000042.html');return false;">
-
-          <span class="method-name">to_DNA</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Method to reverse transcribe <a href="RNA.html">RNA</a> to <a
-href="DNA.html">DNA</a>.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000041.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000041.html
deleted file mode 100644 (file)
index 92655b3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>residues (Seq::NA::RNA)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 112</span>
-                        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">residues</span>
-                                <span class="ruby-node">%w{ A U C G }</span>
-                        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000042.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000042.html
deleted file mode 100644 (file)
index 7307861..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>to_DNA (Seq::NA::RNA)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 117</span>
-                        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_DNA</span>
-                                <span class="ruby-constant">Seq</span><span class="ruby-operator">::</span><span class="ruby-constant">NA</span><span class="ruby-operator">::</span><span class="ruby-constant">DNA</span>.<span class="ruby-identifier">new</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">tr</span>( <span class="ruby-value str">'Uu'</span>, <span class="ruby-value str">'Tt'</span> ) )
-                        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000043.html b/code_ruby/Maasha/lib/doc/classes/Seq/NA/RNA.src/M000043.html
deleted file mode 100644 (file)
index 7f5d3f2..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>complement (Seq::NA::RNA)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File seq.rb, line 122</span>
-                        <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">complement</span>
-                                <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">tr!</span>( <span class="ruby-value str">'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn'</span>, <span class="ruby-value str">'UCGAAYRWSKMDHBVNucgaayrwskmdhbvn'</span> )
-                        <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/SeqError.html b/code_ruby/Maasha/lib/doc/classes/SeqError.html
deleted file mode 100644 (file)
index 192b171..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: SeqError [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">SeqError</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/seq_rb.html">
-
-                seq.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                StandardError
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Error class for all exceptions to do with <a href="Seq.html">Seq</a>.
-</p>
-
-    </div>
-
-   </div>
-
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Status.html b/code_ruby/Maasha/lib/doc/classes/Status.html
deleted file mode 100644 (file)
index d6681d4..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Status [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Status</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/biopieces_rb.html">
-
-                biopieces.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                Object
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Class for manipulating the execution status of <a
-href="Biopieces.html">Biopieces</a> by setting a status file with a time
-stamp, process id, and command arguments. The status file is used for
-creating log entries and for displaying the runtime status of <a
-href="Biopieces.html">Biopieces</a>.
-</p>
-
-    </div>
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000029">delete</a>&nbsp;&nbsp;
-
-        <a href="#M000027">get_tmpdir</a>&nbsp;&nbsp;
-
-        <a href="#M000028">log</a>&nbsp;&nbsp;
-
-        <a href="#M000025">set</a>&nbsp;&nbsp;
-
-        <a href="#M000026">set_tmpdir</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Instance methods</h3>
-
-
-      <div id="method-M000029" class="method-detail">
-        <a name="M000029"></a>
-
-        <div class="method-heading">
-
-          <a href="Status.src/M000029.html" target="Code" class="method-signature"
-            onclick="popupCode('Status.src/M000029.html');return false;">
-
-          <span class="method-name">delete</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Delete status file.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000027" class="method-detail">
-        <a name="M000027"></a>
-
-        <div class="method-heading">
-
-          <a href="Status.src/M000027.html" target="Code" class="method-signature"
-            onclick="popupCode('Status.src/M000027.html');return false;">
-
-          <span class="method-name">get_tmpdir</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Extract the temporary directory path from the status file, and return this
-or nil if not found.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000028" class="method-detail">
-        <a name="M000028"></a>
-
-        <div class="method-heading">
-
-          <a href="Status.src/M000028.html" target="Code" class="method-signature"
-            onclick="popupCode('Status.src/M000028.html');return false;">
-
-          <span class="method-name">log</span><span class="method-args">(exit_status)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Write the Biopiece status to the log file.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000025" class="method-detail">
-        <a name="M000025"></a>
-
-        <div class="method-heading">
-
-          <a href="Status.src/M000025.html" target="Code" class="method-signature"
-            onclick="popupCode('Status.src/M000025.html');return false;">
-
-          <span class="method-name">set</span><span class="method-args">()</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Write the status to a status file.
-</p>
-
-        </div>
-      </div>
-
-
-      <div id="method-M000026" class="method-detail">
-        <a name="M000026"></a>
-
-        <div class="method-heading">
-
-          <a href="Status.src/M000026.html" target="Code" class="method-signature"
-            onclick="popupCode('Status.src/M000026.html');return false;">
-
-          <span class="method-name">set_tmpdir</span><span class="method-args">(tmpdir_path)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Append the a temporary directory path to the status file.
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Status.src/M000025.html b/code_ruby/Maasha/lib/doc/classes/Status.src/M000025.html
deleted file mode 100644 (file)
index 84e53d7..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>set (Status)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 474</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>
-    <span class="ruby-identifier">time0</span>  = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d %X&quot;</span>)
-
-    <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
-      <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">puts</span> [<span class="ruby-identifier">time0</span>, <span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot; &quot;</span>)].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;;&quot;</span>)
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Status.src/M000026.html b/code_ruby/Maasha/lib/doc/classes/Status.src/M000026.html
deleted file mode 100644 (file)
index 3a81609..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>set_tmpdir (Status)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 483</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_tmpdir</span>(<span class="ruby-identifier">tmpdir_path</span>)
-    <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
-      <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">read</span>.<span class="ruby-identifier">chomp</span>
-    <span class="ruby-keyword kw">end</span>
-
-    <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;w&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
-      <span class="ruby-identifier">fh</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">status</span>, <span class="ruby-identifier">tmpdir_path</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;;&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Status.src/M000027.html b/code_ruby/Maasha/lib/doc/classes/Status.src/M000027.html
deleted file mode 100644 (file)
index a78ea57..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>get_tmpdir (Status)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 495</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_tmpdir</span>
-    <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;r&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">fh</span><span class="ruby-operator">|</span>
-      <span class="ruby-identifier">tmpdir_path</span> = <span class="ruby-identifier">fh</span>.<span class="ruby-identifier">read</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;;&quot;</span>).<span class="ruby-identifier">last</span>
-      <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tmpdir_path</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">tmpdir_path</span>)
-    <span class="ruby-keyword kw">end</span>
-
-    <span class="ruby-keyword kw">nil</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Status.src/M000028.html b/code_ruby/Maasha/lib/doc/classes/Status.src/M000028.html
deleted file mode 100644 (file)
index 4f73b4e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>log (Status)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 505</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log</span>(<span class="ruby-identifier">exit_status</span>)
-    <span class="ruby-identifier">time1</span>   = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d %X&quot;</span>)
-    <span class="ruby-identifier">user</span>    = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;USER&quot;</span>]
-    <span class="ruby-identifier">script</span>  = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">$0</span>)
-
-    <span class="ruby-identifier">stream</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">path</span>)
-    <span class="ruby-identifier">time0</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">tmp_dir</span> = <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;;&quot;</span>)
-    <span class="ruby-identifier">stream</span>.<span class="ruby-identifier">close</span>
-
-    <span class="ruby-identifier">elap</span>     = <span class="ruby-identifier">time_diff</span>(<span class="ruby-identifier">time0</span>, <span class="ruby-identifier">time1</span>)
-    <span class="ruby-identifier">command</span>  = [<span class="ruby-identifier">script</span>, <span class="ruby-identifier">args</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot; &quot;</span>) 
-    <span class="ruby-identifier">log_file</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;BP_LOG&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;/biopieces.log&quot;</span>
-
-    <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">log_file</span>, <span class="ruby-identifier">mode</span>=<span class="ruby-value str">&quot;a&quot;</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">puts</span> [<span class="ruby-identifier">time0</span>, <span class="ruby-identifier">time1</span>, <span class="ruby-identifier">elap</span>, <span class="ruby-identifier">user</span>, <span class="ruby-identifier">exit_status</span>, <span class="ruby-identifier">command</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\t&quot;</span>) }
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Status.src/M000029.html b/code_ruby/Maasha/lib/doc/classes/Status.src/M000029.html
deleted file mode 100644 (file)
index 2e74133..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>delete (Status)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 522</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>
-    <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">path</span>)
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Stream.html b/code_ruby/Maasha/lib/doc/classes/Stream.html
deleted file mode 100644 (file)
index a1db5ee..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>Class: Stream [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-    <div id="classHeader">
-        <table class="header-table">
-        <tr class="top-aligned-row">
-          <td><strong>Class</strong></td>
-          <td class="class-name-in-header">Stream</td>
-        </tr>
-        <tr class="top-aligned-row">
-            <td><strong>In:</strong></td>
-            <td>
-
-
-                <a href="../files/biopieces_rb.html">
-
-                biopieces.rb
-
-                </a>
-
-
-        <br />
-
-            </td>
-        </tr>
-
-
-        <tr class="top-aligned-row">
-            <td><strong>Parent:</strong></td>
-            <td>
-
-                IO
-
-            </td>
-        </tr>
-
-        </table>
-    </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-   </div>
-
-
-    <div id="method-list">
-      <h3 class="section-bar">Methods</h3>
-
-      <div class="name-list">
-
-        <a href="#M000030">open</a>&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-    <div id="methods">
-
-      <h3 class="section-bar">Public Class methods</h3>
-
-
-      <div id="method-M000030" class="method-detail">
-        <a name="M000030"></a>
-
-        <div class="method-heading">
-
-          <a href="Stream.src/M000030.html" target="Code" class="method-signature"
-            onclick="popupCode('Stream.src/M000030.html');return false;">
-
-          <span class="method-name">open</span><span class="method-args">(options, mode, stdio)</span>
-
-          </a>
-
-        </div>
-
-        <div class="method-description">
-
-          <p>
-Open <a href="Biopieces.html">Biopieces</a> output data stream for reading
-from stdin or a file specified in options[&#8220;stream_in&#8220;] OR
-writing to stdout or a file specified in options[&#8220;stream_out&#8220;].
-</p>
-
-        </div>
-      </div>
-
-
-
-    </div>
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/classes/Stream.src/M000030.html b/code_ruby/Maasha/lib/doc/classes/Stream.src/M000030.html
deleted file mode 100644 (file)
index 9a8cbd8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>open (Stream)</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
-</head>
-<body class="standalone-code">
-  <pre><span class="ruby-comment cmt"># File biopieces.rb, line 547</span>
-  <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">options</span>, <span class="ruby-identifier">mode</span>, <span class="ruby-identifier">stdio</span>)
-    <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;r&quot;</span>
-      <span class="ruby-identifier">$stdin</span>.<span class="ruby-identifier">tty?</span> <span class="ruby-value">? </span><span class="ruby-identifier">read</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;stream_in&quot;</span>]) <span class="ruby-operator">:</span> <span class="ruby-identifier">stdio</span>
-    <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;w&quot;</span>
-      <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;stream_out&quot;</span>] <span class="ruby-operator">?</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;stream_out&quot;</span>], <span class="ruby-identifier">options</span>[<span class="ruby-value str">&quot;compress&quot;</span>]) <span class="ruby-operator">:</span> <span class="ruby-identifier">stdio</span>
-    <span class="ruby-keyword kw">else</span>
-      <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Bad mode #{mode}&quot;</span>
-    <span class="ruby-keyword kw">end</span>
-  <span class="ruby-keyword kw">end</span></pre>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/created.rid b/code_ruby/Maasha/lib/doc/created.rid
deleted file mode 100644 (file)
index 36dfd11..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Sat, 19 Mar 2011 16:29:12 +0100
-./base36.rb    Fri, 11 Feb 2011 19:42:32 +0100
-./biopieces.rb Sat, 19 Mar 2011 09:14:44 +0100
-./bitarray.rb  Thu, 17 Mar 2011 15:02:03 +0100
-./bits.rb      Tue, 08 Mar 2011 11:37:57 +0100
-./boulder.rb   Sat, 19 Mar 2011 09:17:13 +0100
-./digest.rb    Sat, 19 Mar 2011 15:41:06 +0100
-./fasta.rb     Sat, 19 Mar 2011 09:11:06 +0100
-./fastq.rb     Sat, 19 Mar 2011 09:09:52 +0100
-./filesys.rb   Fri, 18 Mar 2011 22:13:22 +0100
-./genbank.rb   Sat, 19 Mar 2011 09:19:25 +0100
-./seq.rb       Sat, 19 Mar 2011 16:29:08 +0100
-./sff.rb       Fri, 11 Feb 2011 19:55:38 +0100
diff --git a/code_ruby/Maasha/lib/doc/digest_rb.html b/code_ruby/Maasha/lib/doc/digest_rb.html
deleted file mode 100644 (file)
index 22b22e5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: digest.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-19 15:41:06 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>seq</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/fasta_rb.html b/code_ruby/Maasha/lib/doc/fasta_rb.html
deleted file mode 100644 (file)
index 1782158..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: fasta.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-19 09:11:06 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>seq</li>
-                               
-                                       <li>filesys</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/fastq_rb.html b/code_ruby/Maasha/lib/doc/fastq_rb.html
deleted file mode 100644 (file)
index 0d97142..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: fastq.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-19 09:09:52 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>seq</li>
-                               
-                                       <li>filesys</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/files/biopieces_rb.html b/code_ruby/Maasha/lib/doc/files/biopieces_rb.html
deleted file mode 100644 (file)
index 0efeadc..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>File: biopieces.rb [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-  <div id="fileHeader">
-    <h1>biopieces.rb</h1>
-    <table class="header-table">
-    <tr class="top-aligned-row">
-      <td><strong>Path:</strong></td>
-      <td>biopieces.rb
-
-      </td>
-    </tr>
-    <tr class="top-aligned-row">
-      <td><strong>Last Update:</strong></td>
-      <td>2010-08-17 14:23:28 +0200</td>
-    </tr>
-    </table>
-  </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-Copyright (C) 2007-2010 Martin A. Hansen.
-</p>
-
-    </div>
-
-    <div id="requires-list">
-      <h3 class="section-bar">Required files</h3>
-
-      <div class="name-list">
-
-        fileutils&nbsp;&nbsp;
-
-        date&nbsp;&nbsp;
-
-        optparse&nbsp;&nbsp;
-
-        open3&nbsp;&nbsp;
-
-        pp&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-   </div>
-
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/files/fasta_rb.html b/code_ruby/Maasha/lib/doc/files/fasta_rb.html
deleted file mode 100644 (file)
index 21a9b00..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>File: fasta.rb [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-  <div id="fileHeader">
-    <h1>fasta.rb</h1>
-    <table class="header-table">
-    <tr class="top-aligned-row">
-      <td><strong>Path:</strong></td>
-      <td>fasta.rb
-
-      </td>
-    </tr>
-    <tr class="top-aligned-row">
-      <td><strong>Last Update:</strong></td>
-      <td>2010-08-18 21:33:24 +0200</td>
-    </tr>
-    </table>
-  </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-    <div id="description">
-      <p>
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your option)
-any later version.
-</p>
-
-    </div>
-
-    <div id="requires-list">
-      <h3 class="section-bar">Required files</h3>
-
-      <div class="name-list">
-
-        seq&nbsp;&nbsp;
-
-        zlib&nbsp;&nbsp;
-
-      </div>
-    </div>
-
-   </div>
-
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-
-
-
-    <!-- if method_list -->
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/files/seq_rb.html b/code_ruby/Maasha/lib/doc/files/seq_rb.html
deleted file mode 100644 (file)
index e080b99..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>File: seq.rb [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <meta http-equiv="Content-Script-Type" content="text/javascript" />
-  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
-  <script type="text/javascript">
-  // <![CDATA[
-
-  function popupCode( url ) {
-    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-
-  function toggleCode( id ) {
-    if ( document.getElementById )
-      elem = document.getElementById( id );
-    else if ( document.all )
-      elem = eval( "document.all." + id );
-    else
-      return false;
-
-    elemStyle = elem.style;
-
-    if ( elemStyle.display != "block" ) {
-      elemStyle.display = "block"
-    } else {
-      elemStyle.display = "none"
-    }
-
-    return true;
-  }
-
-  // Make codeblocks hidden by default
-  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
-
-  // ]]>
-  </script>
-
-</head>
-<body>
-
-
-  <div id="fileHeader">
-    <h1>seq.rb</h1>
-    <table class="header-table">
-    <tr class="top-aligned-row">
-      <td><strong>Path:</strong></td>
-      <td>seq.rb
-
-      </td>
-    </tr>
-    <tr class="top-aligned-row">
-      <td><strong>Last Update:</strong></td>
-      <td>2010-08-17 08:33:38 +0200</td>
-    </tr>
-    </table>
-  </div>
-  <!-- banner header -->
-
-  <div id="bodyContent">
-
-  <div id="contextContent">
-
-   </div>
-
-
-  </div>
-
-    <!-- if includes -->
-
-    <div id="section">
-
-    <div id="constants-list">
-      <h3 class="section-bar">Constants</h3>
-
-      <div class="name-list">
-        <table summary="Constants">
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">DNA</td>
-          <td>=</td>
-          <td class="context-item-value">%w[a t c g]</td>
-
-        </tr>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">RNA</td>
-          <td>=</td>
-          <td class="context-item-value">%w[a u c g]</td>
-
-        </tr>
-
-        <tr class="top-aligned-row context-row">
-          <td class="context-item-name">PROTEIN</td>
-          <td>=</td>
-          <td class="context-item-value">%w[f l s y c w p h q r i m t n k v a d e g]</td>
-
-        </tr>
-
-        </table>
-      </div>
-    </div>
-
-
-
-
-    <!-- if method_list -->
-
-
-
-
-  </div>
-
-<div id="validator-badges">
-  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-</div>
-
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/filesys_rb.html b/code_ruby/Maasha/lib/doc/filesys_rb.html
deleted file mode 100644 (file)
index 7d9ac37..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: filesys.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-18 22:13:22 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>zlib</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/fr_class_index.html b/code_ruby/Maasha/lib/doc/fr_class_index.html
deleted file mode 100644 (file)
index 2557682..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<!--
-
-    Classes [RDoc Documentation]
-
-  -->
-<head>
-  <title>Classes [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
-  <base target="docwin" />
-</head>
-<body>
-<div class="index">
-  <h1 class="section-bar">Classes</h1>
-  <div id="index-entries">
-
-    <a href="classes/Fasta.html">Fasta</a><br />
-
-    <a href="classes/FastaError.html">FastaError</a><br />
-
-  </div>
-</div>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/fr_file_index.html b/code_ruby/Maasha/lib/doc/fr_file_index.html
deleted file mode 100644 (file)
index 83e8a04..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<!--
-
-    Files [RDoc Documentation]
-
-  -->
-<head>
-  <title>Files [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
-  <base target="docwin" />
-</head>
-<body>
-<div class="index">
-  <h1 class="section-bar">Files</h1>
-  <div id="index-entries">
-
-    <a href="files/fasta_rb.html">fasta.rb</a><br />
-
-  </div>
-</div>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/fr_method_index.html b/code_ruby/Maasha/lib/doc/fr_method_index.html
deleted file mode 100644 (file)
index 007edaa..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<!--
-
-    Methods [RDoc Documentation]
-
-  -->
-<head>
-  <title>Methods [RDoc Documentation]</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <link rel="stylesheet" href="rdoc-style.css" type="text/css" />
-  <base target="docwin" />
-</head>
-<body>
-<div class="index">
-  <h1 class="section-bar">Methods</h1>
-  <div id="index-entries">
-
-    <a href="classes/Fasta.html#M000003">close (Fasta)</a><br />
-
-    <a href="classes/Fasta.html#M000004">each (Fasta)</a><br />
-
-    <a href="classes/Fasta.html#M000005">get_entry (Fasta)</a><br />
-
-    <a href="classes/Fasta.html#M000002">new (Fasta)</a><br />
-
-    <a href="classes/Fasta.html#M000001">open (Fasta)</a><br />
-
-  </div>
-</div>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/genbank_rb.html b/code_ruby/Maasha/lib/doc/genbank_rb.html
deleted file mode 100644 (file)
index 7434343..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: genbank.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-19 09:19:25 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>seq</li>
-                               
-                                       <li>filesys</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2010 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/images/brick.png b/code_ruby/Maasha/lib/doc/images/brick.png
deleted file mode 100644 (file)
index 7851cf3..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/brick.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/brick_link.png b/code_ruby/Maasha/lib/doc/images/brick_link.png
deleted file mode 100644 (file)
index 9ebf013..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/brick_link.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/bug.png b/code_ruby/Maasha/lib/doc/images/bug.png
deleted file mode 100644 (file)
index 2d5fb90..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/bug.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/bullet_black.png b/code_ruby/Maasha/lib/doc/images/bullet_black.png
deleted file mode 100644 (file)
index 5761970..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/bullet_black.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/bullet_toggle_minus.png b/code_ruby/Maasha/lib/doc/images/bullet_toggle_minus.png
deleted file mode 100644 (file)
index b47ce55..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/bullet_toggle_minus.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/bullet_toggle_plus.png b/code_ruby/Maasha/lib/doc/images/bullet_toggle_plus.png
deleted file mode 100644 (file)
index 9ab4a89..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/bullet_toggle_plus.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/date.png b/code_ruby/Maasha/lib/doc/images/date.png
deleted file mode 100644 (file)
index 783c833..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/date.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/find.png b/code_ruby/Maasha/lib/doc/images/find.png
deleted file mode 100644 (file)
index 1547479..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/find.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/loadingAnimation.gif b/code_ruby/Maasha/lib/doc/images/loadingAnimation.gif
deleted file mode 100644 (file)
index 82290f4..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/loadingAnimation.gif and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/macFFBgHack.png b/code_ruby/Maasha/lib/doc/images/macFFBgHack.png
deleted file mode 100644 (file)
index c6473b3..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/macFFBgHack.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/package.png b/code_ruby/Maasha/lib/doc/images/package.png
deleted file mode 100644 (file)
index da3c2a2..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/package.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/page_green.png b/code_ruby/Maasha/lib/doc/images/page_green.png
deleted file mode 100644 (file)
index de8e003..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/page_green.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/page_white_text.png b/code_ruby/Maasha/lib/doc/images/page_white_text.png
deleted file mode 100644 (file)
index 813f712..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/page_white_text.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/page_white_width.png b/code_ruby/Maasha/lib/doc/images/page_white_width.png
deleted file mode 100644 (file)
index 1eb8809..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/page_white_width.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/plugin.png b/code_ruby/Maasha/lib/doc/images/plugin.png
deleted file mode 100644 (file)
index 6187b15..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/plugin.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/ruby.png b/code_ruby/Maasha/lib/doc/images/ruby.png
deleted file mode 100644 (file)
index f763a16..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/ruby.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/tag_green.png b/code_ruby/Maasha/lib/doc/images/tag_green.png
deleted file mode 100644 (file)
index 83ec984..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/tag_green.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/wrench.png b/code_ruby/Maasha/lib/doc/images/wrench.png
deleted file mode 100644 (file)
index 5c8213f..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/wrench.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/wrench_orange.png b/code_ruby/Maasha/lib/doc/images/wrench_orange.png
deleted file mode 100644 (file)
index 565a933..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/wrench_orange.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/images/zoom.png b/code_ruby/Maasha/lib/doc/images/zoom.png
deleted file mode 100644 (file)
index 908612e..0000000
Binary files a/code_ruby/Maasha/lib/doc/images/zoom.png and /dev/null differ
diff --git a/code_ruby/Maasha/lib/doc/index.html b/code_ruby/Maasha/lib/doc/index.html
deleted file mode 100644 (file)
index 4979e8a..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
-       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>RDoc Documentation</title>
-
-       <link type="text/css" media="screen" href="rdoc.css" rel="stylesheet" />
-
-       <script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
-       <script src="js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
-       <script src="js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
-       <script src="js/darkfish.js" type="text/javascript" charset="utf-8"></script>
-
-</head>
-<body class="indexpage">
-
-       
-       <h1>RDoc Documentation</h1>
-
-       
-       <p>This is the API documentation for 'RDoc Documentation'.</p>
-       
-
-       
-       
-
-       <h2 id="classes">Classes/Modules</h2>
-       <ul>
-               
-               <li class="class"><a href="Base36.html">Base36</a></li>
-               
-               <li class="class"><a href="Base36Error.html">Base36Error</a></li>
-               
-               <li class="class"><a href="Biopieces.html">Biopieces</a></li>
-               
-               <li class="class"><a href="BitArray.html">BitArray</a></li>
-               
-               <li class="class"><a href="BitArrayError.html">BitArrayError</a></li>
-               
-               <li class="class"><a href="Boulder.html">Boulder</a></li>
-               
-               <li class="class"><a href="BoulderError.html">BoulderError</a></li>
-               
-               <li class="class"><a href="CastError.html">CastError</a></li>
-               
-               <li class="class"><a href="Casts.html">Casts</a></li>
-               
-               <li class="class"><a href="Digest.html">Digest</a></li>
-               
-               <li class="class"><a href="DigestError.html">DigestError</a></li>
-               
-               <li class="class"><a href="Fasta.html">Fasta</a></li>
-               
-               <li class="class"><a href="FastaError.html">FastaError</a></li>
-               
-               <li class="class"><a href="Fastq.html">Fastq</a></li>
-               
-               <li class="class"><a href="FastqError.html">FastqError</a></li>
-               
-               <li class="class"><a href="Filesys.html">Filesys</a></li>
-               
-               <li class="class"><a href="FilesysError.html">FilesysError</a></li>
-               
-               <li class="class"><a href="Genbank.html">Genbank</a></li>
-               
-               <li class="class"><a href="GenbankError.html">GenbankError</a></li>
-               
-               <li class="class"><a href="GenbankFeatures.html">GenbankFeatures</a></li>
-               
-               <li class="class"><a href="Locator.html">Locator</a></li>
-               
-               <li class="class"><a href="LocatorError.html">LocatorError</a></li>
-               
-               <li class="class"><a href="OptionHandler.html">OptionHandler</a></li>
-               
-               <li class="class"><a href="Read.html">Read</a></li>
-               
-               <li class="class"><a href="SFF.html">SFF</a></li>
-               
-               <li class="class"><a href="SFFError.html">SFFError</a></li>
-               
-               <li class="class"><a href="Seq.html">Seq</a></li>
-               
-               <li class="class"><a href="SeqError.html">SeqError</a></li>
-               
-               <li class="class"><a href="Status.html">Status</a></li>
-               
-               <li class="class"><a href="Stream.html">Stream</a></li>
-               
-               <li class="class"><a href="String.html">String</a></li>
-               
-               <li class="class"><a href="StringError.html">StringError</a></li>
-               
-       </ul>
-
-       <h2 id="methods">Methods</h2>
-       <ul>
-               
-                       <li><a href="Base36.html#method-c-decode">::decode &mdash; Base36</a></li>
-               
-                       <li><a href="Base36.html#method-c-encode">::encode &mdash; Base36</a></li>
-               
-                       <li><a href="Seq.html#method-c-generate_oligos">::generate_oligos &mdash; Seq</a></li>
-               
-                       <li><a href="String.html#method-c-hamming_dist">::hamming_dist &mdash; String</a></li>
-               
-                       <li><a href="GenbankFeatures.html#method-c-new">::new &mdash; GenbankFeatures</a></li>
-               
-                       <li><a href="Locator.html#method-c-new">::new &mdash; Locator</a></li>
-               
-                       <li><a href="OptionHandler.html#method-c-new">::new &mdash; OptionHandler</a></li>
-               
-                       <li><a href="BitArray.html#method-c-new">::new &mdash; BitArray</a></li>
-               
-                       <li><a href="SFF.html#method-c-new">::new &mdash; SFF</a></li>
-               
-                       <li><a href="Casts.html#method-c-new">::new &mdash; Casts</a></li>
-               
-                       <li><a href="Filesys.html#method-c-new">::new &mdash; Filesys</a></li>
-               
-                       <li><a href="Biopieces.html#method-c-new">::new &mdash; Biopieces</a></li>
-               
-                       <li><a href="Boulder.html#method-c-new">::new &mdash; Boulder</a></li>
-               
-                       <li><a href="Digest.html#method-c-new">::new &mdash; Digest</a></li>
-               
-                       <li><a href="Genbank.html#method-c-new">::new &mdash; Genbank</a></li>
-               
-                       <li><a href="Seq.html#method-c-new">::new &mdash; Seq</a></li>
-               
-                       <li><a href="Stream.html#method-c-nread">::nread &mdash; Stream</a></li>
-               
-                       <li><a href="Stream.html#method-c-nwrite">::nwrite &mdash; Stream</a></li>
-               
-                       <li><a href="Filesys.html#method-c-open">::open &mdash; Filesys</a></li>
-               
-                       <li><a href="Stream.html#method-c-open">::open &mdash; Stream</a></li>
-               
-                       <li><a href="SFF.html#method-c-open">::open &mdash; SFF</a></li>
-               
-                       <li><a href="Stream.html#method-c-read">::read &mdash; Stream</a></li>
-               
-                       <li><a href="Stream.html#method-c-write">::write &mdash; Stream</a></li>
-               
-                       <li><a href="Stream.html#method-c-zipped%3F">::zipped? &mdash; Stream</a></li>
-               
-                       <li><a href="Filesys.html#method-c-zopen">::zopen &mdash; Filesys</a></li>
-               
-                       <li><a href="Stream.html#method-c-zread">::zread &mdash; Stream</a></li>
-               
-                       <li><a href="Stream.html#method-c-zwrite">::zwrite &mdash; Stream</a></li>
-               
-                       <li><a href="BitArray.html#method-i-%26">#& &mdash; BitArray</a></li>
-               
-                       <li><a href="String.html#method-i-%26">#& &mdash; String</a></li>
-               
-                       <li><a href="String.html#method-i-%5E">#^ &mdash; String</a></li>
-               
-                       <li><a href="BitArray.html#method-i-%5E">#^ &mdash; BitArray</a></li>
-               
-                       <li><a href="Seq.html#method-i-adaptor_clip_left">#adaptor_clip_left &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-adaptor_clip_right">#adaptor_clip_right &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-adaptor_locate_left">#adaptor_locate_left &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-adaptor_locate_right">#adaptor_locate_right &mdash; Seq</a></li>
-               
-                       <li><a href="Locator.html#method-i-balance_parens%3F">#balance_parens? &mdash; Locator</a></li>
-               
-                       <li><a href="BitArray.html#method-i-bit_pos">#bit_pos &mdash; BitArray</a></li>
-               
-                       <li><a href="BitArray.html#method-i-bit_set">#bit_set &mdash; BitArray</a></li>
-               
-                       <li><a href="BitArray.html#method-i-bit_set%3F">#bit_set? &mdash; BitArray</a></li>
-               
-                       <li><a href="BitArray.html#method-i-bits_in_char">#bits_in_char &mdash; BitArray</a></li>
-               
-                       <li><a href="BitArray.html#method-i-bits_off">#bits_off &mdash; BitArray</a></li>
-               
-                       <li><a href="BitArray.html#method-i-bits_on">#bits_on &mdash; BitArray</a></li>
-               
-                       <li><a href="BitArray.html#method-i-byte_pos">#byte_pos &mdash; BitArray</a></li>
-               
-                       <li><a href="Casts.html#method-i-check">#check &mdash; Casts</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_duplicates">#check_duplicates &mdash; Casts</a></li>
-               
-                       <li><a href="SFF.html#method-i-check_header_length">#check_header_length &mdash; SFF</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_keys">#check_keys &mdash; Casts</a></li>
-               
-                       <li><a href="SFF.html#method-i-check_magic_number">#check_magic_number &mdash; SFF</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_val_allowed">#check_val_allowed &mdash; Casts</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_val_default">#check_val_default &mdash; Casts</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_val_disallowed">#check_val_disallowed &mdash; Casts</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_val_long">#check_val_long &mdash; Casts</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_val_mandatory">#check_val_mandatory &mdash; Casts</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_val_short">#check_val_short &mdash; Casts</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_val_type">#check_val_type &mdash; Casts</a></li>
-               
-                       <li><a href="Casts.html#method-i-check_values">#check_values &mdash; Casts</a></li>
-               
-                       <li><a href="SFF.html#method-i-check_version">#check_version &mdash; SFF</a></li>
-               
-                       <li><a href="Read.html#method-i-clip">#clip &mdash; Read</a></li>
-               
-                       <li><a href="SFF.html#method-i-close">#close &mdash; SFF</a></li>
-               
-                       <li><a href="Filesys.html#method-i-close">#close &mdash; Filesys</a></li>
-               
-                       <li><a href="Seq.html#method-i-complement">#complement &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-composition">#composition &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-convert_phred2illumina%21">#convert_phred2illumina! &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-convert_solexa2illumina%21">#convert_solexa2illumina! &mdash; Seq</a></li>
-               
-                       <li><a href="Read.html#method-i-coordinates_get">#coordinates_get &mdash; Read</a></li>
-               
-                       <li><a href="Status.html#method-i-delete">#delete &mdash; Status</a></li>
-               
-                       <li><a href="Digest.html#method-i-disambiguate">#disambiguate &mdash; Digest</a></li>
-               
-                       <li><a href="Biopieces.html#method-i-each">#each &mdash; Biopieces</a></li>
-               
-                       <li><a href="Boulder.html#method-i-each">#each &mdash; Boulder</a></li>
-               
-                       <li><a href="Filesys.html#method-i-each">#each &mdash; Filesys</a></li>
-               
-                       <li><a href="GenbankFeatures.html#method-i-each">#each &mdash; GenbankFeatures</a></li>
-               
-                       <li><a href="Genbank.html#method-i-each">#each &mdash; Genbank</a></li>
-               
-                       <li><a href="Digest.html#method-i-each">#each &mdash; Digest</a></li>
-               
-                       <li><a href="SFF.html#method-i-each">#each &mdash; SFF</a></li>
-               
-                       <li><a href="Biopieces.html#method-i-each_record">#each_record &mdash; Biopieces</a></li>
-               
-                       <li><a href="SFF.html#method-i-fast_forward">#fast_forward &mdash; SFF</a></li>
-               
-                       <li><a href="Seq.html#method-i-generate">#generate &mdash; Seq</a></li>
-               
-                       <li><a href="Fasta.html#method-i-get_entry">#get_entry &mdash; Fasta</a></li>
-               
-                       <li><a href="Fastq.html#method-i-get_entry">#get_entry &mdash; Fastq</a></li>
-               
-                       <li><a href="Genbank.html#method-i-get_entry">#get_entry &mdash; Genbank</a></li>
-               
-                       <li><a href="Genbank.html#method-i-get_keys">#get_keys &mdash; Genbank</a></li>
-               
-                       <li><a href="GenbankFeatures.html#method-i-get_quals">#get_quals &mdash; GenbankFeatures</a></li>
-               
-                       <li><a href="Genbank.html#method-i-get_seq">#get_seq &mdash; Genbank</a></li>
-               
-                       <li><a href="Status.html#method-i-get_tmpdir">#get_tmpdir &mdash; Status</a></li>
-               
-                       <li><a href="Seq.html#method-i-hard_mask">#hard_mask &mdash; Seq</a></li>
-               
-                       <li><a href="SFF.html#method-i-header_parse">#header_parse &mdash; SFF</a></li>
-               
-                       <li><a href="Seq.html#method-i-homopol_max">#homopol_max &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-indels">#indels &mdash; Seq</a></li>
-               
-                       <li><a href="BitArray.html#method-i-init_byte_array">#init_byte_array &mdash; BitArray</a></li>
-               
-                       <li><a href="BitArray.html#method-i-init_count_array">#init_count_array &mdash; BitArray</a></li>
-               
-                       <li><a href="Seq.html#method-i-is_dna%3F">#is_dna? &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-is_protein%3F">#is_protein? &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-is_rna%3F">#is_rna? &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-len">#len &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-length">#length &mdash; Seq</a></li>
-               
-                       <li><a href="Status.html#method-i-log">#log &mdash; Status</a></li>
-               
-                       <li><a href="Casts.html#method-i-long_to_sym">#long_to_sym &mdash; Casts</a></li>
-               
-                       <li><a href="Read.html#method-i-mask">#mask &mdash; Read</a></li>
-               
-                       <li><a href="Seq.html#method-i-match">#match &mdash; Seq</a></li>
-               
-                       <li><a href="Biopieces.html#method-i-mktmpdir">#mktmpdir &mdash; Biopieces</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check">#options_check &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check_allowed">#options_check_allowed &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check_dir">#options_check_dir &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check_disallowed">#options_check_disallowed &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check_file">#options_check_file &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check_files">#options_check_files &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check_int">#options_check_int &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check_mandatory">#options_check_mandatory &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_check_uint">#options_check_uint &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_default">#options_default &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_glob">#options_glob &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-options_parse">#options_parse &mdash; OptionHandler</a></li>
-               
-                       <li><a href="Biopieces.html#method-i-parse">#parse &mdash; Biopieces</a></li>
-               
-                       <li><a href="Locator.html#method-i-parse_locator">#parse_locator &mdash; Locator</a></li>
-               
-                       <li><a href="Status.html#method-i-path">#path &mdash; Status</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-print_usage_and_exit">#print_usage_and_exit &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-print_usage_full%3F">#print_usage_full? &mdash; OptionHandler</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-print_usage_short%3F">#print_usage_short? &mdash; OptionHandler</a></li>
-               
-                       <li><a href="Fasta.html#method-i-puts">#puts &mdash; Fasta</a></li>
-               
-                       <li><a href="Fastq.html#method-i-puts">#puts &mdash; Fastq</a></li>
-               
-                       <li><a href="Biopieces.html#method-i-puts">#puts &mdash; Biopieces</a></li>
-               
-                       <li><a href="SFF.html#method-i-read_parse">#read_parse &mdash; SFF</a></li>
-               
-                       <li><a href="Seq.html#method-i-revcomp">#revcomp &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-reverse">#reverse &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-reverse_complement">#reverse_complement &mdash; Seq</a></li>
-               
-                       <li><a href="Locator.html#method-i-s_beg">#s_beg &mdash; Locator</a></li>
-               
-                       <li><a href="Locator.html#method-i-s_end">#s_end &mdash; Locator</a></li>
-               
-                       <li><a href="Status.html#method-i-set">#set &mdash; Status</a></li>
-               
-                       <li><a href="Status.html#method-i-set_tmpdir">#set_tmpdir &mdash; Status</a></li>
-               
-                       <li><a href="Seq.html#method-i-soft_mask">#soft_mask &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-solexa2phred">#solexa2phred &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-solexa_char2illumina_char">#solexa_char2illumina_char &mdash; Seq</a></li>
-               
-                       <li><a href="Locator.html#method-i-strand">#strand &mdash; Locator</a></li>
-               
-                       <li><a href="Seq.html#method-i-subseq">#subseq &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-subseq%21">#subseq! &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-subseq_rand">#subseq_rand &mdash; Seq</a></li>
-               
-                       <li><a href="Status.html#method-i-time_diff">#time_diff &mdash; Status</a></li>
-               
-                       <li><a href="Boulder.html#method-i-to_boulder">#to_boulder &mdash; Boulder</a></li>
-               
-                       <li><a href="Seq.html#method-i-to_bp">#to_bp &mdash; Seq</a></li>
-               
-                       <li><a href="Read.html#method-i-to_bp">#to_bp &mdash; Read</a></li>
-               
-                       <li><a href="Seq.html#method-i-to_dna">#to_dna &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-to_fasta">#to_fasta &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-to_key">#to_key &mdash; Seq</a></li>
-               
-                       <li><a href="Seq.html#method-i-to_rna">#to_rna &mdash; Seq</a></li>
-               
-                       <li><a href="BitArray.html#method-i-to_s">#to_s &mdash; BitArray</a></li>
-               
-                       <li><a href="Biopieces.html#method-i-to_s">#to_s &mdash; Biopieces</a></li>
-               
-                       <li><a href="Casts.html#method-i-ubiquitous">#ubiquitous &mdash; Casts</a></li>
-               
-                       <li><a href="GenbankFeatures.html#method-i-want_feat%3F">#want_feat? &mdash; GenbankFeatures</a></li>
-               
-                       <li><a href="Genbank.html#method-i-want_key%3F">#want_key? &mdash; Genbank</a></li>
-               
-                       <li><a href="GenbankFeatures.html#method-i-want_qual%3F">#want_qual? &mdash; GenbankFeatures</a></li>
-               
-                       <li><a href="OptionHandler.html#method-i-wiki_path">#wiki_path &mdash; OptionHandler</a></li>
-               
-                       <li><a href="BitArray.html#method-i-%7C">#| &mdash; BitArray</a></li>
-               
-                       <li><a href="String.html#method-i-%7C">#| &mdash; String</a></li>
-               
-       </ul>
-
-       <div id="validator-badges">
-               <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
-               <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
-                       Rdoc Generator</a> 1.1.6</small>.</p>
-       </div>
-</body>
-</html>
diff --git a/code_ruby/Maasha/lib/doc/js/darkfish.js b/code_ruby/Maasha/lib/doc/js/darkfish.js
deleted file mode 100644 (file)
index 84565c1..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- *
- * Darkfish Page Functions
- * $Id: darkfish.js 53 2009-01-07 02:52:03Z deveiant $
- *
- * Author: Michael Granger <mgranger@laika.com>
- *
- */
-
-/* Provide console simulation for firebug-less environments */
-if (!("console" in window) || !("firebug" in console)) {
-    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
-    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
-
-    window.console = {};
-    for (var i = 0; i < names.length; ++i)
-        window.console[names[i]] = function() {};
-};
-
-
-/**
- * Unwrap the first element that matches the given @expr@ from the targets and return them.
- */
-$.fn.unwrap = function( expr ) {
-  return this.each( function() {
-     $(this).parents( expr ).eq( 0 ).after( this ).remove();
-  });
-};
-
-
-function showSource( e ) {
-       var target = e.target;
-       var codeSections = $(target).
-               parents('.method-detail').
-               find('.method-source-code');
-
-       $(target).
-               parents('.method-detail').
-               find('.method-source-code').
-               slideToggle();
-};
-
-function hookSourceViews() {
-       $('.method-description,.method-heading').click( showSource );
-};
-
-function toggleDebuggingSection() {
-       $('.debugging-section').slideToggle();
-};
-
-function hookDebuggingToggle() {
-       $('#debugging-toggle img').click( toggleDebuggingSection );
-};
-
-function hookQuickSearch() {
-       $('.quicksearch-field').each( function() {
-               var searchElems = $(this).parents('.section').find( 'li' );
-               var toggle = $(this).parents('.section').find('h3 .search-toggle');
-               // console.debug( "Toggle is: %o", toggle );
-               var qsbox = $(this).parents('form').get( 0 );
-
-               $(this).quicksearch( this, searchElems, {
-                       noSearchResultsIndicator: 'no-class-search-results',
-                       focusOnLoad: false
-               });
-               $(toggle).click( function() {
-                       // console.debug( "Toggling qsbox: %o", qsbox );
-                       $(qsbox).toggle();
-               });
-       });
-};
-
-function highlightTarget( anchor ) {
-       console.debug( "Highlighting target '%s'.", anchor );
-
-       $("a[name=" + anchor + "]").each( function() {
-               if ( !$(this).parent().parent().hasClass('target-section') ) {
-                       console.debug( "Wrapping the target-section" );
-                       $('div.method-detail').unwrap( 'div.target-section' );
-                       $(this).parent().wrap( '<div class="target-section"></div>' );
-               } else {
-                       console.debug( "Already wrapped." );
-               }
-       });
-};
-
-function highlightLocationTarget() {
-       console.debug( "Location hash: %s", window.location.hash );
-       if ( ! window.location.hash || window.location.hash.length == 0 ) return;
-
-       var anchor = window.location.hash.substring(1);
-       console.debug( "Found anchor: %s; matching %s", anchor, "a[name=" + anchor + "]" );
-
-       highlightTarget( anchor );
-};
-
-function highlightClickTarget( event ) {
-       console.debug( "Highlighting click target for event %o", event.target );
-       try {
-               var anchor = $(event.target).attr( 'href' ).substring(1);
-               console.debug( "Found target anchor: %s", anchor );
-               highlightTarget( anchor );
-       } catch ( err ) {
-               console.error( "Exception while highlighting: %o", err );
-       };
-};
-
-
-$(document).ready( function() {
-       hookSourceViews();
-       hookDebuggingToggle();
-       hookQuickSearch();
-       highlightLocationTarget();
-
-       $('ul.link-list a').bind( "click", highlightClickTarget );
-});
diff --git a/code_ruby/Maasha/lib/doc/js/jquery.js b/code_ruby/Maasha/lib/doc/js/jquery.js
deleted file mode 100644 (file)
index afe9e74..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * jQuery 1.2.6 - New Wave Javascript
- *
- * Copyright (c) 2008 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2008-09-25 09:50:52 -0700 (Thu, 25 Sep 2008) $
- * $Rev: 38 $
- */
-(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
-return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
-return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
-selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
-return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
-this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
-return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
-jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
-script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
-for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
-for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
-jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
-ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
-while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
-while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
-for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
-jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
-xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
-jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
-for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
-s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
-e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
\ No newline at end of file
diff --git a/code_ruby/Maasha/lib/doc/js/quicksearch.js b/code_ruby/Maasha/lib/doc/js/quicksearch.js
deleted file mode 100644 (file)
index 70dbd33..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- *
- * JQuery QuickSearch - Hook up a form field to hide non-matching elements.
- * $Id: quicksearch.js 53 2009-01-07 02:52:03Z deveiant $
- *
- * Author: Michael Granger <mgranger@laika.com>
- *
- */
-jQuery.fn.quicksearch = function( target, searchElems, options ) {
-       // console.debug( "Quicksearch fn" );
-
-       var settings = {
-               delay: 250,
-               clearButton: false,
-               highlightMatches: false,
-               focusOnLoad: false,
-               noSearchResultsIndicator: null
-       };
-       if ( options ) $.extend( settings, options );
-
-       return jQuery(this).each( function() {
-               // console.debug( "Creating a new quicksearch on %o for %o", this, searchElems );
-               new jQuery.quicksearch( this, searchElems, settings );
-       });
-};
-
-
-jQuery.quicksearch = function( searchBox, searchElems, settings ) {
-       var timeout;
-       var boxdiv = $(searchBox).parents('div').eq(0);
-
-       function init() {
-               setupKeyEventHandlers();
-               focusOnLoad();
-       };
-
-       function setupKeyEventHandlers() {
-               // console.debug( "Hooking up the 'keypress' event to %o", searchBox );
-               $(searchBox).
-                       unbind( 'keyup' ).
-                       keyup( function(e) { return onSearchKey( e.keyCode ); });
-               $(searchBox).
-                       unbind( 'keypress' ).
-                       keypress( function(e) {
-                               switch( e.which ) {
-                                       // Execute the search on Enter, Tab, or Newline
-                                       case 9:
-                                       case 13:
-                                       case 10:
-                                               clearTimeout( timeout );
-                                               e.preventDefault();
-                                               doQuickSearch();
-                                               break;
-
-                                       // Allow backspace
-                                       case 8:
-                                               return true;
-                                               break;
-
-                                       // Only allow valid search characters
-                                       default:
-                                               return validQSChar( e.charCode );
-                               }
-                       });
-       };
-
-       function focusOnLoad() {
-               if ( !settings.focusOnLoad ) return false;
-               $(searchBox).focus();
-       };
-
-       function onSearchKey ( code ) {
-               clearTimeout( timeout );
-               // console.debug( "...scheduling search." );
-               timeout = setTimeout( doQuickSearch, settings.delay );
-       };
-
-       function validQSChar( code ) {
-               var c = String.fromCharCode( code );
-               return (
-                       (c == ':') ||
-                       (c >= 'a' && c <= 'z') ||
-                       (c >= 'A' && c <= 'Z')
-                 );
-       };
-
-       function doQuickSearch() {
-               var searchText = searchBox.value;
-               var pat = new RegExp( searchText, "im" );
-               var shownCount = 0;
-
-               if ( settings.noSearchResultsIndicator ) {
-                       $('#' + settings.noSearchResultsIndicator).hide();
-               }
-
-               // All elements start out hidden
-               $(searchElems).each( function(index) {
-                       var str = $(this).text();
-
-                       if ( pat.test(str) ) {
-                               shownCount += 1;
-                               $(this).fadeIn();
-                       } else {
-                               $(this).hide();
-                       }
-               });
-
-               if ( shownCount == 0 && settings.noSearchResultsIndicator ) {
-                       $('#' + settings.noSearchResultsIndicator).slideDown();
-               }
-       };
-
-       init();
-};
diff --git a/code_ruby/Maasha/lib/doc/js/thickbox-compressed.js b/code_ruby/Maasha/lib/doc/js/thickbox-compressed.js
deleted file mode 100644 (file)
index 3a3fdae..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * Thickbox 3 - One Box To Rule Them All.
- * By Cody Lindley (http://www.codylindley.com)
- * Copyright (c) 2007 cody lindley
- * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
-*/
-
-var tb_pathToImage = "../images/loadingAnimation.gif";
-
-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{}))
\ No newline at end of file
diff --git a/code_ruby/Maasha/lib/doc/rdoc-style.css b/code_ruby/Maasha/lib/doc/rdoc-style.css
deleted file mode 100644 (file)
index cf8367d..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-body {
-  font-family: Verdana,Arial,Helvetica,sans-serif;
-  font-size: 90%;
-  margin: 0;
-  margin-left: 40px;
-  padding: 0;
-  background: white;
-  color: black;
-}
-
-h1, h2, h3, h4 {
-  margin: 0;
-  background: transparent;
-}
-
-h1 {
-  font-size: 150%;
-}
-
-h2,h3,h4 {
-  margin-top: 1em;
-}
-
-:link, :visited {
-  background: #eef;
-  color: #039;
-  text-decoration: none;
-}
-
-:link:hover, :visited:hover {
-  background: #039;
-  color: #eef;
-}
-
-/* Override the base stylesheet's Anchor inside a table cell */
-td > :link, td > :visited {
-  background: transparent;
-  color: #039;
-  text-decoration: none;
-}
-
-/* and inside a section title */
-.section-title > :link, .section-title > :visited {
-  background: transparent;
-  color: #eee;
-  text-decoration: none;
-}
-
-/* === Structural elements =================================== */
-
-.index {
-  margin: 0;
-  margin-left: -40px;
-  padding: 0;
-  font-size: 90%;
-}
-
-.index :link, .index :visited {
-  margin-left: 0.7em;
-}
-
-.index .section-bar {
-  margin-left: 0px;
-  padding-left: 0.7em;
-  background: #ccc;
-  font-size: small;
-}
-
-#classHeader, #fileHeader {
-  width: auto;
-  color: white;
-  padding: 0.5em 1.5em 0.5em 1.5em;
-  margin: 0;
-  margin-left: -40px;
-  border-bottom: 3px solid #006;
-}
-
-#classHeader :link, #fileHeader :link,
-#classHeader :visited, #fileHeader :visited {
-  background: inherit;
-  color: white;
-}
-
-#classHeader td, #fileHeader td {
-  background: inherit;
-  color: white;
-}
-
-#fileHeader {
-  background: #057;
-}
-
-#classHeader {
-  background: #048;
-}
-
-.class-name-in-header {
-  font-size:  180%;
-  font-weight: bold;
-}
-
-#bodyContent {
-  padding: 0 1.5em 0 1.5em;
-}
-
-#description {
-  padding: 0.5em 1.5em;
-  background: #efefef;
-  border: 1px dotted #999;
-}
-
-#description h1, #description h2, #description h3,
-#description h4, #description h5, #description h6 {
-  color: #125;
-  background: transparent;
-}
-
-#validator-badges {
-  text-align: center;
-}
-
-#validator-badges img {
-  border: 0;
-}
-
-#copyright {
-  color: #333;
-  background: #efefef;
-  font: 0.75em sans-serif;
-  margin-top: 5em;
-  margin-bottom: 0;
-  padding: 0.5em 2em;
-}
-
-/* === Classes =================================== */
-
-table.header-table {
-  color: white;
-  font-size: small;
-}
-
-.type-note {
-  font-size: small;
-  color: #dedede;
-}
-
-.section-bar {
-  color: #333;
-  border-bottom: 1px solid #999;
-  margin-left: -20px;
-}
-
-.section-title {
-  background: #79a;
-  color: #eee;
-  padding: 3px;
-  margin-top: 2em;
-  margin-left: -30px;
-  border: 1px solid #999;
-}
-
-.top-aligned-row {
-  vertical-align: top
-}
-
-.bottom-aligned-row {
-  vertical-align: bottom
-}
-
-#diagram img {
-  border: 0;
-}
-
-/* --- Context section classes ----------------------- */
-
-.context-row { }
-
-.context-item-name {
-  font-family: monospace;
-  font-weight: bold;
-  color: black;
-}
-
-.context-item-value {
-  font-size: small;
-  color: #448;
-}
-
-.context-item-desc {
-  color: #333;
-  padding-left: 2em;
-}
-
-/* --- Method classes -------------------------- */
-
-.method-detail {
-  background: #efefef;
-  padding: 0;
-  margin-top: 0.5em;
-  margin-bottom: 1em;
-  border: 1px dotted #ccc;
-}
-
-.method-heading {
-  color: black;
-  background: #ccc;
-  border-bottom: 1px solid #666;
-  padding: 0.2em 0.5em 0 0.5em;
-}
-
-.method-signature {
-  color: black;
-  background: inherit;
-}
-
-.method-name {
-  font-weight: bold;
-}
-
-.method-args {
-  font-style: italic;
-}
-
-.method-description {
-  padding: 0 0.5em 0 0.5em;
-}
-
-/* --- Source code sections -------------------- */
-
-:link.source-toggle, :visited.source-toggle {
-  font-size: 90%;
-}
-
-div.method-source-code {
-  background: #262626;
-  color: #ffdead;
-  margin: 1em;
-  padding: 0.5em;
-  border: 1px dashed #999;
-  overflow: auto;
-}
-
-div.method-source-code pre {
-  color: #ffdead;
-}
-
-/* --- Ruby keyword styles --------------------- */
-
-.standalone-code {
-  background: #221111;
-  color: #ffdead;
-  overflow: auto;
-}
-
-.ruby-constant {
-  color: #7fffd4;
-  background: transparent;
-}
-
-.ruby-keyword {
-  color: #00ffff;
-  background: transparent;
-}
-
-.ruby-ivar {
-  color: #eedd82;
-  background: transparent;
-}
-
-.ruby-operator {
-  color: #00ffee;
-  background: transparent;
-}
-
-.ruby-identifier {
-  color: #ffdead;
-  background: transparent;
-}
-
-.ruby-node {
-  color: #ffa07a;
-  background: transparent;
-}
-
-.ruby-comment {
-  color: #b22222;
-  font-weight: bold;
-  background: transparent;
-}
-
-.ruby-regexp {
-  color: #ffa07a;
-  background: transparent;
-}
-
-.ruby-value {
-  color: #7fffd4;
-  background: transparent;
-}
diff --git a/code_ruby/Maasha/lib/doc/rdoc.css b/code_ruby/Maasha/lib/doc/rdoc.css
deleted file mode 100644 (file)
index ffe9960..0000000
+++ /dev/null
@@ -1,706 +0,0 @@
-/*
- * "Darkfish" Rdoc CSS
- * $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
- *
- * Author: Michael Granger <ged@FaerieMUD.org>
- *
- */
-
-/* Base Green is: #6C8C22 */
-
-*{ padding: 0; margin: 0; }
-
-body {
-  background: #efefef;
-       font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
-}
-body.class, body.module, body.file {
-    margin-left: 40px;
-}
-body.file-popup {
-       font-size: 90%;
-       margin-left: 0;
-}
-
-h1 {
-       font-size: 300%;
-       text-shadow: rgba(135,145,135,0.65) 2px 2px 3px;
-       color: #6C8C22;
-}
-h2,h3,h4 { margin-top: 1.5em; }
-
-:link,
-:visited {
-       color: #6C8C22;
-       text-decoration: none;
-}
-:link:hover,
-:visited:hover {
-       border-bottom: 1px dotted #6C8C22;
-}
-
-pre {
-       background: #ddd;
-       padding: 0.5em 0;
-}
-
-
-/* @group Generic Classes */
-
-.initially-hidden {
-       display: none;
-}
-
-.quicksearch-field {
-       width: 98%;
-       background: #ddd;
-       border: 1px solid #aaa;
-       height: 1.5em;
-       -webkit-border-radius: 4px;
-}
-.quicksearch-field:focus {
-       background: #f1edba;
-}
-
-.missing-docs {
-       font-size: 120%;
-       background: white url(images/wrench_orange.png) no-repeat 4px center;
-       color: #ccc;
-       line-height: 2em;
-       border: 1px solid #d00;
-       opacity: 1;
-       padding-left: 20px;
-       text-indent: 24px;
-       letter-spacing: 3px;
-       font-weight: bold;
-       -webkit-border-radius: 5px;
-       -moz-border-radius: 5px;
-}
-
-.target-section {
-       border: 2px solid #dcce90;
-       border-left-width: 8px;
-       padding: 0 1em;
-       background: #fff3c2;
-}
-
-/* @end */
-
-
-/* @group Index Page, Standalone file pages */
-body.indexpage {
-       margin: 1em 3em;
-}
-body.indexpage p,
-body.indexpage div,
-body.file p {
-       margin: 1em 0;
-}
-
-.indexpage ul,
-.file #documentation ul {
-       line-height: 160%;
-       list-style: none;
-}
-.indexpage ul :link,
-.indexpage ul :visited {
-       font-size: 16px;
-}
-
-.indexpage li,
-.file #documentation li {
-       padding-left: 20px;
-       background: url(images/bullet_black.png) no-repeat left 4px;
-}
-.indexpage li.module {
-       background: url(images/package.png) no-repeat left 4px;
-}
-.indexpage li.class {
-       background: url(images/ruby.png) no-repeat left 4px;
-}
-.indexpage li.file {
-       background: url(images/page_white_text.png) no-repeat left 4px;
-}
-.file li p,
-.indexpage li p {
-  margin: 0 0;
-}
-
-/* @end */
-
-/* @group Top-Level Structure */
-
-.class #metadata,
-.file #metadata,
-.module #metadata {
-       float: left;
-       width: 260px;
-}
-
-.class #documentation,
-.file #documentation,
-.module #documentation {
-       margin: 2em 1em 5em 300px;
-       min-width: 340px;
-}
-
-.file #metadata {
-       margin: 0.8em;
-}
-
-#validator-badges {
-       clear: both;
-       margin: 1em 1em 2em;
-}
-
-/* @end */
-
-/* @group Metadata Section */
-#metadata .section {
-       background-color: #dedede;
-       -moz-border-radius: 5px;
-       -webkit-border-radius: 5px;
-       border: 1px solid #aaa;
-       margin: 0 8px 16px;
-       font-size: 90%;
-       overflow: hidden;
-}
-#metadata h3.section-header {
-       margin: 0;
-       padding: 2px 8px;
-       background: #ccc;
-       color: #666;
-       -moz-border-radius-topleft: 4px;
-       -moz-border-radius-topright: 4px;
-       -webkit-border-top-left-radius: 4px;
-       -webkit-border-top-right-radius: 4px;
-       border-bottom: 1px solid #aaa;
-}
-#metadata #home-section h3.section-header {
-  border-bottom: 0;
-}
-
-#metadata ul,
-#metadata dl,
-#metadata p {
-       padding:  8px;
-       list-style: none;
-}
-
-#file-metadata ul {
-       padding-left: 28px;
-       list-style-image: url(images/page_green.png);
-}
-
-dl.svninfo {
-       color: #666;
-       margin: 0;
-}
-dl.svninfo dt {
-       font-weight: bold;
-}
-
-ul.link-list li {
-       white-space: nowrap;
-}
-ul.link-list .type {
-       font-size: 8px;
-       text-transform: uppercase;
-       color: white;
-       background: #969696;
-       padding: 2px 4px;
-       -webkit-border-radius: 5px;
-}
-
-/* @end */
-
-
-/* @group Project Metadata Section */
-#project-metadata {
-       margin-top: 3em;
-}
-
-.file #project-metadata {
-  margin-top: 0em;
-}
-
-#project-metadata .section {
-       border: 1px solid #aaa;
-}
-#project-metadata h3.section-header {
-       border-bottom: 1px solid #aaa;
-       position: relative;
-}
-#project-metadata h3.section-header .search-toggle {
-       position: absolute;
-       right: 5px;
-}
-
-
-#project-metadata form {
-       color: #777;
-       background: #ccc;
-       padding: 8px 8px 16px;
-       border-bottom: 1px solid #bbb;
-}
-#project-metadata fieldset {
-       border: 0;
-}
-
-#no-class-search-results {
-       margin: 0 auto 1em;
-       text-align: center;
-       font-size: 14px;
-       font-weight: bold;
-       color: #aaa;
-}
-
-/* @end */
-
-
-/* @group Documentation Section */
-#description {
-       font-size: 100%;
-       color: #333;
-}
-
-#description p {
-       margin: 1em 0.4em;
-}
-
-#description li p {
-  margin: 0;
-}
-
-#description ul {
-       margin-left: 1.5em;
-}
-#description ul li {
-       line-height: 1.4em;
-}
-
-#description dl,
-#documentation dl {
-       margin: 8px 1.5em;
-       border: 1px solid #ccc;
-}
-#description dl {
-       font-size: 14px;
-}
-
-#description dt,
-#documentation dt {
-       padding: 2px 4px;
-       font-weight: bold;
-       background: #ddd;
-}
-#description dd,
-#documentation dd  {
-       padding: 2px 12px;
-}
-#description dd + dt,
-#documentation dd + dt {
-       margin-top: 0.7em;
-}
-
-#documentation .section {
-       font-size: 90%;
-}
-#documentation h3.section-header {
-       margin-top: 2em;
-       padding: 0.75em 0.5em;
-       background-color: #dedede;
-       color: #333;
-       font-size: 150%;
-       border: 1px solid #bbb;
-       -moz-border-radius: 3px;
-       -webkit-border-radius: 3px;
-}
-
-#constants-list > dl,
-#attributes-list > dl {
-       margin: 1em 0 2em;
-       border: 0;
-}
-#constants-list > dl dt,
-#attributes-list > dl dt {
-       padding-left: 0;
-       font-weight: bold;
-       font-family: Monaco, "Andale Mono";
-       background: inherit;
-}
-#constants-list > dl dt a,
-#attributes-list > dl dt a {
-       color: inherit;
-}
-#constants-list > dl dd,
-#attributes-list > dl dd {
-       margin: 0 0 1em 0;
-       padding: 0;
-       color: #666;
-}
-
-/* @group Method Details */
-
-#documentation .method-source-code {
-       display: none;
-}
-
-#documentation .method-detail {
-       margin: 0.5em 0;
-       padding: 0.5em 0;
-       cursor: pointer;
-}
-#documentation .method-detail:hover {
-       background-color: #f1edba;
-}
-#documentation .method-heading {
-       position: relative;
-       padding: 2px 4px 0 20px;
-       font-size: 125%;
-       font-weight: bold;
-       color: #333;
-       background: url(images/brick.png) no-repeat left bottom;
-}
-#documentation .method-heading :link,
-#documentation .method-heading :visited {
-       color: inherit;
-}
-#documentation .method-click-advice {
-       position: absolute;
-       top: 2px;
-       right: 5px;
-       font-size: 10px;
-       color: #9b9877;
-       visibility: hidden;
-       padding-right: 20px;
-       line-height: 20px;
-       background: url(images/zoom.png) no-repeat right top;
-}
-#documentation .method-detail:hover .method-click-advice {
-       visibility: visible;
-}
-
-#documentation .method-alias .method-heading {
-       color: #666;
-       background: url(images/brick_link.png) no-repeat left bottom;
-}
-
-#documentation .method-description,
-#documentation .aliases {
-       margin: 0 20px;
-       line-height: 1.2em;
-       color: #666;
-}
-#documentation .aliases {
-       padding-top: 4px;
-       font-style: italic;
-       cursor: default;
-}
-#documentation .method-description p {
-       padding: 0;
-}
-#documentation .method-description p + p {
-       margin-bottom: 0.5em;
-}
-#documentation .method-description ul {
-  margin-left: 1.5em;
-}
-
-#documentation .attribute-method-heading {
-       background: url(images/tag_green.png) no-repeat left bottom;
-}
-#documentation #attribute-method-details .method-detail:hover {
-       background-color: transparent;
-       cursor: default;
-}
-#documentation .attribute-access-type {
-       font-size: 60%;
-       text-transform: uppercase;
-       vertical-align: super;
-       padding: 0 2px;
-}
-/* @end */
-
-/* @end */
-
-
-
-/* @group Source Code */
-
-div.method-source-code {
-    background: #262626;
-    color: #efefef;
-    margin: 1em;
-    padding: 0.5em;
-    border: 1px dashed #999;
-    overflow: hidden;
-}
-
-div.method-source-code pre {
-       background: inherit;
-       padding: 0;
-       color: white;
-       overflow: auto;
-}
-
-/* @group Ruby keyword styles */
-
-.ruby-constant   { color: #7fffd4; background: transparent; }
-.ruby-keyword    { color: #00ffff; background: transparent; }
-.ruby-ivar       { color: #eedd82; background: transparent; }
-.ruby-operator   { color: #00ffee; background: transparent; }
-.ruby-identifier { color: #ffdead; background: transparent; }
-.ruby-node       { color: #ffa07a; background: transparent; }
-.ruby-comment    { color: #b22222; font-weight: bold; background: transparent; }
-.ruby-regexp     { color: #ffa07a; background: transparent; }
-.ruby-value      { color: #7fffd4; background: transparent; }
-
-/* @end */
-/* @end */
-
-
-/* @group File Popup Contents */
-
-.file #metadata,
-.file-popup #metadata {
-}
-
-.file-popup dl {
-       font-size: 80%;
-       padding: 0.75em;
-       background-color: #dedede;
-       color: #333;
-       border: 1px solid #bbb;
-       -moz-border-radius: 3px;
-       -webkit-border-radius: 3px;
-}
-.file dt {
-       font-weight: bold;
-       padding-left: 22px;
-       line-height: 20px;
-       background: url(images/page_white_width.png) no-repeat left top;
-}
-.file dt.modified-date {
-       background: url(images/date.png) no-repeat left top;
-}
-.file dt.requires {
-       background: url(images/plugin.png) no-repeat left top;
-}
-.file dt.scs-url {
-       background: url(images/wrench.png) no-repeat left top;
-}
-
-.file dl dd {
-       margin: 0 0 1em 0;
-}
-.file #metadata dl dd ul {
-       list-style: circle;
-       margin-left: 20px;
-       padding-top: 0;
-}
-.file #metadata dl dd ul li {
-}
-
-
-.file h2 {
-       margin-top: 2em;
-       padding: 0.75em 0.5em;
-       background-color: #dedede;
-       color: #333;
-       font-size: 120%;
-       border: 1px solid #bbb;
-       -moz-border-radius: 3px;
-       -webkit-border-radius: 3px;
-}
-
-/* @end */
-
-
-
-
-/* @group ThickBox Styles */
-#TB_window {
-       font: 12px Arial, Helvetica, sans-serif;
-       color: #333333;
-}
-
-#TB_secondLine {
-       font: 10px Arial, Helvetica, sans-serif;
-       color:#666666;
-}
-
-#TB_window :link,
-#TB_window :visited        { color: #666666; }
-#TB_window :link:hover,
-#TB_window :visited:hover  { color: #000;    }
-#TB_window :link:active,
-#TB_window :visited:active { color: #666666; }
-#TB_window :link:focus,
-#TB_window :visited:focus  { color: #666666; }
-
-#TB_overlay {
-       position: fixed;
-       z-index:100;
-       top: 0px;
-       left: 0px;
-       height:100%;
-       width:100%;
-}
-
-.TB_overlayMacFFBGHack {background: url(images/macFFBgHack.png) repeat;}
-.TB_overlayBG {
-       background-color:#000;
-       filter:alpha(opacity=75);
-       -moz-opacity: 0.75;
-       opacity: 0.75;
-}
-
-* html #TB_overlay { /* ie6 hack */
-     position: absolute;
-     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
-}
-
-#TB_window {
-       position: fixed;
-       background: #ffffff;
-       z-index: 102;
-       color:#000000;
-       display:none;
-       border: 4px solid #525252;
-       text-align:left;
-       top:50%;
-       left:50%;
-}
-
-* html #TB_window { /* ie6 hack */
-position: absolute;
-margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
-}
-
-#TB_window img#TB_Image {
-       display:block;
-       margin: 15px 0 0 15px;
-       border-right: 1px solid #ccc;
-       border-bottom: 1px solid #ccc;
-       border-top: 1px solid #666;
-       border-left: 1px solid #666;
-}
-
-#TB_caption{
-       height:25px;
-       padding:7px 30px 10px 25px;
-       float:left;
-}
-
-#TB_closeWindow{
-       height:25px;
-       padding:11px 25px 10px 0;
-       float:right;
-}
-
-#TB_closeAjaxWindow{
-       padding:7px 10px 5px 0;
-       margin-bottom:1px;
-       text-align:right;
-       float:right;
-}
-
-#TB_ajaxWindowTitle{
-       float:left;
-       padding:7px 0 5px 10px;
-       margin-bottom:1px;
-       font-size: 22px;
-}
-
-#TB_title{
-       background-color: #6C8C22;
-       color: #dedede;
-       height:40px;
-}
-#TB_title :link,
-#TB_title :visited {
-       color: white !important;
-       border-bottom: 1px dotted #dedede;
-}
-
-#TB_ajaxContent{
-       clear:both;
-       padding:2px 15px 15px 15px;
-       overflow:auto;
-       text-align:left;
-       line-height:1.4em;
-}
-
-#TB_ajaxContent.TB_modal{
-       padding:15px;
-}
-
-#TB_ajaxContent p{
-       padding:5px 0px 5px 0px;
-}
-
-#TB_load{
-       position: fixed;
-       display:none;
-       height:13px;
-       width:208px;
-       z-index:103;
-       top: 50%;
-       left: 50%;
-       margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
-}
-
-* html #TB_load { /* ie6 hack */
-position: absolute;
-margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
-}
-
-#TB_HideSelect{
-       z-index:99;
-       position:fixed;
-       top: 0;
-       left: 0;
-       background-color:#fff;
-       border:none;
-       filter:alpha(opacity=0);
-       -moz-opacity: 0;
-       opacity: 0;
-       height:100%;
-       width:100%;
-}
-
-* html #TB_HideSelect { /* ie6 hack */
-     position: absolute;
-     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
-}
-
-#TB_iframeContent{
-       clear:both;
-       border:none;
-       margin-bottom:-1px;
-       margin-top:1px;
-       _margin-bottom:1px;
-}
-
-/* @end */
-
-/* @group Debugging Section */
-
-#debugging-toggle {
-       text-align: center;
-}
-#debugging-toggle img {
-       cursor: pointer;
-}
-
-#rdoc-debugging-section-dump {
-       display: none;
-       margin: 0 2em 2em;
-       background: #ccc;
-       border: 1px solid #999;
-}
-
-
-
-/* @end */
diff --git a/code_ruby/Maasha/lib/doc/seq_rb.html b/code_ruby/Maasha/lib/doc/seq_rb.html
deleted file mode 100644 (file)
index 3c50f10..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: seq.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-03-19 16:29:08 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>amatch</li>
-                               
-                                       <li>digest</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2007-2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/doc/sff_rb.html b/code_ruby/Maasha/lib/doc/sff_rb.html
deleted file mode 100644 (file)
index 294f9a0..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-       <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-
-       <title>File: sff.rb [RDoc Documentation]</title>
-
-       <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
-
-       <script src="./js/jquery.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/thickbox-compressed.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/quicksearch.js" type="text/javascript"
-               charset="utf-8"></script>
-       <script src="./js/darkfish.js" type="text/javascript"
-               charset="utf-8"></script>
-</head>
-
-<body class="file file-popup">
-       <div id="metadata">
-               <dl>
-                       <dt class="modified-date">Last Modified</dt>
-                       <dd class="modified-date">2011-02-11 19:55:38 +0100</dd>
-
-                       
-                       <dt class="requires">Requires</dt>
-                       <dd class="requires">
-                               <ul>
-                               
-                                       <li>base36</li>
-                               
-                               </ul>
-                       </dd>
-                       
-
-                       
-               </dl>
-       </div>
-
-       <div id="documentation">
-               
-               <div class="description">
-                       <h2>Description</h2>
-                       <p>
-Copyright (C) 2011 Martin A. Hansen.
-</p>
-
-               </div>
-               
-       </div>
-</body>
-</html>
-
diff --git a/code_ruby/Maasha/lib/fasta.rb b/code_ruby/Maasha/lib/fasta.rb
deleted file mode 100644 (file)
index e972751..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'seq'
-require 'filesys'
-
-# Error class for all exceptions to do with FASTA.
-class FastaError < StandardError; end
-
-class Fasta < Filesys
-  # Method to get the next FASTA entry form an ios and return this
-  # as a Seq object. If no entry is found or eof then nil is returned.
-  def get_entry
-    block = @io.gets($/ + '>')
-    return nil if block.nil?
-
-    block.chomp!($/ + '>')
-
-    (seq_name, seq) = block.split($/, 2)
-
-    raise FastaError, "Bad FASTA format" if seq_name.nil? or seq.nil?
-
-    entry          = Seq.new
-    entry.type     = @type.nil? ? nil : @type.downcase
-    entry.seq      = seq.gsub(/\s/, '')
-    entry.seq_name = seq_name.sub(/^>/, '').rstrip
-
-    raise FastaError, "Bad FASTA format" if entry.seq_name.empty?
-    raise FastaError, "Bad FASTA format" if entry.seq.empty?
-
-    entry
-  end
-
-  # TODO - this should be some custom to_s method instead.
-  def puts(record)
-    if record.has_key? :SEQ_NAME and record.has_key? :SEQ
-      @io.print ">#{record[:SEQ_NAME]}\n"
-      @io.print "#{record[:SEQ]}\n"
-    end
-  end
-end
-
-
-__END__
diff --git a/code_ruby/Maasha/lib/fastq.rb b/code_ruby/Maasha/lib/fastq.rb
deleted file mode 100644 (file)
index a1eb86c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'seq'
-require 'filesys'
-
-# Error class for all exceptions to do with FASTQ.
-class FastqError < StandardError; end
-
-class Fastq < Filesys
-  # Method to get the next FASTQ entry form an ios and return this
-  # as a Seq object. If no entry is found or eof then nil is returned.
-  def get_entry
-    begin
-      seq_name       = @io.gets.chomp!
-      seq            = @io.gets.chomp!
-      qual_name      = @io.gets.chomp!
-      qual           = @io.gets.chomp!
-
-      entry          = Seq.new
-      entry.type     = @type.nil? ? nil : @type.downcase
-      entry.seq      = seq
-      entry.seq_name = seq_name[1 .. seq_name.length]
-      entry.qual     = qual
-
-      entry
-    rescue
-      nil
-    end
-  end
-
-  # TODO - this should be some custom to_s method instead.
-  def puts(record)
-    if record.has_key? :SEQ_NAME and record.has_key? :SEQ
-      @io.print ">#{record[:SEQ_NAME]}\n"
-      @io.print "#{record[:SEQ]}\n"
-    end
-  end
-end
-
-
-__END__
diff --git a/code_ruby/Maasha/lib/filesys.rb b/code_ruby/Maasha/lib/filesys.rb
deleted file mode 100644 (file)
index 9024a58..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'zlib'
-
-# Error class for all exceptions to do with Filesys.
-class FilesysError < StandardError; end
-
-class Filesys
-  include Enumerable
-
-  # Class method that returns a path to a unique temporary file.
-  # If no directory is specified reverts to the systems tmp directory.
-  def self.tmpfile(tmp_dir = ENV["TMPDIR"])
-    time = Time.now.to_i
-    user = ENV["USER"]
-    pid  = $$
-    path = tmp_dir + [user, time + pid, pid].join("_") + ".tmp"
-    path
-  end
-
-  # Class method allowing open to be used on (zipped) files.
-  # See File.open.
-  def self.open(*args)
-    args = *args
-    file = args.first
-
-    if file == "-"
-      ios = self.new(STDIN)
-    elsif File.pipe? file
-      ios = self.new(File.open(*args))
-    else
-      ios = self.zopen(*args)
-    end
-
-    if block_given?
-      begin
-        yield ios
-      ensure
-        ios.close
-      end
-    else
-      return ios
-    end
-  end
-
-  def initialize(io, type=nil)
-    @io   = io
-    @type = type
-  end
-
-  # Method to close ios.
-  def close
-    @io.close
-  end
-
-  # Iterator method for parsing entries.
-  def each
-    while entry = get_entry do
-      yield entry
-    end
-  end
-
-  private
-
-  # Helper method to return an ios to a file that may be zipped in which case
-  # the ios is unzipped on the fly. See File.open.
-  def self.zopen(*args)
-    ios = File.open(*args)
-
-    begin
-      ios = Zlib::GzipReader.new(ios)
-    rescue
-      ios.rewind
-    end
-
-    self.new(ios)
-  end
-end
diff --git a/code_ruby/Maasha/lib/genbank.rb b/code_ruby/Maasha/lib/genbank.rb
deleted file mode 100644 (file)
index bb40d3d..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'seq'
-require 'filesys'
-
-# Error class for all exceptions to do with Genbank.
-class GenbankError < StandardError; end
-
-class Genbank < Filesys
-  def initialize(io)
-    @io      = io
-    @entry   = []
-  end
-
-  # Iterator method for parsing Genbank entries.
-  def each(hash_keys = nil, hash_feats = nil, hash_quals = nil)
-    while @entry = get_entry do
-      keys = get_keys(hash_keys)
-      seq  = get_seq
-
-      features = GenbankFeatures.new(@entry, hash_feats, hash_quals)
-
-      features.each do |record|
-        keys.each_pair { |key,val| record[key] = val }
-
-                               loc = Locator.new(record[:LOCATOR], seq)
-                               record[:SEQ]     = loc.subseq.seq
-        record[:SEQ_LEN] = loc.subseq.length
-                               record[:STRAND]  = loc.strand
-                               record[:S_BEG]   = loc.s_beg
-                               record[:S_END]   = loc.s_end
-
-        yield record
-      end
-    end
-  end
-
-  private
-
-  # Method to get the next Genbank entry form an ios and return this.
-  def get_entry
-    block = @io.gets("//" + $/)
-    return nil if block.nil?
-
-    block.chomp!("//" + $/ )
-
-    entry = block.split $/
-
-    return nil if entry.empty?
-
-    entry
-  end
-
-  # Method to get the DNA sequence from a Genbank entry and return
-  # this as a Seq object.
-  def get_seq
-    i = @entry.size
-    j = i - 1
-
-    while @entry[j] and @entry[j] !~ /^[A-Z]/
-      j -= 1
-    end
-
-    seq = @entry[j + 1 .. i].join.delete(" 0123456789")
-
-    Seq.new(nil, seq, "dna") if seq
-  end
-
-  # Method to get the base keys from Genbank entry and return these
-  # in a hash.
-  def get_keys(hash_keys)
-    keys = {}
-    i    = 0
-    j    = 0
-
-    while @entry[i] and @entry[i] !~ /^FEATURES/
-      if @entry[i] =~ /^\s{0,3}([A-Z]{2})/
-        if want_key?(hash_keys, $1)
-          j = i + 1
-
-          key, val = @entry[i].lstrip.split(/\s+/, 2)
-
-          while @entry[j] and @entry[j] !~ /^\s{0,3}[A-Z]/
-            val << @entry[j].lstrip
-            j += 1
-          end
-
-          if keys[key.to_sym]
-            keys[key.to_sym] << ";" + val
-          else
-            keys[key.to_sym] = val
-          end
-        end
-      end
-
-      j > i ? i = j : i += 1
-    end
-
-    keys
-  end
-
-  def want_key?(hash_keys, key)
-    if hash_keys
-      if hash_keys[key.to_sym]
-        return true
-      else
-        return false
-      end
-    else
-      return true
-    end
-  end
-end
-
-class GenbankFeatures
-  @@i = 0
-  @@j = 0
-
-  def initialize(entry, hash_feats, hash_quals)
-    @entry      = entry
-    @hash_feats = hash_feats
-    @hash_quals = hash_quals
-  end
-
-  def each
-    while @entry[@@i] and @entry[@@i] !~ /^ORIGIN/
-      if @entry[@@i] =~ /^\s{5}([A-Za-z_-]+)/
-        if want_feat? $1
-          record = {}
-
-          feat, loc = @entry[@@i].lstrip.split(/\s+/, 2)
-
-          @@j = @@i + 1
-
-          while @entry[@@j] and @entry[@@j] !~ /^(\s{21}\/|\s{5}[A-Za-z_-]|[A-Z])/
-            loc << @entry[@@j].lstrip
-            @@j += 1
-          end
-
-          get_quals.each_pair { |k,v|
-            record[k.upcase.to_sym] = v
-          }
-
-          record[:FEATURE] = feat
-          record[:LOCATOR] = loc
-
-          yield record
-        end
-      end
-
-      @@j > @@i ? @@i = @@j : @@i += 1
-    end
-  end
-
-  private
-
-  def get_quals
-    quals = {}
-    k     = 0
-
-    while @entry[@@j] and @entry[@@j] !~ /^\s{5}[A-Za-z_-]|^[A-Z]/
-      if @entry[@@j] =~ /^\s{21}\/([^=]+)="([^"]+)/
-        qual = $1
-        val  = $2
-
-        if want_qual? qual
-          k = @@j + 1
-
-          while @entry[k] and @entry[k] !~ /^(\s{21}\/|\s{5}[A-Za-z_-]|[A-Z])/
-            val << @entry[k].lstrip.chomp('"')
-            k += 1
-          end
-
-          if quals[qual]
-            quals[qual] << ";" + val
-          else
-            quals[qual] = val
-          end
-        end
-      end
-
-      k > @@j ? @@j = k : @@j += 1
-    end
-
-    quals
-  end
-
-  def want_feat?(feat)
-    if @hash_feats
-      if @hash_feats[feat.upcase.to_sym]
-        return true
-      else
-        return false
-      end
-    else
-      return true
-    end
-  end
-
-  def want_qual?(qual)
-    if @hash_quals
-      if @hash_quals[qual.upcase.to_sym]
-        return true
-      else
-        return false
-      end
-    else
-      return true
-    end
-  end
-end
-
-
-# Error class for all exceptions to do with Genbank/EMBL/DDBJ feature table locators.
-class LocatorError < StandardError; end
-
-class Locator
-  attr_accessor :locator, :seq, :subseq
-
-  def initialize(locator, seq)
-    @locator = locator
-    @seq     = seq
-    @subseq  = Seq.new(nil, "", "dna")
-    parse_locator(locator)
-  end
-
-  def strand
-    if @locator.match("complement")
-      return "-"
-    else
-      return "+"
-    end
-  end
-
-  def s_beg
-    if @locator =~ /(\d+)/
-      return $1.to_i - 1
-    end
-  end
-
-  def s_end
-    if @locator.reverse =~ /(\d+)/
-      return $1.reverse.to_i - 1
-    end
-  end
-
-  private
-
-  # Method that uses recursion to parse a locator string from a feature
-  # table and fetches the appropriate subsequence. the operators
-  # join(), complement(), and order() are handled.
-  # the locator string is broken into a comma separated lists, and
-  # modified if the parens donnot balance. otherwise the comma separated
-  # list of ranges are stripped from operators, and the subsequence are
-  # fetched and handled according to the operators.
-  # SNP locators are also dealt with (single positions).
-  def parse_locator(locator, join = nil, comp = nil, order = nil)
-    intervals = locator.split(",")
-
-    unless balance_parens?(intervals.first)   # locator includes a join/comp/order of several ranges
-      case locator
-      when /^join\((.*)\)$/
-        locator = $1
-        join     = true
-      when /^complement\((.*)\)$/
-        locator = $1
-        comp     = true
-      when /^order\((.*)\)$/
-        locator = $1
-        order    = true
-      end
-
-      parse_locator(locator, join, comp, order)
-    else
-      intervals.each do |interval|
-        case interval
-        when /^join\((.*)\)$/
-          locator = $1
-          join    = true
-          parse_locator(locator, join, comp, order)
-        when /^complement\((.*)\)$/
-          locator = $1
-          comp    = true
-          parse_locator(locator, join, comp, order)
-        when /^order\((.*)\)$/
-          locator = $1
-          order   = true
-          parse_locator(locator, join, comp, order)
-        when /^[<>]?(\d+)[^\d]+(\d+)$/
-          int_beg = $1.to_i - 1
-          int_end = $2.to_i - 1
-
-          newseq = Seq.new(nil, @seq.seq[int_beg...int_end], "dna")
-
-                                       unless newseq.seq.nil?
-                                               newseq.revcomp if comp
-
-                                               @subseq.seq << (order ? " " + newseq.seq : newseq.seq)
-                                       end
-        when /^(\d+)$/
-          pos = $1.to_i - 1
-
-          newseq = Seq.new(nil, @seq.seq[pos], "dna")
-
-                                       unless newseq.seq.nil?
-               newseq.revcomp if comp 
-
-               @subseq.seq << (order ? " " + newseq.seq : newseq.seq)
-                                       end
-        else
-          $stderr.puts "WARNING: Could not match locator -> #{locator}";
-          @subseq.seq << ""
-        end
-      end
-    end
-
-    return @subseq
-  end
-
-  def balance_parens?(locator)
-    parens = 0
-
-    locator.each_char do |char|
-      case char
-      when '(' then parens += 1
-      when ')' then parens -= 1
-      end
-    end
-
-    if parens == 0
-      return true
-    else
-      return false
-    end
-  end
-end
-
-
-__END__
diff --git a/code_ruby/Maasha/lib/patscan.rb b/code_ruby/Maasha/lib/patscan.rb
deleted file mode 100644 (file)
index e0ae706..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'filesys'
-require 'open3'
-
-# Module containing code to locate nucleotide patterns in sequences allowing for
-# ambiguity codes and a given maximum mismatches, insertions, and deletions. The
-# pattern match engine is based on scan_for_matches.
-module Patscan
-  # ------------------------------------------------------------------------------
-  #   str.scan(pattern[, max_mismatches [, max_insertions [,max_deletions]]])
-  #   -> Array
-  #   str.scan(pattern[, max_mismatches [, max_insertions [,max_deletions]]]) { |match|
-  #     block
-  #   }
-  #   -> Match
-  #
-  # ------------------------------------------------------------------------------
-  # Method to iterate through a sequence to locate pattern matches starting
-  # allowing for a maximum number of mismatches, insertions, and deletions.
-  # Matches found in block context return the Match object. Otherwise matches are
-  # returned in an Array.
-  def scan(pattern, max_mismatches = 0, max_insertions = 0, max_deletions = 0)
-    @pattern = pattern + "[#{max_mismatches},#{max_insertions},#{max_deletions}]"
-    matches  = []
-
-    pattern_file = Filesys.tmpfile
-
-    File.open(pattern_file, mode = 'w') do |ios|
-      ios.puts @pattern
-    end
-
-    cmd = "scan_for_matches #{pattern_file}"
-
-    Open3.popen3(cmd) do |stdin, stdout, stderr|
-      #raise SeqError, "scan_for_matches failed: #{stderr.gets}" unless stderr.empty?
-
-      stdin << ">dummy\n#{self.seq}\n"
-
-      stdin.close
-
-      while block = stdout.gets($/ + ">")
-        if block =~ />dummy:\[(\d+),(\d+)\]\n(.+)/
-          start  = $1.to_i
-          stop   = $2.to_i
-          match  = $3.delete(" ")
-          length = stop - start
-
-          if block_given?
-            yield Match.new(start, length, match)
-          else
-            matches << Match.new(start, length, match)
-          end
-        end
-      end
-    end
-
-    matches unless block_given?
-  end
-
-  class Match
-    attr_reader :pos, :length, :match
-
-    def initialize(pos, length, match)
-      @pos    = pos
-      @length = length
-      @match  = match
-    end
-  end
-end
-
-__END__
-
-
-# Eeeeiiiii - this one is slower than scan_for_matches!
-
-
-# Module containing code to locate nucleotide patterns in sequences allowing for
-# ambiguity codes and a given maximum edit distance. Pattern match engine is based
-# on nrgrep.
-module Patscan
-  # ------------------------------------------------------------------------------
-  #   str.scan(pattern[, max_edit_distance])
-  #   -> Array
-  #   str.scan(pattern[, max_edit_distance]) { |match|
-  #     block
-  #   }
-  #   -> Match
-  #
-  # ------------------------------------------------------------------------------
-  # Method to iterate through a sequence to locate pattern matches starting
-  # from a given position and allowing for a maximum edit distance.
-  # Matches found in block context return the Match object. Otherwise matches are
-  # returned in an Array.
-  def scan(pattern, edit_distance = 0)
-    @pattern = pattern.upcase
-    matches  = []
-
-    pattern_disambiguate
-
-    cmd = "nrgrep_coords"
-    cmd << " -i"
-    cmd << " -k #{edit_distance}s" if edit_distance > 0
-    cmd << " #{@pattern}"
-
-    Open3.popen3(cmd) do |stdin, stdout, stderr|
-      stdin << self.seq
-
-      stdin.close
-
-      stdout.each_line do |line| 
-        if line =~ /\[(\d+), (\d+)\]: (.+)/
-          start = $1.to_i
-          stop  = $2.to_i
-          match = $3
-          length = stop - start
-
-          if block_given?
-            yield Match.new(start, length, match)
-          else
-            matches << Match.new(start, length, match)
-          end
-        end
-      end
-    end
-
-    matches unless block_given?
-  end
-
-  private
-
-  def pattern_disambiguate
-    case self.type
-    when 'protein'
-      @pattern.gsub!('J', '[IFVLWMAGCY]')
-      @pattern.gsub!('O', '[TSHEDQNKR]')
-      @pattern.gsub!('B', '[DN]')
-      @pattern.gsub!('Z', '[EQ]')
-      @pattern.gsub!('X', '.')
-    when 'dna'
-      @pattern.gsub!('R', '[AG]')
-      @pattern.gsub!('Y', '[CT]')
-      @pattern.gsub!('S', '[GC]')
-      @pattern.gsub!('W', '[AT]')
-      @pattern.gsub!('M', '[AC]')
-      @pattern.gsub!('K', '[GT]')
-      @pattern.gsub!('V', '[ACG]')
-      @pattern.gsub!('H', '[ACT]')
-      @pattern.gsub!('D', '[AGT]')
-      @pattern.gsub!('B', '[CGT]')
-      @pattern.gsub!('N', '.')
-    when 'rna'
-    else
-      raise SeqError "unknown sequence type: #{self.type}"
-    end
-  end
-
-  class Match
-    attr_reader :pos, :length, :match
-
-    def initialize(pos, length, match)
-      @pos    = pos
-      @length = length
-      @match  = match
-    end
-  end
-end
-
diff --git a/code_ruby/Maasha/lib/patternmatcher.rb b/code_ruby/Maasha/lib/patternmatcher.rb
deleted file mode 100644 (file)
index 89ffb70..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# IUPAC nucleotide pair ambiguity equivalents are saved in an
-# array of bit fields.
-
-BIT_A = 1 << 0 
-BIT_T = 1 << 1 
-BIT_C = 1 << 2 
-BIT_G = 1 << 3 
-
-EQUAL          = Array.new(256, 0)
-EQUAL['A'.ord] = BIT_A 
-EQUAL['a'.ord] = BIT_A 
-EQUAL['T'.ord] = BIT_T 
-EQUAL['t'.ord] = BIT_T 
-EQUAL['U'.ord] = BIT_T 
-EQUAL['u'.ord] = BIT_T 
-EQUAL['C'.ord] = BIT_C 
-EQUAL['c'.ord] = BIT_C 
-EQUAL['G'.ord] = BIT_G 
-EQUAL['g'.ord] = BIT_G 
-EQUAL['M'.ord] = (BIT_A|BIT_C)
-EQUAL['m'.ord] = (BIT_A|BIT_C)
-EQUAL['R'.ord] = (BIT_A|BIT_G)
-EQUAL['r'.ord] = (BIT_A|BIT_G)
-EQUAL['W'.ord] = (BIT_A|BIT_T)
-EQUAL['w'.ord] = (BIT_A|BIT_T)
-EQUAL['S'.ord] = (BIT_C|BIT_G)
-EQUAL['s'.ord] = (BIT_C|BIT_G)
-EQUAL['Y'.ord] = (BIT_C|BIT_T)
-EQUAL['y'.ord] = (BIT_C|BIT_T)
-EQUAL['K'.ord] = (BIT_G|BIT_T)
-EQUAL['k'.ord] = (BIT_G|BIT_T)
-EQUAL['B'.ord] = (BIT_C|BIT_G|BIT_T)
-EQUAL['b'.ord] = (BIT_C|BIT_G|BIT_T)
-EQUAL['D'.ord] = (BIT_A|BIT_G|BIT_T)
-EQUAL['d'.ord] = (BIT_A|BIT_G|BIT_T)
-EQUAL['H'.ord] = (BIT_A|BIT_C|BIT_T)
-EQUAL['h'.ord] = (BIT_A|BIT_C|BIT_T)
-EQUAL['V'.ord] = (BIT_A|BIT_C|BIT_G)
-EQUAL['v'.ord] = (BIT_A|BIT_C|BIT_G)
-EQUAL['N'.ord] = (BIT_A|BIT_C|BIT_G|BIT_T)
-EQUAL['n'.ord] = (BIT_A|BIT_C|BIT_G|BIT_T)
-
-# Module containing code to locate nucleotide patterns in sequences allowing for
-# ambiguity codes and a given maximum edit distance.
-# Insertions are nucleotides found in the pattern but not in the sequence.
-# Deletions are nucleotides found in the sequence but not in the pattern.
-#
-# Inspired by the paper by Bruno Woltzenlogel Paleo (page 197):
-# http://www.logic.at/people/bruno/Papers/2007-GATE-ESSLLI.pdf
-module PatternMatcher
-  # ------------------------------------------------------------------------------
-  #   str.match(pattern[, pos[, max_edit_distance]])
-  #   -> Match or nil
-  #
-  # ------------------------------------------------------------------------------
-  # Method to locate the next pattern match starting from a given position. A match
-  # is allowed to contain a given maximum edit distance. If a match is located a 
-  # Match object will be returned otherwise nil.
-  def match(pattern, pos = 0, max_edit_distance = 0)
-    @pattern           = pattern
-    @pos               = pos
-    @max_edit_distance = max_edit_distance
-    @vector            = vector_init
-
-    while @pos < @seq.length
-      vector_update
-
-      return match_new if match_found?
-
-      @pos += 1
-    end
-  end
-
-  # ------------------------------------------------------------------------------
-  #   str.scan(pattern[, pos[, max_edit_distance]])
-  #   -> Array
-  #   str.scan(pattern[, pos[, max_edit_distance]]) { |match|
-  #     block
-  #   }
-  #   -> Match
-  #
-  # ------------------------------------------------------------------------------
-  # Method to iterate through a sequence to locate pattern matches starting
-  # from a given position and allowing for a maximum edit distance.
-  # Matches found in block context return the Match object. Otherwise matches are
-  # returned in an Array.
-  def scan(pattern, pos = 0, max_edit_distance = 0)
-    matches = []
-
-    while match = match(pattern, pos, max_edit_distance)
-      if block_given?
-        yield match
-      else
-        matches << match
-      end
-
-      pos = match.pos + 1
-    end
-
-    return matches unless block_given?
-  end
-
-  private
-
-  # Method to initailize the score vector and return this.
-  def vector_init
-    vector = []
-
-    (0 ... @pattern.length + 1).each do |i|
-      vector[i] = Score.new(matches = 0, mismatches = 0, insertions = i)
-    end
-
-    vector
-  end
-
-  # Method to update the score vector.
-  def vector_update
-    score_diag = @vector[0]
-    score_up   = Score.new  # insertion
-    score_left = @vector[1] # deletion
-
-    (0 ... @pattern.length).each do |i|
-      if match?(@seq[@pos], @pattern[i])
-        new_score = score_diag.dup
-        new_score.matches += 1
-      else
-        if deletion?(score_diag, score_up, score_left)
-          new_score = score_left.dup
-          new_score.deletions += 1
-        elsif mismatch?(score_diag, score_up, score_left)
-          new_score = score_diag.dup
-          new_score.mismatches += 1
-        elsif insertion?(score_diag, score_up, score_left)
-          new_score = score_up.dup
-          new_score.insertions += 1
-        end
-      end
-
-      score_diag = @vector[i + 1]
-      score_up   = new_score
-      score_left = @vector[i + 2]
-
-      @vector[i + 1] = new_score
-    end
-  end
-
-  # Method to determine if a match occurred.
-  def match?(char1, char2)
-    (EQUAL[char1.ord] & EQUAL[char2.ord]) != 0
-  end
-
-  # Method to determine if a mismatch occured.
-  def mismatch?(score_diag, score_up, score_left)
-    if score_diag.edit_distance <= score_up.edit_distance and
-       score_diag.edit_distance <= score_left.edit_distance
-      true
-    end
-  end
-
-  # Method to determine if an insertion occured.
-  def insertion?(score_diag, score_up, score_left)
-    if score_up.edit_distance <= score_diag.edit_distance and
-       score_up.edit_distance <= score_left.edit_distance
-      true
-    end
-  end
-
-  # Method to determine if a deletion occured.
-  def deletion?(score_diag, score_up, score_left)
-    if score_left.edit_distance <= score_diag.edit_distance and
-       score_left.edit_distance <= score_up.edit_distance
-      true
-    end
-  end
-
-  # Method to print the score vector.
-  def vector_print
-    @vector.each do |s|
-      puts s
-    end
-
-    puts
-  end
-
-  # Method that returns a Match object initialized with
-  # information from the score vector.
-  def match_new
-    matches    = @vector.last.matches
-    mismatches = @vector.last.mismatches
-    insertions = @vector.last.insertions
-    deletions  = @vector.last.deletions
-    length     = @pattern.length - insertions + deletions
-    pos        = @pos - length + 1
-    match      = @seq[pos ... pos + length]
-
-    Match.new(pos, match, matches, mismatches, insertions, deletions, length)
-  end
-
-  # Method that determines if a match was found by analyzing the score vector.
-  def match_found?
-    if @vector.last.edit_distance <= @max_edit_distance
-      true
-    end
-  end
-
-  # Class to instantiate Score objects that holds score information.
-  class Score
-    attr_accessor :matches, :mismatches, :insertions, :deletions
-
-    def initialize(matches = 0, mismatches = 0, insertions = 0, deletions = 0)
-      @matches    = matches
-      @mismatches = mismatches
-      @insertions = insertions
-      @deletions  = deletions
-    end
-
-    # Method to calculate and return the edit distance.
-    def edit_distance
-      self.mismatches + self.insertions + self.deletions
-    end
-
-    private    
-
-    def to_s
-      "(#{[self.matches, self.mismatches, self.insertions, self.deletions].join(',')})"
-    end
-  end
-
-  # Class for creating Match objects which contain the description of a
-  # match between a nucleotide sequence and a pattern.
-  class Match
-    attr_reader :pos, :match, :matches, :mismatches, :insertions, :deletions, :edit_distance, :length
-
-    def initialize(pos, match, matches, mismatches, insertions, deletions, length)
-      @pos           = pos
-      @match         = match
-      @matches       = matches
-      @mismatches    = mismatches
-      @insertions    = insertions
-      @deletions     = deletions
-      @edit_distance = mismatches + insertions + deletions
-      @length        = length
-    end
-  end
-end
diff --git a/code_ruby/Maasha/lib/prodigal.rb b/code_ruby/Maasha/lib/prodigal.rb
deleted file mode 100644 (file)
index 9ddbf79..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (C) 2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'genbank'
-
-# Class for running the Prodigal gene finder.
-# http://prodigal.ornl.gov/
-class Prodigal
-  include Enumerable
-
-  # Method to initialize a Prodigal object
-  # given a temporary infile, outfile and options hash.
-  def initialize(infile, outfile, options)
-    @infile  = infile
-    @outfile = outfile
-    @options = options
-  end
-
-  # Method to run Prodigal.
-  def run
-    commands = []
-    commands << "prodigal"
-    commands << "-c" if @options[:full]
-    commands << "-p #{@options[:procedure]}"
-    commands << "-i #{@infile}"
-    commands << "-o #{@outfile}"
-
-    execute(commands, @options[:verbose])
-  end
-
-  # Method for iterating over the Prodigal results,
-  # which are in GenBank format.
-  def each
-    Genbank.open(@outfile, mode='r') do |gb|
-      gb.each do |entry|
-        yield entry
-      end
-    end
-  end
-
-  # Method that returns the sum of the predicted gene lengths.
-  def coverage
-    coverage = 0
-
-    self.each do |gb|
-      coverage += gb[:S_END] - gb[:S_BEG]
-    end
-
-    coverage
-  end
-
-  private
-
-  # Method to execute commands on the command line.
-  # TODO this wants to be in a module on its own.
-  def execute(commands, verbose = false)
-    commands.unshift "nice -n 19"
-    commands.push "> /dev/null 2>&1" unless verbose
-
-    command = commands.join(" ")
-
-    begin
-      system(command)
-      raise "Command failed: #{command}" unless $?.success?
-    rescue
-      $stderr.puts "Command failed: #{command}"
-    end
-  end
-end
-
-
-__END__
diff --git a/code_ruby/Maasha/lib/seq.rb b/code_ruby/Maasha/lib/seq.rb
deleted file mode 100644 (file)
index 1227ac4..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-# Copyright (C) 2007-2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'digest'
-#require 'patscan'
-require 'patternmatcher'
-
-# Residue alphabets
-DNA     = %w[a t c g]
-RNA     = %w[a u c g]
-PROTEIN = %w[f l s y c w p h q r i m t n k v a d e g]
-INDELS  = %w[. - _ ~]
-
-# Quality scores bases
-SCORE_PHRED    = 33
-SCORE_ILLUMINA = 64
-
-# Error class for all exceptions to do with Seq.
-class SeqError < StandardError; end
-
-class Seq
-  #include Patscan
-  include PatternMatcher
-
-  attr_accessor :seq_name, :seq, :type, :qual
-
-  # Method that generates all possible oligos of a specifed length and type.
-  def self.generate_oligos(length, type)
-    raise SeqError, "Cannot generate negative oligo length: #{length}" if length <= 0
-
-    case type.downcase
-    when /dna/     then alph = DNA
-    when /rna/     then alph = RNA
-    when /protein/ then alph = PROTEIN
-    else
-      raise SeqError, "Unknown sequence type: #{type}"
-    end
-
-    oligos = [""]
-
-    (1 .. length).each do
-      list = []
-
-      oligos.each do |oligo|
-        alph.each do |char|
-          list << oligo + char
-        end
-      end
-
-      oligos = list
-    end
-
-    oligos
-  end
-
-  # Initialize a sequence object with the following arguments:
-  # - seq_name: Name of the sequence.
-  # - seq: The sequence.
-  # - type: The sequence type - DNA, RNA, or protein
-  # - qual: An Illumina type quality scores string.
-  def initialize(seq_name = nil, seq = nil, type = nil, qual = nil)
-    @seq_name = seq_name
-    @seq      = seq
-    @type     = type
-    @qual     = qual
-  end
-
-  # Returns the length of a sequence.
-  def length
-    self.seq.nil? ? 0 : self.seq.length
-  end
-
-  alias :len :length
-
-  # Return the number indels in a sequence.
-  def indels
-    regex = Regexp.new(/[#{Regexp.escape(INDELS.join(""))}]/)
-    self.seq.scan(regex).size
-  end
-
-  # Method that returns true is a given sequence type is DNA.
-  def is_dna?
-    self.type == 'dna'
-  end
-
-  # Method that returns true is a given sequence type is RNA.
-  def is_rna?
-    self.type == 'rna'
-  end
-
-  # Method that returns true is a given sequence type is protein.
-  def is_protein?
-    self.type == 'protein'
-  end
-
-  # Method to transcribe DNA to RNA.
-  def to_rna
-    raise SeqError, "Cannot transcribe 0 length sequence" if self.length == 0
-    raise SeqError, "Cannot transcribe sequence type: #{self.type}" unless self.is_dna?
-    self.type = 'rna'
-    self.seq.tr!('Tt','Uu')
-  end
-
-  # Method to reverse-transcribe RNA to DNA.
-  def to_dna
-    raise SeqError, "Cannot reverse-transcribe 0 length sequence" if self.length == 0
-    raise SeqError, "Cannot reverse-transcribe sequence type: #{self.type}" unless self.is_rna?
-
-    self.type = 'dna'
-    self.seq.tr!('Uu','Tt')
-  end
-
-  # Method that given a Seq entry returns a Biopieces record (a hash).
-  def to_bp
-    raise SeqError, "Missing seq_name" if self.seq_name.nil?
-    raise SeqError, "Missing seq"      if self.seq.nil?
-
-    record             = {}
-    record[:SEQ_NAME] = self.seq_name
-    record[:SEQ]      = self.seq
-    record[:SEQ_LEN]  = self.length
-    record[:SCORES]   = self.qual if self.qual
-    record
-  end
-
-  # Method that given a Seq entry returns a FASTA entry (a string).
-  def to_fasta(wrap = nil)
-    raise SeqError, "Missing seq_name" if self.seq_name.nil?
-    raise SeqError, "Missing seq"      if self.seq.nil?
-
-    seq_name = self.seq_name
-    seq      = self.seq
-
-    unless wrap.nil?
-      seq.gsub!(/(.{#{wrap}})/) do |match|
-        match << "\n"
-      end
-
-      seq.chomp!
-    end
-
-    ">#{seq_name}\n#{seq}\n"
-  end
-
-  # Method that generates a unique key for a
-  # DNA sequence and return this key as a Fixnum.
-  def to_key
-    key = 0
-    
-    self.seq.upcase.each_char do |char|
-      key <<= 2
-      
-      case char
-      when 'A' then key |= 0
-      when 'C' then key |= 1
-      when 'G' then key |= 2
-      when 'T' then key |= 3
-      else raise SeqError, "Bad residue: #{char}"
-      end
-    end
-    
-    key
-  end
-
-  # Method to reverse complement sequence.
-  def reverse_complement
-    self.reverse
-    self.complement
-  end
-
-  alias :revcomp :reverse_complement
-
-  # Method to reverse the sequence.
-  def reverse
-    self.seq.reverse!
-  end
-
-  # Method that complements sequence including ambiguity codes.
-  def complement
-    raise SeqError, "Cannot complement 0 length sequence" if self.length == 0
-
-    if self.is_dna?
-      self.seq.tr!( 'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn', 'TCGAAYRWSKMDHBVNtcgaayrwskmdhbvn' )
-    elsif self.is_rna?
-      self.seq.tr!( 'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn', 'UCGAAYRWSKMDHBVNucgaayrwskmdhbvn' )
-    else
-      raise SeqError, "Cannot complement sequence type: #{self.type}"
-    end
-  end
-
-  # Method that generates a random sequence of a given length and type.
-  def generate(length, type)
-    raise SeqError, "Cannot generate sequence length < 1: #{length}" if length <= 0
-
-    case type.downcase
-    when "dna"
-      alph = DNA
-    when "rna"
-      alph = RNA
-    when "protein"
-      alph = PROTEIN
-    else
-      raise SeqError, "Unknown sequence type: #{type}"
-    end
-
-    seq_new   = Array.new(length) { alph[rand(alph.size)] }.join("")
-    self.seq  = seq_new
-    self.type = type.downcase
-    seq_new
-  end
-
-  # Method that returns a subsequence of from a given start position
-  # and of a given length.
-  def subseq(start, length = self.length - start)
-    raise SeqError, "subsequence start: #{start} < 0"                                                if start  < 0
-    raise SeqError, "subsequence length: #{length} < 1"                                              if length <= 0
-    raise SeqError, "subsequence start + length > Seq.length: #{start} + #{length} > #{self.length}" if start + length > self.length
-
-    stop = start + length - 1
-
-    seq  = self.seq[start .. stop]
-    qual = self.qual[start .. stop] unless self.qual.nil?
-
-    Seq.new(self.seq_name, seq, self.type, qual)
-  end
-
-  # Method that replaces a sequence with a subsequence from a given start position
-  # and of a given length.
-  def subseq!(start, length = self.length - start)
-    raise SeqError, "subsequence start: #{start} < 0"                                                if start  < 0
-    raise SeqError, "subsequence length: #{length} < 1"                                              if length <= 0
-    raise SeqError, "subsequence start + length > Seq.length: #{start} + #{length} > #{self.length}" if start + length > self.length
-
-    stop = start + length - 1
-
-    self.seq  = self.seq[start .. stop]
-    self.qual = self.qual[start .. stop] unless self.qual.nil?
-  end
-
-  # Method that returns a subsequence of a given length
-  # beginning at a random position.
-  def subseq_rand(length)
-    if self.length - length + 1 == 0
-      start = 0
-    else
-      start = rand(self.length - length + 1)
-    end
-
-    self.subseq(start, length)
-  end
-
-  # Method that returns the residue compositions of a sequence in
-  # a hash where the key is the residue and the value is the residue
-  # count.
-  def composition
-    comp = Hash.new(0);
-
-    self.seq.upcase.each_char do |char|
-      comp[char] += 1
-    end
-
-    comp
-  end
-
-  # Method that returns the length of the longest homopolymeric stretch
-  # found in a sequence.
-  def homopol_max(min = 1)
-    return 0 if self.seq.nil? or self.seq.empty?
-
-    found = false
-
-    self.seq.upcase.scan(/A{#{min},}|T{#{min},}|G{#{min},}|C{#{min},}|N{#{min},}/) do |match|
-      found = true
-      min   = match.size > min ? match.size : min
-    end
-
-    return 0 unless found
-    min
-  end
-
-  # Method that returns the percentage of hard masked residues
-  # or N's in a sequence.
-  def hard_mask
-    ((self.seq.upcase.scan("N").size.to_f / (self.len - self.indels).to_f) * 100).round(2)
-  end
-
-  # Method that returns the percentage of soft masked residues
-  # or lower cased residues in a sequence.
-  def soft_mask
-    ((self.seq.scan(/[a-z]/).size.to_f / (self.len - self.indels).to_f) * 100).round(2)
-  end
-
-  # Method to convert the quality scores from a specified base
-  # to another base.
-  def convert_phred2illumina!
-    self.qual.gsub!(/./) do |score|
-      score_phred  = score.ord - SCORE_PHRED
-      raise SeqError, "Bad Phred score: #{score} (#{score_phred})" unless (0 .. 40).include? score_phred
-      score_illumina = score_phred + SCORE_ILLUMINA
-      score          = score_illumina.chr
-    end
-  end
-
-  # Method to convert the quality scores from Solexa odd/ratio to
-  # Illumina format.
-  def convert_solexa2illumina!
-    self.qual.gsub!(/./) do |score|
-      score = solexa_char2illumina_char(score)
-    end
-  end
-
-  private
-
-  # Method to convert a Solexa score (odd ratio) to
-  # a phred (probability) integer score.
-  def solexa2phred(score)
-    (10.0 * Math.log(10.0 ** (score / 10.0) + 1.0, 10)).to_i
-  end
-
-  # Method to convert a Solexa score encoded using base
-  # 64 ASCII to a Phred score encoded using base 64 ASCII.
-  def solexa_char2illumina_char(char)
-    score_solexa = char.ord - 64
-    score_phred  = solexa2phred(score_solexa)
-    (score_phred + 64).chr
-  end
-end
-
-__END__
diff --git a/code_ruby/Maasha/lib/sff.rb b/code_ruby/Maasha/lib/sff.rb
deleted file mode 100644 (file)
index a3497f0..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-# Copyright (C) 2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'base36'
-
-# Error class for all exceptions to do with SFF.
-class SFFError < StandardError; end
-
-BIT_SHIFT = 12
-BIT_MASK  = (1 << BIT_SHIFT) - 1
-
-# Class containing methods to parse SFF files:
-# http://www.ncbi.nlm.nih.gov/Traces/trace.cgi?cmd=show&f=formats&m=doc&s=format#sff
-class SFF
-  include Enumerable
-
-  @@count = 0
-
-  # Class method for opening SFF files.
-  def self.open(*args)
-    ios = File.open(*args)
-
-    if block_given?
-      begin
-        yield self.new(ios)
-      ensure
-        ios.close
-      end
-    else
-      return self.new(ios)
-    end
-  end
-
-  # Method to initialize an SFF object along with
-  # instance variables pertaining to the SFF header
-  # section.
-  def initialize(io)
-    @io                       = io
-    @magic_number             = 0
-    @version                  = ""
-    @index_offset             = 0
-    @index_length             = 0
-    @number_of_reads          = 0
-    @header_length            = 0
-    @key_length               = 0
-    @number_of_flows_per_read = 0
-    @flowgram_format_code     = 0
-    @flow_chars               = ""
-    @key_sequence             = ""
-    @eight_byte_padding       = 0
-
-    header_parse
-  end
-
-  # Method to close ios.
-  def close
-    @io.close
-  end
-
-  # Method to iterate over each SFF entry.
-  def each
-    while (read = read_parse) do
-      yield read
-    end
-
-    self   # conventionally
-  end
-
-  private
-
-  # Method to parse the SFF file's header section
-  # and load the information into the instance variables.
-  def header_parse
-    template     = "NC4N2NNnnnC"
-    bits_in_uint = 32
-
-    data = @io.read(31).unpack(template)
-    
-    @magic_number             = data[0]
-    @version                  = data[1 .. 4].join ""
-    @index_offset             = (data[5] << bits_in_uint) | data[6]
-    @index_length             = data[7]
-    @number_of_reads          = data[8]
-    @header_length            = data[9]
-    @key_length               = data[10]
-    @number_of_flows_per_read = data[11]
-    @flowgram_format_code     = data[12]
-    @flow_chars               = @io.read(@number_of_flows_per_read).unpack("A*").join ""
-    @key_sequence             = @io.read(@key_length).unpack("A*").join ""
-
-    fast_forward
-
-    check_magic_number
-    check_version
-    check_header_length
-  end
-
-  # Method that reads the eight_byte_padding field found at the end of the
-  # data section and fast forwards, i.e. move the file read pointer,
-  # so that the length of the section is divisible by 8.
-  def fast_forward
-    eight_byte_padding = 8 - (@io.pos % 8)
-
-    @io.read(eight_byte_padding) unless eight_byte_padding == 8
-  end
-
-  # Method to parse a read section of an SFF file.
-  def read_parse
-    return nil if @number_of_reads == @@count
-
-    template = "nnNnnnn"
-
-    read = Read.new()
-
-    data = @io.read(16).unpack(template)
-
-    read.read_header_length  = data[0]
-    read.name_length         = data[1]
-    read.number_of_bases     = data[2]
-    read.clip_qual_left      = data[3]
-    read.clip_qual_right     = data[4]
-    read.clip_adapter_left   = data[5]
-    read.clip_adaptor_right  = data[6]
-    read.name                = @io.read(read.name_length).unpack("A*").join ""
-
-    fast_forward
-
-    @io.read(2 * @number_of_flows_per_read) # skip through flowgram_values
-    @io.read(read.number_of_bases)          # skip through flow_index_per_base
-
-    # NB! Parsing of flowgram_values and flow_index_per_base is currently disabled since these are not needed.
-    # read.flowgram_values     = @io.read(2 * @number_of_flows_per_read).unpack("n*").map { |val| val = sprintf("%.2f", val * 0.01) }
-    # flow_index_per_base      = @io.read(read.number_of_bases).unpack("C*")
-    # (1 ... flow_index_per_base.length).each { |i| flow_index_per_base[i] += flow_index_per_base[i - 1] }
-    # read.flow_index_per_base = flow_index_per_base
-
-    read.bases               = @io.read(read.number_of_bases).unpack("A*").join ""
-    read.quality_scores      = @io.read(read.number_of_bases).unpack("C*")
-
-    fast_forward
-
-    @@count += 1
-
-    read
-  end
-
-  # Method to check the magic number of an SFF file.
-  # Raises an error if the magic number don't match.
-  def check_magic_number
-    raise SFFError, "Badly formatted SFF file." unless @magic_number == 779314790
-  end
-
-  # Method to check the version number of an SFF file.
-  # Raises an error if the version don't match.
-  def check_version
-    raise SFFError, "Wrong version: #{@version}" unless @version.to_i == 1
-  end
-
-  # Method to check the header length of an SFF file.
-  # Raises an error if the header length don't match
-  # the file position after reading the header section.
-  def check_header_length
-    raise SFFError, "Bad header length: #{header_length}" unless @io.pos == @header_length
-  end
-end
-
-# Class containing data accessor methods for an SFF entry and methods
-# for manipulating this entry.
-class Read
-  attr_accessor :read_header_length, :name_length, :number_of_bases,   
-    :clip_qual_left, :clip_qual_right, :clip_adapter_left, :clip_adaptor_right,
-    :name, :flowgram_values, :flow_index_per_base, :bases, :quality_scores,
-    :x_pos, :y_pos
-
-  # Method that converts a Read object's data to a Biopiece record (a hash).
-  def to_bp
-    coordinates_get
-
-    hash = {}
-
-    hash[:SEQ_NAME]           = self.name
-    hash[:SEQ]                = self.bases
-    hash[:SEQ_LEN]            = self.bases.length
-    hash[:CLIP_QUAL_LEFT]     = self.clip_qual_left     - 1
-    hash[:CLIP_QUAL_RIGHT]    = self.clip_qual_right    - 1
-    hash[:CLIP_ADAPTOR_LEFT]  = self.clip_adapter_left  - 1
-    hash[:CLIP_ADAPTOR_RIGHT] = self.clip_adaptor_right - 1
-    hash[:SCORES]             = self.quality_scores.map { |i| (i += 64).chr }.join ""
-    hash[:X_POS]              = self.x_pos
-    hash[:Y_POS]              = self.y_pos
-
-    hash
-  end
-
-  # Method that soft masks the sequence (i.e. lowercases sequence) according to
-  # clip_qual_left and clip_qual_right information.
-  def mask
-    left   = self.bases[0 ... self.clip_qual_left - 1].downcase
-    middle = self.bases[self.clip_qual_left - 1 ... self.clip_qual_right]
-    right  = self.bases[self.clip_qual_right ... self.bases.length].downcase
-
-    self.bases = left + middle + right
-  end
-
-  # Method that clips sequence (i.e. trims) according to
-  # clip_qual_left and clip_qual_right information.
-  def clip
-    self.bases          = self.bases[self.clip_qual_left - 1 ... self.clip_qual_right]
-    self.quality_scores = self.quality_scores[self.clip_qual_left - 1 ... self.clip_qual_right]
-  end
-
-  private
-
-  # Method that extracts the X/Y coordinates from
-  # an SFF read name encoded with base36.
-  def coordinates_get
-    base36 = self.name[-5, 5]
-    num    = Base36.decode(base36)
-
-    self.x_pos = num >> BIT_SHIFT
-    self.y_pos = num &  BIT_MASK
-  end
-end
-
-__END__
-
diff --git a/code_ruby/Maasha/test/test_base36.rb b/code_ruby/Maasha/test/test_base36.rb
deleted file mode 100755 (executable)
index c966900..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env ruby
-$:.unshift File.join(File.dirname(__FILE__),'..','lib')
-
-# Copyright (C) 2011 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'test/unit'
-require 'base36'
-require 'pp'
-
-class Base36Test < Test::Unit::TestCase
-  def test_Base36_encode_with_non_fixnum_value_raises
-    assert_raise(Base36Error) { Base36.encode("foo") }
-  end
-
-  def test_Base36_encode_returns_correctly
-    assert_equal("AWVHI", Base36.encode(1053908))
-  end
-
-  def test_Base36_decode_with_empty_value_raises
-    assert_raise(Base36Error) { Base36.decode("") }
-  end
-
-  def test_Base36_decode_returns_correctly
-    assert_equal(1053908, Base36.decode("AWVHI"))
-  end
-end
diff --git a/code_ruby/Maasha/test/test_biopieces.rb b/code_ruby/Maasha/test/test_biopieces.rb
deleted file mode 100755 (executable)
index be702b5..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-#!/usr/bin/env ruby
-$:.unshift File.join(File.dirname(__FILE__),'..','lib')
-
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'test/unit'
-require 'biopieces'
-require 'pp'
-
-TYPES       = %w[flag string list int uint float file file! files files! dir dir! genome]
-DUMMY_FILE  = __FILE__
-SCRIPT_PATH = "write_fasta"
-
-class BiopiecesTest < Test::Unit::TestCase
-
-  def setup
-    @input  = StringIO.new
-    @output = StringIO.new
-    @bp     = Biopieces.new(true, @input, @output)
-  end
-
-  # >>>>>>>>>>>>>>>>>>>> Testing Options.new <<<<<<<<<<<<<<<<<<<<
-
-  def test_Biopieces_parse_with_all_cast_keys_dont_raise
-    argv  = []
-    casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_illegal_long_cast_values_raises
-    [nil, true, false, 1, 0, "a"].each do |long|
-      argv  = []
-      casts = [{:long=>long, :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_legal_long_cast_values_dont_raise
-    ["foo", "!!", "0123"].each do |long|
-      argv  = []
-      casts = [{:long=>long, :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_illegal_short_cast_values_raises
-    [nil, true, false, "foo"].each do |short|
-      argv  = []
-      casts = [{:long=>"foo", :short=>short, :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_legal_short_cast_values_dont_raise
-    ["!", "1", "a"].each do |short|
-      argv  = []
-      casts = [{:long=>"foo", :short=>short, :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_illegal_type_cast_values_raises
-    [nil, true, false, "foo", 12, 0].each do |type|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>type, :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_legal_type_cast_values_dont_raise
-    TYPES.each do |type|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>type, :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_illegal_mandatory_cast_values_raises
-    ["yes", 12, 0, nil].each do |mandatory|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>mandatory, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_legal_mandatory_cast_values_dont_raise
-    [true, false].each do |mandatory|
-      argv  = [ "--foo", "1" ]
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>mandatory, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_illegal_default_cast_values_raises
-    [true, false, [], {}].each do |default|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>default, :allowed=>nil, :disallowed=>nil}]
-      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_legal_default_cast_values_dont_raise
-    [nil, 0, 1, -1].each do |default|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>default, :allowed=>nil, :disallowed=>nil}]
-      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_illegal_allowed_cast_values_raises
-    [true, false, {}, [], 0, 0.1].each do |allowed|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>allowed, :disallowed=>nil}]
-      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_legal_allowed_cast_values_dont_raise
-    ["foo,bar,0",nil].each do |allowed|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>allowed, :disallowed=>nil}]
-      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_illegal_disallowed_cast_values_raises
-    [true, false, {}, [], 0, 0.1].each do |disallowed|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>disallowed}]
-      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_legal_disallowed_cast_values_dont_raise
-    ["foo,bar,0",nil].each do |disallowed|
-      argv  = []
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>disallowed}]
-      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_duplicate_long_cast_values_raises
-    argv  = []
-    casts = []
-    casts << {:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    casts << {:long=>"foo", :short=>"b", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_duplicate_short_cast_values_raises
-    argv  = []
-    casts = []
-    casts << {:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    casts << {:long=>"bar", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_without_duplicate_long_and_short_cast_values_dont_raise
-    argv  = []
-    casts = []
-    casts << {:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    casts << {:long=>"bar", :short=>"b", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-    assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  # >>>>>>>>>>>>>>>>>>>> Testing Options.parse <<<<<<<<<<<<<<<<<<<<
-
-  def test_Biopieces_parse_with_empty_argv_and_missing_wiki_file_raises
-    argv  = []
-    casts = []
-    assert_raise(RuntimeError) { @bp.parse(argv,casts, "foo") }
-  end
-
-  def test_Biopieces_parse_with_empty_argv_and_existing_wiki_file_dont_raise
-    argv  = []
-    casts = []
-    assert_nothing_raised { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_help_in_argv_and_existing_wiki_output_long_usage
-    argv = ["--help"]
-    assert_nothing_raised { @bp.parse(argv,[],SCRIPT_PATH) }
-  end
-
-#  # FIXME This one fails because any argument to a flag is ignored and the flag value is set to true. Should it raise?
-#  test "Options.parse with type cast flag with an argument raises
-#    casts = [{:long=>"foo", :short=>"f", :type=>"flag", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-#    opt_parser = Options.new(casts)
-#    assert_raise(ArgumentError) { opt_parser.parse(["--foo", "bar"],SCRIPT_PATH) }
-#   end
-
-  def test_Biopieces_parse_with_stream_in_argv_returns_correct_options
-    argv = ["--stream_in", DUMMY_FILE]
-    options = @bp.parse(argv,[],SCRIPT_PATH)
-    assert_equal([DUMMY_FILE], options[:stream_in])
-  end
-
-  def test_Biopieces_parse_with_I_argv_returns_correct_options
-    argv    = ["-I", DUMMY_FILE]
-    casts   = []
-    options = @bp.parse(argv, casts, SCRIPT_PATH)
-    assert_equal([DUMMY_FILE], options[:stream_in])
-  end
-
-  def test_Biopieces_parse_use_cast_default_value_if_no_argument_given
-    argv    = ["-I", DUMMY_FILE]
-    casts   = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>"bar", :allowed=>nil, :disallowed=>nil}]
-    options = @bp.parse(argv, casts, SCRIPT_PATH)
-    assert_equal(options[:foo], "bar")
-  end
-
-  def test_Biopieces_parse_dont_use_default_value_if_argument_given
-    argv    = ["--foo", "bleh", "-I", DUMMY_FILE]
-    casts   = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>"bar", :allowed=>nil, :disallowed=>nil}]
-    options = @bp.parse(argv, casts, SCRIPT_PATH)
-    assert_equal(options[:foo], "bleh".to_sym)
-  end
-
-  def test_Biopieces_parse_with_mandatory_cast_and_no_argument_raises
-    argv  = ["-I", DUMMY_FILE]
-    casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_raise(ArgumentError) { @bp.parse(argv,casts,SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_mandatory_cast_and_argument_dont_raise
-    argv  = ["--foo", "bar", "-I", DUMMY_FILE]
-    casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_nothing_raised(ArgumentError) { @bp.parse(argv,casts,SCRIPT_PATH) }
-  end
-
-#  # This one results in an error: "OptionParser::InvalidArgument: invalid argument: --foo bar"
-#  # So it appears that this is tested in OptionParser already.
-#  test "Options.parse with type cast int and non-int value raises" do
-#    ["bar" ].each do |val| # what about nil, false, true, [], {}, 0.1 ?
-#      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-#      opt_parser = Options.new(casts)
-#      assert_raise(ArgumentError) { opt_parser.parse(["--foo", "#{val}"],SCRIPT_PATH) }
-#    end
-#  end
-
-  def test_Biopieces_parse_with_type_cast_int_dont_raise
-    [0,-1,1,327649123746293746374276347824].each do |val|
-      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
-      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_nothing_raised(ArgumentError) { @bp.parse(argv,casts,SCRIPT_PATH) }
-    end
-  end
-
-  # TODO similar test for uint as "test "Options.parse with type cast int and non-int value raises" do"
-
-  def test_Biopieces_parse_with_type_cast_uint_dont_raise
-    [0,1,327649123746293746374276347824].each do |val|
-      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
-      casts = [{:long=>"foo", :short=>"f", :type=>"uint", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-      assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_file_cast_and_file_dont_exists_raises
-    argv  = ["--foo", "bleh", "-I", DUMMY_FILE]
-    casts = [{:long=>"foo", :short=>"f", :type=>"file!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_file_cast_and_existing_file_dont_raise
-    argv  = ["--foo", DUMMY_FILE, "-I", DUMMY_FILE]
-    casts = [{:long=>"foo", :short=>"f", :type=>"file!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_files_cast_and_a_file_dont_exists_raises
-    argv  = ["--foo", DUMMY_FILE + ",bleh", "-I", DUMMY_FILE]
-    casts = [{:long=>"foo", :short=>"f", :type=>"files!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_files_cast_and_files_exists_dont_raise
-    argv  = ["--foo", DUMMY_FILE + "," + DUMMY_FILE, "-I", DUMMY_FILE]
-    casts = [{:long=>"foo", :short=>"f", :type=>"files!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  # TODO replace the absolute part below the file location with File.dirname(__FILE__)
-  def test_Biopieces_parse_with_glob_argument_expands_correctly
-    flunk("This test is weird")
-    argv    = ["--foo", "/Users/maasha/unit_test/foo*,/Users/maasha/unit_test/my_dir/*.fna", "-I", DUMMY_FILE]
-    casts   = [{:long=>"foo", :short=>"f", :type=>"files!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    options = @bp.parse(argv, casts, SCRIPT_PATH)
-    assert_equal(["/Users/maasha/unit_test/foo.fna", "/Users/maasha/unit_test/my_dir/bar.fna"], options[:foo])
-  end
-
-  def test_Biopieces_parse_with_dir_cast_and_dir_dont_exists_raises
-    argv  = ["--foo", "bleh", "-I", DUMMY_FILE]
-    casts = [{:long=>"foo", :short=>"f", :type=>"dir!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_dir_cast_and_dir_exists_dont_raise
-    argv  = ["--foo", "/", "-I", DUMMY_FILE]
-    casts = [{:long=>"foo", :short=>"f", :type=>"dir!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
-    assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-  end
-
-  def test_Biopieces_parse_with_allowed_cast_and_not_allowed_value_raises
-    ["bleh", "2", "3.3"].each do |val|
-      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
-      casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>nil, :allowed=>"0,-1,0.0,1,bar", :disallowed=>nil}]
-      assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_allowed_cast_and_allowed_values_dont_raise
-    ["0", "-1", "0.0", "1", "bar"].each do |val|
-      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
-      casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>nil, :allowed=>"0,-1,0.0,1,bar", :disallowed=>nil}]
-      assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_disallowed_cast_and_disallowed_value_raises
-    ["0", "-1", "0.0", "1", "bar"].each do |val|
-      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
-      casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>"0,-1,0.0,1,bar"}]
-      assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-
-  def test_Biopieces_parse_with_disallowed_cast_and_allowed_values_dont_raise
-    ["bleh", "2", "3.3"].each do |val|
-      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
-      casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>"0,-1,0.0,1,bar"}]
-      assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
-    end
-  end
-end
diff --git a/code_ruby/Maasha/test/test_bitarray.rb b/code_ruby/Maasha/test/test_bitarray.rb
deleted file mode 100755 (executable)
index 5a3a88a..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/env ruby
-$:.unshift File.join(File.dirname(__FILE__),'..','lib')
-
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-
-require 'bitarray'
-require 'test/unit'
-require 'pp'
-
-class TestBitArray < Test::Unit::TestCase 
-  def setup
-    @ba = BitArray.new(10)
-  end
-
-  def test_BitArray_initialize_raises_on_bad_sizes
-    [ -1, 0, 1.1, "a" ].each do |size|
-      assert_raise(BitArrayError) { BitArray.new(size) }
-    end
-  end
-
-  def test_BitArray_initialize_dont_raise_on_ok_sizes
-    [ 1, 10, 1000 ].each do |size|
-      assert_nothing_raised { BitArray.new(size) }
-    end
-  end
-
-  def test_BitArray_size_returns_correctly
-    assert_equal(10, @ba.size)
-  end
-
-  def test_BitArray_to_s_returns_correctly
-    assert_equal("0000000000", @ba.to_s)
-  end
-
-  def test_BitArray_bit_set_with_bad_pos_raises
-    [-1, 10, 1.1].each do |pos|
-      assert_raise(BitArrayError) { @ba.bit_set(pos) }
-    end
-  end
-
-  def test_BitArray_bit_set
-    str = "0000000000"
-
-    (0.upto 9).each do |pos|
-      @ba.bit_set(pos)
-      str[pos] = "1"
-      assert_equal(str, @ba.to_s)
-    end
-  end
-
-  def test_BitArray_bit_set_questionmark_with_bad_pos_raises
-    [-1, 10, 1.1].each do |pos|
-      assert_raise(BitArrayError) { @ba.bit_set?(pos) }
-    end
-  end
-
-  def test_BitArray_bit_set_questionmark
-    (0.upto 9).each do |pos|
-      @ba.bit_set(pos)
-      assert_equal(true, @ba.bit_set?(pos))
-    end
-  end
-
-  def test_BitArray_bits_on_returns_correctly
-    @ba.bit_set(4)
-    @ba.bit_set(0)
-    @ba.bit_set(1)
-    assert_equal(3, @ba.bits_on)
-  end
-
-  def test_BitArray_bits_off_returns_correctly
-    @ba.bit_set(4)
-    assert_equal(9, @ba.bits_off)
-  end
-
-  def test_BitArray_AND_with_uneven_sizes_raises
-    ba = BitArray.new(11)
-    assert_raise(BitArrayError) { @ba & ba }
-  end
-
-  def test_BitArray_AND_returns_correctly
-    ba = BitArray.new(10)
-    @ba.bit_set(4)
-    @ba.bit_set(5)
-    ba.bit_set(5)
-    ba.bit_set(6)
-    assert_equal( "0000010000", (@ba & ba).to_s)
-  end
-
-  def test_BitArray_OR_with_uneven_sizes_raises
-    ba = BitArray.new(11)
-    assert_raise(BitArrayError) { @ba | ba }
-  end
-
-  def test_BitArray_OR_returns_correctly
-    ba = BitArray.new(10)
-    @ba.bit_set(4)
-    @ba.bit_set(5)
-    ba.bit_set(5)
-    ba.bit_set(6)
-    assert_equal( "0000111000", (@ba | ba).to_s)
-  end
-
-  def test_BitArray_XOR_with_uneven_sizes_raises
-    ba = BitArray.new(11)
-    assert_raise(BitArrayError) { @ba ^ ba }
-  end
-
-  def test_BitArray_XOR_returns_correctly
-    ba = BitArray.new(10)
-    @ba.bit_set(4)
-    @ba.bit_set(5)
-    ba.bit_set(5)
-    ba.bit_set(6)
-    assert_equal( "0000101000", (@ba ^ ba).to_s)
-  end
-end
-
diff --git a/code_ruby/Maasha/test/test_bits.rb b/code_ruby/Maasha/test/test_bits.rb
deleted file mode 100755 (executable)
index f817dc2..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env ruby
-$:.unshift File.join(File.dirname(__FILE__),'..','lib')
-
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-
-require 'bits'
-require 'test/unit'
-require 'pp'
-
-class TestBits < Test::Unit::TestCase 
-  def test_Bits_hamming_dist_with_uneven_lengths_raises
-    assert_raises(StringError) { String.hamming_dist("ATCG", "ATC") }
-  end
-
-  def test_Bits_hamming_dist_with_even_lengths_dont_raise
-    assert_nothing_raised { String.hamming_dist("ATCG", "ATCG") }
-  end
-
-  def test_Bits_hamming_dist_returns_correctly
-    assert_equal(0, String.hamming_dist("ATCG", "ATCG"))
-    assert_equal(1, String.hamming_dist("ATCX", "ATCG"))
-    assert_equal(2, String.hamming_dist("ATXX", "ATCG"))
-    assert_equal(2, String.hamming_dist("ATcg", "ATCG"))
-    assert_equal(3, String.hamming_dist("AXXX", "ATCG"))
-    assert_equal(4, String.hamming_dist("XXXX", "ATCG"))
-  end
-
-  def test_Bits_AND_with_equal_length_returns_correctly
-    assert_equal("ABCD", "abcd" & "____")
-  end
-
-  def test_Bits_AND_with_unequal_length_returns_correctly
-    assert_equal("JAPH\n", "japh\nJunk" & '_____')
-    assert_equal("JAPH\n", '_____' & "japh\nJunk")
-  end
-
-  def test_Bits_OR_with_equal_length_returns_correctly
-    assert_equal("abcd", "ab  " | "  cd")
-  end
-
-  def test_Bits_OR_with_unequal_length_returns_correctly
-    assert_equal("japh\n", "JA" | "  ph\n")
-    assert_equal("japh\n", "  ph\n" | "JA")
-  end
-
-  def test_Bits_XOR_with_equal_length_returns_correctly
-    assert_equal("ABCD", "ab  " ^ "  cd")
-  end
-
-  def test_Bits_XOR_with_unequal_length_returns_correctly
-    assert_equal("JAPH", "j p \n" ^ " a h")
-    assert_equal("JAPH", " a h" ^ "j p \n")
-  end
-end
diff --git a/code_ruby/Maasha/test/test_digest.rb b/code_ruby/Maasha/test/test_digest.rb
deleted file mode 100755 (executable)
index 9db221a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env ruby
-
-require 'seq'
-require 'test/unit'
-require 'pp'
-
-class TestDigest < Test::Unit::TestCase 
-  def setup
-    @entry = Seq.new
-  end
-
-  def test_Digest_new_raises_on_bad_pattern_residue
-    assert_raise(DigestError) { Digest.new(@entry, "X", 4) }
-  end
-
-  def test_Digest_new_dont_raise_on_ok_pattern_residue
-    assert_nothing_raised { Digest.new(@entry, "AGCUTRYWSMKHDVBNagcutrywsmkhdvbn", 4) }
-  end
-
-  def test_Digest_each
-    @entry.seq = "aaaaTTTTbbbbTTTT"
-    digest = Digest.new(@entry, "TTNT", 1)
-    assert_equal("aaaaT", digest.first.seq)
-  end
-end
-
-
-__END__
diff --git a/code_ruby/Maasha/test/test_fasta.rb b/code_ruby/Maasha/test/test_fasta.rb
deleted file mode 100755 (executable)
index 23672af..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env ruby
-$:.unshift File.join(File.dirname(__FILE__),'..','lib')
-
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'test/unit'
-require 'fasta'
-require 'stringio'
-require 'pp'
-
-class FastaTest < Test::Unit::TestCase
-  def test_Fasta_get_entry_obtains_the_correct_seq_name
-    fasta = Fasta.new(StringIO.new(">test\nATCG\n"))
-    assert_equal(fasta.get_entry.seq_name, "test")
-  end
-
-  def test_Fasta_get_entry_obtains_the_correct_seq_without_trailing_newlines
-    fasta = Fasta.new(StringIO.new(">test\nATCG"))
-    assert_equal(fasta.get_entry.seq, "ATCG")
-  end
-
-  def test_Fasta_get_entry_obtains_the_correct_seq_with_trailing_newlines
-    fasta = Fasta.new(StringIO.new(">test\nATCG\n\n\n"))
-    assert_equal(fasta.get_entry.seq, "ATCG")
-  end
-
-  def test_Fasta_get_entry_obtains_the_correct_type
-    fasta = Fasta.new(StringIO.new(">test\nATCG\n"), 'DNA')
-    assert_equal(fasta.get_entry.type, "dna")
-  end
-
-  def test_Fasta_get_entry_rstrips_whitespace_from_seq_name
-    fasta = Fasta.new(StringIO.new(">test\n\r\t ATCG\n"))
-    assert_equal(fasta.get_entry.seq_name, "test")
-  end
-
-  def test_Fasta_get_entry_strips_whitespace_from_seq
-    fasta = Fasta.new(StringIO.new(">test\n\r\t AT\n\r\t CG\n\r\t "))
-    assert_equal(fasta.get_entry.seq, "ATCG")
-  end
-
-  def test_Fasta_get_entry_with_two_entries_obtain_correct
-    fasta = Fasta.new(StringIO.new(">test1\n\r\t AT\n\r\t CG\n\r\t \n>test2\n\r\t atcg\n"))
-    assert_equal(fasta.get_entry.seq, "ATCG")
-    assert_equal(fasta.get_entry.seq, "atcg")
-  end
-
-  def test_Fasta_get_entry_without_seq_name_raises
-    fasta = Fasta.new(StringIO.new("ATCG\n"))
-    assert_raise( FastaError ) { fasta.get_entry }
-  end
-
-  def test_Fasta_get_entry_without_seq_raises
-    fasta = Fasta.new(StringIO.new(">test\n\n"))
-    assert_raise( FastaError ) { fasta.get_entry }
-  end
-
-  def test_Fasta_get_entry_with_leading_newline_raises
-    fasta = Fasta.new(StringIO.new("\n>test\nATCG\n"))
-    assert_raise( FastaError ) { fasta.get_entry }
-  end
-
-# FIXME
-#  def test_Fasta_get_entry raises on missing > in seq_name
-#    fasta = Fasta.new(StringIO.new("test\nATCG\n"))
-#    assert_raise( FastaError ) { fasta.get_entry }
-#  end
-end
diff --git a/code_ruby/Maasha/test/test_fastq.rb b/code_ruby/Maasha/test/test_fastq.rb
deleted file mode 100755 (executable)
index c06a07e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env ruby
-$:.unshift File.join(File.dirname(__FILE__),'..','lib')
-
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'test/unit'
-require 'fastq'
-require 'stringio'
-require 'pp'
-
-class FastqTest < Test::Unit::TestCase
-  def setup
-    @io    = StringIO.new("@test1\nATCG\n+\nABCD\n@test2\natcg\n+test2\n@ABG\n")
-    @fastq = Fastq.new(@io)
-  end
-
-  def test_Fastq_get_entry_obtains_the_correct_seq_name
-    assert_equal("test1", @fastq.get_entry.seq_name)
-  end
-
-  def test_Fasta_get_entry_obtains_the_correct_type
-    fastq = Fastq.new(@io, 'DNA')
-    assert_equal("dna", fastq.get_entry.type)
-  end
-
-  def test_Fastq_get_entry_with_two_entries_obtain_correct
-    assert_equal("ATCG", @fastq.get_entry.seq)
-    assert_equal("atcg", @fastq.get_entry.seq)
-  end
-
-  def test_Fastq_each_loop_ends_correctly
-    @fastq.each do |entry|
-    end
-  end
-end
diff --git a/code_ruby/Maasha/test/test_genbank.rb b/code_ruby/Maasha/test/test_genbank.rb
deleted file mode 100755 (executable)
index 3c46386..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env ruby
-$:.unshift File.join(File.dirname(__FILE__),'..','lib')
-
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-
-require 'genbank'
-require 'seq'
-require 'test/unit'
-require 'pp'
-
-class TestGenbank < Test::Unit::TestCase 
-  def setup
-    @seq = Seq.new(nil, "tcatgatcaagatctaacagcagaagtacacttctattta", "dna")
-  end
-
-  def test_Locator_with_single_position_returns_correctly
-    loc = Locator.new("10", @seq)
-    assert_equal("a", loc.subseq.seq)
-  end
-
-  def test_Locator_with_single_interval_returns_correctly
-    loc = Locator.new("5..10", @seq)
-    assert_equal("gatca", loc.subseq.seq)
-  end
-
-  def test_Locator_with_multiple_intervals_return_correctly
-    loc = Locator.new("5..10,15..20", @seq)
-    assert_equal("gatcataaca", loc.subseq.seq)
-  end
-
-  def test_Locator_with_join_multiple_intervals_return_correctly
-    loc = Locator.new("join(5..10,15..20)", @seq)
-    assert_equal("gatcataaca", loc.subseq.seq)
-  end
-
-  def test_Locator_with_complement_and_single_interval_return_correctly
-    loc = Locator.new("complement(5..10)", @seq)
-    assert_equal("tgatc", loc.subseq.seq)
-  end
-end
-
-
-__END__
diff --git a/code_ruby/Maasha/test/test_patternmatcher.rb b/code_ruby/Maasha/test/test_patternmatcher.rb
deleted file mode 100755 (executable)
index 7993862..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env ruby
-$:.unshift File.join(File.dirname(__FILE__),'..','lib')
-
-# Copyright (C) 2007-2010 Martin A. Hansen.
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# http://www.gnu.org/copyleft/gpl.html
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-# This software is part of the Biopieces framework (www.biopieces.org).
-
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-require 'seq'
-require 'test/unit'
-require 'pp'
-
-class TestPatternMatcher < Test::Unit::TestCase
-  def setup
-    @p = Seq.new("test", "atcg")
-  end
-
-  def test_PatternMatcher_no_match_returns_nil
-    assert_nil(@p.match("gggg"))
-  end
-
-  def test_PatternMatcher_match_perfect_returns_correctly
-    m = @p.match("atcg")
-    assert_equal(0, m.pos)
-    assert_equal("atcg", m.match)
-    assert_equal(4, m.matches)
-    assert_equal(0, m.mismatches)
-    assert_equal(0, m.insertions)
-    assert_equal(0, m.deletions)
-    assert_equal(4, m.length)
-  end
-
-  def test_PatternMatcher_match_perfect_with_ambiguity_codes_returns_correctly
-    m = @p.match("nnnn")
-    assert_equal(0, m.pos)
-    assert_equal("atcg", m.match)
-    assert_equal(4, m.matches)
-    assert_equal(0, m.mismatches)
-    assert_equal(0, m.insertions)
-    assert_equal(0, m.deletions)
-    assert_equal(4, m.length)
-  end
-
-  def test_PatternMatcher_match_with_one_mismatch_and_edit_dist_zero_returns_nil
-    assert_nil(@p.match("aCcg"))
-  end
-
-  def test_PatternMatcher_match_with_one_mismatch_and_edit_dist_one_returns_correctly
-    m = @p.match("aCcg", pos = 0, edit_distance = 1)
-    assert_equal(0, m.pos)
-    assert_equal("atcg", m.match)
-    assert_equal(3, m.matches)
-    assert_equal(1, m.mismatches)
-    assert_equal(0, m.insertions)
-    assert_equal(0, m.deletions)
-    assert_equal(4, m.length)
-  end
-
-  def test_PatternMatcher_match_with_two_mismatch_and_edit_dist_one_returns_nil
-    assert_nil(@p.match("aGcA", pos = 0, edit_distance = 1))
-  end
-
-  def test_PatternMatcher_match_with_one_insertion_and_edit_dist_zero_returns_nil
-    assert_nil(@p.match("atGcg"))
-  end
-
-  def test_PatternMatcher_match_with_one_insertion_and_edit_dist_one_returns_correctly
-    m = @p.match("atGcg", pos = 0, edit_distance = 1)
-    assert_equal(0, m.pos)
-    assert_equal("atcg", m.match)
-    assert_equal(4, m.matches)
-    assert_equal(0, m.mismatches)
-    assert_equal(1, m.insertions)
-    assert_equal(0, m.deletions)
-    assert_equal(4, m.length)
-  end
-
-  def test_PatternMatcher_match_with_two_insertions_and_edit_dist_one_returns_nil
-    assert_nil(@p.match("atGcTg", pos = 0, edit_distance = 1))
-  end
-
-  def test_PatternMatcher_match_with_two_insertions_and_edit_dist_two_returns_correctly
-    m = @p.match("atGcTg", pos = 0, edit_distance = 2)
-    assert_equal(0, m.pos)
-    assert_equal("atcg", m.match)
-    assert_equal(4, m.matches)
-    assert_equal(0, m.mismatches)
-    assert_equal(2, m.insertions)
-    assert_equal(0, m.deletions)
-    assert_equal(4, m.length)
-  end
-
-  def test_PatternMatcher_match_with_one_deletion_and_edit_distance_zero_returns_nil
-    assert_nil(@p.match("acg"))
-  end
-
-  def test_PatternMatcher_match_with_one_deletion_and_edit_distance_one_returns_correctly
-    m = @p.match("acg", pos = 0, edit_distance = 1)
-    assert_equal(0, m.pos)
-    assert_equal("atcg", m.match)
-    assert_equal(3, m.matches)
-    assert_equal(0, m.mismatches)
-    assert_equal(0, m.insertions)
-    assert_equal(1, m.deletions)
-    assert_equal(4, m.length)
-  end
-
-  def test_PatternMatcher_scan_locates_three_patterns_ok
-    p = Seq.new("test", "ataacgagctagctagctagctgactac")
-    assert_equal(3, p.scan("tag").count)
-  end
-
-  def test_PatternMatcher_scan_with_pos_locates_two_patterns_ok
-    p = Seq.new("test", "ataacgagctagctagctagctgactac")
-    assert_equal(2, p.scan("tag", 10).count)
-  end
-end
diff --git a/code_ruby/Maasha/test/test_seq.rb b/code_ruby/Maasha/test/test_seq.rb
deleted file mode 100755 (executable)
index e463e6f..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-#!/usr/bin/env ruby
-
-require 'seq'
-require 'test/unit'
-require 'pp'
-
-class TestSeq < Test::Unit::TestCase 
-  def setup
-    @entry = Seq.new
-  end
-
-  #  def test_Seq# autoremoves whitespace, newlines, and carriage returns
-  #    dna = Seq.new
-  #    dna.seq = "A\tT\r\tC\nG  "
-  #    assert_equal(dna.seq, "ATCG")
-  #  end
-
-  def test_Seq_is_dna_with_no_sequence_type_returns_false
-    assert(@entry.is_dna? == false)
-  end
-
-  def test_Seq_is_dna_with_dna_sequence_type_returns_true
-    @entry.type = 'dna'
-    assert(@entry.is_dna? == true)
-  end
-
-  def test_Seq_is_rna_with_no_sequence_type_returns_false
-    assert(@entry.is_rna? == false)
-  end
-
-  def test_Seq_is_rna_with_rna_sequence_type_returns_true
-    @entry.type = 'rna'
-    assert(@entry.is_rna? == true)
-  end
-
-  def test_Seq_is_protein_with_no_sequence_type_returns_false
-    assert(@entry.is_protein? == false)
-  end
-
-  def test_Seq_is_protein_with_protein_sequence_type_returns_true
-    @entry.type = 'protein'
-    assert(@entry.is_protein? == true)
-  end
-
-  def test_Seq_length_is_correct
-    @entry.seq = 'ATCG'
-    assert_equal(4, @entry.length)
-  end
-
-  def test_Seq_indels_is_correct
-    @entry.seq = 'ATCG.-~_'
-    assert_equal(4, @entry.indels)
-  end
-
-  def test_Seq_to_rna_raises_if_no_sequence
-    @entry.type = 'dna'
-    assert_raise(SeqError) { @entry.to_rna }
-  end
-
-  def test_Seq_to_rna_raises_on_bad_type
-    @entry.seq  = 'ATCG'
-    @entry.type = 'rna'
-    assert_raise(SeqError) { @entry.to_rna }
-  end
-
-  def test_Seq_to_rna_transcribes_correctly
-    @entry.seq  = 'ATCGatcg'
-    @entry.type = 'dna'
-    assert_equal("AUCGaucg", @entry.to_rna)
-  end
-
-  def test_Seq_to_rna_changes_entry_type_to_rna
-    @entry.seq  = 'ATCGatcg'
-    @entry.type = 'dna'
-    @entry.to_rna
-    assert_equal("rna", @entry.type)
-  end
-
-  def test_Seq_to_dna_raises_if_no_sequence
-    @entry.type = 'rna'
-    assert_raise(SeqError) { @entry.to_dna }
-  end
-
-  def test_Seq_to_dna_raises_on_bad_type
-    @entry.seq  = 'AUCG'
-    @entry.type = 'dna'
-    assert_raise(SeqError) { @entry.to_dna }
-  end
-
-  def test_Seq_to_dna_transcribes_correctly
-    @entry.seq  = 'AUCGaucg'
-    @entry.type = 'rna'
-    assert_equal("ATCGatcg", @entry.to_dna)
-  end
-
-  def test_Seq_to_dna_changes_entry_type_to_dna
-    @entry.seq  = 'AUCGaucg'
-    @entry.type = 'rna'
-    @entry.to_dna
-    assert_equal("dna", @entry.type)
-  end
-
-  def test_Seq_to_bp_returns_correct_record
-    @entry.seq_name = 'test'
-    @entry.seq      = 'ATCG'
-    assert_equal({:SEQ_NAME=>"test", :SEQ=>"ATCG", :SEQ_LEN=>4}, @entry.to_bp)
-  end
-
-  def test_Seq_to_bp_raises_on_missing_seq_name
-    @entry.seq = 'ATCG'
-    assert_raise(SeqError) { @entry.to_bp }
-  end
-
-  def test_Seq_to_bp_raises_on_missing_sequence
-    @entry.seq_name = 'test'
-    assert_raise(SeqError) { @entry.to_bp }
-  end
-
-  def test_Seq_to_fasta_returns_correct_entry
-    @entry.seq_name = 'test'
-    @entry.seq      = 'ATCG'
-    assert_equal(">test\nATCG\n", @entry.to_fasta)
-  end
-
-  def test_Seq_to_fasta_wraps_correctly
-    entry = Seq.new("test", "ATCG")
-    assert_equal(">test\nAT\nCG\n", entry.to_fasta(2))
-  end
-
-  def test_Seq_to_key_with_bad_residue_raises
-    entry = Seq.new("test", "AUCG")
-    assert_raise(SeqError) { entry.to_key }
-  end
-
-  def test_Seq_to_key_returns_correctly
-    entry = Seq.new("test", "ATCG")
-    assert_equal(54, entry.to_key)
-  end
-
-  def test_Seq_reverse_returns_correctly
-    @entry.seq = "ATCG"
-    assert_equal("GCTA", @entry.reverse)
-  end
-
-  def test_Seq_complement_raises_if_no_sequence
-    @entry.type = 'dna'
-    assert_raise(SeqError) { @entry.complement }
-  end
-
-  def test_Seq_complement_raises_on_bad_type
-    @entry.seq  = 'ATCG'
-    @entry.type = 'protein'
-    assert_raise(SeqError) { @entry.complement }
-  end
-
-  def test_Seq_complement_for_DNA_is_correct
-    @entry.seq  = 'ATCGatcg'
-    @entry.type = 'dna'
-    assert_equal("TAGCtagc", @entry.complement)
-  end
-
-  def test_Seq_complement_for_RNA_is_correct
-    @entry.seq  = 'AUCGaucg'
-    @entry.type = 'rna'
-    assert_equal("UAGCuagc", @entry.complement)
-  end
-
-  def test_Seq_reverse_complement_for_DNA_is_correct
-    @entry.seq  = 'ATCGatcg'
-    @entry.type = 'dna'
-    assert_equal("cgatCGAT", @entry.reverse_complement)
-  end
-
-  def test_Seq_reverse_complement_for_RNA_is_correct
-    @entry.seq  = 'AUCGaucg'
-    @entry.type = 'rna'
-    assert_equal("cgauCGAU", @entry.reverse_complement)
-  end
-
-  def test_Seq_generate_with_length_lt_1_raises
-    assert_raise(SeqError) { @entry.generate(-10, "dna") }
-    assert_raise(SeqError) { @entry.generate(0, "dna") }
-  end
-
-  def test_Seq_generate_with_bad_type_raises
-    assert_raise(SeqError) { @entry.generate(10, "foo") }
-  end
-
-  def test_Seq_generate_with_ok_type_dont_raise
-    %w[dna DNA rna RNA protein Protein].each do |type|
-      assert_nothing_raised { @entry.generate(10, type) }
-    end
-  end
-
-  def test_Seq_subseq_with_start_lt_0_raises
-    @entry.seq = "ATCG"
-    assert_raise(SeqError) { @entry.subseq(-1, 1) }
-  end
-
-  def test_Seq_subseq_with_length_lt_1_raises
-    @entry.seq = "ATCG"
-    assert_raise(SeqError) { @entry.subseq(0, 0) }
-  end
-
-  def test_Seq_subseq_with_start_plus_length_gt_seq_raises
-    @entry.seq = "ATCG"
-    assert_raise(SeqError) { @entry.subseq(0, 5) }
-  end
-
-  def test_Seq_subseq_returns_correct_sequence
-    @entry.seq  = "ATCG"
-    assert_equal("AT", @entry.subseq(0, 2).seq)
-    assert_equal("CG", @entry.subseq(2, 2).seq)
-  end
-
-  def test_Seq_subseq_without_len_returns_correct_sequence
-    @entry.seq  = "ATCG"
-    assert_equal("ATCG", @entry.subseq(0).seq)
-    assert_equal("CG",   @entry.subseq(2).seq)
-  end
-
-  def test_Seq_subseq_returns_correct_qual
-    @entry.seq  = "ATCG"
-    @entry.qual = "abcd"
-    assert_equal("ab", @entry.subseq(0, 2).qual)
-    assert_equal("cd", @entry.subseq(2, 2).qual)
-  end
-
-  def test_Seq_subseq_without_len_returns_correct_qual
-    @entry.seq  = "ATCG"
-    @entry.qual = "abcd"
-    assert_equal("abcd", @entry.subseq(0).qual)
-    assert_equal("cd",   @entry.subseq(2).qual)
-  end
-
-  def test_Seq_subseq_bang_with_start_lt_0_raises
-    @entry.seq = "ATCG"
-    assert_raise(SeqError) { @entry.subseq!(-1, 1) }
-  end
-
-  def test_Seq_subseq_bang_with_length_lt_1_raises
-    @entry.seq = "ATCG"
-    assert_raise(SeqError) { @entry.subseq!(0, 0) }
-  end
-
-  def test_Seq_subseq_bang_with_start_plus_length_gt_seq_raises
-    @entry.seq = "ATCG"
-    assert_raise(SeqError) { @entry.subseq!(0, 5) }
-  end
-
-  def test_Seq_subseq_bang_returns_correct_sequence
-    @entry.seq  = "ATCG"
-    @entry.subseq!(0, 2)
-    assert_equal("AT", @entry.seq)
-    @entry.seq  = "ATCG"
-    @entry.subseq!(2, 2)
-    assert_equal("CG", @entry.seq)
-  end
-
-  def test_Seq_subseq_bang_without_len_returns_correct_sequence
-    @entry.seq  = "ATCG"
-    @entry.subseq!(0)
-    assert_equal("ATCG", @entry.seq)
-    @entry.seq  = "ATCG"
-    @entry.subseq!(2)
-    assert_equal("CG", @entry.seq)
-  end
-
-  def test_Seq_subseq_bang_with_pos_and_len_returns_correct_qual
-    @entry.seq  = "ATCG"
-    @entry.qual = "abcd"
-    @entry.subseq!(0, 2)
-    assert_equal("ab", @entry.qual)
-    @entry.seq  = "ATCG"
-    @entry.qual = "abcd"
-    @entry.subseq!(2, 2)
-    assert_equal("cd", @entry.qual)
-  end
-
-  def test_Seq_subseq_bang_with_pos_returns_correct_qual
-    @entry.seq  = "ATCG"
-    @entry.qual = "abcd"
-    @entry.subseq!(0)
-    assert_equal("abcd", @entry.qual)
-    @entry.seq  = "ATCG"
-    @entry.qual = "abcd"
-    @entry.subseq!(2)
-    assert_equal("cd", @entry.qual)
-  end
-
-  def test_Seq_subseq_rand_returns_correct_sequence
-    @entry.seq  = "ATCG"
-    assert_equal("ATCG", @entry.subseq_rand(4).seq)
-  end
-
-  def test_Seq_composition_returns_correctly
-    @entry.seq = "AAAATTTCCG"
-    assert_equal(4, @entry.composition["A"])
-    assert_equal(3, @entry.composition["T"])
-    assert_equal(2, @entry.composition["C"])
-    assert_equal(1, @entry.composition["G"])
-    assert_equal(0, @entry.composition["X"])
-  end
-
-  def test_Seq_homopol_max_returns_0_with_empty_sequence
-    @entry.seq = ""
-    assert_equal(0, @entry.homopol_max)
-  end
-
-  def test_Seq_homopol_max_returns_0_with_nil_sequence
-    @entry.seq = nil
-    assert_equal(0, @entry.homopol_max)
-  end
-
-  def test_Seq_homopol_max_returns_0_when_not_found
-    @entry.seq = "AtTcCcGggGnnNnn"
-    assert_equal(0, @entry.homopol_max(6))
-  end
-
-  def test_Seq_homopol_max_returns_correctly
-    @entry.seq = "AtTcCcGggGnnNnn"
-    assert_equal(5, @entry.homopol_max(3))
-  end
-
-  def test_Seq_hard_mask_returns_correctly
-    @entry.seq = "--AAAANn"
-    assert_equal(33.33, @entry.hard_mask)
-  end
-
-  def test_Seq_soft_mask_returns_correctly
-    @entry.seq = "--AAAa"
-    assert_equal(25.00, @entry.soft_mask)
-  end
-end
-
-
-__END__
diff --git a/code_ruby/Sfern/test_module.rb b/code_ruby/Sfern/test_module.rb
deleted file mode 100755 (executable)
index 681661c..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-class Test
-    puts "Modules Test2 loaded"
-
-    def greet_world
-        puts "World"
-    end
-end
diff --git a/code_ruby/lib/maasha/base36.rb b/code_ruby/lib/maasha/base36.rb
new file mode 100644 (file)
index 0000000..89d50e1
--- /dev/null
@@ -0,0 +1,70 @@
+# Copyright (C) 2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# Error class for all exceptions to do with Base36.
+class Base36Error < StandardError; end
+
+ALPH   = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+BASE36 = 36
+
+# Class containing methods to encode and decode Base 36.
+# Note that the ALPH is [alph + num] and not [num + alph]
+# which prevents us from simply using .to_i(36) and .to_s(36).
+#
+# http://en.wikipedia.org/wiki/Base_36
+class Base36
+  # Method that encodes an integer into a base36 string
+  # that is returned.
+  def self.encode(num)
+    raise Base36Error unless num.is_a? Fixnum
+
+    base36 = ""
+
+    while num > 0
+      base36 << ALPH[(num % BASE36)]
+      num /= BASE36
+    end
+
+    base36 << ALPH[0] if num == 0
+
+    base36.reverse
+  end
+
+  # Method that decodes a base36 string and returns an integer.
+  def self.decode(base36)
+    raise Base36Error if base36.empty?
+
+    result = 0
+    pos    = 0
+
+    base36.upcase.reverse.each_char do |char|
+      result += ALPH.index(char) * (BASE36 ** pos)
+      pos    += 1
+    end
+
+    return result;
+  end
+end
+
+__END__
diff --git a/code_ruby/lib/maasha/biopieces.rb b/code_ruby/lib/maasha/biopieces.rb
new file mode 100644 (file)
index 0000000..8ee2423
--- /dev/null
@@ -0,0 +1,680 @@
+raise "Ruby 1.9 or later required" if RUBY_VERSION < "1.9"
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'fileutils'
+require 'date'
+require 'optparse'
+require 'open3'
+require 'pp'
+
+# Biopieces are command line scripts and uses OptionParser to parse command line
+# options according to a list of casts. Each cast prescribes the long and short
+# name of the option, the type, if it is mandatory, the default value, and allowed
+# and disallowed values. An optional list of extra casts can be supplied, and the
+# integrity of the casts are checked. Following the command line parsing, the
+# options are checked according to the casts. Methods are also included for handling
+# the parsing and emitting of Biopiece records, which are ASCII text records consisting
+# of lines with a key/value pair separated by a colon and a white space ': '.
+# Each record is separated by a line with three dashes '---'.
+class Biopieces
+  include Enumerable
+
+  attr_accessor :out # accessor for out stream _ios_
+
+  # Initialize a Biopiece and write the status to file.
+  # Options are for testing purposes only.
+  def initialize(test=nil, input=STDIN, output=STDOUT)
+    @test   = test
+    @input  = input
+    @output = output
+  end
+
+  # Check the integrity of a list of casts, followed by parsion options from argv
+  # and finally checking the options according to the casts. Returns nil if argv
+  # is empty, otherwise an options hash.
+  def parse(argv, cast_list=[], script_path=$0)
+    casts          = Casts.new(cast_list)
+    option_handler = OptionHandler.new(argv, casts, script_path, @test)
+    @options       = option_handler.options_parse
+  end
+
+  # Open Biopiece input stream if not open and iterate over all Biopiece
+  # records in the stream.
+  def each_record
+    @in = Stream::open(@options, mode="r", @input) unless @in.is_a? IO
+    return if @in.nil?
+
+    record = {}
+
+    @in.each_line do |line|
+      case line
+      when /^([^:]+): (.*)$/
+        record[$1.to_sym] = $2
+      when /^---$/
+        yield record unless record.empty?
+        record = {}
+      else
+        raise "Bad record format: #{line}"
+      end
+    end
+
+    yield record unless record.empty?
+
+    self # conventionally
+  end
+
+  alias :each :each_record
+
+  # Open Biopiece output stream if not open and puts record to the stream.
+  def puts(record)
+    @out = Stream::open(@options, mode="w", @output) unless @out.is_a? IO
+
+    record.each do |key,value|
+      @out.print "#{key.to_s}: #{value}\n"
+    end
+
+    @out.print "---\n"
+  end
+
+  def to_s
+  end
+
+  # Create a temporary directory inside the ENV["BP_TMP"] dir.
+  def mktmpdir
+    time = Time.now.to_i
+    user = ENV["USER"]
+    pid  = $$
+    path = ENV["BP_TMP"] + "/" + [user, time + pid, pid, "bp_tmp"].join("_")
+    Dir.mkdir(path)
+    Status.new.set_tmpdir(path)
+    path
+  end
+end
+
+
+# Error class for all exceptions to do with option casts.
+class CastError < StandardError; end
+
+
+# Class to handle casts of command line options. Each cast prescribes the long and
+# short name of the option, the type, if it is mandatory, the default value, and
+# allowed and disallowed values. An optional list of extra casts can be supplied,
+# and the integrity of the casts are checked.
+class Casts < Array
+  TYPES     = %w[flag string list int uint float file file! files files! dir dir! genome]
+  MANDATORY = %w[long short type mandatory default allowed disallowed]
+
+  # Initialize cast object with an optional options cast list to which
+  # ubiquitous casts are added after which all casts are checked.
+  def initialize(cast_list=[])
+    @cast_list = cast_list
+    ubiquitous
+    check
+    long_to_sym
+    self.push(*@cast_list)
+  end
+
+  private
+
+  # Add ubiquitous options casts.
+  def ubiquitous
+    @cast_list << {:long=>'help',       :short=>'?', :type=>'flag',   :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    @cast_list << {:long=>'stream_in',  :short=>'I', :type=>'files!', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    @cast_list << {:long=>'stream_out', :short=>'O', :type=>'file',   :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    @cast_list << {:long=>'verbose',    :short=>'v', :type=>'flag',   :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+  end
+
+  # Check integrity of the casts.
+  def check
+    check_keys
+    check_values
+    check_duplicates
+  end
+  
+  # Check if all mandatory keys are present in casts and raise if not.
+  def check_keys
+    @cast_list.each do |cast|
+      MANDATORY.each do |mandatory|
+        raise CastError, "Missing symbol in cast: '#{mandatory.to_sym}'" unless cast.has_key? mandatory.to_sym
+      end
+    end
+  end
+
+  # Check if all values in casts are valid.
+  def check_values
+    @cast_list.each do |cast|
+      check_val_long(cast)
+      check_val_short(cast)
+      check_val_type(cast)
+      check_val_mandatory(cast)
+      check_val_default(cast)
+      check_val_allowed(cast)
+      check_val_disallowed(cast)
+    end
+  end
+
+  # Check if the values to long are legal and raise if not.
+  def check_val_long(cast)
+    unless cast[:long].is_a? String and cast[:long].length > 1
+      raise CastError, "Illegal cast of long: '#{cast[:long]}'"
+    end
+  end
+  
+  # Check if the values to short are legal and raise if not.
+  def check_val_short(cast)
+    unless cast[:short].is_a? String and cast[:short].length == 1
+      raise CastError, "Illegal cast of short: '#{cast[:short]}'"
+    end
+  end
+
+  # Check if values to type are legal and raise if not.
+  def check_val_type(cast)
+    type_hash = {}
+    TYPES.each do |type|
+      type_hash[type] = true
+    end
+
+    unless type_hash.has_key? cast[:type]
+      raise CastError, "Illegal cast of type: '#{cast[:type]}'"
+    end
+  end
+
+  # Check if values to mandatory are legal and raise if not.
+  def check_val_mandatory(cast)
+    unless cast[:mandatory] == true or cast[:mandatory] == false
+      raise CastError, "Illegal cast of mandatory: '#{cast[:mandatory]}'"
+    end
+  end
+
+  # Check if values to default are legal and raise if not.
+  def check_val_default(cast)
+    unless cast[:default].nil?          or
+           cast[:default].is_a? String  or
+           cast[:default].is_a? Integer or
+           cast[:default].is_a? Float
+      raise CastError, "Illegal cast of default: '#{cast[:default]}'"
+    end
+  end
+
+  # Check if values to allowed are legal and raise if not.
+  def check_val_allowed(cast)
+    unless cast[:allowed].is_a? String or cast[:allowed].nil?
+      raise CastError, "Illegal cast of allowed: '#{cast[:allowed]}'"
+    end
+  end
+
+  # Check if values to disallowed are legal and raise if not.
+  def check_val_disallowed(cast)
+    unless cast[:disallowed].is_a? String or cast[:disallowed].nil?
+      raise CastError, "Illegal cast of disallowed: '#{cast[:disallowed]}'"
+    end
+  end
+
+  # Check cast for duplicate long or short options names.
+  def check_duplicates
+    check_hash = {}
+    @cast_list.each do |cast|
+      raise CastError, "Duplicate argument: '--#{cast[:long]}'" if check_hash.has_key? cast[:long]
+      raise CastError, "Duplicate argument: '-#{cast[:short]}'" if check_hash.has_key? cast[:short]
+      check_hash[cast[:long]]  = true
+      check_hash[cast[:short]] = true
+    end
+  end
+
+  # Convert values to :long keys to symbols for all casts.
+  def long_to_sym
+    @cast_list.each do |cast|
+      cast[:long] = cast[:long].to_sym
+    end
+  end
+
+end
+
+
+# Class for parsing argv using OptionParser according to given casts.
+# Default options are set, file glob expressions expanded, and options are
+# checked according to the casts. Usage information is printed and exit called
+# if required.
+class OptionHandler
+  REGEX_LIST   = /^(list|files|files!)$/
+  REGEX_INT    = /^(int|uint)$/
+  REGEX_STRING = /^(file|file!|dir|dir!|genome)$/
+
+  def initialize(argv, casts, script_path, test=nil)
+    @argv        = argv
+    @casts       = casts
+    @script_path = script_path
+    @test        = test
+  end
+
+  # Parse options from argv using OptionParser and casts denoting long and
+  # short option names. Usage information is printed and exit called.
+  # A hash with options is returned.
+  def options_parse
+    @options = {}
+
+    option_parser = OptionParser.new do |option|
+      @casts.each do |cast|
+        case cast[:type]
+        when 'flag'
+          option.on("-#{cast[:short]}", "--#{cast[:long]}") do |o|
+            @options[cast[:long]] = o
+          end
+        when 'float'
+          option.on("-#{cast[:short]}", "--#{cast[:long]} F", Float) do |f|
+            @options[cast[:long]] = f
+          end
+        when 'string'
+          option.on("-#{cast[:short]}", "--#{cast[:long]} S", String) do |s|
+            @options[cast[:long]] = s.to_sym  # TODO: this to_sym - is that needed?
+          end
+        when REGEX_LIST
+          option.on( "-#{cast[:short]}", "--#{cast[:long]} A", Array) do |a|
+            @options[cast[:long]] = a
+          end
+        when REGEX_INT
+          option.on("-#{cast[:short]}", "--#{cast[:long]} I", Integer) do |i|
+            @options[cast[:long]] = i
+          end
+        when REGEX_STRING
+          option.on("-#{cast[:short]}", "--#{cast[:long]} S", String) do |s|
+            @options[cast[:long]] = s
+          end
+        else
+          raise ArgumentError, "Unknown option type: '#{cast[:type]}'"
+        end
+      end
+    end
+
+    option_parser.parse!(@argv)
+
+    if print_usage_full?
+      print_usage_and_exit(true)
+    elsif print_usage_short?
+      print_usage_and_exit
+    end
+
+    options_default
+    options_glob
+    options_check
+
+    @options
+  end
+
+  # Given the script name determine the path of the wiki file with the usage info.
+  def wiki_path
+    path = ENV["BP_DIR"] + "/bp_usage/" + File.basename(@script_path) + ".wiki"
+    raise "No such wiki file: #{path}" unless File.file? path
+    path
+  end
+
+  # Check if full "usage info" should be printed.
+  def print_usage_full?
+    @options[:help]
+  end
+
+  # Check if short "usage info" should be printed.
+  def print_usage_short?
+    if not $stdin.tty?
+      return false
+    elsif @options[:stream_in]
+      return false
+    elsif @options[:data_in]
+      return false
+    elsif wiki_path =~ /^(list_biopieces|list_genomes|list_mysql_databases|biostat)$/  # TODO get rid of this!
+      return false
+    else
+      return true
+    end
+  end
+
+  # Print usage info by Calling an external script 'print_wiki'
+  # using a system() call and exit. An optional 'full' flag
+  # outputs the full usage info.
+  def print_usage_and_exit(full=nil)
+    if @test
+      return
+    else
+      if full
+        system("print_wiki --data_in #{wiki_path} --help")
+      else
+        system("print_wiki --data_in #{wiki_path}")
+      end
+
+      raise "Failed printing wiki: #{wiki_path}" unless $?.success?
+
+      exit
+    end
+  end
+
+  # Set default options value from cast unless a value is set.
+  def options_default
+    @casts.each do |cast|
+      if cast[:default]
+        unless @options.has_key? cast[:long]
+          if cast[:type] == 'list'
+            @options[cast[:long]] = cast[:default].split ','
+          else
+            @options[cast[:long]] = cast[:default]
+          end
+        end
+      end
+    end
+  end
+
+  # Expands glob expressions to a full list of paths.
+  # Examples: "*.fna" or "foo.fna,*.fna" or "foo.fna,/bar/*.fna"
+  def options_glob
+    @casts.each do |cast|
+      if cast[:type] == 'files' or cast[:type] == 'files!'
+        if @options.has_key? cast[:long]
+          files = []
+        
+          @options[cast[:long]].each do |path|
+            if path.include? "*"
+              Dir.glob(path).each do |file|
+                files << file if File.file? file
+              end
+            else
+              files << path
+            end
+          end
+
+          @options[cast[:long]] = files
+        end
+      end
+    end
+  end
+
+  # Check all options according to casts.
+  def options_check
+    @casts.each do |cast|
+      options_check_mandatory(cast)
+      options_check_int(cast)
+      options_check_uint(cast)
+      options_check_file(cast)
+      options_check_files(cast)
+      options_check_dir(cast)
+      options_check_allowed(cast)
+      options_check_disallowed(cast)
+    end
+  end
+  
+  # Check if a mandatory option is set and raise if it isn't.
+  def options_check_mandatory(cast)
+    if cast[:mandatory]
+      raise ArgumentError, "Mandatory argument: --#{cast[:long]}" unless @options.has_key? cast[:long]
+    end
+  end
+
+  # Check int type option and raise if not an integer.
+  def options_check_int(cast)
+    if cast[:type] == 'int' and @options.has_key? cast[:long]
+      unless @options[cast[:long]].is_a? Integer
+        raise ArgumentError, "Argument to --#{cast[:long]} must be an integer, not '#{@options[cast[:long]]}'"
+      end
+    end
+  end
+  
+  # Check uint type option and raise if not an unsinged integer.
+  def options_check_uint(cast)
+    if cast[:type] == 'uint' and @options.has_key? cast[:long]
+      unless @options[cast[:long]].is_a? Integer and @options[cast[:long]] >= 0
+        raise ArgumentError, "Argument to --#{cast[:long]} must be an unsigned integer, not '#{@options[cast[:long]]}'"
+      end
+    end
+  end
+
+  # Check file! type argument and raise if file don't exists.
+  def options_check_file(cast)
+    if cast[:type] == 'file!' and @options.has_key? cast[:long]
+      raise ArgumentError, "No such file: '#{@options[cast[:long]]}'" unless File.file? @options[cast[:long]]
+    end
+  end
+
+  # Check files! type argument and raise if files don't exists.
+  def options_check_files(cast)
+    if cast[:type] == 'files!' and @options.has_key? cast[:long]
+      @options[cast[:long]].each do |path|
+        next if path == "-"
+        raise ArgumentError, "File not readable: '#{path}'" unless File.readable? path
+      end
+    end
+  end
+  
+  # Check dir! type argument and raise if directory don't exist.
+  def options_check_dir(cast)
+    if cast[:type] == 'dir!' and @options.has_key? cast[:long]
+      raise ArgumentError, "No such directory: '#{@options[cast[:long]]}'" unless File.directory? @options[cast[:long]]
+    end
+  end
+  
+  # Check options and raise unless allowed.
+  def options_check_allowed(cast)
+    if cast[:allowed] and @options.has_key? cast[:long]
+      allowed_hash = {}
+      cast[:allowed].split(',').each { |a| allowed_hash[a.to_s] = 1 }
+  
+      raise ArgumentError, "Argument '#{@options[cast[:long]]}' to --#{cast[:long]} not allowed" unless allowed_hash.has_key? @options[cast[:long]].to_s
+    end
+  end
+  
+  # Check disallowed argument values and raise if disallowed.
+  def options_check_disallowed(cast)
+    if cast[:disallowed] and @options.has_key? cast[:long]
+      cast[:disallowed].split(',').each do |val|
+        raise ArgumentError, "Argument '#{@options[cast[:long]]}' to --#{cast[:long]} is disallowed" if val.to_s == @options[cast[:long]].to_s
+      end
+    end
+  end
+end
+
+# Class for manipulating the execution status of Biopieces by setting a
+# status file with a time stamp, process id, and command arguments. The
+# status file is used for creating log entries and for displaying the
+# runtime status of Biopieces.
+class Status
+  # Write the status to a status file.
+  def set
+    time0  = Time.new.strftime("%Y-%m-%d %X")
+
+    File.open(path, mode="w") do |fh|
+      fh.puts [time0, ARGV.join(" ")].join(";")
+    end
+  end
+
+  # Append the a temporary directory path to the status file.
+  def set_tmpdir(tmpdir_path)
+    status = ""
+
+    File.open(path, mode="r") do |fh|
+      status = fh.read.chomp
+    end
+
+    status = "#{status};#{tmpdir_path}\n"
+
+    File.open(path, mode="w") do |fh|
+      fh << status
+    end
+  end
+
+  # Extract the temporary directory path from the status file,
+  # and return this or nil if not found.
+  def get_tmpdir
+    File.open(path, mode="r") do |fh|
+      tmpdir_path = fh.read.chomp.split(";").last
+      return tmpdir_path if File.directory?(tmpdir_path)
+    end
+
+    nil
+  end
+
+  # Write the Biopiece status to the log file.
+  def log(exit_status)
+    time1   = Time.new.strftime("%Y-%m-%d %X")
+    user    = ENV["USER"]
+    script  = File.basename($0)
+
+    stream = File.open(path)
+    time0, args, tmp_dir = stream.first.split(";")
+    stream.close
+
+    elap     = time_diff(time0, time1)
+    command  = [script, args].join(" ") 
+    log_file = ENV["BP_LOG"] + "/biopieces.log"
+
+    File.open(log_file, mode = "a") { |file| file.puts [time0, time1, elap, user, exit_status, command].join("\t") }
+  end
+
+  # Delete status file.
+  def delete
+    File.delete(path)
+  end
+  
+  private
+
+  # Path to status file
+  def path
+    user   = ENV["USER"]
+    script = File.basename($0)
+    pid    = $$
+    path   = ENV["BP_TMP"] + "/" + [user, script, pid, "status"].join(".")
+  end
+
+  # Get the elapsed time from the difference between two time stamps.
+  def time_diff(t0, t1)
+    Time.at((DateTime.parse(t1).to_time - DateTime.parse(t0).to_time).to_i).gmtime.strftime('%X')
+  end
+end
+
+
+class Stream < IO
+  # Open Biopieces output data stream for reading from stdin or a file
+  # specified in options[:stream_in] OR writing to stdout or a file
+  # specified in options[:stream_out] or options[:data_out].
+  def self.open(options, mode, stdio)
+    if mode == "r"
+      if options[:data_in] and options[:data_in].first == "-"
+        self.nread(["-"])
+      else
+        $stdin.tty? ? read(options[:stream_in]) : stdio
+      end
+    elsif mode == "w"
+      options[:stream_out] ? self.write(options[:stream_out], options[:compress]) : stdio
+    else
+      raise "Bad mode #{mode}"
+    end
+  end
+
+  private
+
+  # Opens a reads stream to a list of files.
+  def self.read(files)
+    return if files.nil? #TODO case/when
+    self.zipped?(files) ? self.zread(files) : self.nread(files)
+  end
+
+  # Opens a write stream to a file and returns a _io_ object.
+  def self.write(file, zip=nil)
+    zip ? self.zwrite(file) : self.nwrite(file)
+  end
+
+  # Opens a list of gzipped files for reading and return an _io_ object.
+  def self.zread(files)
+    stdin, stdout, stderr = Open3.popen3("zcat " + files.join(' '));
+    stdin.close
+    stderr.close
+    stdout
+  end
+
+  # Opens a file for gzipped writing and return an _io_ object.
+  def self.zwrite(file)
+    stdin, stdout, stderr = Open3.popen3("gzip -f > #{file}")
+    stderr.close
+    stdout.close
+    stdin
+  end
+
+  # Opens a list of files for reading and return an _io_ object.
+  def self.nread(files)
+    stdin, stdout, stderr = Open3.popen3("cat " + files.join(' '));
+    stdin.close
+    stderr.close
+    stdout
+  end
+
+  # Opens a file for writing and return an _io_ object.
+  def self.nwrite(file)
+    File.open(file, mode="w")
+  end
+
+  # Test if a list of files are gzipped or not.
+  # Raises if files are mixed zipped and unzipped.
+  def self.zipped?(files)
+    type_hash = {}
+
+    files.each do |file|
+      type = `file #{file}`
+
+      if type =~ /gzip compressed/
+        type_hash[:gzip] = true
+      else
+        type_hash[:ascii] = true
+      end
+    end
+
+    raise "Mixture of zipped and unzipped files" if type_hash.size == 2
+
+    type_hash[:gzip]
+  end
+end
+
+
+Status.new.set
+
+at_exit do
+  exit_status = $! ? $!.inspect : "OK"
+
+  case exit_status
+  when /error|errno/i
+    exit_status = "ERROR"
+  when "Interrupt"
+    exit_status = "INTERRUPTED"
+  when /SIGTERM/
+    exit_status = "TERMINATED"
+  when /SIGQUIT/
+    exit_status = "QUIT"
+  end
+
+  status = Status.new
+  tmpdir = status.get_tmpdir
+  FileUtils.remove_entry_secure(tmpdir) unless tmpdir.nil?
+  status.log(exit_status)
+  status.delete
+end
+
+
+__END__
diff --git a/code_ruby/lib/maasha/bitarray.rb b/code_ruby/lib/maasha/bitarray.rb
new file mode 100644 (file)
index 0000000..8113621
--- /dev/null
@@ -0,0 +1,181 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+BitsInChar = 8
+
+# Error class for all exceptions to do with BitArray.
+class BitArrayError < StandardError; end
+
+# Class containing methods for creating and manipulating a bit array.
+class BitArray
+  attr_reader :size, :byte_array
+
+  # Method to initialize a new bit array of a given size.
+  def initialize(size)
+    @size        = size
+    @byte_array  = init_byte_array
+    @count_array = init_count_array
+  end
+
+  # Method to set a bit to 1 at a given position in the bit array.
+  def bit_set(pos)
+    raise BitArrayError, "Position #{pos} must be an integer."              unless pos.is_a? Fixnum
+    raise BitArrayError, "Position #{pos} outside of range: 0 ... #{@size}" unless (0 ... @size ).include? pos
+
+    @byte_array[byte_pos(pos)] = (@byte_array[byte_pos(pos)].ord | bit_pos(pos)).chr
+  end
+
+  # Method to check if a bit at a given position in the bit array is set.
+  def bit_set?(pos)
+    raise BitArrayError, "Position #{pos} must be an integer."              unless pos.is_a? Fixnum
+    raise BitArrayError, "Position #{pos} outside of range: 0 ... #{@size}" unless (0 ... @size ).include? pos
+
+    (@byte_array[byte_pos(pos)].ord & bit_pos(pos)) != 0
+  end
+
+  # Method that returns the number of bits set "on" in a bit array.
+  def bits_on 
+    bits_on = 0
+
+    (0 ... self.byte_array.size).each do |byte|
+      bits_on += @count_array[self.byte_array[byte].ord]
+    end
+
+    bits_on
+  end
+
+  # Method that returns the number of bits set "off" in a bit array.
+  def bits_off
+    @size - bits_on
+  end
+
+  # Method to run bitwise AND (&) on two bit arrays and return the
+  # result in a new bit array. Bits are copied if they exists in BOTH operands.
+  # 00111100 & 00001101 = 00001100
+  def &(ba)
+    raise BitArrayError, "uneven size of bit arrays: #{self.size} != #{ba.size}" if self.size != ba.size
+
+    result = BitArray.new(ba.size)
+
+    (0 ... ba.byte_array.size).each do |byte|
+      result.byte_array[byte] = (self.byte_array[byte].ord & ba.byte_array[byte].ord).chr
+    end
+
+    result
+  end
+
+  # Method to run bitwise OR (|) on two bit arrays and return the
+  # result in a new bit array. Bits are copied if they exists in EITHER operands.
+  # 00111100 | 00001101 = 00111101
+  def |(ba)
+    raise BitArrayError, "uneven size of bit arrays: #{self.size} != #{ba.size}" if self.size != ba.size
+
+    result = BitArray.new(ba.size)
+
+    (0 ... ba.byte_array.size).each do |byte|
+      result.byte_array[byte] = (self.byte_array[byte].ord | ba.byte_array[byte].ord).chr
+    end
+
+    result
+  end
+
+  # Method to run bitwise XOR (^) on two bit arrays and return the
+  # result in a new bit array. Bits are copied if they exists in ONE BUT NOT BOTH operands.
+  # 00111100 ^ 00001101 = 00110001
+  def ^(ba)
+    raise BitArrayError, "uneven size of bit arrays: #{self.size} != #{ba.size}" if self.size != ba.size
+
+    result = BitArray.new(ba.size)
+
+    (0 ... ba.byte_array.size).each do |byte|
+      result.byte_array[byte] = (self.byte_array[byte].ord ^ ba.byte_array[byte].ord).chr
+    end
+
+    result
+  end
+
+  # Method to convert a bit array to a string.
+  def to_s
+    string = ""
+
+    (0 ... @size).each do |pos|
+      if self.bit_set? pos 
+        string << "1"
+      else
+        string << "0"
+      end
+    end
+
+    string
+  end
+
+  alias :to_string :to_s
+
+  private
+
+  # Method to initialize the byte array (string) that constitutes the bit array.
+  def init_byte_array
+    raise BitArrayError, "Size must be an integer, not #{@size}" unless @size.is_a? Fixnum
+    raise BitArrayError, "Size must be positive, not #{@size}"   unless @size > 0
+
+    byte_array = ""
+    byte_array << 0.chr * (((@size - 1) / BitsInChar) + 1)
+
+    byte_array
+  end
+
+  # Method that returns an array where the element index value is
+  # the number of bits set for that index value.
+  def init_count_array
+    count_array = []
+
+    (0 ... (2 ** BitsInChar)).each do |i|
+      count_array << bits_in_char(i)
+    end
+
+    count_array
+  end
+
+  # Method that returns the number of set bits in a char.
+  def bits_in_char(char)
+    bits = 0
+
+    (0 ... BitsInChar).each do |pos|
+      bits += 1 if ((char & bit_pos(pos)) != 0)
+    end
+
+    bits
+  end
+
+  # Method that returns the byte position in the byte array for a given bit position.
+  def byte_pos(pos)
+    pos / BitsInChar
+  end
+
+  # Method that returns the bit position in a byte.
+  def bit_pos(pos)
+    1 << (BitsInChar - 1 - (pos % BitsInChar))
+  end
+end
+
diff --git a/code_ruby/lib/maasha/bits.rb b/code_ruby/lib/maasha/bits.rb
new file mode 100644 (file)
index 0000000..b976c88
--- /dev/null
@@ -0,0 +1,86 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# Error class for all exceptions to do with String.
+class StringError < StandardError; end
+
+# Monkey patching Class String to add bitwise operators.
+# Behaviour matching Perl's:
+# http://perldoc.perl.org/perlop.html#Bitwise-String-Operators
+class String
+  # Method to that returns the case senstive Hamming Distance between two strings.
+  # http://en.wikipedia.org/wiki/Hamming_distance
+  def self.hamming_dist(str1, str2)
+    raise StringError, "Uneven string lengths: #{str1.length} != #{str2.length}" if str1.length != str2.length
+    (str1 ^ str2 ).count("\x01-\xff")
+  end
+
+  # Method that performs bitwise AND operation where bits
+  # are copied if they exists in BOTH operands. If the operand
+  # sizes are different, the & operator methods acts as though
+  # the longer operand were truncated to the length of the shorter.
+  def &(str)
+    new = ""
+
+    (0 ... [self.length, str.length].min).each do |i|
+      new << (self[i].ord & str[i].ord)
+    end
+
+    new
+  end
+
+  # Method that performs bitwise OR operation where bits
+  # are copied if they exists in EITHER operands. If the operand
+  # sizes differ, the shorter operand is extended with the terminal
+  # part of the longer operand.
+  def |(str)
+    new = ""
+
+    min = [self.length, str.length].min
+
+    (0 ... min).each do |i|
+      new << (self[i].ord | str[i].ord)
+    end
+
+    if self.length > str.length
+      new << self[min ... self.length]
+    elsif self.length < str.length
+      new << str[min ... str.length]
+    end
+
+    new
+  end
+
+  # Method that performs bitwise XOR operation where bits
+  # are copied if they exists in ONE BUT NOT BOTH operands.
+  def ^(str)
+    new = ""
+
+    (0 ... [self.length, str.length].min).each do |i|
+      new << (self[i].ord ^ str[i].ord)
+    end
+
+    new
+  end
+end
diff --git a/code_ruby/lib/maasha/boulder.rb b/code_ruby/lib/maasha/boulder.rb
new file mode 100644 (file)
index 0000000..2a484a4
--- /dev/null
@@ -0,0 +1,78 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/filesys'
+
+# Error class for all exceptions to do with Boulder.
+class BoulderError < StandardError; end
+
+# Record seperator
+SEP = "\n=\n"
+
+# Class to manipulate boulder records - Lincoln Steins own
+# YAML like format:
+# http://stein.cshl.org/boulder/docs/Boulder.html
+class Boulder < Filesys
+  # Initialize a Boulder object.
+  # Options are for testing purposes only.
+  def initialize(input=STDIN, output=STDOUT)
+    @input  = input
+    @output = output
+  end
+
+  def each
+    while not @input.eof? do
+      block = @input.gets(SEP)
+      raise BoulderError, "Missing record seperator" unless block =~ /#{SEP}$/
+
+      record = {}
+
+      block.chomp(SEP).each_line do |line|
+        key, val = line.chomp.split('=', 2)
+
+        raise BoulderError, "Missing key/value seperator" if val.nil?
+        raise BoulderError, "Missing key"                 if key.empty?
+        raise BoulderError, "Missing value"               if val.empty?
+
+        record[key.to_sym] = val
+      end
+
+      yield record
+    end
+  end
+
+  # Method that converts and returns a hash record as
+  # a Boulder string.
+  def to_boulder(record)
+    str = ""
+
+    record.each_pair do |key, val|
+      str << "#{key}=#{val}\n"
+    end
+
+    str << "=\n"
+
+    str
+  end
+end
diff --git a/code_ruby/lib/maasha/digest.rb b/code_ruby/lib/maasha/digest.rb
new file mode 100644 (file)
index 0000000..727e51c
--- /dev/null
@@ -0,0 +1,106 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# Error class for all exceptions to do with Digest.
+class DigestError < StandardError; end
+
+class Digest
+  include Enumerable
+
+  # Initialize a digest object with the following arguments:
+  # - seq: A sequence object.
+  # - pattern: A restriction enzyme recognition pattern.
+  # - cut_pos: Offset from match position where the enzyme cuts.
+  def initialize(seq, pattern, cut_pos)
+    @seq     = seq
+    @pattern = disambiguate(pattern)
+    @cut_pos = cut_pos
+    @offset  = 0
+  end
+
+  # Method to get the next digestion product from a sequence.
+  def each
+    @seq.seq.upcase.scan @pattern do
+      pos = $`.length + @cut_pos - 1
+     
+      if pos >= 0 and pos < @seq.length - 2
+        seq = Seq.new("#{@seq.seq_name}[#{@offset}-#{pos}]", @seq.seq[@offset .. pos], @seq.type)
+
+        yield seq
+      end
+
+      @offset = pos + 1
+    end
+
+    if @offset < 0
+      @offset = 0
+    elsif @offset > @seq.length
+      @offset = 0
+    end
+
+    seq = Seq.new("#{@seq.seq_name}[#{@offset}-#{@seq.length - 1}]", @seq.seq[@offset .. @seq.length], @seq.type)
+
+    yield seq
+
+    self # conventionally
+  end
+
+  private
+
+  # Method that returns a regexp object with a restriction
+  # enzyme pattern with ambiguity codes substituted to the
+  # appropriate regexp.
+  def disambiguate(pattern)
+    ambiguity = {
+      'A' => "A",
+      'T' => "T",
+      'U' => "T",
+      'C' => "C",
+      'G' => "G",
+      'M' => "[AC]",
+      'R' => "[AG]",
+      'W' => "[AT]",
+      'S' => "[CG]",
+      'Y' => "[CT]",
+      'K' => "[GT]",
+      'V' => "[ACG]",
+      'H' => "[ACT]",
+      'D' => "[AGT]",
+      'B' => "[CGT]",
+      'N' => "[GATC]"
+    }
+
+    new_pattern = ""
+
+    pattern.upcase.each_char do |char|
+      if ambiguity.has_key? char
+        new_pattern << ambiguity[char]
+      else
+        raise DigestError, "Could not disambiguate residue: #{char}"
+      end
+    end
+
+    Regexp.new(new_pattern)
+  end
+end
diff --git a/code_ruby/lib/maasha/fasta.rb b/code_ruby/lib/maasha/fasta.rb
new file mode 100644 (file)
index 0000000..f57a622
--- /dev/null
@@ -0,0 +1,65 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/seq'
+require 'maasha/filesys'
+
+# Error class for all exceptions to do with FASTA.
+class FastaError < StandardError; end
+
+class Fasta < Filesys
+  # Method to get the next FASTA entry form an ios and return this
+  # as a Seq object. If no entry is found or eof then nil is returned.
+  def get_entry
+    block = @io.gets($/ + '>')
+    return nil if block.nil?
+
+    block.chomp!($/ + '>')
+
+    (seq_name, seq) = block.split($/, 2)
+
+    raise FastaError, "Bad FASTA format" if seq_name.nil? or seq.nil?
+
+    entry          = Seq.new
+    entry.type     = @type.nil? ? nil : @type.downcase
+    entry.seq      = seq.gsub(/\s/, '')
+    entry.seq_name = seq_name.sub(/^>/, '').rstrip
+
+    raise FastaError, "Bad FASTA format" if entry.seq_name.empty?
+    raise FastaError, "Bad FASTA format" if entry.seq.empty?
+
+    entry
+  end
+
+  # TODO - this should be some custom to_s method instead.
+  def puts(record)
+    if record.has_key? :SEQ_NAME and record.has_key? :SEQ
+      @io.print ">#{record[:SEQ_NAME]}\n"
+      @io.print "#{record[:SEQ]}\n"
+    end
+  end
+end
+
+
+__END__
diff --git a/code_ruby/lib/maasha/fastq.rb b/code_ruby/lib/maasha/fastq.rb
new file mode 100644 (file)
index 0000000..b3ba85f
--- /dev/null
@@ -0,0 +1,63 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/seq'
+require 'maasha/filesys'
+
+# Error class for all exceptions to do with FASTQ.
+class FastqError < StandardError; end
+
+class Fastq < Filesys
+  # Method to get the next FASTQ entry form an ios and return this
+  # as a Seq object. If no entry is found or eof then nil is returned.
+  def get_entry
+    begin
+      seq_name       = @io.gets.chomp!
+      seq            = @io.gets.chomp!
+      qual_name      = @io.gets.chomp!
+      qual           = @io.gets.chomp!
+
+      entry          = Seq.new
+      entry.type     = @type.nil? ? nil : @type.downcase
+      entry.seq      = seq
+      entry.seq_name = seq_name[1 .. seq_name.length]
+      entry.qual     = qual
+
+      entry
+    rescue
+      nil
+    end
+  end
+
+  # TODO - this should be some custom to_s method instead.
+  def puts(record)
+    if record.has_key? :SEQ_NAME and record.has_key? :SEQ
+      @io.print ">#{record[:SEQ_NAME]}\n"
+      @io.print "#{record[:SEQ]}\n"
+    end
+  end
+end
+
+
+__END__
diff --git a/code_ruby/lib/maasha/filesys.rb b/code_ruby/lib/maasha/filesys.rb
new file mode 100644 (file)
index 0000000..9024a58
--- /dev/null
@@ -0,0 +1,100 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'zlib'
+
+# Error class for all exceptions to do with Filesys.
+class FilesysError < StandardError; end
+
+class Filesys
+  include Enumerable
+
+  # Class method that returns a path to a unique temporary file.
+  # If no directory is specified reverts to the systems tmp directory.
+  def self.tmpfile(tmp_dir = ENV["TMPDIR"])
+    time = Time.now.to_i
+    user = ENV["USER"]
+    pid  = $$
+    path = tmp_dir + [user, time + pid, pid].join("_") + ".tmp"
+    path
+  end
+
+  # Class method allowing open to be used on (zipped) files.
+  # See File.open.
+  def self.open(*args)
+    args = *args
+    file = args.first
+
+    if file == "-"
+      ios = self.new(STDIN)
+    elsif File.pipe? file
+      ios = self.new(File.open(*args))
+    else
+      ios = self.zopen(*args)
+    end
+
+    if block_given?
+      begin
+        yield ios
+      ensure
+        ios.close
+      end
+    else
+      return ios
+    end
+  end
+
+  def initialize(io, type=nil)
+    @io   = io
+    @type = type
+  end
+
+  # Method to close ios.
+  def close
+    @io.close
+  end
+
+  # Iterator method for parsing entries.
+  def each
+    while entry = get_entry do
+      yield entry
+    end
+  end
+
+  private
+
+  # Helper method to return an ios to a file that may be zipped in which case
+  # the ios is unzipped on the fly. See File.open.
+  def self.zopen(*args)
+    ios = File.open(*args)
+
+    begin
+      ios = Zlib::GzipReader.new(ios)
+    rescue
+      ios.rewind
+    end
+
+    self.new(ios)
+  end
+end
diff --git a/code_ruby/lib/maasha/genbank.rb b/code_ruby/lib/maasha/genbank.rb
new file mode 100644 (file)
index 0000000..a6ec292
--- /dev/null
@@ -0,0 +1,361 @@
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/seq'
+require 'maasha/filesys'
+
+# Error class for all exceptions to do with Genbank.
+class GenbankError < StandardError; end
+
+class Genbank < Filesys
+  def initialize(io)
+    @io      = io
+    @entry   = []
+  end
+
+  # Iterator method for parsing Genbank entries.
+  def each(hash_keys = nil, hash_feats = nil, hash_quals = nil)
+    while @entry = get_entry do
+      keys = get_keys(hash_keys)
+      seq  = get_seq
+
+      features = GenbankFeatures.new(@entry, hash_feats, hash_quals)
+
+      features.each do |record|
+        keys.each_pair { |key,val| record[key] = val }
+
+                               loc = Locator.new(record[:LOCATOR], seq)
+                               record[:SEQ]     = loc.subseq.seq
+        record[:SEQ_LEN] = loc.subseq.length
+                               record[:STRAND]  = loc.strand
+                               record[:S_BEG]   = loc.s_beg
+                               record[:S_END]   = loc.s_end
+
+        yield record
+      end
+    end
+  end
+
+  private
+
+  # Method to get the next Genbank entry form an ios and return this.
+  def get_entry
+    block = @io.gets("//" + $/)
+    return nil if block.nil?
+
+    block.chomp!("//" + $/ )
+
+    entry = block.split $/
+
+    return nil if entry.empty?
+
+    entry
+  end
+
+  # Method to get the DNA sequence from a Genbank entry and return
+  # this as a Seq object.
+  def get_seq
+    i = @entry.size
+    j = i - 1
+
+    while @entry[j] and @entry[j] !~ /^[A-Z]/
+      j -= 1
+    end
+
+    seq = @entry[j + 1 .. i].join.delete(" 0123456789")
+
+    Seq.new(nil, seq, "dna") if seq
+  end
+
+  # Method to get the base keys from Genbank entry and return these
+  # in a hash.
+  def get_keys(hash_keys)
+    keys = {}
+    i    = 0
+    j    = 0
+
+    while @entry[i] and @entry[i] !~ /^FEATURES/
+      if @entry[i] =~ /^\s{0,3}([A-Z]{2})/
+        if want_key?(hash_keys, $1)
+          j = i + 1
+
+          key, val = @entry[i].lstrip.split(/\s+/, 2)
+
+          while @entry[j] and @entry[j] !~ /^\s{0,3}[A-Z]/
+            val << @entry[j].lstrip
+            j += 1
+          end
+
+          if keys[key.to_sym]
+            keys[key.to_sym] << ";" + val
+          else
+            keys[key.to_sym] = val
+          end
+        end
+      end
+
+      j > i ? i = j : i += 1
+    end
+
+    keys
+  end
+
+  def want_key?(hash_keys, key)
+    if hash_keys
+      if hash_keys[key.to_sym]
+        return true
+      else
+        return false
+      end
+    else
+      return true
+    end
+  end
+end
+
+class GenbankFeatures
+  @@i = 0
+  @@j = 0
+
+  def initialize(entry, hash_feats, hash_quals)
+    @entry      = entry
+    @hash_feats = hash_feats
+    @hash_quals = hash_quals
+  end
+
+  def each
+    while @entry[@@i] and @entry[@@i] !~ /^ORIGIN/
+      if @entry[@@i] =~ /^\s{5}([A-Za-z_-]+)/
+        if want_feat? $1
+          record = {}
+
+          feat, loc = @entry[@@i].lstrip.split(/\s+/, 2)
+
+          @@j = @@i + 1
+
+          while @entry[@@j] and @entry[@@j] !~ /^(\s{21}\/|\s{5}[A-Za-z_-]|[A-Z])/
+            loc << @entry[@@j].lstrip
+            @@j += 1
+          end
+
+          get_quals.each_pair { |k,v|
+            record[k.upcase.to_sym] = v
+          }
+
+          record[:FEATURE] = feat
+          record[:LOCATOR] = loc
+
+          yield record
+        end
+      end
+
+      @@j > @@i ? @@i = @@j : @@i += 1
+    end
+  end
+
+  private
+
+  def get_quals
+    quals = {}
+    k     = 0
+
+    while @entry[@@j] and @entry[@@j] !~ /^\s{5}[A-Za-z_-]|^[A-Z]/
+      if @entry[@@j] =~ /^\s{21}\/([^=]+)="([^"]+)/
+        qual = $1
+        val  = $2
+
+        if want_qual? qual
+          k = @@j + 1
+
+          while @entry[k] and @entry[k] !~ /^(\s{21}\/|\s{5}[A-Za-z_-]|[A-Z])/
+            val << @entry[k].lstrip.chomp('"')
+            k += 1
+          end
+
+          if quals[qual]
+            quals[qual] << ";" + val
+          else
+            quals[qual] = val
+          end
+        end
+      end
+
+      k > @@j ? @@j = k : @@j += 1
+    end
+
+    quals
+  end
+
+  def want_feat?(feat)
+    if @hash_feats
+      if @hash_feats[feat.upcase.to_sym]
+        return true
+      else
+        return false
+      end
+    else
+      return true
+    end
+  end
+
+  def want_qual?(qual)
+    if @hash_quals
+      if @hash_quals[qual.upcase.to_sym]
+        return true
+      else
+        return false
+      end
+    else
+      return true
+    end
+  end
+end
+
+
+# Error class for all exceptions to do with Genbank/EMBL/DDBJ feature table locators.
+class LocatorError < StandardError; end
+
+class Locator
+  attr_accessor :locator, :seq, :subseq
+
+  def initialize(locator, seq)
+    @locator = locator
+    @seq     = seq
+    @subseq  = Seq.new(nil, "", "dna")
+    parse_locator(locator)
+  end
+
+  def strand
+    if @locator.match("complement")
+      return "-"
+    else
+      return "+"
+    end
+  end
+
+  def s_beg
+    if @locator =~ /(\d+)/
+      return $1.to_i - 1
+    end
+  end
+
+  def s_end
+    if @locator.reverse =~ /(\d+)/
+      return $1.reverse.to_i - 1
+    end
+  end
+
+  private
+
+  # Method that uses recursion to parse a locator string from a feature
+  # table and fetches the appropriate subsequence. the operators
+  # join(), complement(), and order() are handled.
+  # the locator string is broken into a comma separated lists, and
+  # modified if the parens donnot balance. otherwise the comma separated
+  # list of ranges are stripped from operators, and the subsequence are
+  # fetched and handled according to the operators.
+  # SNP locators are also dealt with (single positions).
+  def parse_locator(locator, join = nil, comp = nil, order = nil)
+    intervals = locator.split(",")
+
+    unless balance_parens?(intervals.first)   # locator includes a join/comp/order of several ranges
+      case locator
+      when /^join\((.*)\)$/
+        locator = $1
+        join     = true
+      when /^complement\((.*)\)$/
+        locator = $1
+        comp     = true
+      when /^order\((.*)\)$/
+        locator = $1
+        order    = true
+      end
+
+      parse_locator(locator, join, comp, order)
+    else
+      intervals.each do |interval|
+        case interval
+        when /^join\((.*)\)$/
+          locator = $1
+          join    = true
+          parse_locator(locator, join, comp, order)
+        when /^complement\((.*)\)$/
+          locator = $1
+          comp    = true
+          parse_locator(locator, join, comp, order)
+        when /^order\((.*)\)$/
+          locator = $1
+          order   = true
+          parse_locator(locator, join, comp, order)
+        when /^[<>]?(\d+)[^\d]+(\d+)$/
+          int_beg = $1.to_i - 1
+          int_end = $2.to_i - 1
+
+          newseq = Seq.new(nil, @seq.seq[int_beg...int_end], "dna")
+
+                                       unless newseq.seq.nil?
+                                               newseq.revcomp if comp
+
+                                               @subseq.seq << (order ? " " + newseq.seq : newseq.seq)
+                                       end
+        when /^(\d+)$/
+          pos = $1.to_i - 1
+
+          newseq = Seq.new(nil, @seq.seq[pos], "dna")
+
+                                       unless newseq.seq.nil?
+               newseq.revcomp if comp 
+
+               @subseq.seq << (order ? " " + newseq.seq : newseq.seq)
+                                       end
+        else
+          $stderr.puts "WARNING: Could not match locator -> #{locator}";
+          @subseq.seq << ""
+        end
+      end
+    end
+
+    return @subseq
+  end
+
+  def balance_parens?(locator)
+    parens = 0
+
+    locator.each_char do |char|
+      case char
+      when '(' then parens += 1
+      when ')' then parens -= 1
+      end
+    end
+
+    if parens == 0
+      return true
+    else
+      return false
+    end
+  end
+end
+
+
+__END__
diff --git a/code_ruby/lib/maasha/patscan.rb b/code_ruby/lib/maasha/patscan.rb
new file mode 100644 (file)
index 0000000..4e31398
--- /dev/null
@@ -0,0 +1,190 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/filesys'
+require 'open3'
+
+# Module containing code to locate nucleotide patterns in sequences allowing for
+# ambiguity codes and a given maximum mismatches, insertions, and deletions. The
+# pattern match engine is based on scan_for_matches.
+module Patscan
+  # ------------------------------------------------------------------------------
+  #   str.scan(pattern[, max_mismatches [, max_insertions [,max_deletions]]])
+  #   -> Array
+  #   str.scan(pattern[, max_mismatches [, max_insertions [,max_deletions]]]) { |match|
+  #     block
+  #   }
+  #   -> Match
+  #
+  # ------------------------------------------------------------------------------
+  # Method to iterate through a sequence to locate pattern matches starting
+  # allowing for a maximum number of mismatches, insertions, and deletions.
+  # Matches found in block context return the Match object. Otherwise matches are
+  # returned in an Array.
+  def scan(pattern, max_mismatches = 0, max_insertions = 0, max_deletions = 0)
+    @pattern = pattern + "[#{max_mismatches},#{max_insertions},#{max_deletions}]"
+    matches  = []
+
+    pattern_file = Filesys.tmpfile
+
+    File.open(pattern_file, mode = 'w') do |ios|
+      ios.puts @pattern
+    end
+
+    cmd = "scan_for_matches #{pattern_file}"
+
+    Open3.popen3(cmd) do |stdin, stdout, stderr|
+      #raise SeqError, "scan_for_matches failed: #{stderr.gets}" unless stderr.empty?
+
+      stdin << ">dummy\n#{self.seq}\n"
+
+      stdin.close
+
+      while block = stdout.gets($/ + ">")
+        if block =~ />dummy:\[(\d+),(\d+)\]\n(.+)/
+          start  = $1.to_i
+          stop   = $2.to_i
+          match  = $3.delete(" ")
+          length = stop - start
+
+          if block_given?
+            yield Match.new(start, length, match)
+          else
+            matches << Match.new(start, length, match)
+          end
+        end
+      end
+    end
+
+    matches unless block_given?
+  end
+
+  class Match
+    attr_reader :pos, :length, :match
+
+    def initialize(pos, length, match)
+      @pos    = pos
+      @length = length
+      @match  = match
+    end
+  end
+end
+
+__END__
+
+
+# Eeeeiiiii - this one is slower than scan_for_matches!
+
+
+# Module containing code to locate nucleotide patterns in sequences allowing for
+# ambiguity codes and a given maximum edit distance. Pattern match engine is based
+# on nrgrep.
+module Patscan
+  # ------------------------------------------------------------------------------
+  #   str.scan(pattern[, max_edit_distance])
+  #   -> Array
+  #   str.scan(pattern[, max_edit_distance]) { |match|
+  #     block
+  #   }
+  #   -> Match
+  #
+  # ------------------------------------------------------------------------------
+  # Method to iterate through a sequence to locate pattern matches starting
+  # from a given position and allowing for a maximum edit distance.
+  # Matches found in block context return the Match object. Otherwise matches are
+  # returned in an Array.
+  def scan(pattern, edit_distance = 0)
+    @pattern = pattern.upcase
+    matches  = []
+
+    pattern_disambiguate
+
+    cmd = "nrgrep_coords"
+    cmd << " -i"
+    cmd << " -k #{edit_distance}s" if edit_distance > 0
+    cmd << " #{@pattern}"
+
+    Open3.popen3(cmd) do |stdin, stdout, stderr|
+      stdin << self.seq
+
+      stdin.close
+
+      stdout.each_line do |line| 
+        if line =~ /\[(\d+), (\d+)\]: (.+)/
+          start = $1.to_i
+          stop  = $2.to_i
+          match = $3
+          length = stop - start
+
+          if block_given?
+            yield Match.new(start, length, match)
+          else
+            matches << Match.new(start, length, match)
+          end
+        end
+      end
+    end
+
+    matches unless block_given?
+  end
+
+  private
+
+  def pattern_disambiguate
+    case self.type
+    when 'protein'
+      @pattern.gsub!('J', '[IFVLWMAGCY]')
+      @pattern.gsub!('O', '[TSHEDQNKR]')
+      @pattern.gsub!('B', '[DN]')
+      @pattern.gsub!('Z', '[EQ]')
+      @pattern.gsub!('X', '.')
+    when 'dna'
+      @pattern.gsub!('R', '[AG]')
+      @pattern.gsub!('Y', '[CT]')
+      @pattern.gsub!('S', '[GC]')
+      @pattern.gsub!('W', '[AT]')
+      @pattern.gsub!('M', '[AC]')
+      @pattern.gsub!('K', '[GT]')
+      @pattern.gsub!('V', '[ACG]')
+      @pattern.gsub!('H', '[ACT]')
+      @pattern.gsub!('D', '[AGT]')
+      @pattern.gsub!('B', '[CGT]')
+      @pattern.gsub!('N', '.')
+    when 'rna'
+    else
+      raise SeqError "unknown sequence type: #{self.type}"
+    end
+  end
+
+  class Match
+    attr_reader :pos, :length, :match
+
+    def initialize(pos, length, match)
+      @pos    = pos
+      @length = length
+      @match  = match
+    end
+  end
+end
+
diff --git a/code_ruby/lib/maasha/patternmatcher.rb b/code_ruby/lib/maasha/patternmatcher.rb
new file mode 100644 (file)
index 0000000..89ffb70
--- /dev/null
@@ -0,0 +1,269 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# IUPAC nucleotide pair ambiguity equivalents are saved in an
+# array of bit fields.
+
+BIT_A = 1 << 0 
+BIT_T = 1 << 1 
+BIT_C = 1 << 2 
+BIT_G = 1 << 3 
+
+EQUAL          = Array.new(256, 0)
+EQUAL['A'.ord] = BIT_A 
+EQUAL['a'.ord] = BIT_A 
+EQUAL['T'.ord] = BIT_T 
+EQUAL['t'.ord] = BIT_T 
+EQUAL['U'.ord] = BIT_T 
+EQUAL['u'.ord] = BIT_T 
+EQUAL['C'.ord] = BIT_C 
+EQUAL['c'.ord] = BIT_C 
+EQUAL['G'.ord] = BIT_G 
+EQUAL['g'.ord] = BIT_G 
+EQUAL['M'.ord] = (BIT_A|BIT_C)
+EQUAL['m'.ord] = (BIT_A|BIT_C)
+EQUAL['R'.ord] = (BIT_A|BIT_G)
+EQUAL['r'.ord] = (BIT_A|BIT_G)
+EQUAL['W'.ord] = (BIT_A|BIT_T)
+EQUAL['w'.ord] = (BIT_A|BIT_T)
+EQUAL['S'.ord] = (BIT_C|BIT_G)
+EQUAL['s'.ord] = (BIT_C|BIT_G)
+EQUAL['Y'.ord] = (BIT_C|BIT_T)
+EQUAL['y'.ord] = (BIT_C|BIT_T)
+EQUAL['K'.ord] = (BIT_G|BIT_T)
+EQUAL['k'.ord] = (BIT_G|BIT_T)
+EQUAL['B'.ord] = (BIT_C|BIT_G|BIT_T)
+EQUAL['b'.ord] = (BIT_C|BIT_G|BIT_T)
+EQUAL['D'.ord] = (BIT_A|BIT_G|BIT_T)
+EQUAL['d'.ord] = (BIT_A|BIT_G|BIT_T)
+EQUAL['H'.ord] = (BIT_A|BIT_C|BIT_T)
+EQUAL['h'.ord] = (BIT_A|BIT_C|BIT_T)
+EQUAL['V'.ord] = (BIT_A|BIT_C|BIT_G)
+EQUAL['v'.ord] = (BIT_A|BIT_C|BIT_G)
+EQUAL['N'.ord] = (BIT_A|BIT_C|BIT_G|BIT_T)
+EQUAL['n'.ord] = (BIT_A|BIT_C|BIT_G|BIT_T)
+
+# Module containing code to locate nucleotide patterns in sequences allowing for
+# ambiguity codes and a given maximum edit distance.
+# Insertions are nucleotides found in the pattern but not in the sequence.
+# Deletions are nucleotides found in the sequence but not in the pattern.
+#
+# Inspired by the paper by Bruno Woltzenlogel Paleo (page 197):
+# http://www.logic.at/people/bruno/Papers/2007-GATE-ESSLLI.pdf
+module PatternMatcher
+  # ------------------------------------------------------------------------------
+  #   str.match(pattern[, pos[, max_edit_distance]])
+  #   -> Match or nil
+  #
+  # ------------------------------------------------------------------------------
+  # Method to locate the next pattern match starting from a given position. A match
+  # is allowed to contain a given maximum edit distance. If a match is located a 
+  # Match object will be returned otherwise nil.
+  def match(pattern, pos = 0, max_edit_distance = 0)
+    @pattern           = pattern
+    @pos               = pos
+    @max_edit_distance = max_edit_distance
+    @vector            = vector_init
+
+    while @pos < @seq.length
+      vector_update
+
+      return match_new if match_found?
+
+      @pos += 1
+    end
+  end
+
+  # ------------------------------------------------------------------------------
+  #   str.scan(pattern[, pos[, max_edit_distance]])
+  #   -> Array
+  #   str.scan(pattern[, pos[, max_edit_distance]]) { |match|
+  #     block
+  #   }
+  #   -> Match
+  #
+  # ------------------------------------------------------------------------------
+  # Method to iterate through a sequence to locate pattern matches starting
+  # from a given position and allowing for a maximum edit distance.
+  # Matches found in block context return the Match object. Otherwise matches are
+  # returned in an Array.
+  def scan(pattern, pos = 0, max_edit_distance = 0)
+    matches = []
+
+    while match = match(pattern, pos, max_edit_distance)
+      if block_given?
+        yield match
+      else
+        matches << match
+      end
+
+      pos = match.pos + 1
+    end
+
+    return matches unless block_given?
+  end
+
+  private
+
+  # Method to initailize the score vector and return this.
+  def vector_init
+    vector = []
+
+    (0 ... @pattern.length + 1).each do |i|
+      vector[i] = Score.new(matches = 0, mismatches = 0, insertions = i)
+    end
+
+    vector
+  end
+
+  # Method to update the score vector.
+  def vector_update
+    score_diag = @vector[0]
+    score_up   = Score.new  # insertion
+    score_left = @vector[1] # deletion
+
+    (0 ... @pattern.length).each do |i|
+      if match?(@seq[@pos], @pattern[i])
+        new_score = score_diag.dup
+        new_score.matches += 1
+      else
+        if deletion?(score_diag, score_up, score_left)
+          new_score = score_left.dup
+          new_score.deletions += 1
+        elsif mismatch?(score_diag, score_up, score_left)
+          new_score = score_diag.dup
+          new_score.mismatches += 1
+        elsif insertion?(score_diag, score_up, score_left)
+          new_score = score_up.dup
+          new_score.insertions += 1
+        end
+      end
+
+      score_diag = @vector[i + 1]
+      score_up   = new_score
+      score_left = @vector[i + 2]
+
+      @vector[i + 1] = new_score
+    end
+  end
+
+  # Method to determine if a match occurred.
+  def match?(char1, char2)
+    (EQUAL[char1.ord] & EQUAL[char2.ord]) != 0
+  end
+
+  # Method to determine if a mismatch occured.
+  def mismatch?(score_diag, score_up, score_left)
+    if score_diag.edit_distance <= score_up.edit_distance and
+       score_diag.edit_distance <= score_left.edit_distance
+      true
+    end
+  end
+
+  # Method to determine if an insertion occured.
+  def insertion?(score_diag, score_up, score_left)
+    if score_up.edit_distance <= score_diag.edit_distance and
+       score_up.edit_distance <= score_left.edit_distance
+      true
+    end
+  end
+
+  # Method to determine if a deletion occured.
+  def deletion?(score_diag, score_up, score_left)
+    if score_left.edit_distance <= score_diag.edit_distance and
+       score_left.edit_distance <= score_up.edit_distance
+      true
+    end
+  end
+
+  # Method to print the score vector.
+  def vector_print
+    @vector.each do |s|
+      puts s
+    end
+
+    puts
+  end
+
+  # Method that returns a Match object initialized with
+  # information from the score vector.
+  def match_new
+    matches    = @vector.last.matches
+    mismatches = @vector.last.mismatches
+    insertions = @vector.last.insertions
+    deletions  = @vector.last.deletions
+    length     = @pattern.length - insertions + deletions
+    pos        = @pos - length + 1
+    match      = @seq[pos ... pos + length]
+
+    Match.new(pos, match, matches, mismatches, insertions, deletions, length)
+  end
+
+  # Method that determines if a match was found by analyzing the score vector.
+  def match_found?
+    if @vector.last.edit_distance <= @max_edit_distance
+      true
+    end
+  end
+
+  # Class to instantiate Score objects that holds score information.
+  class Score
+    attr_accessor :matches, :mismatches, :insertions, :deletions
+
+    def initialize(matches = 0, mismatches = 0, insertions = 0, deletions = 0)
+      @matches    = matches
+      @mismatches = mismatches
+      @insertions = insertions
+      @deletions  = deletions
+    end
+
+    # Method to calculate and return the edit distance.
+    def edit_distance
+      self.mismatches + self.insertions + self.deletions
+    end
+
+    private    
+
+    def to_s
+      "(#{[self.matches, self.mismatches, self.insertions, self.deletions].join(',')})"
+    end
+  end
+
+  # Class for creating Match objects which contain the description of a
+  # match between a nucleotide sequence and a pattern.
+  class Match
+    attr_reader :pos, :match, :matches, :mismatches, :insertions, :deletions, :edit_distance, :length
+
+    def initialize(pos, match, matches, mismatches, insertions, deletions, length)
+      @pos           = pos
+      @match         = match
+      @matches       = matches
+      @mismatches    = mismatches
+      @insertions    = insertions
+      @deletions     = deletions
+      @edit_distance = mismatches + insertions + deletions
+      @length        = length
+    end
+  end
+end
diff --git a/code_ruby/lib/maasha/prodigal.rb b/code_ruby/lib/maasha/prodigal.rb
new file mode 100644 (file)
index 0000000..35b4992
--- /dev/null
@@ -0,0 +1,93 @@
+# Copyright (C) 2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/genbank'
+
+# Class for running the Prodigal gene finder.
+# http://prodigal.ornl.gov/
+class Prodigal
+  include Enumerable
+
+  # Method to initialize a Prodigal object
+  # given a temporary infile, outfile and options hash.
+  def initialize(infile, outfile, options)
+    @infile  = infile
+    @outfile = outfile
+    @options = options
+  end
+
+  # Method to run Prodigal.
+  def run
+    commands = []
+    commands << "prodigal"
+    commands << "-c" if @options[:full]
+    commands << "-p #{@options[:procedure]}"
+    commands << "-i #{@infile}"
+    commands << "-o #{@outfile}"
+
+    execute(commands, @options[:verbose])
+  end
+
+  # Method for iterating over the Prodigal results,
+  # which are in GenBank format.
+  def each
+    Genbank.open(@outfile, mode='r') do |gb|
+      gb.each do |entry|
+        yield entry
+      end
+    end
+  end
+
+  # Method that returns the sum of the predicted gene lengths.
+  def coverage
+    coverage = 0
+
+    self.each do |gb|
+      coverage += gb[:S_END] - gb[:S_BEG]
+    end
+
+    coverage
+  end
+
+  private
+
+  # Method to execute commands on the command line.
+  # TODO this wants to be in a module on its own.
+  def execute(commands, verbose = false)
+    commands.unshift "nice -n 19"
+    commands.push "> /dev/null 2>&1" unless verbose
+
+    command = commands.join(" ")
+
+    begin
+      system(command)
+      raise "Command failed: #{command}" unless $?.success?
+    rescue
+      $stderr.puts "Command failed: #{command}"
+    end
+  end
+end
+
+
+__END__
diff --git a/code_ruby/lib/maasha/seq.rb b/code_ruby/lib/maasha/seq.rb
new file mode 100644 (file)
index 0000000..21e6e07
--- /dev/null
@@ -0,0 +1,351 @@
+# Copyright (C) 2007-2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/digest'
+require 'maasha/patternmatcher'
+#require 'maasha/patscan'
+
+# Residue alphabets
+DNA     = %w[a t c g]
+RNA     = %w[a u c g]
+PROTEIN = %w[f l s y c w p h q r i m t n k v a d e g]
+INDELS  = %w[. - _ ~]
+
+# Quality scores bases
+SCORE_PHRED    = 33
+SCORE_ILLUMINA = 64
+
+# Error class for all exceptions to do with Seq.
+class SeqError < StandardError; end
+
+class Seq
+  #include Patscan
+  include PatternMatcher
+
+  attr_accessor :seq_name, :seq, :type, :qual
+
+  # Method that generates all possible oligos of a specifed length and type.
+  def self.generate_oligos(length, type)
+    raise SeqError, "Cannot generate negative oligo length: #{length}" if length <= 0
+
+    case type.downcase
+    when /dna/     then alph = DNA
+    when /rna/     then alph = RNA
+    when /protein/ then alph = PROTEIN
+    else
+      raise SeqError, "Unknown sequence type: #{type}"
+    end
+
+    oligos = [""]
+
+    (1 .. length).each do
+      list = []
+
+      oligos.each do |oligo|
+        alph.each do |char|
+          list << oligo + char
+        end
+      end
+
+      oligos = list
+    end
+
+    oligos
+  end
+
+  # Initialize a sequence object with the following arguments:
+  # - seq_name: Name of the sequence.
+  # - seq: The sequence.
+  # - type: The sequence type - DNA, RNA, or protein
+  # - qual: An Illumina type quality scores string.
+  def initialize(seq_name = nil, seq = nil, type = nil, qual = nil)
+    @seq_name = seq_name
+    @seq      = seq
+    @type     = type
+    @qual     = qual
+  end
+
+  # Returns the length of a sequence.
+  def length
+    self.seq.nil? ? 0 : self.seq.length
+  end
+
+  alias :len :length
+
+  # Return the number indels in a sequence.
+  def indels
+    regex = Regexp.new(/[#{Regexp.escape(INDELS.join(""))}]/)
+    self.seq.scan(regex).size
+  end
+
+  # Method that returns true is a given sequence type is DNA.
+  def is_dna?
+    self.type == 'dna'
+  end
+
+  # Method that returns true is a given sequence type is RNA.
+  def is_rna?
+    self.type == 'rna'
+  end
+
+  # Method that returns true is a given sequence type is protein.
+  def is_protein?
+    self.type == 'protein'
+  end
+
+  # Method to transcribe DNA to RNA.
+  def to_rna
+    raise SeqError, "Cannot transcribe 0 length sequence" if self.length == 0
+    raise SeqError, "Cannot transcribe sequence type: #{self.type}" unless self.is_dna?
+    self.type = 'rna'
+    self.seq.tr!('Tt','Uu')
+  end
+
+  # Method to reverse-transcribe RNA to DNA.
+  def to_dna
+    raise SeqError, "Cannot reverse-transcribe 0 length sequence" if self.length == 0
+    raise SeqError, "Cannot reverse-transcribe sequence type: #{self.type}" unless self.is_rna?
+
+    self.type = 'dna'
+    self.seq.tr!('Uu','Tt')
+  end
+
+  # Method that given a Seq entry returns a Biopieces record (a hash).
+  def to_bp
+    raise SeqError, "Missing seq_name" if self.seq_name.nil?
+    raise SeqError, "Missing seq"      if self.seq.nil?
+
+    record             = {}
+    record[:SEQ_NAME] = self.seq_name
+    record[:SEQ]      = self.seq
+    record[:SEQ_LEN]  = self.length
+    record[:SCORES]   = self.qual if self.qual
+    record
+  end
+
+  # Method that given a Seq entry returns a FASTA entry (a string).
+  def to_fasta(wrap = nil)
+    raise SeqError, "Missing seq_name" if self.seq_name.nil?
+    raise SeqError, "Missing seq"      if self.seq.nil?
+
+    seq_name = self.seq_name
+    seq      = self.seq
+
+    unless wrap.nil?
+      seq.gsub!(/(.{#{wrap}})/) do |match|
+        match << "\n"
+      end
+
+      seq.chomp!
+    end
+
+    ">#{seq_name}\n#{seq}\n"
+  end
+
+  # Method that generates a unique key for a
+  # DNA sequence and return this key as a Fixnum.
+  def to_key
+    key = 0
+    
+    self.seq.upcase.each_char do |char|
+      key <<= 2
+      
+      case char
+      when 'A' then key |= 0
+      when 'C' then key |= 1
+      when 'G' then key |= 2
+      when 'T' then key |= 3
+      else raise SeqError, "Bad residue: #{char}"
+      end
+    end
+    
+    key
+  end
+
+  # Method to reverse complement sequence.
+  def reverse_complement
+    self.reverse
+    self.complement
+  end
+
+  alias :revcomp :reverse_complement
+
+  # Method to reverse the sequence.
+  def reverse
+    self.seq.reverse!
+  end
+
+  # Method that complements sequence including ambiguity codes.
+  def complement
+    raise SeqError, "Cannot complement 0 length sequence" if self.length == 0
+
+    if self.is_dna?
+      self.seq.tr!( 'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn', 'TCGAAYRWSKMDHBVNtcgaayrwskmdhbvn' )
+    elsif self.is_rna?
+      self.seq.tr!( 'AGCUTRYWSMKHDVBNagcutrywsmkhdvbn', 'UCGAAYRWSKMDHBVNucgaayrwskmdhbvn' )
+    else
+      raise SeqError, "Cannot complement sequence type: #{self.type}"
+    end
+  end
+
+  # Method that generates a random sequence of a given length and type.
+  def generate(length, type)
+    raise SeqError, "Cannot generate sequence length < 1: #{length}" if length <= 0
+
+    case type.downcase
+    when "dna"
+      alph = DNA
+    when "rna"
+      alph = RNA
+    when "protein"
+      alph = PROTEIN
+    else
+      raise SeqError, "Unknown sequence type: #{type}"
+    end
+
+    seq_new   = Array.new(length) { alph[rand(alph.size)] }.join("")
+    self.seq  = seq_new
+    self.type = type.downcase
+    seq_new
+  end
+
+  # Method that returns a subsequence of from a given start position
+  # and of a given length.
+  def subseq(start, length = self.length - start)
+    raise SeqError, "subsequence start: #{start} < 0"                                                if start  < 0
+    raise SeqError, "subsequence length: #{length} < 1"                                              if length <= 0
+    raise SeqError, "subsequence start + length > Seq.length: #{start} + #{length} > #{self.length}" if start + length > self.length
+
+    stop = start + length - 1
+
+    seq  = self.seq[start .. stop]
+    qual = self.qual[start .. stop] unless self.qual.nil?
+
+    Seq.new(self.seq_name, seq, self.type, qual)
+  end
+
+  # Method that replaces a sequence with a subsequence from a given start position
+  # and of a given length.
+  def subseq!(start, length = self.length - start)
+    raise SeqError, "subsequence start: #{start} < 0"                                                if start  < 0
+    raise SeqError, "subsequence length: #{length} < 1"                                              if length <= 0
+    raise SeqError, "subsequence start + length > Seq.length: #{start} + #{length} > #{self.length}" if start + length > self.length
+
+    stop = start + length - 1
+
+    self.seq  = self.seq[start .. stop]
+    self.qual = self.qual[start .. stop] unless self.qual.nil?
+  end
+
+  # Method that returns a subsequence of a given length
+  # beginning at a random position.
+  def subseq_rand(length)
+    if self.length - length + 1 == 0
+      start = 0
+    else
+      start = rand(self.length - length + 1)
+    end
+
+    self.subseq(start, length)
+  end
+
+  # Method that returns the residue compositions of a sequence in
+  # a hash where the key is the residue and the value is the residue
+  # count.
+  def composition
+    comp = Hash.new(0);
+
+    self.seq.upcase.each_char do |char|
+      comp[char] += 1
+    end
+
+    comp
+  end
+
+  # Method that returns the length of the longest homopolymeric stretch
+  # found in a sequence.
+  def homopol_max(min = 1)
+    return 0 if self.seq.nil? or self.seq.empty?
+
+    found = false
+
+    self.seq.upcase.scan(/A{#{min},}|T{#{min},}|G{#{min},}|C{#{min},}|N{#{min},}/) do |match|
+      found = true
+      min   = match.size > min ? match.size : min
+    end
+
+    return 0 unless found
+    min
+  end
+
+  # Method that returns the percentage of hard masked residues
+  # or N's in a sequence.
+  def hard_mask
+    ((self.seq.upcase.scan("N").size.to_f / (self.len - self.indels).to_f) * 100).round(2)
+  end
+
+  # Method that returns the percentage of soft masked residues
+  # or lower cased residues in a sequence.
+  def soft_mask
+    ((self.seq.scan(/[a-z]/).size.to_f / (self.len - self.indels).to_f) * 100).round(2)
+  end
+
+  # Method to convert the quality scores from a specified base
+  # to another base.
+  def convert_phred2illumina!
+    self.qual.gsub!(/./) do |score|
+      score_phred  = score.ord - SCORE_PHRED
+      raise SeqError, "Bad Phred score: #{score} (#{score_phred})" unless (0 .. 40).include? score_phred
+      score_illumina = score_phred + SCORE_ILLUMINA
+      score          = score_illumina.chr
+    end
+  end
+
+  # Method to convert the quality scores from Solexa odd/ratio to
+  # Illumina format.
+  def convert_solexa2illumina!
+    self.qual.gsub!(/./) do |score|
+      score = solexa_char2illumina_char(score)
+    end
+  end
+
+  private
+
+  # Method to convert a Solexa score (odd ratio) to
+  # a phred (probability) integer score.
+  def solexa2phred(score)
+    (10.0 * Math.log(10.0 ** (score / 10.0) + 1.0, 10)).to_i
+  end
+
+  # Method to convert a Solexa score encoded using base
+  # 64 ASCII to a Phred score encoded using base 64 ASCII.
+  def solexa_char2illumina_char(char)
+    score_solexa = char.ord - 64
+    score_phred  = solexa2phred(score_solexa)
+    (score_phred + 64).chr
+  end
+end
+
+__END__
diff --git a/code_ruby/lib/maasha/sff.rb b/code_ruby/lib/maasha/sff.rb
new file mode 100644 (file)
index 0000000..0a9d2a1
--- /dev/null
@@ -0,0 +1,247 @@
+# Copyright (C) 2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/base36'
+
+# Error class for all exceptions to do with SFF.
+class SFFError < StandardError; end
+
+BIT_SHIFT = 12
+BIT_MASK  = (1 << BIT_SHIFT) - 1
+
+# Class containing methods to parse SFF files:
+# http://www.ncbi.nlm.nih.gov/Traces/trace.cgi?cmd=show&f=formats&m=doc&s=format#sff
+class SFF
+  include Enumerable
+
+  @@count = 0
+
+  # Class method for opening SFF files.
+  def self.open(*args)
+    ios = File.open(*args)
+
+    if block_given?
+      begin
+        yield self.new(ios)
+      ensure
+        ios.close
+      end
+    else
+      return self.new(ios)
+    end
+  end
+
+  # Method to initialize an SFF object along with
+  # instance variables pertaining to the SFF header
+  # section.
+  def initialize(io)
+    @io                       = io
+    @magic_number             = 0
+    @version                  = ""
+    @index_offset             = 0
+    @index_length             = 0
+    @number_of_reads          = 0
+    @header_length            = 0
+    @key_length               = 0
+    @number_of_flows_per_read = 0
+    @flowgram_format_code     = 0
+    @flow_chars               = ""
+    @key_sequence             = ""
+    @eight_byte_padding       = 0
+
+    header_parse
+  end
+
+  # Method to close ios.
+  def close
+    @io.close
+  end
+
+  # Method to iterate over each SFF entry.
+  def each
+    while (read = read_parse) do
+      yield read
+    end
+
+    self   # conventionally
+  end
+
+  private
+
+  # Method to parse the SFF file's header section
+  # and load the information into the instance variables.
+  def header_parse
+    template     = "NC4N2NNnnnC"
+    bits_in_uint = 32
+
+    data = @io.read(31).unpack(template)
+    
+    @magic_number             = data[0]
+    @version                  = data[1 .. 4].join ""
+    @index_offset             = (data[5] << bits_in_uint) | data[6]
+    @index_length             = data[7]
+    @number_of_reads          = data[8]
+    @header_length            = data[9]
+    @key_length               = data[10]
+    @number_of_flows_per_read = data[11]
+    @flowgram_format_code     = data[12]
+    @flow_chars               = @io.read(@number_of_flows_per_read).unpack("A*").join ""
+    @key_sequence             = @io.read(@key_length).unpack("A*").join ""
+
+    fast_forward
+
+    check_magic_number
+    check_version
+    check_header_length
+  end
+
+  # Method that reads the eight_byte_padding field found at the end of the
+  # data section and fast forwards, i.e. move the file read pointer,
+  # so that the length of the section is divisible by 8.
+  def fast_forward
+    eight_byte_padding = 8 - (@io.pos % 8)
+
+    @io.read(eight_byte_padding) unless eight_byte_padding == 8
+  end
+
+  # Method to parse a read section of an SFF file.
+  def read_parse
+    return nil if @number_of_reads == @@count
+
+    template = "nnNnnnn"
+
+    read = Read.new()
+
+    data = @io.read(16).unpack(template)
+
+    read.read_header_length  = data[0]
+    read.name_length         = data[1]
+    read.number_of_bases     = data[2]
+    read.clip_qual_left      = data[3]
+    read.clip_qual_right     = data[4]
+    read.clip_adapter_left   = data[5]
+    read.clip_adaptor_right  = data[6]
+    read.name                = @io.read(read.name_length).unpack("A*").join ""
+
+    fast_forward
+
+    @io.read(2 * @number_of_flows_per_read) # skip through flowgram_values
+    @io.read(read.number_of_bases)          # skip through flow_index_per_base
+
+    # NB! Parsing of flowgram_values and flow_index_per_base is currently disabled since these are not needed.
+    # read.flowgram_values     = @io.read(2 * @number_of_flows_per_read).unpack("n*").map { |val| val = sprintf("%.2f", val * 0.01) }
+    # flow_index_per_base      = @io.read(read.number_of_bases).unpack("C*")
+    # (1 ... flow_index_per_base.length).each { |i| flow_index_per_base[i] += flow_index_per_base[i - 1] }
+    # read.flow_index_per_base = flow_index_per_base
+
+    read.bases               = @io.read(read.number_of_bases).unpack("A*").join ""
+    read.quality_scores      = @io.read(read.number_of_bases).unpack("C*")
+
+    fast_forward
+
+    @@count += 1
+
+    read
+  end
+
+  # Method to check the magic number of an SFF file.
+  # Raises an error if the magic number don't match.
+  def check_magic_number
+    raise SFFError, "Badly formatted SFF file." unless @magic_number == 779314790
+  end
+
+  # Method to check the version number of an SFF file.
+  # Raises an error if the version don't match.
+  def check_version
+    raise SFFError, "Wrong version: #{@version}" unless @version.to_i == 1
+  end
+
+  # Method to check the header length of an SFF file.
+  # Raises an error if the header length don't match
+  # the file position after reading the header section.
+  def check_header_length
+    raise SFFError, "Bad header length: #{header_length}" unless @io.pos == @header_length
+  end
+end
+
+# Class containing data accessor methods for an SFF entry and methods
+# for manipulating this entry.
+class Read
+  attr_accessor :read_header_length, :name_length, :number_of_bases,   
+    :clip_qual_left, :clip_qual_right, :clip_adapter_left, :clip_adaptor_right,
+    :name, :flowgram_values, :flow_index_per_base, :bases, :quality_scores,
+    :x_pos, :y_pos
+
+  # Method that converts a Read object's data to a Biopiece record (a hash).
+  def to_bp
+    coordinates_get
+
+    hash = {}
+
+    hash[:SEQ_NAME]           = self.name
+    hash[:SEQ]                = self.bases
+    hash[:SEQ_LEN]            = self.bases.length
+    hash[:CLIP_QUAL_LEFT]     = self.clip_qual_left     - 1
+    hash[:CLIP_QUAL_RIGHT]    = self.clip_qual_right    - 1
+    hash[:CLIP_ADAPTOR_LEFT]  = self.clip_adapter_left  - 1
+    hash[:CLIP_ADAPTOR_RIGHT] = self.clip_adaptor_right - 1
+    hash[:SCORES]             = self.quality_scores.map { |i| (i += 64).chr }.join ""
+    hash[:X_POS]              = self.x_pos
+    hash[:Y_POS]              = self.y_pos
+
+    hash
+  end
+
+  # Method that soft masks the sequence (i.e. lowercases sequence) according to
+  # clip_qual_left and clip_qual_right information.
+  def mask
+    left   = self.bases[0 ... self.clip_qual_left - 1].downcase
+    middle = self.bases[self.clip_qual_left - 1 ... self.clip_qual_right]
+    right  = self.bases[self.clip_qual_right ... self.bases.length].downcase
+
+    self.bases = left + middle + right
+  end
+
+  # Method that clips sequence (i.e. trims) according to
+  # clip_qual_left and clip_qual_right information.
+  def clip
+    self.bases          = self.bases[self.clip_qual_left - 1 ... self.clip_qual_right]
+    self.quality_scores = self.quality_scores[self.clip_qual_left - 1 ... self.clip_qual_right]
+  end
+
+  private
+
+  # Method that extracts the X/Y coordinates from
+  # an SFF read name encoded with base36.
+  def coordinates_get
+    base36 = self.name[-5, 5]
+    num    = Base36.decode(base36)
+
+    self.x_pos = num >> BIT_SHIFT
+    self.y_pos = num &  BIT_MASK
+  end
+end
+
+__END__
+
diff --git a/code_ruby/test/maasha/test_base36.rb b/code_ruby/test/maasha/test_base36.rb
new file mode 100755 (executable)
index 0000000..683d267
--- /dev/null
@@ -0,0 +1,48 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2011 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'test/unit'
+require 'maasha/base36'
+require 'pp'
+
+class Base36Test < Test::Unit::TestCase
+  def test_Base36_encode_with_non_fixnum_value_raises
+    assert_raise(Base36Error) { Base36.encode("foo") }
+  end
+
+  def test_Base36_encode_returns_correctly
+    assert_equal("AWVHI", Base36.encode(1053908))
+  end
+
+  def test_Base36_decode_with_empty_value_raises
+    assert_raise(Base36Error) { Base36.decode("") }
+  end
+
+  def test_Base36_decode_returns_correctly
+    assert_equal(1053908, Base36.decode("AWVHI"))
+  end
+end
diff --git a/code_ruby/test/maasha/test_biopieces.rb b/code_ruby/test/maasha/test_biopieces.rb
new file mode 100755 (executable)
index 0000000..49d10a5
--- /dev/null
@@ -0,0 +1,358 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'test/unit'
+require 'maasha/biopieces'
+require 'stringio'
+require 'pp'
+
+TYPES       = %w[flag string list int uint float file file! files files! dir dir! genome]
+DUMMY_FILE  = __FILE__
+SCRIPT_PATH = "write_fasta"
+
+class BiopiecesTest < Test::Unit::TestCase
+
+  def setup
+    @input  = StringIO.new
+    @output = StringIO.new
+    @bp     = Biopieces.new(true, @input, @output)
+  end
+
+  # >>>>>>>>>>>>>>>>>>>> Testing Options.new <<<<<<<<<<<<<<<<<<<<
+
+  def test_Biopieces_parse_with_all_cast_keys_dont_raise
+    argv  = []
+    casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_illegal_long_cast_values_raises
+    [nil, true, false, 1, 0, "a"].each do |long|
+      argv  = []
+      casts = [{:long=>long, :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_legal_long_cast_values_dont_raise
+    ["foo", "!!", "0123"].each do |long|
+      argv  = []
+      casts = [{:long=>long, :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_illegal_short_cast_values_raises
+    [nil, true, false, "foo"].each do |short|
+      argv  = []
+      casts = [{:long=>"foo", :short=>short, :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_legal_short_cast_values_dont_raise
+    ["!", "1", "a"].each do |short|
+      argv  = []
+      casts = [{:long=>"foo", :short=>short, :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_illegal_type_cast_values_raises
+    [nil, true, false, "foo", 12, 0].each do |type|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>type, :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_legal_type_cast_values_dont_raise
+    TYPES.each do |type|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>type, :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_illegal_mandatory_cast_values_raises
+    ["yes", 12, 0, nil].each do |mandatory|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>mandatory, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_legal_mandatory_cast_values_dont_raise
+    [true, false].each do |mandatory|
+      argv  = [ "--foo", "1" ]
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>mandatory, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_illegal_default_cast_values_raises
+    [true, false, [], {}].each do |default|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>default, :allowed=>nil, :disallowed=>nil}]
+      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_legal_default_cast_values_dont_raise
+    [nil, 0, 1, -1].each do |default|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>default, :allowed=>nil, :disallowed=>nil}]
+      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_illegal_allowed_cast_values_raises
+    [true, false, {}, [], 0, 0.1].each do |allowed|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>allowed, :disallowed=>nil}]
+      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_legal_allowed_cast_values_dont_raise
+    ["foo,bar,0",nil].each do |allowed|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>allowed, :disallowed=>nil}]
+      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_illegal_disallowed_cast_values_raises
+    [true, false, {}, [], 0, 0.1].each do |disallowed|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>disallowed}]
+      assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_legal_disallowed_cast_values_dont_raise
+    ["foo,bar,0",nil].each do |disallowed|
+      argv  = []
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>disallowed}]
+      assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_duplicate_long_cast_values_raises
+    argv  = []
+    casts = []
+    casts << {:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    casts << {:long=>"foo", :short=>"b", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_duplicate_short_cast_values_raises
+    argv  = []
+    casts = []
+    casts << {:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    casts << {:long=>"bar", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    assert_raise(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_without_duplicate_long_and_short_cast_values_dont_raise
+    argv  = []
+    casts = []
+    casts << {:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    casts << {:long=>"bar", :short=>"b", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+    assert_nothing_raised(CastError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  # >>>>>>>>>>>>>>>>>>>> Testing Options.parse <<<<<<<<<<<<<<<<<<<<
+
+  def test_Biopieces_parse_with_empty_argv_and_missing_wiki_file_raises
+    argv  = []
+    casts = []
+    assert_raise(RuntimeError) { @bp.parse(argv,casts, "foo") }
+  end
+
+  def test_Biopieces_parse_with_empty_argv_and_existing_wiki_file_dont_raise
+    argv  = []
+    casts = []
+    assert_nothing_raised { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_help_in_argv_and_existing_wiki_output_long_usage
+    argv = ["--help"]
+    assert_nothing_raised { @bp.parse(argv,[],SCRIPT_PATH) }
+  end
+
+#  # FIXME This one fails because any argument to a flag is ignored and the flag value is set to true. Should it raise?
+#  test "Options.parse with type cast flag with an argument raises
+#    casts = [{:long=>"foo", :short=>"f", :type=>"flag", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+#    opt_parser = Options.new(casts)
+#    assert_raise(ArgumentError) { opt_parser.parse(["--foo", "bar"],SCRIPT_PATH) }
+#   end
+
+  def test_Biopieces_parse_with_stream_in_argv_returns_correct_options
+    argv = ["--stream_in", DUMMY_FILE]
+    options = @bp.parse(argv,[],SCRIPT_PATH)
+    assert_equal([DUMMY_FILE], options[:stream_in])
+  end
+
+  def test_Biopieces_parse_with_I_argv_returns_correct_options
+    argv    = ["-I", DUMMY_FILE]
+    casts   = []
+    options = @bp.parse(argv, casts, SCRIPT_PATH)
+    assert_equal([DUMMY_FILE], options[:stream_in])
+  end
+
+  def test_Biopieces_parse_use_cast_default_value_if_no_argument_given
+    argv    = ["-I", DUMMY_FILE]
+    casts   = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>"bar", :allowed=>nil, :disallowed=>nil}]
+    options = @bp.parse(argv, casts, SCRIPT_PATH)
+    assert_equal(options[:foo], "bar")
+  end
+
+  def test_Biopieces_parse_dont_use_default_value_if_argument_given
+    argv    = ["--foo", "bleh", "-I", DUMMY_FILE]
+    casts   = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>"bar", :allowed=>nil, :disallowed=>nil}]
+    options = @bp.parse(argv, casts, SCRIPT_PATH)
+    assert_equal(options[:foo], "bleh".to_sym)
+  end
+
+  def test_Biopieces_parse_with_mandatory_cast_and_no_argument_raises
+    argv  = ["-I", DUMMY_FILE]
+    casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_raise(ArgumentError) { @bp.parse(argv,casts,SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_mandatory_cast_and_argument_dont_raise
+    argv  = ["--foo", "bar", "-I", DUMMY_FILE]
+    casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>true, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_nothing_raised(ArgumentError) { @bp.parse(argv,casts,SCRIPT_PATH) }
+  end
+
+#  # This one results in an error: "OptionParser::InvalidArgument: invalid argument: --foo bar"
+#  # So it appears that this is tested in OptionParser already.
+#  test "Options.parse with type cast int and non-int value raises" do
+#    ["bar" ].each do |val| # what about nil, false, true, [], {}, 0.1 ?
+#      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+#      opt_parser = Options.new(casts)
+#      assert_raise(ArgumentError) { opt_parser.parse(["--foo", "#{val}"],SCRIPT_PATH) }
+#    end
+#  end
+
+  def test_Biopieces_parse_with_type_cast_int_dont_raise
+    [0,-1,1,327649123746293746374276347824].each do |val|
+      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
+      casts = [{:long=>"foo", :short=>"f", :type=>"int", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_nothing_raised(ArgumentError) { @bp.parse(argv,casts,SCRIPT_PATH) }
+    end
+  end
+
+  # TODO similar test for uint as "test "Options.parse with type cast int and non-int value raises" do"
+
+  def test_Biopieces_parse_with_type_cast_uint_dont_raise
+    [0,1,327649123746293746374276347824].each do |val|
+      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
+      casts = [{:long=>"foo", :short=>"f", :type=>"uint", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+      assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_file_cast_and_file_dont_exists_raises
+    argv  = ["--foo", "bleh", "-I", DUMMY_FILE]
+    casts = [{:long=>"foo", :short=>"f", :type=>"file!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_file_cast_and_existing_file_dont_raise
+    argv  = ["--foo", DUMMY_FILE, "-I", DUMMY_FILE]
+    casts = [{:long=>"foo", :short=>"f", :type=>"file!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_files_cast_and_a_file_dont_exists_raises
+    argv  = ["--foo", DUMMY_FILE + ",bleh", "-I", DUMMY_FILE]
+    casts = [{:long=>"foo", :short=>"f", :type=>"files!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_files_cast_and_files_exists_dont_raise
+    argv  = ["--foo", DUMMY_FILE + "," + DUMMY_FILE, "-I", DUMMY_FILE]
+    casts = [{:long=>"foo", :short=>"f", :type=>"files!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  # TODO replace the absolute part below the file location with File.dirname(__FILE__)
+  def test_Biopieces_parse_with_glob_argument_expands_correctly
+    flunk("This test is weird")
+    argv    = ["--foo", "/Users/maasha/unit_test/foo*,/Users/maasha/unit_test/my_dir/*.fna", "-I", DUMMY_FILE]
+    casts   = [{:long=>"foo", :short=>"f", :type=>"files!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    options = @bp.parse(argv, casts, SCRIPT_PATH)
+    assert_equal(["/Users/maasha/unit_test/foo.fna", "/Users/maasha/unit_test/my_dir/bar.fna"], options[:foo])
+  end
+
+  def test_Biopieces_parse_with_dir_cast_and_dir_dont_exists_raises
+    argv  = ["--foo", "bleh", "-I", DUMMY_FILE]
+    casts = [{:long=>"foo", :short=>"f", :type=>"dir!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_dir_cast_and_dir_exists_dont_raise
+    argv  = ["--foo", "/", "-I", DUMMY_FILE]
+    casts = [{:long=>"foo", :short=>"f", :type=>"dir!", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}]
+    assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+  end
+
+  def test_Biopieces_parse_with_allowed_cast_and_not_allowed_value_raises
+    ["bleh", "2", "3.3"].each do |val|
+      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
+      casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>nil, :allowed=>"0,-1,0.0,1,bar", :disallowed=>nil}]
+      assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_allowed_cast_and_allowed_values_dont_raise
+    ["0", "-1", "0.0", "1", "bar"].each do |val|
+      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
+      casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>nil, :allowed=>"0,-1,0.0,1,bar", :disallowed=>nil}]
+      assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_disallowed_cast_and_disallowed_value_raises
+    ["0", "-1", "0.0", "1", "bar"].each do |val|
+      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
+      casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>"0,-1,0.0,1,bar"}]
+      assert_raise(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+
+  def test_Biopieces_parse_with_disallowed_cast_and_allowed_values_dont_raise
+    ["bleh", "2", "3.3"].each do |val|
+      argv  = ["--foo", "#{val}", "-I", DUMMY_FILE]
+      casts = [{:long=>"foo", :short=>"f", :type=>"string", :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>"0,-1,0.0,1,bar"}]
+      assert_nothing_raised(ArgumentError) { @bp.parse(argv, casts, SCRIPT_PATH) }
+    end
+  end
+end
diff --git a/code_ruby/test/maasha/test_bitarray.rb b/code_ruby/test/maasha/test_bitarray.rb
new file mode 100755 (executable)
index 0000000..4745401
--- /dev/null
@@ -0,0 +1,141 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+
+require 'maasha/bitarray'
+require 'test/unit'
+require 'pp'
+
+class TestBitArray < Test::Unit::TestCase 
+  def setup
+    @ba = BitArray.new(10)
+  end
+
+  def test_BitArray_initialize_raises_on_bad_sizes
+    [ -1, 0, 1.1, "a" ].each do |size|
+      assert_raise(BitArrayError) { BitArray.new(size) }
+    end
+  end
+
+  def test_BitArray_initialize_dont_raise_on_ok_sizes
+    [ 1, 10, 1000 ].each do |size|
+      assert_nothing_raised { BitArray.new(size) }
+    end
+  end
+
+  def test_BitArray_size_returns_correctly
+    assert_equal(10, @ba.size)
+  end
+
+  def test_BitArray_to_s_returns_correctly
+    assert_equal("0000000000", @ba.to_s)
+  end
+
+  def test_BitArray_bit_set_with_bad_pos_raises
+    [-1, 10, 1.1].each do |pos|
+      assert_raise(BitArrayError) { @ba.bit_set(pos) }
+    end
+  end
+
+  def test_BitArray_bit_set
+    str = "0000000000"
+
+    (0.upto 9).each do |pos|
+      @ba.bit_set(pos)
+      str[pos] = "1"
+      assert_equal(str, @ba.to_s)
+    end
+  end
+
+  def test_BitArray_bit_set_questionmark_with_bad_pos_raises
+    [-1, 10, 1.1].each do |pos|
+      assert_raise(BitArrayError) { @ba.bit_set?(pos) }
+    end
+  end
+
+  def test_BitArray_bit_set_questionmark
+    (0.upto 9).each do |pos|
+      @ba.bit_set(pos)
+      assert_equal(true, @ba.bit_set?(pos))
+    end
+  end
+
+  def test_BitArray_bits_on_returns_correctly
+    @ba.bit_set(4)
+    @ba.bit_set(0)
+    @ba.bit_set(1)
+    assert_equal(3, @ba.bits_on)
+  end
+
+  def test_BitArray_bits_off_returns_correctly
+    @ba.bit_set(4)
+    assert_equal(9, @ba.bits_off)
+  end
+
+  def test_BitArray_AND_with_uneven_sizes_raises
+    ba = BitArray.new(11)
+    assert_raise(BitArrayError) { @ba & ba }
+  end
+
+  def test_BitArray_AND_returns_correctly
+    ba = BitArray.new(10)
+    @ba.bit_set(4)
+    @ba.bit_set(5)
+    ba.bit_set(5)
+    ba.bit_set(6)
+    assert_equal( "0000010000", (@ba & ba).to_s)
+  end
+
+  def test_BitArray_OR_with_uneven_sizes_raises
+    ba = BitArray.new(11)
+    assert_raise(BitArrayError) { @ba | ba }
+  end
+
+  def test_BitArray_OR_returns_correctly
+    ba = BitArray.new(10)
+    @ba.bit_set(4)
+    @ba.bit_set(5)
+    ba.bit_set(5)
+    ba.bit_set(6)
+    assert_equal( "0000111000", (@ba | ba).to_s)
+  end
+
+  def test_BitArray_XOR_with_uneven_sizes_raises
+    ba = BitArray.new(11)
+    assert_raise(BitArrayError) { @ba ^ ba }
+  end
+
+  def test_BitArray_XOR_returns_correctly
+    ba = BitArray.new(10)
+    @ba.bit_set(4)
+    @ba.bit_set(5)
+    ba.bit_set(5)
+    ba.bit_set(6)
+    assert_equal( "0000101000", (@ba ^ ba).to_s)
+  end
+end
+
diff --git a/code_ruby/test/maasha/test_bits.rb b/code_ruby/test/maasha/test_bits.rb
new file mode 100755 (executable)
index 0000000..5a589f5
--- /dev/null
@@ -0,0 +1,77 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+
+require 'maasha/bits'
+require 'test/unit'
+require 'pp'
+
+class TestBits < Test::Unit::TestCase 
+  def test_Bits_hamming_dist_with_uneven_lengths_raises
+    assert_raises(StringError) { String.hamming_dist("ATCG", "ATC") }
+  end
+
+  def test_Bits_hamming_dist_with_even_lengths_dont_raise
+    assert_nothing_raised { String.hamming_dist("ATCG", "ATCG") }
+  end
+
+  def test_Bits_hamming_dist_returns_correctly
+    assert_equal(0, String.hamming_dist("ATCG", "ATCG"))
+    assert_equal(1, String.hamming_dist("ATCX", "ATCG"))
+    assert_equal(2, String.hamming_dist("ATXX", "ATCG"))
+    assert_equal(2, String.hamming_dist("ATcg", "ATCG"))
+    assert_equal(3, String.hamming_dist("AXXX", "ATCG"))
+    assert_equal(4, String.hamming_dist("XXXX", "ATCG"))
+  end
+
+  def test_Bits_AND_with_equal_length_returns_correctly
+    assert_equal("ABCD", "abcd" & "____")
+  end
+
+  def test_Bits_AND_with_unequal_length_returns_correctly
+    assert_equal("JAPH\n", "japh\nJunk" & '_____')
+    assert_equal("JAPH\n", '_____' & "japh\nJunk")
+  end
+
+  def test_Bits_OR_with_equal_length_returns_correctly
+    assert_equal("abcd", "ab  " | "  cd")
+  end
+
+  def test_Bits_OR_with_unequal_length_returns_correctly
+    assert_equal("japh\n", "JA" | "  ph\n")
+    assert_equal("japh\n", "  ph\n" | "JA")
+  end
+
+  def test_Bits_XOR_with_equal_length_returns_correctly
+    assert_equal("ABCD", "ab  " ^ "  cd")
+  end
+
+  def test_Bits_XOR_with_unequal_length_returns_correctly
+    assert_equal("JAPH", "j p \n" ^ " a h")
+    assert_equal("JAPH", " a h" ^ "j p \n")
+  end
+end
diff --git a/code_ruby/test/maasha/test_boulder.rb b/code_ruby/test/maasha/test_boulder.rb
new file mode 100755 (executable)
index 0000000..a0afe99
--- /dev/null
@@ -0,0 +1,75 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/boulder'
+require 'test/unit'
+require 'stringio'
+require 'pp'
+
+class TestBoulder < Test::Unit::TestCase 
+  def test_Boulder_each_raises_on_missing_seperator
+    boulder = Boulder.new(StringIO.new("TEST_BAD=testbad\n"))
+    assert_raise(BoulderError) { boulder.each }
+  end
+
+  def test_Boulder_each_raises_on_missing_key_val_seperator
+    boulder = Boulder.new(StringIO.new("TEST_BAD\n=\n"))
+    assert_raise(BoulderError) { boulder.each }
+  end
+
+  def test_Boulder_each_raises_on_missing_value
+    boulder = Boulder.new(StringIO.new("TEST_BAD=\n=\n"))
+    assert_raise(BoulderError) { boulder.each }
+  end
+
+  def test_Boulder_each_raises_on_missing_key
+    boulder = Boulder.new(StringIO.new("=testbad\n=\n"))
+    assert_raise(BoulderError) { boulder.each }
+  end
+
+  def test_Boulder_each_with_one_key_val_pair_returns_correctly
+    boulder = Boulder.new(StringIO.new("TEST0=thisistest0\n=\n"))
+
+    boulder.each do |record|
+      assert_equal({:TEST0=>'thisistest0'},record)
+    end
+  end
+
+  def test_Boulder_each_with_two_key_val_pairs_return_correctly
+    boulder = Boulder.new(StringIO.new("TEST0=thisistest0\nTEST1=thisistest1\n=\n"))
+
+    boulder.each do |record|
+      assert_equal({:TEST0=>'thisistest0', :TEST1=>'thisistest1'},record)
+    end
+  end
+
+  def test_Boulder_to_boulder_returns_correctly
+    boulder = Boulder.new()
+
+    assert_equal("TEST0=thisistest0\n=\n", boulder.to_boulder({:TEST0=>'thisistest0'}))
+  end
+end
diff --git a/code_ruby/test/maasha/test_digest.rb b/code_ruby/test/maasha/test_digest.rb
new file mode 100755 (executable)
index 0000000..1e09f96
--- /dev/null
@@ -0,0 +1,28 @@
+#!/usr/bin/env ruby
+
+require 'maasha/seq'
+require 'test/unit'
+require 'pp'
+
+class TestDigest < Test::Unit::TestCase 
+  def setup
+    @entry = Seq.new
+  end
+
+  def test_Digest_new_raises_on_bad_pattern_residue
+    assert_raise(DigestError) { Digest.new(@entry, "X", 4) }
+  end
+
+  def test_Digest_new_dont_raise_on_ok_pattern_residue
+    assert_nothing_raised { Digest.new(@entry, "AGCUTRYWSMKHDVBNagcutrywsmkhdvbn", 4) }
+  end
+
+  def test_Digest_each
+    @entry.seq = "aaaaTTTTbbbbTTTT"
+    digest = Digest.new(@entry, "TTNT", 1)
+    assert_equal("aaaaT", digest.first.seq)
+  end
+end
+
+
+__END__
diff --git a/code_ruby/test/maasha/test_fasta.rb b/code_ruby/test/maasha/test_fasta.rb
new file mode 100755 (executable)
index 0000000..d5ba7bd
--- /dev/null
@@ -0,0 +1,90 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'test/unit'
+require 'maasha/fasta'
+require 'stringio'
+require 'pp'
+
+class FastaTest < Test::Unit::TestCase
+  def test_Fasta_get_entry_obtains_the_correct_seq_name
+    fasta = Fasta.new(StringIO.new(">test\nATCG\n"))
+    assert_equal(fasta.get_entry.seq_name, "test")
+  end
+
+  def test_Fasta_get_entry_obtains_the_correct_seq_without_trailing_newlines
+    fasta = Fasta.new(StringIO.new(">test\nATCG"))
+    assert_equal(fasta.get_entry.seq, "ATCG")
+  end
+
+  def test_Fasta_get_entry_obtains_the_correct_seq_with_trailing_newlines
+    fasta = Fasta.new(StringIO.new(">test\nATCG\n\n\n"))
+    assert_equal(fasta.get_entry.seq, "ATCG")
+  end
+
+  def test_Fasta_get_entry_obtains_the_correct_type
+    fasta = Fasta.new(StringIO.new(">test\nATCG\n"), 'DNA')
+    assert_equal(fasta.get_entry.type, "dna")
+  end
+
+  def test_Fasta_get_entry_rstrips_whitespace_from_seq_name
+    fasta = Fasta.new(StringIO.new(">test\n\r\t ATCG\n"))
+    assert_equal(fasta.get_entry.seq_name, "test")
+  end
+
+  def test_Fasta_get_entry_strips_whitespace_from_seq
+    fasta = Fasta.new(StringIO.new(">test\n\r\t AT\n\r\t CG\n\r\t "))
+    assert_equal(fasta.get_entry.seq, "ATCG")
+  end
+
+  def test_Fasta_get_entry_with_two_entries_obtain_correct
+    fasta = Fasta.new(StringIO.new(">test1\n\r\t AT\n\r\t CG\n\r\t \n>test2\n\r\t atcg\n"))
+    assert_equal(fasta.get_entry.seq, "ATCG")
+    assert_equal(fasta.get_entry.seq, "atcg")
+  end
+
+  def test_Fasta_get_entry_without_seq_name_raises
+    fasta = Fasta.new(StringIO.new("ATCG\n"))
+    assert_raise( FastaError ) { fasta.get_entry }
+  end
+
+  def test_Fasta_get_entry_without_seq_raises
+    fasta = Fasta.new(StringIO.new(">test\n\n"))
+    assert_raise( FastaError ) { fasta.get_entry }
+  end
+
+  def test_Fasta_get_entry_with_leading_newline_raises
+    fasta = Fasta.new(StringIO.new("\n>test\nATCG\n"))
+    assert_raise( FastaError ) { fasta.get_entry }
+  end
+
+# FIXME
+#  def test_Fasta_get_entry raises on missing > in seq_name
+#    fasta = Fasta.new(StringIO.new("test\nATCG\n"))
+#    assert_raise( FastaError ) { fasta.get_entry }
+#  end
+end
diff --git a/code_ruby/test/maasha/test_fastq.rb b/code_ruby/test/maasha/test_fastq.rb
new file mode 100755 (executable)
index 0000000..2316fc7
--- /dev/null
@@ -0,0 +1,57 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'test/unit'
+require 'maasha/fastq'
+require 'stringio'
+require 'pp'
+
+class FastqTest < Test::Unit::TestCase
+  def setup
+    @io    = StringIO.new("@test1\nATCG\n+\nABCD\n@test2\natcg\n+test2\n@ABG\n")
+    @fastq = Fastq.new(@io)
+  end
+
+  def test_Fastq_get_entry_obtains_the_correct_seq_name
+    assert_equal("test1", @fastq.get_entry.seq_name)
+  end
+
+  def test_Fasta_get_entry_obtains_the_correct_type
+    fastq = Fastq.new(@io, 'DNA')
+    assert_equal("dna", fastq.get_entry.type)
+  end
+
+  def test_Fastq_get_entry_with_two_entries_obtain_correct
+    assert_equal("ATCG", @fastq.get_entry.seq)
+    assert_equal("atcg", @fastq.get_entry.seq)
+  end
+
+  def test_Fastq_each_loop_ends_correctly
+    @fastq.each do |entry|
+    end
+  end
+end
diff --git a/code_ruby/test/maasha/test_genbank.rb b/code_ruby/test/maasha/test_genbank.rb
new file mode 100755 (executable)
index 0000000..8f36440
--- /dev/null
@@ -0,0 +1,66 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+
+require 'maasha/genbank'
+require 'maasha/seq'
+require 'test/unit'
+require 'pp'
+
+class TestGenbank < Test::Unit::TestCase 
+  def setup
+    @seq = Seq.new(nil, "tcatgatcaagatctaacagcagaagtacacttctattta", "dna")
+  end
+
+  def test_Locator_with_single_position_returns_correctly
+    loc = Locator.new("10", @seq)
+    assert_equal("a", loc.subseq.seq)
+  end
+
+  def test_Locator_with_single_interval_returns_correctly
+    loc = Locator.new("5..10", @seq)
+    assert_equal("gatca", loc.subseq.seq)
+  end
+
+  def test_Locator_with_multiple_intervals_return_correctly
+    loc = Locator.new("5..10,15..20", @seq)
+    assert_equal("gatcataaca", loc.subseq.seq)
+  end
+
+  def test_Locator_with_join_multiple_intervals_return_correctly
+    loc = Locator.new("join(5..10,15..20)", @seq)
+    assert_equal("gatcataaca", loc.subseq.seq)
+  end
+
+  def test_Locator_with_complement_and_single_interval_return_correctly
+    loc = Locator.new("complement(5..10)", @seq)
+    assert_equal("tgatc", loc.subseq.seq)
+  end
+end
+
+
+__END__
diff --git a/code_ruby/test/maasha/test_patternmatcher.rb b/code_ruby/test/maasha/test_patternmatcher.rb
new file mode 100755 (executable)
index 0000000..9a7a50e
--- /dev/null
@@ -0,0 +1,136 @@
+#!/usr/bin/env ruby
+$:.unshift File.join(File.dirname(__FILE__),'..','lib')
+
+# Copyright (C) 2007-2010 Martin A. Hansen.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# http://www.gnu.org/copyleft/gpl.html
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+# This software is part of the Biopieces framework (www.biopieces.org).
+
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+require 'maasha/seq'
+require 'test/unit'
+require 'pp'
+
+class TestPatternMatcher < Test::Unit::TestCase
+  def setup
+    @p = Seq.new("test", "atcg")
+  end
+
+  def test_PatternMatcher_no_match_returns_nil
+    assert_nil(@p.match("gggg"))
+  end
+
+  def test_PatternMatcher_match_perfect_returns_correctly
+    m = @p.match("atcg")
+    assert_equal(0, m.pos)
+    assert_equal("atcg", m.match)
+    assert_equal(4, m.matches)
+    assert_equal(0, m.mismatches)
+    assert_equal(0, m.insertions)
+    assert_equal(0, m.deletions)
+    assert_equal(4, m.length)
+  end
+
+  def test_PatternMatcher_match_perfect_with_ambiguity_codes_returns_correctly
+    m = @p.match("nnnn")
+    assert_equal(0, m.pos)
+    assert_equal("atcg", m.match)
+    assert_equal(4, m.matches)
+    assert_equal(0, m.mismatches)
+    assert_equal(0, m.insertions)
+    assert_equal(0, m.deletions)
+    assert_equal(4, m.length)
+  end
+
+  def test_PatternMatcher_match_with_one_mismatch_and_edit_dist_zero_returns_nil
+    assert_nil(@p.match("aCcg"))
+  end
+
+  def test_PatternMatcher_match_with_one_mismatch_and_edit_dist_one_returns_correctly
+    m = @p.match("aCcg", pos = 0, edit_distance = 1)
+    assert_equal(0, m.pos)
+    assert_equal("atcg", m.match)
+    assert_equal(3, m.matches)
+    assert_equal(1, m.mismatches)
+    assert_equal(0, m.insertions)
+    assert_equal(0, m.deletions)
+    assert_equal(4, m.length)
+  end
+
+  def test_PatternMatcher_match_with_two_mismatch_and_edit_dist_one_returns_nil
+    assert_nil(@p.match("aGcA", pos = 0, edit_distance = 1))
+  end
+
+  def test_PatternMatcher_match_with_one_insertion_and_edit_dist_zero_returns_nil
+    assert_nil(@p.match("atGcg"))
+  end
+
+  def test_PatternMatcher_match_with_one_insertion_and_edit_dist_one_returns_correctly
+    m = @p.match("atGcg", pos = 0, edit_distance = 1)
+    assert_equal(0, m.pos)
+    assert_equal("atcg", m.match)
+    assert_equal(4, m.matches)
+    assert_equal(0, m.mismatches)
+    assert_equal(1, m.insertions)
+    assert_equal(0, m.deletions)
+    assert_equal(4, m.length)
+  end
+
+  def test_PatternMatcher_match_with_two_insertions_and_edit_dist_one_returns_nil
+    assert_nil(@p.match("atGcTg", pos = 0, edit_distance = 1))
+  end
+
+  def test_PatternMatcher_match_with_two_insertions_and_edit_dist_two_returns_correctly
+    m = @p.match("atGcTg", pos = 0, edit_distance = 2)
+    assert_equal(0, m.pos)
+    assert_equal("atcg", m.match)
+    assert_equal(4, m.matches)
+    assert_equal(0, m.mismatches)
+    assert_equal(2, m.insertions)
+    assert_equal(0, m.deletions)
+    assert_equal(4, m.length)
+  end
+
+  def test_PatternMatcher_match_with_one_deletion_and_edit_distance_zero_returns_nil
+    assert_nil(@p.match("acg"))
+  end
+
+  def test_PatternMatcher_match_with_one_deletion_and_edit_distance_one_returns_correctly
+    m = @p.match("acg", pos = 0, edit_distance = 1)
+    assert_equal(0, m.pos)
+    assert_equal("atcg", m.match)
+    assert_equal(3, m.matches)
+    assert_equal(0, m.mismatches)
+    assert_equal(0, m.insertions)
+    assert_equal(1, m.deletions)
+    assert_equal(4, m.length)
+  end
+
+  def test_PatternMatcher_scan_locates_three_patterns_ok
+    p = Seq.new("test", "ataacgagctagctagctagctgactac")
+    assert_equal(3, p.scan("tag").count)
+  end
+
+  def test_PatternMatcher_scan_with_pos_locates_two_patterns_ok
+    p = Seq.new("test", "ataacgagctagctagctagctgactac")
+    assert_equal(2, p.scan("tag", 10).count)
+  end
+end
diff --git a/code_ruby/test/maasha/test_seq.rb b/code_ruby/test/maasha/test_seq.rb
new file mode 100755 (executable)
index 0000000..5e79a0f
--- /dev/null
@@ -0,0 +1,337 @@
+#!/usr/bin/env ruby
+
+require 'maasha/seq'
+require 'test/unit'
+require 'pp'
+
+class TestSeq < Test::Unit::TestCase 
+  def setup
+    @entry = Seq.new
+  end
+
+  #  def test_Seq# autoremoves whitespace, newlines, and carriage returns
+  #    dna = Seq.new
+  #    dna.seq = "A\tT\r\tC\nG  "
+  #    assert_equal(dna.seq, "ATCG")
+  #  end
+
+  def test_Seq_is_dna_with_no_sequence_type_returns_false
+    assert(@entry.is_dna? == false)
+  end
+
+  def test_Seq_is_dna_with_dna_sequence_type_returns_true
+    @entry.type = 'dna'
+    assert(@entry.is_dna? == true)
+  end
+
+  def test_Seq_is_rna_with_no_sequence_type_returns_false
+    assert(@entry.is_rna? == false)
+  end
+
+  def test_Seq_is_rna_with_rna_sequence_type_returns_true
+    @entry.type = 'rna'
+    assert(@entry.is_rna? == true)
+  end
+
+  def test_Seq_is_protein_with_no_sequence_type_returns_false
+    assert(@entry.is_protein? == false)
+  end
+
+  def test_Seq_is_protein_with_protein_sequence_type_returns_true
+    @entry.type = 'protein'
+    assert(@entry.is_protein? == true)
+  end
+
+  def test_Seq_length_is_correct
+    @entry.seq = 'ATCG'
+    assert_equal(4, @entry.length)
+  end
+
+  def test_Seq_indels_is_correct
+    @entry.seq = 'ATCG.-~_'
+    assert_equal(4, @entry.indels)
+  end
+
+  def test_Seq_to_rna_raises_if_no_sequence
+    @entry.type = 'dna'
+    assert_raise(SeqError) { @entry.to_rna }
+  end
+
+  def test_Seq_to_rna_raises_on_bad_type
+    @entry.seq  = 'ATCG'
+    @entry.type = 'rna'
+    assert_raise(SeqError) { @entry.to_rna }
+  end
+
+  def test_Seq_to_rna_transcribes_correctly
+    @entry.seq  = 'ATCGatcg'
+    @entry.type = 'dna'
+    assert_equal("AUCGaucg", @entry.to_rna)
+  end
+
+  def test_Seq_to_rna_changes_entry_type_to_rna
+    @entry.seq  = 'ATCGatcg'
+    @entry.type = 'dna'
+    @entry.to_rna
+    assert_equal("rna", @entry.type)
+  end
+
+  def test_Seq_to_dna_raises_if_no_sequence
+    @entry.type = 'rna'
+    assert_raise(SeqError) { @entry.to_dna }
+  end
+
+  def test_Seq_to_dna_raises_on_bad_type
+    @entry.seq  = 'AUCG'
+    @entry.type = 'dna'
+    assert_raise(SeqError) { @entry.to_dna }
+  end
+
+  def test_Seq_to_dna_transcribes_correctly
+    @entry.seq  = 'AUCGaucg'
+    @entry.type = 'rna'
+    assert_equal("ATCGatcg", @entry.to_dna)
+  end
+
+  def test_Seq_to_dna_changes_entry_type_to_dna
+    @entry.seq  = 'AUCGaucg'
+    @entry.type = 'rna'
+    @entry.to_dna
+    assert_equal("dna", @entry.type)
+  end
+
+  def test_Seq_to_bp_returns_correct_record
+    @entry.seq_name = 'test'
+    @entry.seq      = 'ATCG'
+    assert_equal({:SEQ_NAME=>"test", :SEQ=>"ATCG", :SEQ_LEN=>4}, @entry.to_bp)
+  end
+
+  def test_Seq_to_bp_raises_on_missing_seq_name
+    @entry.seq = 'ATCG'
+    assert_raise(SeqError) { @entry.to_bp }
+  end
+
+  def test_Seq_to_bp_raises_on_missing_sequence
+    @entry.seq_name = 'test'
+    assert_raise(SeqError) { @entry.to_bp }
+  end
+
+  def test_Seq_to_fasta_returns_correct_entry
+    @entry.seq_name = 'test'
+    @entry.seq      = 'ATCG'
+    assert_equal(">test\nATCG\n", @entry.to_fasta)
+  end
+
+  def test_Seq_to_fasta_wraps_correctly
+    entry = Seq.new("test", "ATCG")
+    assert_equal(">test\nAT\nCG\n", entry.to_fasta(2))
+  end
+
+  def test_Seq_to_key_with_bad_residue_raises
+    entry = Seq.new("test", "AUCG")
+    assert_raise(SeqError) { entry.to_key }
+  end
+
+  def test_Seq_to_key_returns_correctly
+    entry = Seq.new("test", "ATCG")
+    assert_equal(54, entry.to_key)
+  end
+
+  def test_Seq_reverse_returns_correctly
+    @entry.seq = "ATCG"
+    assert_equal("GCTA", @entry.reverse)
+  end
+
+  def test_Seq_complement_raises_if_no_sequence
+    @entry.type = 'dna'
+    assert_raise(SeqError) { @entry.complement }
+  end
+
+  def test_Seq_complement_raises_on_bad_type
+    @entry.seq  = 'ATCG'
+    @entry.type = 'protein'
+    assert_raise(SeqError) { @entry.complement }
+  end
+
+  def test_Seq_complement_for_DNA_is_correct
+    @entry.seq  = 'ATCGatcg'
+    @entry.type = 'dna'
+    assert_equal("TAGCtagc", @entry.complement)
+  end
+
+  def test_Seq_complement_for_RNA_is_correct
+    @entry.seq  = 'AUCGaucg'
+    @entry.type = 'rna'
+    assert_equal("UAGCuagc", @entry.complement)
+  end
+
+  def test_Seq_reverse_complement_for_DNA_is_correct
+    @entry.seq  = 'ATCGatcg'
+    @entry.type = 'dna'
+    assert_equal("cgatCGAT", @entry.reverse_complement)
+  end
+
+  def test_Seq_reverse_complement_for_RNA_is_correct
+    @entry.seq  = 'AUCGaucg'
+    @entry.type = 'rna'
+    assert_equal("cgauCGAU", @entry.reverse_complement)
+  end
+
+  def test_Seq_generate_with_length_lt_1_raises
+    assert_raise(SeqError) { @entry.generate(-10, "dna") }
+    assert_raise(SeqError) { @entry.generate(0, "dna") }
+  end
+
+  def test_Seq_generate_with_bad_type_raises
+    assert_raise(SeqError) { @entry.generate(10, "foo") }
+  end
+
+  def test_Seq_generate_with_ok_type_dont_raise
+    %w[dna DNA rna RNA protein Protein].each do |type|
+      assert_nothing_raised { @entry.generate(10, type) }
+    end
+  end
+
+  def test_Seq_subseq_with_start_lt_0_raises
+    @entry.seq = "ATCG"
+    assert_raise(SeqError) { @entry.subseq(-1, 1) }
+  end
+
+  def test_Seq_subseq_with_length_lt_1_raises
+    @entry.seq = "ATCG"
+    assert_raise(SeqError) { @entry.subseq(0, 0) }
+  end
+
+  def test_Seq_subseq_with_start_plus_length_gt_seq_raises
+    @entry.seq = "ATCG"
+    assert_raise(SeqError) { @entry.subseq(0, 5) }
+  end
+
+  def test_Seq_subseq_returns_correct_sequence
+    @entry.seq  = "ATCG"
+    assert_equal("AT", @entry.subseq(0, 2).seq)
+    assert_equal("CG", @entry.subseq(2, 2).seq)
+  end
+
+  def test_Seq_subseq_without_len_returns_correct_sequence
+    @entry.seq  = "ATCG"
+    assert_equal("ATCG", @entry.subseq(0).seq)
+    assert_equal("CG",   @entry.subseq(2).seq)
+  end
+
+  def test_Seq_subseq_returns_correct_qual
+    @entry.seq  = "ATCG"
+    @entry.qual = "abcd"
+    assert_equal("ab", @entry.subseq(0, 2).qual)
+    assert_equal("cd", @entry.subseq(2, 2).qual)
+  end
+
+  def test_Seq_subseq_without_len_returns_correct_qual
+    @entry.seq  = "ATCG"
+    @entry.qual = "abcd"
+    assert_equal("abcd", @entry.subseq(0).qual)
+    assert_equal("cd",   @entry.subseq(2).qual)
+  end
+
+  def test_Seq_subseq_bang_with_start_lt_0_raises
+    @entry.seq = "ATCG"
+    assert_raise(SeqError) { @entry.subseq!(-1, 1) }
+  end
+
+  def test_Seq_subseq_bang_with_length_lt_1_raises
+    @entry.seq = "ATCG"
+    assert_raise(SeqError) { @entry.subseq!(0, 0) }
+  end
+
+  def test_Seq_subseq_bang_with_start_plus_length_gt_seq_raises
+    @entry.seq = "ATCG"
+    assert_raise(SeqError) { @entry.subseq!(0, 5) }
+  end
+
+  def test_Seq_subseq_bang_returns_correct_sequence
+    @entry.seq  = "ATCG"
+    @entry.subseq!(0, 2)
+    assert_equal("AT", @entry.seq)
+    @entry.seq  = "ATCG"
+    @entry.subseq!(2, 2)
+    assert_equal("CG", @entry.seq)
+  end
+
+  def test_Seq_subseq_bang_without_len_returns_correct_sequence
+    @entry.seq  = "ATCG"
+    @entry.subseq!(0)
+    assert_equal("ATCG", @entry.seq)
+    @entry.seq  = "ATCG"
+    @entry.subseq!(2)
+    assert_equal("CG", @entry.seq)
+  end
+
+  def test_Seq_subseq_bang_with_pos_and_len_returns_correct_qual
+    @entry.seq  = "ATCG"
+    @entry.qual = "abcd"
+    @entry.subseq!(0, 2)
+    assert_equal("ab", @entry.qual)
+    @entry.seq  = "ATCG"
+    @entry.qual = "abcd"
+    @entry.subseq!(2, 2)
+    assert_equal("cd", @entry.qual)
+  end
+
+  def test_Seq_subseq_bang_with_pos_returns_correct_qual
+    @entry.seq  = "ATCG"
+    @entry.qual = "abcd"
+    @entry.subseq!(0)
+    assert_equal("abcd", @entry.qual)
+    @entry.seq  = "ATCG"
+    @entry.qual = "abcd"
+    @entry.subseq!(2)
+    assert_equal("cd", @entry.qual)
+  end
+
+  def test_Seq_subseq_rand_returns_correct_sequence
+    @entry.seq  = "ATCG"
+    assert_equal("ATCG", @entry.subseq_rand(4).seq)
+  end
+
+  def test_Seq_composition_returns_correctly
+    @entry.seq = "AAAATTTCCG"
+    assert_equal(4, @entry.composition["A"])
+    assert_equal(3, @entry.composition["T"])
+    assert_equal(2, @entry.composition["C"])
+    assert_equal(1, @entry.composition["G"])
+    assert_equal(0, @entry.composition["X"])
+  end
+
+  def test_Seq_homopol_max_returns_0_with_empty_sequence
+    @entry.seq = ""
+    assert_equal(0, @entry.homopol_max)
+  end
+
+  def test_Seq_homopol_max_returns_0_with_nil_sequence
+    @entry.seq = nil
+    assert_equal(0, @entry.homopol_max)
+  end
+
+  def test_Seq_homopol_max_returns_0_when_not_found
+    @entry.seq = "AtTcCcGggGnnNnn"
+    assert_equal(0, @entry.homopol_max(6))
+  end
+
+  def test_Seq_homopol_max_returns_correctly
+    @entry.seq = "AtTcCcGggGnnNnn"
+    assert_equal(5, @entry.homopol_max(3))
+  end
+
+  def test_Seq_hard_mask_returns_correctly
+    @entry.seq = "--AAAANn"
+    assert_equal(33.33, @entry.hard_mask)
+  end
+
+  def test_Seq_soft_mask_returns_correctly
+    @entry.seq = "--AAAa"
+    assert_equal(25.00, @entry.soft_mask)
+  end
+end
+
+
+__END__