bioroebe 0.10.80 → 0.12.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3946 -2817
  3. data/bin/bioroebe +13 -2
  4. data/bin/bioroebe_hash +7 -0
  5. data/bin/codon_to_aminoacid +6 -4
  6. data/bin/compacter +7 -0
  7. data/bin/plain_palindrome +7 -0
  8. data/bioroebe.gemspec +3 -3
  9. data/doc/README.gen +3918 -2793
  10. data/doc/quality_control/commandline_applications.md +3 -3
  11. data/doc/statistics/statistics.md +7 -7
  12. data/doc/todo/bioroebe_GUI_todo.md +19 -14
  13. data/doc/todo/bioroebe_java_todo.md +22 -0
  14. data/doc/todo/bioroebe_todo.md +2075 -2620
  15. data/lib/bioroebe/C++/DNA.cpp +69 -0
  16. data/lib/bioroebe/C++/RNA.cpp +58 -0
  17. data/lib/bioroebe/C++/sequence.cpp +35 -0
  18. data/lib/bioroebe/abstract/README.md +1 -0
  19. data/lib/bioroebe/abstract/features.rb +29 -0
  20. data/lib/bioroebe/aminoacids/aminoacid_substitution.rb +1 -9
  21. data/lib/bioroebe/aminoacids/codon_percentage.rb +1 -9
  22. data/lib/bioroebe/aminoacids/deduce_aminoacid_sequence.rb +1 -9
  23. data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
  24. data/lib/bioroebe/aminoacids/show_hydrophobicity.rb +1 -6
  25. data/lib/bioroebe/base/base_module/base_module.rb +36 -0
  26. data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
  27. data/lib/bioroebe/base/commandline_application/commandline_application.rb +13 -9
  28. data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +24 -19
  29. data/lib/bioroebe/base/commandline_application/misc.rb +66 -49
  30. data/lib/bioroebe/base/commandline_application/opn.rb +8 -8
  31. data/lib/bioroebe/base/commandline_application/reset.rb +5 -3
  32. data/lib/bioroebe/base/internal_hash_module/internal_hash_module.rb +42 -0
  33. data/lib/bioroebe/base/misc.rb +35 -0
  34. data/lib/bioroebe/base/prototype/misc.rb +15 -9
  35. data/lib/bioroebe/base/prototype/reset.rb +10 -0
  36. data/lib/bioroebe/cleave_and_digest/digestion.rb +10 -2
  37. data/lib/bioroebe/cleave_and_digest/trypsin.rb +104 -50
  38. data/lib/bioroebe/codon_tables/frequencies/parse_frequency_table.rb +2 -10
  39. data/lib/bioroebe/codons/codons.rb +1 -1
  40. data/lib/bioroebe/codons/convert_this_codon_to_that_aminoacid.rb +208 -59
  41. data/lib/bioroebe/codons/possible_codons_for_this_aminoacid.rb +1 -9
  42. data/lib/bioroebe/codons/show_codon_tables.rb +8 -3
  43. data/lib/bioroebe/codons/show_codon_usage.rb +15 -4
  44. data/lib/bioroebe/colours/rev.rb +4 -1
  45. data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
  46. data/lib/bioroebe/constants/database_constants.rb +1 -1
  47. data/lib/bioroebe/constants/files_and_directories.rb +31 -4
  48. data/lib/bioroebe/constants/misc.rb +20 -0
  49. data/lib/bioroebe/constants/nucleotides.rb +7 -0
  50. data/lib/bioroebe/conversions/dna_to_aminoacid_sequence.rb +109 -39
  51. data/lib/bioroebe/count/count_amount_of_aminoacids.rb +3 -2
  52. data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
  53. data/lib/bioroebe/cpp +1 -0
  54. data/lib/bioroebe/crystal/README.md +2 -0
  55. data/lib/bioroebe/crystal/to_rna.cr +19 -0
  56. data/lib/bioroebe/data/README.md +11 -8
  57. data/lib/bioroebe/data/electron_microscopy/pos_example.pos +396 -0
  58. data/lib/bioroebe/data/electron_microscopy/test_particles.star +36 -0
  59. data/lib/bioroebe/data/fasta/human/Homo_sapiens_hemoglobin_subunit_alpha_HBB_mRNA.fasta +9 -0
  60. data/lib/bioroebe/data/fasta/human/Homo_sapiens_hemoglobin_subunit_beta_HBB_mRNA.fasta +8 -0
  61. data/lib/bioroebe/data/fasta/human/README.md +2 -0
  62. data/lib/bioroebe/dotplots/advanced_dotplot.rb +1 -1
  63. data/lib/bioroebe/electron_microscopy/coordinate_analyzer.rb +15 -18
  64. data/lib/bioroebe/{fasta_and_fastq/parse_fasta/run.rb → electron_microscopy/electron_microscopy_module.rb} +16 -8
  65. data/lib/bioroebe/electron_microscopy/fix_pos_file.rb +1 -9
  66. data/lib/bioroebe/electron_microscopy/flipy.rb +83 -0
  67. data/lib/bioroebe/electron_microscopy/parse_coordinates.rb +2 -10
  68. data/lib/bioroebe/electron_microscopy/read_file_xmd.rb +1 -9
  69. data/lib/bioroebe/electron_microscopy/simple_star_file_generator.rb +4 -9
  70. data/lib/bioroebe/enzymes/has_this_restriction_enzyme.rb +10 -3
  71. data/lib/bioroebe/enzymes/restriction_enzyme.rb +23 -1
  72. data/lib/bioroebe/enzymes/restriction_enzymes/statistics.rb +65 -0
  73. data/lib/bioroebe/fasta_and_fastq/autocorrect_the_name_of_this_fasta_file.rb +1 -9
  74. data/lib/bioroebe/fasta_and_fastq/compact_fasta_file/compact_fasta_file.rb +7 -9
  75. data/lib/bioroebe/fasta_and_fastq/fasta_defline/fasta_defline.rb +1 -5
  76. data/lib/bioroebe/fasta_and_fastq/fasta_to_yaml/fasta_to_yaml.rb +81 -0
  77. data/lib/bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb +1518 -7
  78. data/lib/bioroebe/fasta_and_fastq/return_fasta_subsection_of_this_file.rb +11 -2
  79. data/lib/bioroebe/fasta_and_fastq/show_fasta_headers.rb +27 -12
  80. data/lib/bioroebe/fasta_and_fastq/simplify_fasta_header/simplify_fasta_header.rb +1 -5
  81. data/lib/bioroebe/fasta_and_fastq/split_this_fasta_file_into_chromosomes/constants.rb +0 -5
  82. data/lib/bioroebe/genome/README.md +4 -0
  83. data/lib/bioroebe/genome/genome.rb +130 -0
  84. data/lib/bioroebe/genomes/genome_pattern.rb +3 -9
  85. data/lib/bioroebe/gui/gtk +1 -0
  86. data/lib/bioroebe/gui/gtk3/alignment/alignment.rb +106 -137
  87. data/lib/bioroebe/gui/gtk3/aminoacid_composition/aminoacid_composition.rb +27 -61
  88. data/lib/bioroebe/gui/gtk3/aminoacid_composition/customized_dialog.rb +1 -1
  89. data/lib/bioroebe/gui/gtk3/blosum_matrix_viewer/blosum_matrix_viewer.rb +1 -2
  90. data/lib/bioroebe/gui/gtk3/calculate_cell_numbers_of_bacteria/calculate_cell_numbers_of_bacteria.rb +1 -2
  91. data/lib/bioroebe/gui/gtk3/controller/controller.rb +46 -29
  92. data/lib/bioroebe/gui/gtk3/dna_to_aminoacid_widget/dna_to_aminoacid_widget.rb +77 -52
  93. data/lib/bioroebe/gui/gtk3/dna_to_reverse_complement_widget/dna_to_reverse_complement_widget.rb +1 -2
  94. data/lib/bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb +100 -23
  95. data/lib/bioroebe/gui/gtk3/format_converter/format_converter.rb +1 -2
  96. data/lib/bioroebe/gui/gtk3/gene/gene.rb +1 -2
  97. data/lib/bioroebe/gui/gtk3/hamming_distance/hamming_distance.rb +43 -30
  98. data/lib/bioroebe/gui/gtk3/levensthein_distance/levensthein_distance.rb +1 -2
  99. data/lib/bioroebe/gui/gtk3/nucleotide_analyser/nucleotide_analyser.rb +120 -73
  100. data/lib/bioroebe/gui/gtk3/primer_design_widget/primer_design_widget.rb +1 -2
  101. data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +19 -20
  102. data/lib/bioroebe/gui/gtk3/random_sequence/random_sequence.rb +20 -13
  103. data/lib/bioroebe/gui/gtk3/restriction_enzymes/restriction_enzymes.rb +1 -2
  104. data/lib/bioroebe/gui/gtk3/show_codon_table/misc.rb +97 -22
  105. data/lib/bioroebe/gui/gtk3/show_codon_table/show_codon_table.rb +3 -73
  106. data/lib/bioroebe/gui/gtk3/show_codon_usage/show_codon_usage.rb +1 -2
  107. data/lib/bioroebe/gui/gtk3/sizeseq/sizeseq.rb +1 -2
  108. data/lib/bioroebe/gui/gtk3/three_to_one/three_to_one.rb +1 -2
  109. data/lib/bioroebe/gui/gtk3/www_finder/www_finder.rb +1 -2
  110. data/lib/bioroebe/gui/javafx/bioroebe/Bioroebe.class +0 -0
  111. data/lib/bioroebe/gui/javafx/bioroebe/Bioroebe.java +104 -0
  112. data/lib/bioroebe/gui/javafx/bioroebe.jar +0 -0
  113. data/lib/bioroebe/gui/javafx/bioroebe.mf +1 -0
  114. data/lib/bioroebe/gui/javafx/module-info.class +0 -0
  115. data/lib/bioroebe/gui/javafx/module-info.java +5 -0
  116. data/lib/bioroebe/gui/jruby/alignment/alignment.rb +165 -0
  117. data/lib/bioroebe/gui/jruby/aminoacid_composition/aminoacid_composition.rb +166 -0
  118. data/lib/bioroebe/gui/libui/alignment/alignment.rb +3 -1
  119. data/lib/bioroebe/gui/libui/controller/controller.rb +116 -0
  120. data/lib/bioroebe/gui/libui/random_sequence/random_sequence.rb +18 -2
  121. data/lib/bioroebe/gui/libui/show_codon_table/show_codon_table.rb +2 -0
  122. data/lib/bioroebe/gui/libui/three_to_one/three_to_one.rb +8 -6
  123. data/lib/bioroebe/gui/shared_code/alignment/alignment_module.rb +102 -0
  124. data/lib/bioroebe/gui/shared_code/aminoacid_composition/aminoacid_composition_module.rb +94 -0
  125. data/lib/bioroebe/gui/shared_code/levensthein_distance/levensthein_distance_module.rb +18 -16
  126. data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
  127. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$1.class +0 -0
  128. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$CloseListener.class +0 -0
  129. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.class +0 -0
  130. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.java +141 -0
  131. data/lib/bioroebe/images/FORWARD_PRIMER.png +0 -0
  132. data/lib/bioroebe/images/REVERSE_PRIMER.png +0 -0
  133. data/lib/bioroebe/images/images.html +29845 -0
  134. data/lib/bioroebe/java/README.md +5 -0
  135. data/lib/bioroebe/java/bioroebe/AllInOne.java +1 -0
  136. data/lib/bioroebe/java/bioroebe/Base.class +0 -0
  137. data/lib/bioroebe/java/bioroebe/Base.java +39 -5
  138. data/lib/bioroebe/java/bioroebe/IsPalindrome.java +23 -5
  139. data/lib/bioroebe/java/bioroebe/SanitizeNucleotideSequence.java +0 -0
  140. data/lib/bioroebe/java/bioroebe/Sequence.java +28 -3
  141. data/lib/bioroebe/java/bioroebe/ToCamelcase.class +0 -0
  142. data/lib/bioroebe/java/bioroebe/ToCamelcase.java +16 -4
  143. data/lib/bioroebe/java/bioroebe/ToRNA.java +43 -0
  144. data/lib/bioroebe/java/bioroebe/ToplevelMethods.java +6 -0
  145. data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.class → src/BisulfiteTreatment.class} +0 -0
  146. data/lib/bioroebe/java/bioroebe/{Codons.class → src/Codons.class} +0 -0
  147. data/lib/bioroebe/java/bioroebe/src/Codons.java +35 -0
  148. data/lib/bioroebe/java/bioroebe/src/Commandline.class +0 -0
  149. data/lib/bioroebe/java/bioroebe/src/Commandline.java +101 -0
  150. data/lib/bioroebe/java/bioroebe/{Esystem.class → src/Esystem.class} +0 -0
  151. data/lib/bioroebe/java/bioroebe/{Esystem.java → src/Esystem.java} +6 -1
  152. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.class → src/GenerateRandomDnaSequence.class} +0 -0
  153. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.java → src/GenerateRandomDnaSequence.java} +8 -2
  154. data/lib/bioroebe/java/bioroebe/src/PartnerNucleotide.class +0 -0
  155. data/lib/bioroebe/java/bioroebe/src/PartnerNucleotide.java +56 -0
  156. data/lib/bioroebe/java/bioroebe/{RemoveFile.java → src/RemoveFile.java} +10 -4
  157. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.class → src/RemoveNumbers.class} +0 -0
  158. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.java → src/RemoveNumbers.java} +1 -0
  159. data/lib/bioroebe/java/bioroebe/src/toplevel_methods/BaseComposition.class +0 -0
  160. data/lib/bioroebe/java/bioroebe/src/toplevel_methods/BaseComposition.java +75 -0
  161. data/lib/bioroebe/misc/ruler.rb +11 -2
  162. data/lib/bioroebe/nucleotides/most_likely_nucleotide_sequence_for_this_aminoacid_sequence.rb +1 -9
  163. data/lib/bioroebe/nucleotides/sanitize_nucleotide_sequence.rb +59 -18
  164. data/lib/bioroebe/nucleotides/show_nucleotide_sequence.rb +7 -7
  165. data/lib/bioroebe/parsers/genbank_parser.rb +347 -26
  166. data/lib/bioroebe/parsers/gff.rb +1 -9
  167. data/lib/bioroebe/patterns/scan_for_repeat.rb +1 -5
  168. data/lib/bioroebe/pdb/fetch_fasta_sequence_from_pdb.rb +1 -9
  169. data/lib/bioroebe/pdb/parse_mmCIF_file.rb +1 -9
  170. data/lib/bioroebe/pdb/parse_pdb_file.rb +4 -10
  171. data/lib/bioroebe/project/project.rb +1 -1
  172. data/lib/bioroebe/python/README.md +1 -0
  173. data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
  174. data/lib/bioroebe/python/gui/gtk3/all_in_one.css +4 -0
  175. data/lib/bioroebe/python/gui/gtk3/all_in_one.py +59 -0
  176. data/lib/bioroebe/python/gui/gtk3/widget1.py +20 -0
  177. data/lib/bioroebe/python/gui/tkinter/all_in_one.py +91 -0
  178. data/lib/bioroebe/python/mymodule.py +8 -0
  179. data/lib/bioroebe/python/protein_to_dna.py +33 -0
  180. data/lib/bioroebe/python/shell/shell.py +19 -0
  181. data/lib/bioroebe/python/to_rna.py +14 -0
  182. data/lib/bioroebe/python/toplevel_methods/convert_dna_to_aminoacid_sequence.py +137 -0
  183. data/lib/bioroebe/python/toplevel_methods/esystem.py +12 -0
  184. data/lib/bioroebe/python/toplevel_methods/open_in_browser.py +20 -0
  185. data/lib/bioroebe/python/toplevel_methods/palindromes.py +52 -0
  186. data/lib/bioroebe/python/toplevel_methods/rds.py +13 -0
  187. data/lib/bioroebe/python/toplevel_methods/shuffleseq.py +23 -0
  188. data/lib/bioroebe/python/toplevel_methods/three_delimiter.py +37 -0
  189. data/lib/bioroebe/python/toplevel_methods/time_and_date.py +43 -0
  190. data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +21 -0
  191. data/lib/bioroebe/requires/require_cleave_and_digest.rb +3 -1
  192. data/lib/bioroebe/requires/require_the_bioroebe_project.rb +3 -1
  193. data/lib/bioroebe/sequence/alignment.rb +14 -4
  194. data/lib/bioroebe/sequence/dna.rb +1 -0
  195. data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
  196. data/lib/bioroebe/sequence/protein.rb +105 -3
  197. data/lib/bioroebe/sequence/rna.rb +220 -0
  198. data/lib/bioroebe/sequence/sequence.rb +128 -40
  199. data/lib/bioroebe/shell/menu.rb +3815 -3696
  200. data/lib/bioroebe/shell/misc.rb +9019 -3133
  201. data/lib/bioroebe/shell/readline/readline.rb +1 -1
  202. data/lib/bioroebe/shell/shell.rb +1137 -28
  203. data/lib/bioroebe/siRNA/siRNA.rb +81 -1
  204. data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
  205. data/lib/bioroebe/string_matching/hamming_distance.rb +1 -9
  206. data/lib/bioroebe/taxonomy/class_methods.rb +3 -8
  207. data/lib/bioroebe/taxonomy/constants.rb +4 -3
  208. data/lib/bioroebe/taxonomy/edit.rb +2 -1
  209. data/lib/bioroebe/taxonomy/help/help.rb +10 -10
  210. data/lib/bioroebe/taxonomy/help/helpline.rb +2 -2
  211. data/lib/bioroebe/taxonomy/info/check_available.rb +15 -9
  212. data/lib/bioroebe/taxonomy/info/info.rb +18 -11
  213. data/lib/bioroebe/taxonomy/info/is_dna.rb +46 -36
  214. data/lib/bioroebe/taxonomy/interactive.rb +140 -104
  215. data/lib/bioroebe/taxonomy/menu.rb +27 -18
  216. data/lib/bioroebe/taxonomy/parse_fasta.rb +3 -1
  217. data/lib/bioroebe/taxonomy/shared.rb +1 -0
  218. data/lib/bioroebe/taxonomy/taxonomy.rb +1 -0
  219. data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
  220. data/lib/bioroebe/toplevel_methods/colourize_related_methods.rb +164 -0
  221. data/lib/bioroebe/toplevel_methods/databases.rb +1 -1
  222. data/lib/bioroebe/toplevel_methods/digest.rb +18 -8
  223. data/lib/bioroebe/toplevel_methods/fasta_and_fastq.rb +107 -63
  224. data/lib/bioroebe/toplevel_methods/file_and_directory_related_actions.rb +14 -2
  225. data/lib/bioroebe/toplevel_methods/frequencies.rb +8 -1
  226. data/lib/bioroebe/toplevel_methods/misc.rb +175 -11
  227. data/lib/bioroebe/toplevel_methods/nucleotides.rb +118 -46
  228. data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
  229. data/lib/bioroebe/toplevel_methods/palindromes.rb +75 -47
  230. data/lib/bioroebe/toplevel_methods/taxonomy.rb +3 -3
  231. data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
  232. data/lib/bioroebe/utility_scripts/align_open_reading_frames.rb +1 -9
  233. data/lib/bioroebe/utility_scripts/check_for_mismatches/check_for_mismatches.rb +1 -9
  234. data/lib/bioroebe/utility_scripts/compacter/compacter.rb +251 -0
  235. data/lib/bioroebe/utility_scripts/compseq/compseq.rb +1 -9
  236. data/lib/bioroebe/utility_scripts/consensus_sequence.rb +6 -6
  237. data/lib/bioroebe/utility_scripts/create_batch_entrez_file.rb +1 -9
  238. data/lib/bioroebe/utility_scripts/dot_alignment.rb +1 -9
  239. data/lib/bioroebe/utility_scripts/move_file_to_its_correct_location.rb +1 -4
  240. data/lib/bioroebe/utility_scripts/parse_taxonomy.rb +2 -2
  241. data/lib/bioroebe/utility_scripts/permutations.rb +36 -9
  242. data/lib/bioroebe/utility_scripts/showorf/constants.rb +0 -5
  243. data/lib/bioroebe/utility_scripts/showorf/reset.rb +1 -4
  244. data/lib/bioroebe/version/version.rb +2 -2
  245. data/lib/bioroebe/www/embeddable_interface.rb +121 -58
  246. data/lib/bioroebe/www/sinatra/sinatra.rb +186 -71
  247. data/lib/bioroebe/yaml/aminoacids/amino_acids_long_name_to_one_letter.yml +2 -2
  248. data/lib/bioroebe/yaml/aminoacids/weight_of_common_proteins.yml +17 -17
  249. data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
  250. data/lib/bioroebe/yaml/configuration/temp_dir.yml +1 -1
  251. data/lib/bioroebe/yaml/consensus_sequences/consensus_sequences.yml +1 -0
  252. data/lib/bioroebe/yaml/genomes/README.md +3 -4
  253. data/lib/bioroebe/yaml/nucleotides/nucleotides.yml +5 -0
  254. data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +57 -57
  255. data/spec/README.md +6 -0
  256. data/spec/project_wide_specification/classes.md +5 -0
  257. metadata +107 -70
  258. data/doc/setup.rb +0 -1655
  259. data/lib/bioroebe/fasta_and_fastq/parse_fasta/constants.rb +0 -50
  260. data/lib/bioroebe/fasta_and_fastq/parse_fasta/initialize.rb +0 -86
  261. data/lib/bioroebe/fasta_and_fastq/parse_fasta/menu.rb +0 -117
  262. data/lib/bioroebe/fasta_and_fastq/parse_fasta/misc.rb +0 -981
  263. data/lib/bioroebe/fasta_and_fastq/parse_fasta/report.rb +0 -156
  264. data/lib/bioroebe/fasta_and_fastq/parse_fasta/reset.rb +0 -128
  265. data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
  266. data/lib/bioroebe/java/bioroebe/AllInOne.class +0 -0
  267. data/lib/bioroebe/java/bioroebe/Cat.class +0 -0
  268. data/lib/bioroebe/java/bioroebe/Codons.java +0 -22
  269. data/lib/bioroebe/java/bioroebe/IsPalindrome.class +0 -0
  270. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.class +0 -0
  271. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.java +0 -19
  272. data/lib/bioroebe/java/bioroebe/SanitizeNucleotideSequence.class +0 -0
  273. data/lib/bioroebe/java/bioroebe/ToplevelMethods.class +0 -0
  274. data/lib/bioroebe/java/bioroebe.jar +0 -0
  275. data/lib/bioroebe/shell/add.rb +0 -108
  276. data/lib/bioroebe/shell/assign.rb +0 -360
  277. data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
  278. data/lib/bioroebe/shell/constants.rb +0 -166
  279. data/lib/bioroebe/shell/download.rb +0 -335
  280. data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
  281. data/lib/bioroebe/shell/enzymes.rb +0 -310
  282. data/lib/bioroebe/shell/fasta.rb +0 -345
  283. data/lib/bioroebe/shell/gtk.rb +0 -76
  284. data/lib/bioroebe/shell/history.rb +0 -132
  285. data/lib/bioroebe/shell/initialize.rb +0 -217
  286. data/lib/bioroebe/shell/loop.rb +0 -74
  287. data/lib/bioroebe/shell/prompt.rb +0 -107
  288. data/lib/bioroebe/shell/random.rb +0 -289
  289. data/lib/bioroebe/shell/reset.rb +0 -335
  290. data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
  291. data/lib/bioroebe/shell/search.rb +0 -337
  292. data/lib/bioroebe/shell/sequences.rb +0 -200
  293. data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
  294. data/lib/bioroebe/shell/startup.rb +0 -127
  295. data/lib/bioroebe/shell/taxonomy.rb +0 -14
  296. data/lib/bioroebe/shell/tk.rb +0 -23
  297. data/lib/bioroebe/shell/user_input.rb +0 -88
  298. data/lib/bioroebe/shell/xorg.rb +0 -45
  299. data/lib/bioroebe/utility_scripts/compacter.rb +0 -131
  300. /data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.java → src/BisulfiteTreatment.java} +0 -0
  301. /data/lib/bioroebe/java/bioroebe/{RemoveFile.class → src/RemoveFile.class} +0 -0
