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
@@ -8,6 +8,8 @@
8
8
  #
9
9
  # https://raw.githubusercontent.com/labsquare/fastQt/master/screenshot.gif
10
10
  #
11
+ # The widget supports loading .fasta files from the commandline - simply
12
+ # pass the file location (local path) to the widget as argument.
11
13
  # =========================================================================== #
12
14
  # require 'bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb'
13
15
  # Bioroebe::GUI::Gtk::FastaTableWidget.run
@@ -27,11 +29,6 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
27
29
  require 'gtk_paradise/requires/require_the_base_module.rb'
28
30
  include ::Gtk::BaseModule
29
31
 
30
- # ========================================================================= #
31
- # === NAMESPACE
32
- # ========================================================================= #
33
- NAMESPACE = inspect
34
-
35
32
  # ========================================================================= #
36
33
  # === TITLE
37
34
  # ========================================================================= #
@@ -81,16 +78,21 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
81
78
  # === reset (reset tag)
82
79
  # ========================================================================= #
83
80
  def reset
81
+ infer_the_namespace
84
82
  reset_the_internal_variables
85
83
  # ======================================================================= #
86
84
  # === @configuration
87
85
  # ======================================================================= #
88
- @configuration = [true, __dir__, NAMESPACE]
86
+ @configuration = [true, __dir__, namespace?]
89
87
  title_width_height_font(TITLE, WIDTH, HEIGHT, main_font?)
90
88
  # ======================================================================= #
91
89
  # === @use_this_directory
92
90
  # ======================================================================= #
93
91
  @use_this_directory = ::Bioroebe.log_directory?+'fasta/'
92
+ # ======================================================================= #
93
+ # === @all_fasta_files
94
+ # ======================================================================= #
95
+ @all_fasta_files = Dir[@use_this_directory+'*.fasta']
94
96
  handle_CSS_rules
95
97
  infer_the_size_automatically
96
98
  end
@@ -109,6 +111,13 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
109
111
  0
110
112
  end
111
113
 
114
+ # ========================================================================= #
115
+ # === list_store?
116
+ # ========================================================================= #
117
+ def list_store?
118
+ @list_store
119
+ end; alias liststore? list_store? # === liststore?
120
+
112
121
  # ========================================================================= #
113
122
  # === create_view
114
123
  # ========================================================================= #
@@ -122,6 +131,7 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
122
131
  @view.make_sortable
123
132
  @view.the_headers_can_be_moved
124
133
  @view.enable_search
134
+ @view.deselect_on_right_click_event
125
135
  deselect_the_main_treeview
126
136
  end
127
137
 
@@ -154,7 +164,7 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
154
164
  end
155
165
 
156
166
  # ========================================================================= #
157
- # === handle_CSS_rules
167
+ # === handle_CSS_rules (CSS tag)
158
168
  # ========================================================================= #
159
169
  def handle_CSS_rules
160
170
  use_gtk_paradise_project_css_file
