bioroebe 0.10.80 → 0.12.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
  # ======================================================================= #