@@ -16,19 +16,90 @@ module Bioroebe
16
16
  require 'bioroebe/toplevel_methods/extract.rb'
17
17
 
18
18
  # ========================================================================= #
19
- # === Bioroebe.thousand_percentage
19
+ # === Bioroebe.percentage_count_non_DNA_bases_in_this_sequence
20
+ #
21
+ # Usage examples:
22
+ #
23
+ # Bioroebe.percentage_count_non_DNA_bases_in_this_sequence('ATCGF')
24
+ # Bioroebe.percentage_count_non_DNA_bases_in_this_sequence('ACTNGTGCTYGATRGTAGC', %w( A T G C Y R ))
20
25
  #
21
- # This method is solely a helper-method for Bioroebe.frequency_per_thousand().
22
26
  # ========================================================================= #
23
- def self.thousand_percentage(
24
- this_codon_n_times = 1,
25
- total_n_elements = 1000
27
+ def self.percentage_count_non_DNA_bases_in_this_sequence(
28
+ i, array = Bioroebe.return_DNA_nucleotides
26
29
  )
27
- result = (
28
- (this_codon_n_times * 1000.0) / total_n_elements.to_f
29
- ).round(1)
30
- padded_result = result.to_s.rjust(5, ' ')
31
- return padded_result
30
+ n = count_non_DNA_bases_in_this_sequence(i, array)
31
+ percentage = (n * 100.0 / i.size.to_f)
32
+ return percentage
33
+ end
34
+
35
+ # ========================================================================= #
36
+ # === Bioroebe.count_non_DNA_bases_in_this_sequence
37
+ #
38
+ # Usage example:
39
+ #
40
+ # Bioroebe.count_non_DNA_bases_in_this_sequence('ATCGF')
41
+ #
42
+ # ========================================================================= #
43
+ def self.count_non_DNA_bases_in_this_sequence(
44
+ i, array = Bioroebe.return_DNA_nucleotides
45
+ )
46
+ i = i.dup
47
+ array.each {|this_nucleotide|
48
+ i.delete!(this_nucleotide)
49
+ }
50
+ return i.size
51
+ end
52
+
53
+ # ========================================================================= #
54
+ # === Bioroebe.sequence_based_on_these_restriction_enzymes
55
+ #
56
+ # Usage example:
57
+ #
58
+ # x = Bioroebe.sequence_based_on_these_restriction_enzymes(%w( EcoRI SacI KpnI XmaI BamHI XbaI SalI )); 'GAATTCGAGCTCGGTACCCCCGGGGGATCCTCTAGAGTCGAC'
59
+ #
60
+ # ========================================================================= #
61
+ def self.sequence_based_on_these_restriction_enzymes(*i)
62
+ require 'bioroebe/enzymes/restriction_enzyme.rb'
63
+ _ = ''.dup
64
+ i.flatten.each {|this_restriction_enzyme|
65
+ _ << ::Bioroebe.restriction_sites?(this_restriction_enzyme)
66
+ }
67
+ return _
68
+ end
69
+
70
+ # ========================================================================= #
71
+ # === Bioroebe.create_jar_archive
72
+ #
73
+ # This method will create a .jar file.
74
+ #
75
+ # To invoke it from the commandline do:
76
+ #
77
+ # bioroebe --jar
78
+ #
79
+ # To execute a .jar file do:
80
+ #
81
+ # java -jar foobar.jar
82
+ #
83
+ # ========================================================================= #
84
+ def self.create_jar_archive
85
+ e 'Creating a .jar archive next:'
86
+ e
87
+ original_dir = return_pwd
88
+ cd '/home/x/programming/ruby/src/bioroebe/lib/bioroebe/java/bioroebe/src/main/java/'
89
+ esystem 'jar cf bioroebe.jar bioroebe/'
90
+ target_file = File.absolute_path('bioroebe.jar')
91
+ cd original_dir
92
+ if File.exist? target_file
93
+ e 'Moving the created .jar file into the current working '\
94
+ 'directory next.'
95
+ move_file(target_file, original_dir)
96
+ e 'It should now be at:'
97
+ e
98
+ e sfile(" #{original_dir}#{File.basename(target_file)}")
99
+ e
100
+ end
101
+ # esystem 'jar cfe bioroebe.jar myClass myClass.class'
102
+ e
32
103
  end
33
104
 
34
105
  # ========================================================================= #
@@ -86,6 +157,7 @@ EOF
86
157
  # Usage example:
87
158
  #
88
159
  # Bioroebe.codon_frequency_of_this_string
160
+ # Bioroebe.codon_frequency_of_this_string 'ATTCGTACGATCGACTACTACT' # => {"UAC"=>2, "GAC"=>1, "AUC"=>1, "ACG"=>1, "CGU"=>1, "AUU"=>1}
89
161
  #
90
162
  # ========================================================================= #
91
163
  def self.codon_frequency_of_this_string(
@@ -107,6 +179,22 @@ EOF
107
179
  return sorted_hash
108
180
  end
109
181
 
182
+ # ========================================================================= #
183
+ # === Bioroebe.thousand_percentage
184
+ #
185
+ # This method is solely a helper-method for Bioroebe.frequency_per_thousand().
186
+ # ========================================================================= #
187
+ def self.thousand_percentage(
188
+ this_codon_n_times = 1,
189
+ total_n_elements = 1000
190
+ )
191
+ result = (
192
+ (this_codon_n_times * 1000.0) / total_n_elements.to_f
193
+ ).round(1)
194
+ padded_result = result.to_s.rjust(5, ' ')
195
+ return padded_result
196
+ end
197
+
110
198
  # ========================================================================= #
111
199
  # === Bioroebe.align_this_string_via_multiple_sequence_alignment
112
200
  #
@@ -314,7 +402,13 @@ EOF
314
402
  # ========================================================================= #
315
403
  # === Bioroebe.bisulfite_treatment
316
404
  #
317
- # Simply convert all C into U.
405
+ # Simply convert all C into U. The underlying idea here is that
406
+ # bilsufite will convert unmethylated Cytosines into Uracil.
407
+ #
408
+ # Usage example:
409
+ #
410
+ # Bioroebe.bisulfite_treatment('CCCGCAATGCATACCTCGCCG') # => "UUUGUAATGUATAUUTUGUUG"
411
+ #
318
412
  # ========================================================================= #
319
413
  def self.bisulfite_treatment(i)
320
414
  if i.is_a? Array
@@ -420,6 +514,76 @@ EOF
420
514
  end; self.instance_eval { alias on_windows? windows_platform? } # === Bioroebe.on_windows?
421
515
  self.instance_eval { alias is_on_windows? windows_platform? } # === Bioroebe.is_on_windows?
422
516
 
517
+ # ========================================================================= #
518
+ # === Bioroebe.two_dimensional_plot
519
+ #
520
+ # This method makes use of gnuplot to draw a 2D plot.
521
+ #
522
+ # The first argument should contain your dataset, as a String.
523
+ # ========================================================================= #
524
+ def self.two_dimensional_plot(
525
+ dataset = '6 12
526
+ 8 14
527
+ 10 18
528
+ 12 23
529
+ 14 28
530
+ 16 29
531
+ 18 26
532
+ 20 23
533
+ 22 20',
534
+ optional_hash = {
535
+ width: 800,
536
+ height: 640
537
+ }
538
+ )
539
+ # ======================================================================= #
540
+ # Provide some generic fall-back values for width and height next:
541
+ # ======================================================================= #
542
+ width = 1000
543
+ height = 800
544
+ _ = optional_hash
545
+ if _.is_a? Hash
546
+ # ===================================================================== #
547
+ # === :width
548
+ # ===================================================================== #
549
+ if _.has_key? :width
550
+ width = _.delete(:width)
551
+ end
552
+ # ===================================================================== #
553
+ # === :height
554
+ # ===================================================================== #
555
+ if _.has_key? :height
556
+ height = _.delete(:height)
557
+ end
558
+ end
559
+ # ======================================================================= #
560
+ # Go to a safe base directory.
561
+ # ======================================================================= #
562
+ cd :bioroebe_log_directory
563
+ mkdir 'gnuplot' unless File.directory?('gnuplot')
564
+ cd 'gnuplot'
565
+ # ======================================================================= #
566
+ # First save the dataset into dataset.md:
567
+ # ======================================================================= #
568
+ into = File.absolute_path('dataset.md')
569
+ e 'Storing the dataset into '+sfile(into)+' next.'
570
+ write_what_into(dataset, into)
571
+ what = <<-EOF
572
+
573
+ set terminal png size #{width},#{height} enhanced font "Helvetica, 18"
574
+ set output 'fancy_graph.png'
575
+ plot '#{into}' with linespoints ls 1 notitle
576
+
577
+ EOF
578
+ into = File.absolute_path('gnuplot.file')
579
+ e 'Storing into '+into+'.'
580
+ write_what_into(what, into)
581
+ esystem 'gnuplot '+into
582
+ if File.exist? 'fancy_graph.png' and is_on_roebe?
583
+ Open.in_browser('fancy_graph.png')
584
+ end
585
+ end
586
+
423
587
  end
424
588
 
425
589
  if __FILE__ == $PROGRAM_NAME
@@ -19,6 +19,102 @@ module Bioroebe
19
19
  require 'bioroebe/constants/nucleotides.rb'
20
20
  require 'bioroebe/toplevel_methods/e.rb'
21
21
 
22
+ # ========================================================================= #
23
+ # === Bioroebe.can_base_pair_with?
24
+ #
25
+ # Usage example:
26
+ #
27
+ # Bioroebe.can_base_pair_with?('A','T') # => true
28
+ # Bioroebe.can_base_pair_with?('A','G') # => false
29
+ #
30
+ # ========================================================================= #
31
+ def self.can_base_pair_with?(a, b)
32
+ ::Bioroebe.partner_nucleotide(a) == b
33
+ end
34
+
35
+ # ========================================================================= #
36
+ # === Bioroebe.partner_nucleotide
37
+ #
38
+ # This small "table" will simply return the corresponding Nucleotide
39
+ # matching the given input at hand - in other words, the corresponding
40
+ # DNA nucleotide that can base-pair with the input nucleotide.
41
+ #
42
+ # Since this is a method call this may be a bit slow if you have to
43
+ # invoke the method repeatedly. In this case, you should consider
44
+ # using the method befined below, through the method
45
+ # Bioroebe.partner_nucleotide_hash(), and then use that Hash instead.
46
+ #
47
+ # Usage example:
48
+ #
49
+ # Bioroebe.partner_nucleotide('A') # => "T"
50
+ # Bioroebe.should_match_to?('T') # => "A"
51
+ #
52
+ # ========================================================================= #
53
+ def self.partner_nucleotide(i)
54
+ i = i.first if i.is_a? Array # We only handle the first entry in an Array.
55
+ if i
56
+ i = i.dup if i.frozen?
57
+ i.upcase! # just in caase.
58
+ case i # case tag.
59
+ when 'A'
60
+ return 'T'
61
+ when 'T','U'
62
+ return 'A'
63
+ when 'G'
64
+ return 'C'
65
+ when 'C'
66
+ return 'G'
67
+ else
68
+ return nil # means illegal value.
69
+ end
70
+ end
71
+ return i # Return just in case.
72
+ end; self.instance_eval { alias complementary_nucleotide partner_nucleotide } # === Bioroebe.complementary_nucleotide
73
+ self.instance_eval { alias return_dna_match partner_nucleotide } # === Bioroebe.return_dna_match
74
+ self.instance_eval { alias should_match_to? partner_nucleotide } # === Bioroebe.should_match_to?
75
+
76
+ # ========================================================================= #
77
+ # === Bioroebe.contains_an_inverted_repeat?
78
+ #
79
+ # We assume an inverted repeat to exist if at the least 2 nucleotides
80
+ # match to one another in the reverse, so a total of 4 matching
81
+ # nucleotides. This assumption may not necessarily be correct and
82
+ # we may have to fine-tune this at a later time.
83
+ #
84
+ # For testing purpose, the sequence 'TTACGAAAAAACGTAA' can be used.
85
+ # ========================================================================= #
86
+ def self.contains_an_inverted_repeat?(
87
+ #i = 'AGCCCCGCAAAAAAGGCGGGCU'
88
+ i = 'TTACGAAAAAACGTAA' # This is in the 5'→3' direction.
89
+ )
90
+ contains_an_inverted_repeat = false
91
+ longest_stretch = 0
92
+ current_stretch = 0
93
+ halfed_position = i.size / 2
94
+ both_sides = [
95
+ i[0 .. (halfed_position-1)],
96
+ i[halfed_position .. -1]
97
+ ]
98
+ # ======================================================================= #
99
+ # Now that we have both sides, we will try to match them. First reverse
100
+ # the second, though.
101
+ # ======================================================================= #
102
+ first = both_sides[0]
103
+ second = both_sides[1].reverse # Work via the reverse sequence.
104
+ first.chars.each_with_index {|this_nucleotide, index|
105
+ if can_base_pair_with?(second[index], this_nucleotide)
106
+ current_stretch += 1
107
+ longest_stretch = current_stretch if current_stretch > longest_stretch
108
+ else
109
+ current_stretch = 0
110
+ end
111
+ }
112
+ if longest_stretch >= 2
113
+ contains_an_inverted_repeat = true
114
+ end
115
+ return contains_an_inverted_repeat
116
+ end
117
+
22
118
  # ========================================================================= #
23
119
  # === Bioroebe.complementary_rna_strand
24
120
  #
@@ -147,47 +243,6 @@ module Bioroebe
147
243
  return _.flatten.uniq.sort
148
244
  end
149
245
 
150
- # ========================================================================= #
151
- # === Bioroebe.partner_nucleotide
152
- #
153
- # This small "table" will simply return the corresponding Nucleotide
154
- # matching the given input at hand - in other words, the corresponding
155
- # DNA nucleotide that can base-pair with the input nucleotide.
156
- #
157
- # Since this is a method call this may be a bit slow if you have to
158
- # invoke the method repeatedly. In this case, you should consider
159
- # using the method befined below, through the method
160
- # Bioroebe.partner_nucleotide_hash(), and then use that Hash instead.
161
- #
162
- # Usage example:
163
- #
164
- # Bioroebe.partner_nucleotide('A') # => "T"
165
- # Bioroebe.should_match_to?('T') # => "A"
166
- #
167
- # ========================================================================= #
168
- def self.partner_nucleotide(i)
169
- i = i.first if i.is_a? Array # We only handle the first entry in an Array.
170
- if i
171
- i = i.dup if i.frozen?
172
- i.upcase! # just in caase.
173
- case i # case tag.
174
- when 'A'
175
- return 'T'
176
- when 'T','U'
177
- return 'A'
178
- when 'G'
179
- return 'C'
180
- when 'C'
181
- return 'G'
182
- else
183
- return nil # means illegal value.
184
- end
185
- end
186
- return i # Return just in case.
187
- end; self.instance_eval { alias complementary_nucleotide partner_nucleotide } # === Bioroebe.complementary_nucleotide
188
- self.instance_eval { alias return_dna_match partner_nucleotide } # === Bioroebe.return_dna_match
189
- self.instance_eval { alias should_match_to? partner_nucleotide } # === Bioroebe.should_match_to?
190
-
191
246
  # ========================================================================= #
192
247
  # === Bioroebe.return_all_positions_of_this_nucleotide
193
248
  #
@@ -270,12 +325,19 @@ module Bioroebe
270
325
  # Bioroebe.random_dna 15 # => "TTGGTAAGCTCTTTA"
271
326
  # Bioroebe.random_dna 25 # => "TTAGCACAAGCATGGACGGACCAGA"
272
327
  # Bioroebe.random_dna(50, { A: 10, T: 10, C: 10, G: 70}) # => "GGGGTGGGGAGGGTATGCGGAGGAAGGGCGGGAAGGGCGGGGGCTGGGCG"
328
+ # Bioroebe.random_dna(20, 'ATGGGGGGGG') # => "TGAGGGGGGGGGTGGGAGGG"
329
+ # Bioroebe.random_dna(20, 'ATGGGGGGGG') # => "GGTAGGGGGGGGTAGGGGGG"
273
330
  #
274
331
  # ========================================================================= #
275
332
  def self.generate_random_dna_sequence(
276
- i = ARGV,
277
- optional_hash_with_the_frequencies = {}
333
+ i = ARGV,
334
+ optional_hash_with_the_frequencies = {} # ← This may be a String too, mind you.
278
335
  )
336
+ # ======================================================================= #
337
+ # First define our result-String. This one will be returned by this
338
+ # method.
339
+ # ======================================================================= #
340
+ result = ''.dup
279
341
  _ = Bioroebe::DNA_NUCLEOTIDES # Get a handle to the four DNA nucleotides.
280
342
  if i.is_a? Array
281
343
  i = i.join.strip
@@ -284,9 +346,19 @@ module Bioroebe
284
346
  when :default
285
347
  i = 250
286
348
  end
287
- i = i.to_i
288
- result = ''.dup
289
- if optional_hash_with_the_frequencies.empty?
349
+ i = i.to_i # This is "n times".
350
+ # ======================================================================= #
351
+ # First handle the case where the user passed a String:
352
+ # ======================================================================= #
353
+ if optional_hash_with_the_frequencies.is_a? String
354
+ pool = optional_hash_with_the_frequencies.dup.chars.shuffle
355
+ i.times {
356
+ if pool.size == 0
357
+ pool = optional_hash_with_the_frequencies.dup.chars.shuffle
358
+ end
359
+ result << pool.pop
360
+ }
361
+ elsif optional_hash_with_the_frequencies.empty?
290
362
  # ===================================================================== #
291
363
  # This is the default clause.
292
364
  # ===================================================================== #
@@ -18,6 +18,8 @@ module Bioroebe
18
18
  # This constant specifies the default browser to use for the
19
19
  # bioroebe-project.
20
20
  # ========================================================================= #
21
+ # /home/x/programming/ruby/src/bioroebe/lib/bioroebe/yaml/configuration/browser.yml
22
+ # ========================================================================= #
21
23
  if File.exist? "#{project_yaml_directory?}browser.yml"
22
24
  USE_THIS_BROWSER = YAML.load_file(FILE_BROWSER)
23
25
  elsif ENV['BROWSER']
@@ -3,12 +3,86 @@
3
3
  # frozen_string_literal: true
4
4
  # =========================================================================== #
5
5
  # require 'bioroebe/toplevel_methods/palindromes.rb'
6
+ # Bioroebe.plain_palindrome(ARGV)
6
7
  # puts Bioroebe.is_palindrome? ARGV
7
8
  # =========================================================================== #
8
9
  module Bioroebe
9
10
 
10
11
  require 'bioroebe/toplevel_methods/e.rb'
11
12
 
13
+ # ========================================================================= #
14
+ # === Bioroebe.plain_palindrome
15
+ #
16
+ # This method is simply than Bioroebe.is_palindrome?. It will simply
17
+ # check for the current sequence.
18
+ #
19
+ # Usage example:
20
+ #
21
+ # Bioroebe.plain_palindrome('OTTO') # => true
22
+ # Bioroebe.plain_palindrome('Saippuakivikauppias') # => true
23
+ #
24
+ # ========================================================================= #
25
+ def self.plain_palindrome(i)
26
+ if i.is_a? Array
27
+ i = i.join(' ').strip
28
+ end
29
+ i = i.dup.downcase
30
+ if i.size.even?
31
+ first_half = i[0 .. (i.size / 2 - 1)]
32
+ second_half = i[(i.size / 2) .. -1]
33
+ return (first_half == second_half.reverse)
34
+ else # This is for odd numbers.
35
+ first_half = i[0 .. (i.size / 2 - 1)]
36
+ second_half = i[(i.size / 2 + 1) .. -1]
37
+ return (first_half == second_half.reverse)
38
+ end
39
+ end
40
+
41
+ # ========================================================================= #
42
+ # === Bioroebe.is_palindrome?
43
+ #
44
+ # This method will return true if the target sequence is a palindrome,
45
+ # and false otherwise.
46
+ #
47
+ # When will a sequence be considered to be a "palindrome"?
48
+ #
49
+ # Firstly, it must have an even number of components. If it has an odd
50
+ # number then it can never be a Palindrome, by definition alone.
51
+ #
52
+ # So, "GATC" is a palindrome, but "GATCC" can never be. (GATC is a
53
+ # palindrome because the reverse of GATC will bind to itself again.)
54
+ #
55
+ # Usage examples:
56
+ #
57
+ # Bioroebe.is_palindrome? 'GAATTC' # => true
58
+ # Bioroebe.is_palindrome? 'GAATTCCC' # => false
59
+ #
60
+ # ========================================================================= #
61
+ def self.is_palindrome?(i)
62
+ require 'bioroebe/toplevel_methods/nucleotides.rb'
63
+ if i.is_a? Array
64
+ i = i.first
65
+ end
66
+ hash = ::Bioroebe.partner_nucleotide_hash
67
+ return_value = false
68
+ if i
69
+ if i.to_s.size.odd? # Then it can never be a Palindrome.
70
+ else # Ok, it may be a palindrome here.
71
+ first_half = i[0 .. (i.size / 2)-1]
72
+ _ = ''.dup
73
+ first_half.chars.reverse.each {|char|
74
+ _ << hash[char] if hash.has_key? char
75
+ }
76
+ if (first_half + _) == i # Compare it to the original input.
77
+ return_value = true
78
+ end
79
+ end
80
+ return return_value
81
+ else
82
+ :invalid_input
83
+ end
84
+ end; self.instance_eval { alias is_this_sequence_a_palindrome? is_palindrome? } # === Bioroebe.is_this_sequence_a_palindrome?
85
+
12
86
  # ========================================================================= #
13
87
  # === Bioroebe.return_every_substring_from_this_sequence
14
88
  # ========================================================================= #
@@ -67,56 +141,10 @@ module Bioroebe
67
141
  return array_containing_starting_index_and_length_of_reverse_palindromes
68
142
  end
69
143
 
70
- # ========================================================================= #
71
- # === Bioroebe.is_palindrome?
72
- #
73
- # This method will return true if the target sequence is a palindrome,
74
- # and false otherwise.
75
- #
76
- # When will a sequence be considered to be a "palindrome"?
77
- #
78
- # Firstly, it must have an even number of components. If it has an odd
79
- # number then it can never be a Palindrome, by definition alone.
80
- #
81
- # So, "GATC" is a palindrome, but "GATCC" can never be. (GATC is a
82
- # palindrome because the reverse of GATC will bind to itself again.)
83
- #
84
- # Usage examples:
85
- #
86
- # Bioroebe.is_palindrome? 'GAATTC' # => true
87
- # Bioroebe.is_palindrome? 'GAATTCCC' # => false
88
- #
89
- # ========================================================================= #
90
- def self.is_palindrome?(i)
91
- require 'bioroebe/toplevel_methods/nucleotides.rb'
92
- if i.is_a? Array
93
- i = i.first
94
- end
95
- hash = ::Bioroebe.partner_nucleotide_hash
96
- return_value = false
97
- if i
98
- if i.to_s.size.odd? # Then it can never be a Palindrome.
99
- else # Ok, it may be a palindrome here.
100
- first_half = i[0 .. (i.size / 2)-1]
101
- _ = ''.dup
102
- first_half.chars.reverse.each {|char|
103
- _ << hash[char] if hash.has_key? char
104
- }
105
- if (first_half + _) == i # Compare it to the original input.
106
- return_value = true
107
- end
108
- end
109
- return return_value
110
- else
111
- :invalid_input
112
- end
113
- end; self.instance_eval { alias is_this_sequence_a_palindrome? is_palindrome? } # === Bioroebe.is_this_sequence_a_palindrome?
114
-
115
144
  end
116
145
 
117
146
  if __FILE__ == $PROGRAM_NAME
118
- pp Bioroebe.every_reverse_palindrome_in_this_string(ARGV)
119
- exit
147
+ pp Bioroebe.every_reverse_palindrome_in_this_string(ARGV)
120
148
  if ARGV.empty?
121
149
  p 'GAATTC: '+Bioroebe.is_palindrome?('GAATTC').to_s # => true
122
150
  p 'GAATTCCC: '+Bioroebe.is_palindrome?('GAATTCCC').to_s # => false
@@ -131,7 +131,7 @@ module Taxonomy # === Bioroebe::Taxonomy
131
131
  else # Safeguard here.
132
132
  if at_home?
133
133
  if be_verbose
134
- this_dir = '/home/Temp/' # Hardcoded.
134
+ this_dir = temp_dir?
135
135
  e "The directory at #{sdir(this_dir)} does not "\
136
136
  "exist, thus trying to"
137
137
  e 'use '+sdir(this_dir)+' instead.'
@@ -141,8 +141,8 @@ module Taxonomy # === Bioroebe::Taxonomy
141
141
  end
142
142
  end
143
143
  if be_verbose
144
- e 'Now trying to change to the base directory at '+
145
- ::Bioroebe.sdir(this_dir)+'.'
144
+ e "Now trying to change to the base directory at "\
145
+ "#{::Bioroebe.sdir(this_dir)}."
146
146
  end
147
147
  cd this_dir
148
148
  e N+'We will next attempt to download the file `'+
@@ -11,6 +11,11 @@ module Bioroebe
11
11
  # === Bioroebe.to_camelcase
12
12
  #
13
13
  # Convert the given String (the input) into a camelcased variant.
14
+ #
15
+ # Usage example:
16
+ #
17
+ # Bioroebe.to_camelcase('foo_bar') # => "FooBar"
18
+ #
14
19
  # ========================================================================= #
15
20
  def self.to_camelcase(i)
16
21
  if i.is_a? Array
@@ -35,11 +35,6 @@ class AlignOpenReadingFrames < ::Bioroebe::CommandlineApplication # === Bioroebe
35
35
  require 'bioroebe/regexes/regexes.rb'
36
36
  require 'bioroebe/codons/codons.rb'
37
37
 
38
- # ========================================================================= #
39
- # === NAMESPACE
40
- # ========================================================================= #
41
- NAMESPACE = inspect
42
-
43
38
  # ========================================================================= #
44
39
  # === START_CODON
45
40
  # ========================================================================= #
@@ -67,10 +62,7 @@ class AlignOpenReadingFrames < ::Bioroebe::CommandlineApplication # === Bioroebe
67
62
  # ========================================================================= #
68
63
  def reset
69
64
  super()
70
- # ======================================================================= #
71
- # === @namespace
72
- # ======================================================================= #
73
- @namespace = NAMESPACE
65
+ infer_the_namespace
74
66
  end
75
67
 
76
68
  # ========================================================================= #
@@ -19,11 +19,6 @@ module Bioroebe
19
19
 
20
20
  class CheckForMismatches < ::Bioroebe::CommandlineApplication # === Bioroebe::CheckForMismatches
21
21
 
22
- # ========================================================================= #
23
- # === NAMESPACE
24
- # ========================================================================= #
25
- NAMESPACE = inspect
26
-
27
22
  # ========================================================================= #
28
23
  # === COLOUR_TO_BE_USED_FOR_A_MISMATCH
29
24
  #
@@ -49,10 +44,7 @@ class CheckForMismatches < ::Bioroebe::CommandlineApplication # === Bioroebe::Ch
49
44
  # ========================================================================= #
50
45
  def reset
51
46
  super()
52
- # ======================================================================= #
53
- # === @namespace
54
- # ======================================================================= #
55
- @namespace = NAMESPACE
47
+ infer_the_namespace
56
48
  # ======================================================================= #
57
49
  # === @first_sequence
58
50
  # ======================================================================= #