@@ -170,21 +180,10 @@ treeview.view header button {
170
180
  end
171
181
 
172
182
  # ========================================================================= #
173
- # === connect_skeleton (connect tag)
183
+ # === populate_the_list_store_with_the_default_dataset
174
184
  # ========================================================================= #
175
- def connect_skeleton
176
- abort_on_exception
177
- set_border_width(15)
178
- _ = label_widget
179
- _.set_text('FASTA files')
180
- _.left_align
181
- _.fonty(main_font?)
182
- _.make_bold
183
- _.css_class('darkblue')
184
- _.pad4px
185
- all_fasta_files = Dir[@use_this_directory+'*.fasta']
186
-
187
- array = all_fasta_files.map {|path|
185
+ def populate_the_list_store_with_the_default_dataset
186
+ array = @all_fasta_files.map {|path|
188
187
  parse_fasta_object = ::Bioroebe.parse_fasta(path) { :be_quiet }
189
188
  n_nucleotides = parse_fasta_object.n_nucleotides?
190
189
  gc_content = parse_fasta_object.gc_content # Bioroebe.gc_content
@@ -210,20 +209,98 @@ treeview.view header button {
210
209
  }
211
210
 
212
211
  populate_this_list_store_with_that_array4(@list_store, array)
212
+ end
213
+
214
+ # ========================================================================= #
215
+ # === connect_skeleton (connect tag)
216
+ # ========================================================================= #
217
+ def connect_skeleton
218
+ abort_on_exception
219
+ set_border_width(15)
220
+ populate_the_list_store_with_the_default_dataset
213
221
  scrolled_window = gtk_scrolled_window(@view) { :always }
214
222
  scrolled_window.width_height(540, 500)
215
223
  vbox = gtk_vbox
216
224
  vbox.minimal(scrolled_window, 14)
217
225
  add(vbox)
226
+ style_the_label_widget
218
227
  end
219
228
 
220
229
  # ========================================================================= #
221
230
  # === run (run tag)
222
231
  # ========================================================================= #
223
232
  def run
233
+ menu # Must come before the super() call.
224
234
  super()
225
235
  end
226
236
 
237
+ # ========================================================================= #
238
+ # === menu (menu tag)
239
+ # ========================================================================= #
240
+ def menu(
241
+ i = commandline_arguments?
242
+ )
243
+ if i.is_a? Array
244
+ i.each {|entry| menu(entry) }
245
+ else
246
+ # ===================================================================== #
247
+ # Load existing files:
248
+ # ===================================================================== #
249
+ if i and File.exist?(i)
250
+ clear_the_old_dataset
251
+ append_this_fasta_file(i)
252
+ end
253
+ end
254
+ end
255
+
256
+ # ========================================================================= #
257
+ # === append_this_fasta_file
258
+ # ========================================================================= #
259
+ def append_this_fasta_file(i)
260
+ unless @all_fasta_files.include?(i)
261
+ if i.end_with?('.fa','.fasta','.txt','.md')
262
+ @all_fasta_files << i
263
+ end
264
+ end
265
+ end; alias append_this_file append_this_fasta_file # === append_this_file
266
+
267
+ # ========================================================================= #
268
+ # === clear_the_old_dataset
269
+ # ========================================================================= #
270
+ def clear_the_old_dataset
271
+ @all_fasta_files.clear
272
+ end
273
+
274
+ # ========================================================================= #
275
+ # === style_the_label_widget
276
+ # ========================================================================= #
277
+ def style_the_label_widget
278
+ _ = hbox
279
+ label = text('FASTA files')
280
+ label.left_align
281
+ label.fonty(main_font?)
282
+ label.make_bold
283
+ label.css_class('darkblue')
284
+ label.pad4px
285
+ _.minimal label, 10
286
+ event_box = event_box(image_document_open)
287
+ event_box.on_clicked {
288
+ filename = ::Gtk.select_file(@parent_widget) {{ # @parent_widget should be of Gtk::Window class or subclass.
289
+ current_folder: return_pwd,
290
+ show_hidden: true,
291
+ add_these_shortcut_folders: Bioroebe.fasta_dir?
292
+ }}
293
+ if filename and File.exist?(filename)
294
+ append_this_file(filename)
295
+ # @view.clear
296
+ liststore?.clear
297
+ populate_the_list_store_with_the_default_dataset
298
+ end
299
+ }
300
+ _.minimal event_box, 10
301
+ self.label_widget = _
302
+ end
303
+
227
304
  # ========================================================================= #
228
305
  # === Bioroebe::GUI::Gtk::FastaTableWidget.run
229
306
  # ========================================================================= #
@@ -233,9 +310,9 @@ treeview.view header button {
233
310
  require 'gtk_paradise/run'
234
311
  _ = ::Bioroebe::GUI::Gtk::FastaTableWidget.new(i)
235
312
  r = ::Gtk.run
313
+ _.set_parent_widget(_)
236
314
  r << _
237
- r.automatic_size_then_automatic_title
238
- r.top_left_then_run
315
+ r.automatic_top_left_then_run
239
316
  end
240
317
 
241
318
  end; end; end; end
@@ -335,8 +335,7 @@ pp result
335
335
  _ = ::Bioroebe::GUI::Gtk::FormatConverter.new(i)
336
336
  r = ::Gtk.run
337
337
  r << _
338
- r.automatic_size_then_automatic_title
339
- r.top_left_then_run
338
+ r.automatic_top_left_then_run
340
339
  end
341
340
 
342
341
  end; end; end; end
@@ -171,8 +171,7 @@ class Gene < ::Gtk::Box # === Bioroebe::GUI::Gtk::Gene
171
171
  _ = ::Bioroebe::GUI::Gtk::Gene.new(i)
172
172
  r = ::Gtk.run
173
173
  r << _
174
- r.automatic_size_then_automatic_title
175
- r.top_left_then_run
174
+ r.automatic_top_left_then_run
176
175
  end
177
176
 
178
177
  end; end; end; end
@@ -152,30 +152,6 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
152
152
  @entry_on_top
153
153
  end
154
154
 
155
- # ========================================================================= #
156
- # === compare_the_two_sequences
157
- #
158
- # This is the method that will compare the two sequences.
159
- # ========================================================================= #
160
- def compare_the_two_sequences
161
- hamming_distance_object = ::Bioroebe::HammingDistance.new("#{seq1?} #{seq2?}") { :be_quiet }
162
- @entry_n_differences.set_text(
163
- hamming_distance_object.n_differences?.to_s
164
- )
165
- end; alias do_compare compare_the_two_sequences # === do_compare
166
- alias do_calculate_the_differences compare_the_two_sequences # === do_calculate_the_differences
167
-
168
- # ========================================================================= #
169
- # === consider_sanitizing_the_input
170
- # ========================================================================= #
171
- def consider_sanitizing_the_input
172
- # ======================================================================= #
173
- # The following two lines were added as of 07.05.2020.
174
- # ======================================================================= #
175
- @entry_on_top.set_text(@entry_on_top.text.delete('-'))
176
- @entry_on_bottom.set_text(@entry_on_bottom.text.delete('-'))
177
- end
178
-
179
155
  # ========================================================================= #
180
156
  # === create_entries (entries tag, entry tag)
181
157
  # ========================================================================= #
@@ -211,10 +187,10 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
211
187
  # This is ok.
212
188
  when *%w( B D E F H I J K L M N O P Q R S V W X Y Z ) # Otherwise set the old input here.
213
189
  unless event.state.control_mask? # This snippet checks whether a key-combination has been used.
214
- widget.set_text(old_text)
190
+ widget.set_text(old_text.upcase)
215
191
  end
216
192
  end
217
- }
193
+ } if false # disabled as of August 2022.
218
194
  # ======================================================================= #
219
195
  # And keep things upcased here:
220
196
  # ======================================================================= #
@@ -269,10 +245,10 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
269
245
  # ======================================================================= #
270
246
  # === The top box
271
247
  # ======================================================================= #
272
- @top_box = gtk_vbox
248
+ @top_box = vbox
273
249
 
274
250
  @label_on_top = bold_label(USE_THIS_TITLE)
275
- @label_on_top.fancy_tooltips =
251
+ @label_on_top.hint =
276
252
  "Only <b>valid nucleotides</b> (A, T, C, G, U) \n"\
277
253
  "can be accepted as input."
278
254
  # ======================================================================= #
@@ -334,6 +310,44 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
334
310
  show_all
335
311
  end
336
312
 
313
+ # ========================================================================= #
314
+ # === compare_the_two_sequences
315
+ #
316
+ # This is the method that will compare the two sequences.
317
+ # ========================================================================= #
318
+ def compare_the_two_sequences
319
+ do_upcase_all_entries
320
+ hamming_distance_object = ::Bioroebe::HammingDistance.new("#{seq1?} #{seq2?}") { :be_quiet }
321
+ @entry_n_differences.set_text(
322
+ hamming_distance_object.n_differences?.to_s
323
+ )
324
+ end; alias do_compare compare_the_two_sequences # === do_compare
325
+ alias do_calculate_the_differences compare_the_two_sequences # === do_calculate_the_differences
326
+
327
+ # ========================================================================= #
328
+ # === do_upcase_all_entries
329
+ # ========================================================================= #
330
+ def do_upcase_all_entries
331
+ [
332
+ @entry_on_top,
333
+ @entry_on_bottom
334
+ ].each {|entry|
335
+ entry.do_upcase
336
+ }
337
+ end
338
+
339
+ # ========================================================================= #
340
+ # === consider_sanitizing_the_input
341
+ # ========================================================================= #
342
+ def consider_sanitizing_the_input
343
+ # ======================================================================= #
344
+ # The following two lines were added as of 07.05.2020.
345
+ # ======================================================================= #
346
+ @entry_on_top.set_text(@entry_on_top.text.delete('-'))
347
+ @entry_on_bottom.set_text(@entry_on_bottom.text.delete('-'))
348
+ do_upcase_all_entries
349
+ end
350
+
337
351
  # ========================================================================= #
338
352
  # === run (run tag)
339
353
  # ========================================================================= #
@@ -359,8 +373,7 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
359
373
  r = ::Gtk.run
360
374
  r << _
361
375
  r.modify_background(:normal, :mintcream)
362
- r.automatic_size_then_automatic_title
363
- r.top_left_then_run
376
+ r.automatic_top_left_then_run
364
377
  end; self.instance_eval { alias run_gtk3_widget run } # === Bioroebe::GUI::Gtk::HammingDistance.run_gtk3_widget
365
378
 
366
379
  end; end; end; end
@@ -163,8 +163,7 @@ class LevenstheinDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::LevenstheinDist
163
163
  _ = ::Bioroebe::GUI::Gtk::LevenstheinDistance.new(i)
164
164
  r = ::Gtk.run
165
165
  r << _
166
- r.automatic_size_then_automatic_title
167
- r.top_left_then_run
166
+ r.automatic_top_left_then_run
168
167
  end; self.instance_eval { alias start_gui_application run } # === Bioroebe::GUI::Gtk::LevenstheinDistanceModule.start_gui_application
169
168
  self.instance_eval { alias run_gtk3_widget run } # === Bioroebe::GUI::Gtk::LevenstheinDistance.run_gtk3_widget
170
169
 
@@ -128,7 +128,7 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
128
128
  # ========================================================================= #
129
129
  def create_skeleton
130
130
  create_buttons
131
- create_labels
131
+ create_the_labels
132
132
  create_entry
133
133
  end
134
134
 
@@ -163,46 +163,6 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
163
163
  @list_store.clear
164
164
  end
165
165
 
166
- # ========================================================================= #
167
- # === create_entry (entry tag)
168
- # ========================================================================= #
169
- def create_entry
170
- # ======================================================================= #
171
- # === @entry_input_sequence
172
- # ======================================================================= #
173
- @entry_input_sequence = gtk_entry
174
- @entry_input_sequence.yellow_background
175
- @entry_input_sequence.hint = 'The sequence will be evaluated '\
176
- 'whenever it is changed, as-is. Hit the <b>enter</b> key '\
177
- 'to change it, for convenience.'
178
- @entry_input_sequence.on_changed {
179
- update_this_sequence_contains_n_nucleotides
180
- update_the_table_dataset
181
- update_the_GC_content_label
182
- }
183
- # ======================================================================= #
184
- # Act on when the user hits the enter-key.
185
- # ======================================================================= #
186
- @entry_input_sequence.on_enter_key {
187
- sanitize_the_sequence
188
- do_analyse_the_sequence
189
- update_this_sequence_contains_n_nucleotides(
190
- return_how_many_nucleotides_this_sequence_contains
191
- )
192
- }
193
- end
194
-
195
- # ========================================================================= #
196
- # === update_the_GC_content_label
197
- # ========================================================================= #
198
- def update_the_GC_content_label
199
- _ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
200
- @label_gc_content.set_text(
201
- 'The <b>GC content</b> (G+C) is: <b>'+_.to_s+'%</b>'
202
- )
203
- @label_gc_content.do_markify
204
- end; alias update_the_labels update_the_GC_content_label # === update_the_labels
205
-
206
166
  # ========================================================================= #
207
167
  # === open_local_file
208
168
  # ========================================================================= #
@@ -217,13 +177,6 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
217
177
  return this_file
218
178
  end
219
179
 
220
- # ========================================================================= #
221
- # === set_main_entry
222
- # ========================================================================= #
223
- def set_main_entry(i)
224
- @entry_input_sequence.set_text(i.to_s)
225
- end
226
-
227
180
  require 'bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb'
228
181
  # ========================================================================= #
229
182
  # === do_open_a_local_file
@@ -283,26 +236,13 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
283
236
  # === update_this_sequence_contains_n_nucleotides
284
237
  # ========================================================================= #
285
238
  def update_this_sequence_contains_n_nucleotides(
286
- i = return_how_many_nucleotides_this_sequence_contains
239
+ i =
240
+ return_how_many_nucleotides_this_sequence_contains
287
241
  )
288
242
  @text_this_sequence_contains.set_text(i.to_s)
289
243
  @text_this_sequence_contains.do_markify
290
244
  end
291
245
 
292
- # ========================================================================= #
293
- # === create_labels
294
- # ========================================================================= #
295
- def create_labels
296
- # ======================================================================= #
297
- # === @label_gc_content
298
- # ======================================================================= #
299
- @label_gc_content = gtk_left_aligned_label
300
- # ======================================================================= #
301
- # === @text_this_sequence_contains
302
- # ======================================================================= #
303
- @text_this_sequence_contains = gtk_left_aligned_label
304
- end
305
-
306
246
  # ========================================================================= #
307
247
  # === return_dataset_based_on_this_sequence
308
248
  # ========================================================================= #
@@ -350,6 +290,13 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
350
290
  end
351
291
  end
352
292
 
293
+ # ========================================================================= #
294
+ # === update_the_main_sequence_variable
295
+ # ========================================================================= #
296
+ def update_the_main_sequence_variable
297
+ @sequence = @entry_input_sequence.text?.delete('-')
298
+ end
299
+
353
300
  # ========================================================================= #
354
301
  # === connect_skeleton (connect tag)
355
302
  # ========================================================================= #
@@ -365,15 +312,9 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
365
312
  scrolled_window.set_size_request(420, 260)
366
313
  minimal(scrolled_window, 5)
367
314
  minimal(gtk_horizontal_spacer)
368
- _ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
369
315
  update_the_labels
370
- minimal(@label_gc_content)
371
- minimal(
372
- gtk_left_aligned_label(
373
- 'The <b>AT content</b> (A+T) is: <b>'+
374
- (100.0 - _.to_f).round(1).to_s+'%</b>'
375
- )
376
- )
316
+ minimal(@label_GC_content)
317
+ minimal(@label_AT_content)
377
318
  hbox = gtk_hbox
378
319
  hbox.maximal(@button_reset, 1)
379
320
  hbox.maximal(@button_reset_the_input_sequence, 1)
@@ -399,6 +340,113 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
399
340
  apply_the_CSS_rules
400
341
  end
401
342
 
343
+ # ========================================================================= #
344
+ # === create_the_labels
345
+ # ========================================================================= #
346
+ def create_the_labels
347
+ # ======================================================================= #
348
+ # === @label_GC_content
349
+ # ======================================================================= #
350
+ @label_GC_content = left_aligned_label
351
+ @label_GC_content.make_selectable
352
+ # ======================================================================= #
353
+ # === @label_AT_content
354
+ # ======================================================================= #
355
+ _ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
356
+ @label_AT_content = left_aligned_label(
357
+ 'The <b>AT content</b> (A+T) is: <b>'+
358
+ (100.0 - _.to_f).round(1).to_s+'%</b>'
359
+ )
360
+ @label_AT_content.make_selectable
361
+ # ======================================================================= #
362
+ # === @text_this_sequence_contains
363
+ # ======================================================================= #
364
+ @text_this_sequence_contains = left_aligned_label
365
+ @text_this_sequence_contains.make_selectable
366
+ end
367
+
368
+ # ========================================================================= #
369
+ # === create_entry (entry tag)
370
+ # ========================================================================= #
371
+ def create_entry
372
+ # ======================================================================= #
373
+ # === @entry_input_sequence
374
+ # ======================================================================= #
375
+ @entry_input_sequence = entry
376
+ @entry_input_sequence.default_values
377
+ @entry_input_sequence.hint = 'The sequence will be evaluated '\
378
+ 'whenever it is changed, as-is. Hit the <b>enter</b> key '\
379
+ 'to change it, for convenience.'
380
+ @entry_input_sequence.on_changed {
381
+ update_the_main_sequence_variable
382
+ update_this_sequence_contains_n_nucleotides
383
+ update_the_table_dataset
384
+ update_the_labels
385
+ }
386
+ # ======================================================================= #
387
+ # Act on when the user hits the enter-key.
388
+ # ======================================================================= #
389
+ @entry_input_sequence.on_enter_key {
390
+ sanitize_the_sequence
391
+ do_analyse_the_sequence
392
+ update_this_sequence_contains_n_nucleotides(
393
+ return_how_many_nucleotides_this_sequence_contains
394
+ )
395
+ }
396
+ end
397
+
398
+ # ========================================================================= #
399
+ # === entry_input_sequence?
400
+ # ========================================================================= #
401
+ def entry_input_sequence?
402
+ @entry_input_sequence
403
+ end; alias main_entry? entry_input_sequence? # === main_entry?
404
+
405
+ # ========================================================================= #
406
+ # === dna_sequence?
407
+ # ========================================================================= #
408
+ def dna_sequence?
409
+ @entry_input_sequence.text?
410
+ end
411
+
412
+ # ========================================================================= #
413
+ # === update_the_GC_content_label
414
+ # ========================================================================= #
415
+ def update_the_GC_content_label
416
+ _ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
417
+ @label_GC_content.set_text(
418
+ 'The <b>GC content</b> (G+C) is: <b>'+_.to_s+'%</b>'
419
+ )
420
+ @label_GC_content.do_markify
421
+ end
422
+
423
+ # ========================================================================= #
424
+ # === update_the_labels
425
+ # ========================================================================= #
426
+ def update_the_labels
427
+ update_the_GC_content_label
428
+ update_the_AT_content_label
429
+ end
430
+
431
+ # ========================================================================= #
432
+ # === update_the_AT_content_label
433
+ # ========================================================================= #
434
+ def update_the_AT_content_label
435
+ _ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
436
+ @label_AT_content.set_text(
437
+ "The <b>AT content</b> (A+T) is: <b>"\
438
+ "#{(100.0 - _.to_f).round(1).to_s}%</b>"
439
+ )
440
+ @label_AT_content.do_markify
441
+ end
442
+
443
+ # ========================================================================= #
444
+ # === set_main_entry
445
+ # ========================================================================= #
446
+ def set_main_entry(i)
447
+ @entry_input_sequence.set_text(i.to_s)
448
+ end; alias set_dna_sequence set_main_entry # === set_dna_sequence
449
+
402
450
  # ========================================================================= #
403
451
  # === run (run tag)
404
452
  # ========================================================================= #
@@ -417,8 +465,7 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
417
465
  _ = ::Bioroebe::GUI::Gtk::NucleotideAnalyser.new(i)
418
466
  r = ::Gtk.run
419
467
  r << _
420
- r.automatic_size_then_automatic_title
421
- r.top_left_then_run
468
+ r.automatic_top_left_then_run
422
469
  end
423
470
 
424
471
  end; end; end; end
@@ -349,8 +349,7 @@ class PrimerDesignWidget < ::Gtk::Box # === Bioroebe::GUI::Gtk::PrimerDesignWidg
349
349
  _ = ::Bioroebe::GUI::Gtk::PrimerDesignWidget.new(i)
350
350
  r = ::Gtk.run
351
351
  r << _
352
- r.automatic_size_then_automatic_title
353
- r.top_left_then_run
352
+ r.automatic_top_left_then_run
354
353
  end
355
354
 
356
355
  # ========================================================================= #