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
@@ -23,6 +23,7 @@ module Bioroebe
23
23
  #
24
24
  # Bioroebe.return_fasta_subsection_of_this_file("foobar.fa")
25
25
  # Bioroebe.return_fasta_subsection_of_this_file("foobar.fa", :keep_it_flat)
26
+ # Bioroebe.return_fasta_subsection_of_this_file("/home/Temp/bioroebe/fasta/alu_elements.fasta", :keep_it_flat)
26
27
  #
27
28
  # ========================================================================= #
28
29
  def self.return_fasta_subsection_of_this_file(
@@ -42,6 +43,8 @@ module Bioroebe
42
43
  end
43
44
  if File.exist? i
44
45
  dataset = File.readlines(i)
46
+ pp 'DEBUG'
47
+ pp dataset
45
48
  inner_array = []
46
49
  size = dataset.size
47
50
  dataset.each_with_index {|line, index|
@@ -55,16 +58,22 @@ module Bioroebe
55
58
  end
56
59
  inner_array.prepend(line)
57
60
  else
61
+ # ================================================================= #
58
62
  # This will be a FASTA body section.
63
+ # ================================================================= #
59
64
  case extra_options
60
- when :keep_body_together # the default
65
+ # ================================================================= #
66
+ # === :keep_body_together
67
+ # ================================================================= #
68
+ when :keep_body_together, # the default
69
+ :keep_it_flat
61
70
  inner_array << line
62
71
  else
63
72
  # =============================================================== #
64
73
  # Else we have to append it.
65
74
  # =============================================================== #
66
75
  previous_line = inner_array.last
67
- if previous_line.start_with? '>'
76
+ if previous_line and previous_line.start_with?('>')
68
77
  inner_array << line
69
78
  else
70
79
  inner_array.last.strip!
@@ -86,17 +86,6 @@ class ShowFastaHeaders < Bioroebe::CommandlineApplication # === Biroebe::ShowFas
86
86
  @input
87
87
  end
88
88
 
89
- # ========================================================================= #
90
- # === report_this_header_from_that_file
91
- # ========================================================================= #
92
- def report_this_header_from_that_file(header, file)
93
- if @be_verbose
94
- erev "The file at #{sfile(file)}#{rev} has the following FASTA header:"
95
- e
96
- end
97
- e " #{simp(header)}"
98
- end
99
-
100
89
  # ========================================================================= #
101
90
  # === input_without_extension
102
91
  # ========================================================================= #
@@ -116,13 +105,39 @@ class ShowFastaHeaders < Bioroebe::CommandlineApplication # === Biroebe::ShowFas
116
105
  }
117
106
  end
118
107
 
108
+ # ========================================================================= #
109
+ # === report_this_header_from_that_file
110
+ # ========================================================================= #
111
+ def report_this_header_from_that_file(header, file)
112
+ if @be_verbose
113
+ erev "The file at #{sfile(file)}#{rev} has the following FASTA header:"
114
+ e
115
+ end
116
+ e " #{simp(header)}"
117
+ if header.include? '|'
118
+ splitted = header.split('|')
119
+ if splitted.size > 2
120
+ assumed_name_of_the_organism = splitted[2].strip
121
+ if assumed_name_of_the_organism.include? 'OS='
122
+ assumed_name_of_the_organism = assumed_name_of_the_organism.scan(/ OS=(.+)/).flatten
123
+ assumed_name_of_the_organism = assumed_name_of_the_organism.first
124
+ if assumed_name_of_the_organism.include? ' ('
125
+ assumed_name_of_the_organism = assumed_name_of_the_organism.split(' (').first
126
+ end
127
+ end
128
+ erev 'The organism may be: '+
129
+ steelblue(assumed_name_of_the_organism)+rev
130
+ end
131
+ end
132
+ end
133
+
119
134
  # ========================================================================= #
120
135
  # === run (run tag)
121
136
  # ========================================================================= #
122
137
  def run
123
138
  files = Dir[input?]
124
139
  if files.empty?
125
- opnn; e 'No files could be found for '+input?+'.'
140
+ opnn; e "No files could be found for #{input?}."
126
141
  else
127
142
  report_these_files(files)
128
143
  end
@@ -29,11 +29,6 @@ class SimplifyFastaHeader < ::Bioroebe::CommandlineApplication # === Bioroebe::S
29
29
 
30
30
  require 'bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb'
31
31
 
32
- # ========================================================================= #
33
- # === NAMESPACE
34
- # ========================================================================= #
35
- NAMESPACE = inspect
36
-
37
32
  # ========================================================================= #
38
33
  # === initialize
39
34
  # ========================================================================= #
@@ -53,6 +48,7 @@ class SimplifyFastaHeader < ::Bioroebe::CommandlineApplication # === Bioroebe::S
53
48
  # ========================================================================= #
54
49
  def reset
55
50
  super()
51
+ infer_the_namespace
56
52
  end
57
53
 
58
54
  # ========================================================================= #
@@ -8,11 +8,6 @@ module Bioroebe
8
8
 
9
9
  class SplitThisFastaFileIntoChromosomes < ::Bioroebe::CommandlineApplication # === Bioroebe::SplitThisFastaFileIntoChromosomes
10
10
 
11
- # ========================================================================= #
12
- # === NAMESPACE
13
- # ========================================================================= #
14
- NAMESPACE = inspect
15
-
16
11
  # ========================================================================= #
17
12
  # === ALLOWED_CHARACTERS
18
13
  #
@@ -0,0 +1,4 @@
1
+ This directory was created on the 12.07.2022.
2
+
3
+ The idea is that we can make use of class Bioroebe::Genome
4
+ to represent a genome.
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Bioroebe::Genome
6
+ #
7
+ # This class should be able to represent a genome.
8
+ #
9
+ # Usage example:
10
+ #
11
+ # Bioroebe::Genome.new(ARGV)
12
+ #
13
+ # =========================================================================== #
14
+ # require 'bioroebe/genome/genome.rb'
15
+ # =========================================================================== #
16
+ require 'bioroebe/base/commandline_application/commandline_application.rb'
17
+
18
+ module Bioroebe
19
+
20
+ class Genome < ::Bioroebe::CommandlineApplication # === Bioroebe::Genome
21
+
22
+ require 'bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb'
23
+
24
+ # ========================================================================= #
25
+ # === initialize
26
+ # ========================================================================= #
27
+ def initialize(
28
+ commandline_arguments = nil,
29
+ run_already = true
30
+ )
31
+ reset
32
+ set_commandline_arguments(
33
+ commandline_arguments
34
+ )
35
+ run if run_already
36
+ end
37
+
38
+ # ========================================================================= #
39
+ # === reset (reset tag)
40
+ # ========================================================================= #
41
+ def reset
42
+ super()
43
+ infer_the_namespace
44
+ # ======================================================================= #
45
+ # All CDS shall be denoted here.
46
+ # ======================================================================= #
47
+ @internal_hash[:CDS] = []
48
+ end
49
+
50
+ # ========================================================================= #
51
+ # === add_the_lac_operon
52
+ #
53
+ # If glucose is present and lactose is absent then no transcription
54
+ # of the lac operon occurs.
55
+ # ========================================================================= #
56
+ def add_the_lac_operon
57
+ @internal_hash[:lac_operon] = true
58
+ end
59
+
60
+ # ========================================================================= #
61
+ # === is_the_lac_operon_transcribable?
62
+ # ========================================================================= #
63
+ def is_the_lac_operon_transcribable?
64
+ if !lactose_is_present?
65
+ return false
66
+ elsif glucose_is_present? and lactose_is_present?
67
+ return false
68
+ elsif glucose_is_present?
69
+ return true
70
+ else
71
+ return false
72
+ end
73
+ end
74
+
75
+ # ========================================================================= #
76
+ # === run (run tag)
77
+ # ========================================================================= #
78
+ def run
79
+ # add_the_lac_operon
80
+ first = first?
81
+ if first and File.exist?(first)
82
+ _ = Bioroebe.parse_fasta(first)
83
+ @internal_hash[:full_sequence] = _.sequence?
84
+ annotate(
85
+ [
86
+ [2931, 3917]
87
+ ]
88
+ ) # This is for the phage.
89
+ pp self
90
+ pp all_genes?
91
+ end
92
+ end
93
+
94
+ # ========================================================================= #
95
+ # === all_genes?
96
+ #
97
+ # This method will return all genes.
98
+ # ========================================================================= #
99
+ def all_genes?
100
+ result = []
101
+ _ = @internal_hash[:full_sequence]
102
+ @internal_hash[:CDS].map {|start_nucleotide, end_nucleotide|
103
+ result << _[start_nucleotide - 1, (end_nucleotide - start_nucleotide) + 1]
104
+ }
105
+ return result
106
+ end
107
+
108
+ # ========================================================================= #
109
+ # === annotate
110
+ #
111
+ # Annotate some genes here, or rather CDS.
112
+ # ========================================================================= #
113
+ def annotate(array)
114
+ array.each {|this_array|
115
+ @internal_hash[:CDS] << [this_array.first, this_array.last]
116
+ }
117
+ end
118
+
119
+ # ========================================================================= #
120
+ # === Bioroebe::Genome[]
121
+ # ========================================================================= #
122
+ def self.[](i = ARGV)
123
+ new(i)
124
+ end
125
+
126
+ end; end
127
+
128
+ if __FILE__ == $PROGRAM_NAME
129
+ Bioroebe::Genome.new(ARGV)
130
+ end # bioroebe_genome
@@ -28,11 +28,6 @@ class GenomePattern < ::Bioroebe::CommandlineApplication # === Bioroebe::GenomeP
28
28
 
29
29
  require 'bioroebe/gene/gene.rb'
30
30
 
31
- # ========================================================================= #
32
- # === NAMESPACE
33
- # ========================================================================= #
34
- NAMESPACE = inspect
35
-
36
31
  # ========================================================================= #
37
32
  # === initialize
38
33
  # ========================================================================= #
@@ -50,15 +45,14 @@ class GenomePattern < ::Bioroebe::CommandlineApplication # === Bioroebe::GenomeP
50
45
  # ========================================================================= #
51
46
  def reset
52
47
  super()
53
- # ======================================================================= #
54
- # === @namespace
55
- # ======================================================================= #
56
- @namespace = NAMESPACE
48
+ infer_the_namespace
57
49
  # ======================================================================= #
58
50
  # === @hash
59
51
  # ======================================================================= #
60
52
  @hash = {}
53
+ # === :array_genes
61
54
  @hash[:array_genes] = []
55
+ # === :be_verbose
62
56
  @hash[:be_verbose] = true # If true then we tell the user what we will do.
63
57
  end
64
58
 
@@ -0,0 +1 @@
1
+ gtk3
@@ -17,47 +17,40 @@ module GUI
17
17
 
18
18
  module Gtk
19
19
 
20
- class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
20
+ class Alignment < ::Gtk::BaseModuleBox # === Bioroebe::GUI::Gtk::Alignment
21
21
 
22
- require 'bioroebe/sequence/alignment.rb'
22
+ require 'bioroebe/gui/shared_code/alignment/alignment_module.rb'
23
+ include Bioroebe::GUI::AlignmentModule
23
24
 
24
25
  require 'bioroebe/constants/GUIs.rb'
25
26
  include ::Bioroebe::GUI
26
27
 
27
- require 'gtk_paradise/requires/require_the_base_module.rb'
28
- include ::Gtk::BaseModule
29
-
30
28
  # ========================================================================= #
31
- # === NAMESPACE
29
+ # === TOOLTIP_HINT_FOR_THE_DO_ANALYSE_BUTTON
32
30
  # ========================================================================= #
33
- NAMESPACE = inspect
31
+ TOOLTIP_HINT_FOR_THE_DO_ANALYSE_BUTTON =
32
+ "Click on this button to analyse the given sequence. Make sure "\
33
+ "to use <b>newlines</b> in order to split the sequence at hand."
34
34
 
35
35
  # ========================================================================= #
36
- # === TITLE
37
- # ========================================================================= #
38
- TITLE = 'Alignment'
39
-
40
- # ========================================================================= #
41
- # === WIDTH
42
- # ========================================================================= #
43
- WIDTH = '60%'
44
-
45
- # ========================================================================= #
46
- # === HEIGHT
47
- # ========================================================================= #
48
- HEIGHT = '50%'
49
-
50
- # ========================================================================= #
51
- # === USE_THIS_FONT
36
+ # === TOOLTIP_HINT_FOR_THE_ENTRY_CONSENSUS_SEQUENCE
37
+ #
38
+ # This is the base-tooltip for the entry that retains our consensus
39
+ # sequence.
52
40
  # ========================================================================= #
53
- USE_THIS_FONT = :dejavu_condensed_22
41
+ TOOLTIP_HINT_FOR_THE_ENTRY_CONSENSUS_SEQUENCE =
42
+ 'This entry will contain the <b>consensus sequence</b>, '\
43
+ 'derived from the above sequences.'
54
44
 
55
45
  # ========================================================================= #
56
- # === FONT_FOR_THE_ENTRIES
57
- #
58
- # The entries must use a mono-spaced font.
46
+ # === TOOLTIP_HINT_FOR_THE_ENTRY_CONSENSUS_SEQUENCE_TRAILING_INFORMATION
59
47
  # ========================================================================= #
60
- FONT_FOR_THE_ENTRIES = :hack_20
48
+ TOOLTIP_HINT_FOR_THE_ENTRY_CONSENSUS_SEQUENCE_TRAILING_INFORMATION =
49
+ "\n\nTake note that in the event that there is <b>an even number of "\
50
+ "input sequences</b>, the entries defined before will take precedence. "\
51
+ "So, for instance, if you have four sequences in total, where two are "\
52
+ "ATTA and the next two are ATTT, then the consensus sequence is "\
53
+ "currently assumed to be <b>ATTA</b>."
61
54
 
62
55
  # ========================================================================= #
63
56
  # === initialize
@@ -79,18 +72,16 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
79
72
  # ========================================================================= #
80
73
  def reset
81
74
  reset_the_internal_variables
75
+ infer_the_namespace
82
76
  # ======================================================================= #
83
77
  # === @configuration
84
78
  # ======================================================================= #
85
- @configuration = [true, __dir__, NAMESPACE]
79
+ @configuration = [true, __dir__, namespace?]
86
80
  title_width_height_font(TITLE, WIDTH, HEIGHT, USE_THIS_FONT)
87
81
  use_gtk_paradise_project_css_file
88
82
  append_project_CSS_file
89
83
  infer_the_size_automatically
90
- # ======================================================================= #
91
- # === @alignment
92
- # ======================================================================= #
93
- @alignment = Bioroebe::Alignment.new(nil, :do_not_run_yet)
84
+ reset_the_alignment_object
94
85
  end
95
86
 
96
87
  # ========================================================================= #
@@ -114,10 +105,10 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
114
105
  # ======================================================================= #
115
106
  # === @scrolled_window
116
107
  # ======================================================================= #
117
- @scrolled_window = gtk_scrolled_window(@text_view)
108
+ @scrolled_window = create_scrolled_window(@text_view)
118
109
  @scrolled_window.width_height(300, 400)
119
- @scrolled_window.css_class('pad4px')
120
- @scrolled_window.bblack1
110
+ @scrolled_window.pad4px
111
+ @scrolled_window.bblack2
121
112
  end
122
113
 
123
114
  # ========================================================================= #
@@ -127,39 +118,13 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
127
118
  # ======================================================================= #
128
119
  # === @text_buffer
129
120
  # ======================================================================= #
130
- @text_buffer = gtk_text_buffer
121
+ @text_buffer = create_text_buffer
131
122
  # ======================================================================= #
132
123
  # === @text_view
133
124
  # ======================================================================= #
134
- @text_view = gtk_text_view(@text_buffer)
125
+ @text_view = create_text_view(@text_buffer)
135
126
  end
136
127
 
137
- # ========================================================================= #
138
- # === text_view_widget?
139
- # ========================================================================= #
140
- def text_view_widget?
141
- @text_view
142
- end
143
-
144
- # ========================================================================= #
145
- # === do_analyse
146
- # ========================================================================= #
147
- def do_analyse(
148
- _ = @text_buffer.text?
149
- )
150
- if _ and !_.empty?
151
- _.strip!
152
- @alignment.use_this_as_input(_)
153
- consensus_sequence = @alignment.consensus_sequence?
154
- @entry_consensus_sequence.set_text(consensus_sequence)
155
- else
156
- pop_up_widget(
157
- over_this_widget: text_view_widget?,
158
- text: 'Please assign a sequence first.'
159
- )
160
- end
161
- end; alias do_analyse_again do_analyse # === do_analyse_again
162
-
163
128
  # ========================================================================= #
164
129
  # === create_the_entries (entry tag, entries tag)
165
130
  # ========================================================================= #
@@ -173,49 +138,18 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
173
138
  @entry_consensus_sequence.use_this_font = FONT_FOR_THE_ENTRIES
174
139
  @entry_consensus_sequence.yellow_background
175
140
  update_the_hint_for_the_entry_consequences_sequence(
176
- 'This entry will contain the consensus sequence, '\
177
- 'derived from the above sequences.'
141
+ TOOLTIP_HINT_FOR_THE_ENTRY_CONSENSUS_SEQUENCE+
142
+ TOOLTIP_HINT_FOR_THE_ENTRY_CONSENSUS_SEQUENCE_TRAILING_INFORMATION
178
143
  )
179
144
  # ======================================================================= #
180
145
  # === @entry_numbers
181
146
  # ======================================================================= #
182
- @entry_numbers = gtk_entry
147
+ @entry_numbers = create_entry
148
+ @entry_numbers.bblack1
183
149
  @entry_numbers.use_this_font = FONT_FOR_THE_ENTRIES
184
150
  @entry_numbers.hint = 'This area may indicate the numbers for '\
185
151
  'the alignment shown right above.'
186
- end
187
-
188
- # ========================================================================= #
189
- # === realign_the_numbers_showing_how_long_the_consensus_sequence_is
190
- # ========================================================================= #
191
- def realign_the_numbers_showing_how_long_the_consensus_sequence_is
192
- @entry_numbers.center
193
- n_characters = @entry_consensus_sequence.text?.size
194
- @entry_numbers.set_text(return_fill_up_to(n_characters))
195
- end
196
-
197
- # ========================================================================= #
198
- # === return_fill_up_to
199
- # ========================================================================= #
200
- def return_fill_up_to(i)
201
- _ = ''.dup
202
- i.times {|counter|
203
- counter = (counter+1) % 10
204
- _ << counter.to_s
205
- }
206
- return _
207
- end
208
-
209
- # ========================================================================= #
210
- # === connect_skeleton (connect tag)
211
- # ========================================================================= #
212
- def connect_skeleton
213
- abort_on_exception
214
- minimal(return_the_first_row, 5)
215
- minimal(@scrolled_window, 2)
216
- minimal(@button_do_analyse, 2)
217
- minimal(@entry_consensus_sequence, 2)
218
- minimal(@entry_numbers, 2)
152
+ @entry_numbers.very_light_yellow_background
219
153
  end
220
154
 
221
155
  # ========================================================================= #
@@ -223,12 +157,12 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
223
157
  # ========================================================================= #
224
158
  def return_the_first_row
225
159
  _ = gtk_hbox
226
- top_label = gtk_left_aligned_label(
227
- 'Input the sequences that you wish to compare to one another'
160
+ top_label = left_aligned_label(
161
+ TEXT_INPUT_THE_SEQUENCES
228
162
  )
229
163
  top_label.center
230
164
  _.minimal(top_label)
231
- event_box = gtk_event_box(
165
+ event_box = event_box(
232
166
  image_document_open
233
167
  )
234
168
  event_box.hint = 'Click on this icon to open a local file.'
@@ -249,22 +183,6 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
249
183
  create_the_scrolled_window
250
184
  end
251
185
 
252
- # ========================================================================= #
253
- # === update_the_hint_for_the_entry_consequences_sequence
254
- # ========================================================================= #
255
- def update_the_hint_for_the_entry_consequences_sequence(
256
- i = ''
257
- )
258
- @entry_consensus_sequence.hint = i
259
- end
260
-
261
- # ========================================================================= #
262
- # === run (run tag)
263
- # ========================================================================= #
264
- def run
265
- create_skeleton_then_connect_skeleton
266
- end
267
-
268
186
  # ========================================================================= #
269
187
  # === create_the_buttons (buttons tag)
270
188
  # ========================================================================= #
@@ -273,11 +191,10 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
273
191
  # === @button_do_analyse
274
192
  # ======================================================================= #
275
193
  @button_do_analyse = bold_button('_Do analyse')
194
+ @button_do_analyse.clear_background
276
195
  @button_do_analyse.bblack1
277
196
  @button_do_analyse.on_hover(:lightblue)
278
- @button_do_analyse.hint = 'Click on this button to '\
279
- 'analyse the given sequence. Make sure to use '\
280
- 'newlines in order to split the sequence at hand.'
197
+ @button_do_analyse.hint = TOOLTIP_HINT_FOR_THE_DO_ANALYSE_BUTTON
281
198
  @button_do_analyse.on_clicked {
282
199
  do_analyse
283
200
  realign_the_numbers_showing_how_long_the_consensus_sequence_is
@@ -288,26 +205,13 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
288
205
  (@text_buffer.text?.count("\n")+1).to_s+" sequences.\n\nNote "\
289
206
  "that only the minimal length will be compared - "\
290
207
  "superfluous nucleotides will NOT be considered unless "\
291
- "they can be aligned to other sequences."
208
+ "they can be aligned to other sequences."+
209
+ TOOLTIP_HINT_FOR_THE_ENTRY_CONSENSUS_SEQUENCE_TRAILING_INFORMATION
292
210
  ).squeeze(' ')
293
211
  )
294
212
  }
295
213
  end
296
214
 
297
- # ========================================================================= #
298
- # === Bioroebe::GUI::Gtk::Alignment.run
299
- # ========================================================================= #
300
- def self.run(
301
- i = ARGV
302
- )
303
- require 'gtk_paradise/run'
304
- _ = ::Bioroebe::GUI::Gtk::Alignment.new(i)
305
- r = ::Gtk.run
306
- r << _
307
- r.automatic_size_then_automatic_title
308
- r.top_left_then_run
309
- end
310
-
311
215
  # ========================================================================= #
312
216
  # === do_open_and_assign_a_local_file
313
217
  # ========================================================================= #
@@ -330,6 +234,71 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
330
234
  end
331
235
  end
332
236
 
237
+ # ========================================================================= #
238
+ # === connect_skeleton (connect tag)
239
+ # ========================================================================= #
240
+ def connect_skeleton
241
+ abort_on_exception
242
+ grid = default_grid
243
+ grid.full_row(return_the_first_row)
244
+ grid.full_row(@scrolled_window)
245
+ grid.full_row(@entry_consensus_sequence)
246
+ grid.full_row(@entry_numbers)
247
+ grid.full_row(@button_do_analyse)
248
+ grid.hcenter
249
+ maximal(grid)
250
+ end
251
+
252
+ # ========================================================================= #
253
+ # === do_analyse
254
+ #
255
+ # This method will be called whenever the user hits the "Do analyse"
256
+ # button.
257
+ # ========================================================================= #
258
+ def do_analyse(
259
+ _ = @text_buffer.text?
260
+ )
261
+ if _ and !_.empty?
262
+ _.strip!
263
+ @alignment.use_this_as_input(_)
264
+ consensus_sequence = return_the_consensus_sequence
265
+ @entry_consensus_sequence.set_text(consensus_sequence)
266
+ else
267
+ pop_up_widget(
268
+ over_this_widget: text_view_widget?,
269
+ text: 'Please assign a sequence first.'
270
+ )
271
+ end
272
+ end; alias do_analyse_again do_analyse # === do_analyse_again
273
+
274
+ # ========================================================================= #
275
+ # === update_the_hint_for_the_entry_consequences_sequence
276
+ # ========================================================================= #
277
+ def update_the_hint_for_the_entry_consequences_sequence(
278
+ i = ''
279
+ )
280
+ @entry_consensus_sequence.hint = i
281
+ end
282
+
283
+ # ========================================================================= #
284
+ # === run (run tag)
285
+ # ========================================================================= #
286
+ def run
287
+ super()
288
+ end
289
+
290
+ # ========================================================================= #
291
+ # === Bioroebe::GUI::Gtk::Alignment.run
292
+ # ========================================================================= #
293
+ def self.run(
294
+ i = ARGV
295
+ )
296
+ require 'gtk_paradise/run'
297
+ r = ::Gtk.run
298
+ r << ::Bioroebe::GUI::Gtk::Alignment.new(i)
299
+ r.automatic_top_left_then_run
300
+ end
301
+
333
302
  end; end; end; end
334
303
 
335
304
  if __FILE__ == $PROGRAM_NAME