bioroebe 0.10.80 → 0.12.12

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bioroebe might be problematic. Click here for more details.

Files changed (242) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3612 -2781
  3. data/bin/bioroebe +7 -1
  4. data/bin/bioroebe_hash +7 -0
  5. data/bin/codon_to_aminoacid +1 -0
  6. data/bioroebe.gemspec +3 -3
  7. data/doc/README.gen +3612 -2742
  8. data/doc/quality_control/commandline_applications.md +3 -3
  9. data/doc/todo/bioroebe_java_todo.md +22 -0
  10. data/doc/todo/bioroebe_todo.md +2059 -2615
  11. data/lib/bioroebe/aminoacids/aminoacid_substitution.rb +1 -9
  12. data/lib/bioroebe/aminoacids/codon_percentage.rb +1 -9
  13. data/lib/bioroebe/aminoacids/deduce_aminoacid_sequence.rb +1 -9
  14. data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
  15. data/lib/bioroebe/aminoacids/show_hydrophobicity.rb +1 -6
  16. data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
  17. data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +15 -11
  18. data/lib/bioroebe/base/commandline_application/misc.rb +66 -49
  19. data/lib/bioroebe/base/commandline_application/opn.rb +8 -8
  20. data/lib/bioroebe/base/commandline_application/reset.rb +3 -2
  21. data/lib/bioroebe/base/misc.rb +35 -0
  22. data/lib/bioroebe/base/prototype/misc.rb +11 -1
  23. data/lib/bioroebe/codon_tables/frequencies/parse_frequency_table.rb +2 -10
  24. data/lib/bioroebe/codons/codons.rb +1 -1
  25. data/lib/bioroebe/codons/convert_this_codon_to_that_aminoacid.rb +192 -58
  26. data/lib/bioroebe/codons/possible_codons_for_this_aminoacid.rb +1 -9
  27. data/lib/bioroebe/codons/show_codon_tables.rb +6 -2
  28. data/lib/bioroebe/codons/show_codon_usage.rb +15 -4
  29. data/lib/bioroebe/colours/rev.rb +4 -1
  30. data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
  31. data/lib/bioroebe/constants/database_constants.rb +1 -1
  32. data/lib/bioroebe/constants/files_and_directories.rb +31 -4
  33. data/lib/bioroebe/constants/misc.rb +20 -0
  34. data/lib/bioroebe/conversions/dna_to_aminoacid_sequence.rb +58 -24
  35. data/lib/bioroebe/count/count_amount_of_aminoacids.rb +3 -2
  36. data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
  37. data/lib/bioroebe/crystal/README.md +2 -0
  38. data/lib/bioroebe/crystal/to_rna.cr +19 -0
  39. data/lib/bioroebe/data/README.md +11 -8
  40. data/lib/bioroebe/data/electron_microscopy/pos_example.pos +396 -0
  41. data/lib/bioroebe/data/electron_microscopy/test_particles.star +36 -0
  42. data/lib/bioroebe/data/fasta/human/Homo_sapiens_hemoglobin_subunit_alpha_HBB_mRNA.fasta +9 -0
  43. data/lib/bioroebe/data/fasta/human/Homo_sapiens_hemoglobin_subunit_beta_HBB_mRNA.fasta +8 -0
  44. data/lib/bioroebe/data/fasta/human/README.md +2 -0
  45. data/lib/bioroebe/electron_microscopy/coordinate_analyzer.rb +15 -18
  46. data/lib/bioroebe/{fasta_and_fastq/parse_fasta/run.rb → electron_microscopy/electron_microscopy_module.rb} +16 -8
  47. data/lib/bioroebe/electron_microscopy/fix_pos_file.rb +1 -9
  48. data/lib/bioroebe/electron_microscopy/flipy.rb +83 -0
  49. data/lib/bioroebe/electron_microscopy/parse_coordinates.rb +2 -10
  50. data/lib/bioroebe/electron_microscopy/read_file_xmd.rb +1 -9
  51. data/lib/bioroebe/electron_microscopy/simple_star_file_generator.rb +4 -9
  52. data/lib/bioroebe/enzymes/has_this_restriction_enzyme.rb +10 -3
  53. data/lib/bioroebe/enzymes/restriction_enzyme.rb +23 -1
  54. data/lib/bioroebe/enzymes/restriction_enzymes/statistics.rb +65 -0
  55. data/lib/bioroebe/fasta_and_fastq/autocorrect_the_name_of_this_fasta_file.rb +1 -9
  56. data/lib/bioroebe/fasta_and_fastq/compact_fasta_file/compact_fasta_file.rb +7 -9
  57. data/lib/bioroebe/fasta_and_fastq/fasta_defline/fasta_defline.rb +1 -5
  58. data/lib/bioroebe/fasta_and_fastq/fasta_to_yaml/fasta_to_yaml.rb +81 -0
  59. data/lib/bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb +1465 -7
  60. data/lib/bioroebe/fasta_and_fastq/return_fasta_subsection_of_this_file.rb +11 -2
  61. data/lib/bioroebe/fasta_and_fastq/show_fasta_headers.rb +27 -12
  62. data/lib/bioroebe/fasta_and_fastq/simplify_fasta_header/simplify_fasta_header.rb +1 -5
  63. data/lib/bioroebe/fasta_and_fastq/split_this_fasta_file_into_chromosomes/constants.rb +0 -5
  64. data/lib/bioroebe/genome/README.md +4 -0
  65. data/lib/bioroebe/genome/genome.rb +67 -0
  66. data/lib/bioroebe/genomes/genome_pattern.rb +3 -9
  67. data/lib/bioroebe/gui/gtk +1 -0
  68. data/lib/bioroebe/gui/gtk3/alignment/alignment.rb +73 -128
  69. data/lib/bioroebe/gui/gtk3/controller/controller.rb +45 -27
  70. data/lib/bioroebe/gui/gtk3/dna_to_aminoacid_widget/dna_to_aminoacid_widget.rb +76 -50
  71. data/lib/bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb +99 -21
  72. data/lib/bioroebe/gui/gtk3/hamming_distance/hamming_distance.rb +42 -28
  73. data/lib/bioroebe/gui/gtk3/nucleotide_analyser/nucleotide_analyser.rb +119 -71
  74. data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +18 -18
  75. data/lib/bioroebe/gui/gtk3/random_sequence/random_sequence.rb +19 -11
  76. data/lib/bioroebe/gui/jruby/alignment/alignment.rb +165 -0
  77. data/lib/bioroebe/gui/libui/alignment/alignment.rb +3 -1
  78. data/lib/bioroebe/gui/libui/controller/controller.rb +116 -0
  79. data/lib/bioroebe/gui/libui/random_sequence/random_sequence.rb +18 -2
  80. data/lib/bioroebe/gui/libui/show_codon_table/show_codon_table.rb +2 -0
  81. data/lib/bioroebe/gui/libui/three_to_one/three_to_one.rb +8 -6
  82. data/lib/bioroebe/gui/shared_code/alignment/alignment_module.rb +102 -0
  83. data/lib/bioroebe/gui/shared_code/levensthein_distance/levensthein_distance_module.rb +18 -16
  84. data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
  85. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$1.class +0 -0
  86. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$CloseListener.class +0 -0
  87. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.class +0 -0
  88. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.java +141 -0
  89. data/lib/bioroebe/images/FORWARD_PRIMER.png +0 -0
  90. data/lib/bioroebe/images/REVERSE_PRIMER.png +0 -0
  91. data/lib/bioroebe/java/README.md +4 -0
  92. data/lib/bioroebe/java/bioroebe/Sequence.java +25 -1
  93. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Base.class +0 -0
  94. data/lib/bioroebe/java/bioroebe/{Base.java → src/main/java/bioroebe/Base.java} +15 -2
  95. data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.class → src/main/java/bioroebe/BisulfiteTreatment.class} +0 -0
  96. data/lib/bioroebe/java/bioroebe/{Codons.class → src/main/java/bioroebe/Codons.class} +0 -0
  97. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Codons.java +34 -0
  98. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.class +0 -0
  99. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.java +101 -0
  100. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.class → src/main/java/bioroebe/GenerateRandomDnaSequence.class} +0 -0
  101. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.java → src/main/java/bioroebe/GenerateRandomDnaSequence.java} +8 -2
  102. data/lib/bioroebe/java/bioroebe/{IsPalindrome.class → src/main/java/bioroebe/IsPalindrome.class} +0 -0
  103. data/lib/bioroebe/java/bioroebe/{IsPalindrome.java → src/main/java/bioroebe/IsPalindrome.java} +5 -1
  104. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.class +0 -0
  105. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.java +56 -0
  106. data/lib/bioroebe/java/bioroebe/{RemoveFile.java → src/main/java/bioroebe/RemoveFile.java} +10 -4
  107. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.class → src/main/java/bioroebe/RemoveNumbers.class} +0 -0
  108. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.java → src/main/java/bioroebe/RemoveNumbers.java} +1 -0
  109. data/lib/bioroebe/java/bioroebe/{ToCamelcase.class → src/main/java/bioroebe/ToCamelcase.class} +0 -0
  110. data/lib/bioroebe/java/bioroebe/{ToCamelcase.java → src/main/java/bioroebe/ToCamelcase.java} +3 -3
  111. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.class +0 -0
  112. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.java +42 -0
  113. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/toplevel_methods/BaseComposition.class +0 -0
  114. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/toplevel_methods/BaseComposition.java +75 -0
  115. data/lib/bioroebe/misc/ruler.rb +11 -2
  116. data/lib/bioroebe/nucleotides/most_likely_nucleotide_sequence_for_this_aminoacid_sequence.rb +1 -9
  117. data/lib/bioroebe/nucleotides/show_nucleotide_sequence.rb +7 -7
  118. data/lib/bioroebe/parsers/genbank_parser.rb +347 -26
  119. data/lib/bioroebe/parsers/gff.rb +1 -9
  120. data/lib/bioroebe/patterns/scan_for_repeat.rb +1 -5
  121. data/lib/bioroebe/pdb/fetch_fasta_sequence_from_pdb.rb +1 -9
  122. data/lib/bioroebe/pdb/parse_mmCIF_file.rb +1 -9
  123. data/lib/bioroebe/pdb/parse_pdb_file.rb +4 -10
  124. data/lib/bioroebe/project/project.rb +1 -1
  125. data/lib/bioroebe/python/README.md +1 -0
  126. data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
  127. data/lib/bioroebe/python/gui/gtk3/all_in_one.css +4 -0
  128. data/lib/bioroebe/python/gui/gtk3/all_in_one.py +59 -0
  129. data/lib/bioroebe/python/gui/gtk3/widget1.py +20 -0
  130. data/lib/bioroebe/python/gui/tkinter/all_in_one.py +91 -0
  131. data/lib/bioroebe/python/mymodule.py +8 -0
  132. data/lib/bioroebe/python/protein_to_dna.py +33 -0
  133. data/lib/bioroebe/python/shell/shell.py +19 -0
  134. data/lib/bioroebe/python/to_rna.py +14 -0
  135. data/lib/bioroebe/python/toplevel_methods/esystem.py +12 -0
  136. data/lib/bioroebe/python/toplevel_methods/open_in_browser.py +20 -0
  137. data/lib/bioroebe/python/toplevel_methods/palindromes.py +42 -0
  138. data/lib/bioroebe/python/toplevel_methods/rds.py +13 -0
  139. data/lib/bioroebe/python/toplevel_methods/shuffleseq.py +23 -0
  140. data/lib/bioroebe/python/toplevel_methods/three_delimiter.py +37 -0
  141. data/lib/bioroebe/python/toplevel_methods/time_and_date.py +43 -0
  142. data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +21 -0
  143. data/lib/bioroebe/requires/require_the_bioroebe_project.rb +3 -1
  144. data/lib/bioroebe/sequence/alignment.rb +14 -4
  145. data/lib/bioroebe/sequence/dna.rb +1 -0
  146. data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
  147. data/lib/bioroebe/sequence/protein.rb +105 -3
  148. data/lib/bioroebe/sequence/sequence.rb +87 -21
  149. data/lib/bioroebe/shell/menu.rb +3829 -3714
  150. data/lib/bioroebe/shell/misc.rb +59 -4307
  151. data/lib/bioroebe/shell/readline/readline.rb +1 -1
  152. data/lib/bioroebe/shell/shell.rb +11255 -28
  153. data/lib/bioroebe/siRNA/siRNA.rb +81 -1
  154. data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
  155. data/lib/bioroebe/string_matching/hamming_distance.rb +1 -9
  156. data/lib/bioroebe/taxonomy/class_methods.rb +3 -8
  157. data/lib/bioroebe/taxonomy/constants.rb +4 -3
  158. data/lib/bioroebe/taxonomy/edit.rb +2 -1
  159. data/lib/bioroebe/taxonomy/help/help.rb +10 -10
  160. data/lib/bioroebe/taxonomy/help/helpline.rb +2 -2
  161. data/lib/bioroebe/taxonomy/info/check_available.rb +15 -9
  162. data/lib/bioroebe/taxonomy/info/info.rb +18 -11
  163. data/lib/bioroebe/taxonomy/info/is_dna.rb +46 -36
  164. data/lib/bioroebe/taxonomy/interactive.rb +140 -104
  165. data/lib/bioroebe/taxonomy/menu.rb +27 -18
  166. data/lib/bioroebe/taxonomy/parse_fasta.rb +3 -1
  167. data/lib/bioroebe/taxonomy/shared.rb +1 -0
  168. data/lib/bioroebe/taxonomy/taxonomy.rb +1 -0
  169. data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
  170. data/lib/bioroebe/toplevel_methods/colourize_related_methods.rb +164 -0
  171. data/lib/bioroebe/toplevel_methods/databases.rb +1 -1
  172. data/lib/bioroebe/toplevel_methods/digest.rb +18 -8
  173. data/lib/bioroebe/toplevel_methods/fasta_and_fastq.rb +107 -63
  174. data/lib/bioroebe/toplevel_methods/file_and_directory_related_actions.rb +14 -2
  175. data/lib/bioroebe/toplevel_methods/frequencies.rb +8 -1
  176. data/lib/bioroebe/toplevel_methods/misc.rb +142 -12
  177. data/lib/bioroebe/toplevel_methods/nucleotides.rb +118 -46
  178. data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
  179. data/lib/bioroebe/toplevel_methods/palindromes.rb +1 -2
  180. data/lib/bioroebe/toplevel_methods/taxonomy.rb +2 -2
  181. data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
  182. data/lib/bioroebe/utility_scripts/align_open_reading_frames.rb +1 -9
  183. data/lib/bioroebe/utility_scripts/check_for_mismatches/check_for_mismatches.rb +1 -9
  184. data/lib/bioroebe/utility_scripts/compacter.rb +1 -9
  185. data/lib/bioroebe/utility_scripts/compseq/compseq.rb +1 -9
  186. data/lib/bioroebe/utility_scripts/consensus_sequence.rb +6 -6
  187. data/lib/bioroebe/utility_scripts/create_batch_entrez_file.rb +1 -9
  188. data/lib/bioroebe/utility_scripts/dot_alignment.rb +1 -9
  189. data/lib/bioroebe/utility_scripts/move_file_to_its_correct_location.rb +1 -4
  190. data/lib/bioroebe/utility_scripts/parse_taxonomy.rb +2 -2
  191. data/lib/bioroebe/utility_scripts/showorf/constants.rb +0 -5
  192. data/lib/bioroebe/utility_scripts/showorf/reset.rb +1 -4
  193. data/lib/bioroebe/version/version.rb +2 -2
  194. data/lib/bioroebe/www/embeddable_interface.rb +103 -54
  195. data/lib/bioroebe/www/sinatra/sinatra.rb +186 -70
  196. data/lib/bioroebe/yaml/aminoacids/amino_acids_long_name_to_one_letter.yml +2 -2
  197. data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
  198. data/lib/bioroebe/yaml/configuration/temp_dir.yml +1 -1
  199. data/lib/bioroebe/yaml/genomes/README.md +3 -4
  200. data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +27 -27
  201. metadata +81 -64
  202. data/doc/setup.rb +0 -1655
  203. data/lib/bioroebe/fasta_and_fastq/parse_fasta/constants.rb +0 -50
  204. data/lib/bioroebe/fasta_and_fastq/parse_fasta/initialize.rb +0 -86
  205. data/lib/bioroebe/fasta_and_fastq/parse_fasta/menu.rb +0 -117
  206. data/lib/bioroebe/fasta_and_fastq/parse_fasta/misc.rb +0 -981
  207. data/lib/bioroebe/fasta_and_fastq/parse_fasta/report.rb +0 -156
  208. data/lib/bioroebe/fasta_and_fastq/parse_fasta/reset.rb +0 -128
  209. data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
  210. data/lib/bioroebe/java/bioroebe/Base.class +0 -0
  211. data/lib/bioroebe/java/bioroebe/Codons.java +0 -22
  212. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.class +0 -0
  213. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.java +0 -19
  214. data/lib/bioroebe/java/bioroebe.jar +0 -0
  215. data/lib/bioroebe/shell/add.rb +0 -108
  216. data/lib/bioroebe/shell/assign.rb +0 -360
  217. data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
  218. data/lib/bioroebe/shell/constants.rb +0 -166
  219. data/lib/bioroebe/shell/download.rb +0 -335
  220. data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
  221. data/lib/bioroebe/shell/enzymes.rb +0 -310
  222. data/lib/bioroebe/shell/fasta.rb +0 -345
  223. data/lib/bioroebe/shell/gtk.rb +0 -76
  224. data/lib/bioroebe/shell/history.rb +0 -132
  225. data/lib/bioroebe/shell/initialize.rb +0 -217
  226. data/lib/bioroebe/shell/loop.rb +0 -74
  227. data/lib/bioroebe/shell/prompt.rb +0 -107
  228. data/lib/bioroebe/shell/random.rb +0 -289
  229. data/lib/bioroebe/shell/reset.rb +0 -335
  230. data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
  231. data/lib/bioroebe/shell/search.rb +0 -337
  232. data/lib/bioroebe/shell/sequences.rb +0 -200
  233. data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
  234. data/lib/bioroebe/shell/startup.rb +0 -127
  235. data/lib/bioroebe/shell/taxonomy.rb +0 -14
  236. data/lib/bioroebe/shell/tk.rb +0 -23
  237. data/lib/bioroebe/shell/user_input.rb +0 -88
  238. data/lib/bioroebe/shell/xorg.rb +0 -45
  239. /data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.java → src/main/java/bioroebe/BisulfiteTreatment.java} +0 -0
  240. /data/lib/bioroebe/java/bioroebe/{Esystem.class → src/main/java/bioroebe/Esystem.class} +0 -0
  241. /data/lib/bioroebe/java/bioroebe/{Esystem.java → src/main/java/bioroebe/Esystem.java} +0 -0
  242. /data/lib/bioroebe/java/bioroebe/{RemoveFile.class → src/main/java/bioroebe/RemoveFile.class} +0 -0
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === LibuiParadise::GUI::LibUI::Prototype
6
+ # =========================================================================== #
7
+ module LibuiParadise
8
+
9
+ module GUI
10
+
11
+ module LibUI
12
+
13
+ class Prototype # === LibuiParadise::GUI::LibUI::Prototype
14
+
15
+ require 'libui_paradise/extensions/extensions.rb'
16
+ include LibuiParadise::Extensions
17
+
18
+ require 'bioroebe/gui/libui/alignment/alignment.rb'
19
+
20
+ # ========================================================================= #
21
+ # === TITLE
22
+ # ========================================================================= #
23
+ TITLE = 'A prototype for LibUI'
24
+
25
+ # ========================================================================= #
26
+ # === WIDTH
27
+ # ========================================================================= #
28
+ WIDTH = 680
29
+
30
+ # ========================================================================= #
31
+ # === HEIGHT
32
+ # ========================================================================= #
33
+ HEIGHT = 520
34
+
35
+ # ========================================================================= #
36
+ # === initialize
37
+ # ========================================================================= #
38
+ def initialize(
39
+ run_already = true
40
+ )
41
+ reset
42
+ run if run_already
43
+ end
44
+
45
+ # ========================================================================= #
46
+ # === reset (reset tag)
47
+ # ========================================================================= #
48
+ def reset
49
+ title_width_height(TITLE, WIDTH, HEIGHT)
50
+ end
51
+
52
+ # ========================================================================= #
53
+ # === create_skeleton (create tag, skeleton tag)
54
+ # ========================================================================= #
55
+ def create_skeleton
56
+ # ======================================================================= #
57
+ # === @window
58
+ # ======================================================================= #
59
+ @window = ui_padded_main_window(title?, width?, height?, 0)
60
+ end
61
+
62
+ # ========================================================================= #
63
+ # === run
64
+ # ========================================================================= #
65
+ def run
66
+ create_skeleton_then_connect_skeleton
67
+ outer_vbox = padded_vbox
68
+ # ======================================================================= #
69
+ # First add the two buttons on top:
70
+ # ======================================================================= #
71
+ hbox_on_top = padded_hbox
72
+ button_refresh = ui_button('Refresh')
73
+ button_refresh.on_clicked {
74
+ e 'TODO: Refresh this ... or add any other functionality.'
75
+ }
76
+ hbox_on_top.maximal(button_refresh)
77
+ hbox_on_top.maximal(quit_button)
78
+ tab = LibuiParadise.tab
79
+ outer_vbox.maximal(tab)
80
+ outer_vbox.minimal(hbox_on_top)
81
+ outer_vbox.add_hsep
82
+
83
+ grid = ui_padded_grid
84
+ # widget, left, top, xspan, yspan, hexpand, halign, vexpand, valign
85
+ grid.ui_grid_append(text('Left'), 0, 0, 1, 1, 0, 0.5, 1, 0)
86
+ grid.ui_grid_append(text('Right'), 1, 0, 1, 1, 0, 0.5, 1, 0)
87
+
88
+ 3.times.each {|index| index += 1
89
+ # ===================================================================== #
90
+ # left, top, xspan, yspan, hexpand, halign, vexpand, valign
91
+ # 0, 0, 2, 1, 0, 0, 1, 0
92
+ # ===================================================================== #
93
+ grid.ui_grid_append(text(index.to_s), 0, 1+index, 1, 1, 1, 1, 1, 1)
94
+ label_exam_topic = text(entry.to_s)
95
+ grid.ui_grid_append(label_exam_topic, 1, 1+index, 1, 1, 1, 1, 1, 1)
96
+ }
97
+ outer_vbox.maximal(grid)
98
+
99
+
100
+ hbox2 = create_hbox
101
+
102
+ #alignment = Object.new
103
+ #alignment.extend(Bioroebe::GUI::LibUI::Alignment)
104
+ #alignment.reset_then_run
105
+ #::LibUI.tab_append(tab, 'Page 1', alignment)
106
+ ::LibUI.tab_append(tab, 'Page 2', hbox2)
107
+
108
+ @window.add(outer_vbox)
109
+ @window.intelligent_exit
110
+ end
111
+
112
+ end; end; end; end
113
+
114
+ if __FILE__ == $PROGRAM_NAME
115
+ LibuiParadise::GUI::LibUI::Prototype.new
116
+ end
@@ -55,7 +55,7 @@ module RandomSequence # === Bioroebe::GUI::LibUI::RandomSequence
55
55
  # ========================================================================= #
56
56
  def reset
57
57
  end
58
-
58
+
59
59
  # ========================================================================= #
60
60
  # === create_skeleton (create tag)
61
61
  # ========================================================================= #
@@ -125,6 +125,11 @@ module RandomSequence # === Bioroebe::GUI::LibUI::RandomSequence
125
125
  def do_generate_a_random_sequence_using_the_value_from_the_proper_entry(
126
126
  i = n_aminoacids?
127
127
  )
128
+ i = i.to_i
129
+ if i > 5_000_000
130
+ i = 5_000_000
131
+ set_main_entry(i.to_s)
132
+ end
128
133
  do_generate_a_random_sequence(i)
129
134
  end
130
135
 
@@ -138,7 +143,11 @@ module RandomSequence # === Bioroebe::GUI::LibUI::RandomSequence
138
143
  when nil, :default
139
144
  n_aminoacids = GENERATE_N_AMINOACIDS_BY_DEFAULT
140
145
  end
141
- n_aminoacids = n_aminoacids.to_s
146
+ n_aminoacids = n_aminoacids.to_i
147
+ if n_aminoacids > 5_000_000
148
+ n_aminoacids = 5_000_000
149
+ set_main_entry(n_aminoacids.to_s)
150
+ end
142
151
  use_this_as_the_new_sequence = ::Bioroebe.create_random_aminoacids(n_aminoacids).to_s
143
152
  array1 = ::Bioroebe.return_array_of_common_aminoacids
144
153
  array2 = Bioroebe::CountAmountOfAminoacids.return_composition_hash(use_this_as_the_new_sequence).values.map(&:to_s)
@@ -158,6 +167,13 @@ module RandomSequence # === Bioroebe::GUI::LibUI::RandomSequence
158
167
  @entry_use_this_length.text?.to_s
159
168
  end
160
169
 
170
+ # ========================================================================= #
171
+ # === set_main_entry
172
+ # ========================================================================= #
173
+ def set_main_entry(i)
174
+ @entry_use_this_length.set_text(i.to_s)
175
+ end
176
+
161
177
  # ========================================================================= #
162
178
  # === Bioroebe::GUI::LibUI::RandomSequence.run
163
179
  # ========================================================================= #
@@ -4,6 +4,8 @@
4
4
  # =========================================================================== #
5
5
  # === Bioroebe::GUI::LibUI::ShowCodonTable
6
6
  # =========================================================================== #
7
+ # require 'bioroebe/gui/libui/show_codon_table/show_codon_table.rb'
8
+ # =========================================================================== #
7
9
  require 'bioroebe/constants/GUIs.rb'
8
10
 
9
11
  module Bioroebe
@@ -35,11 +35,10 @@ module ThreeToOne # === Bioroebe::GUI::LibUI::ThreeToOne
35
35
  # === create_skeleton (create tag)
36
36
  # ========================================================================= #
37
37
  def create_skeleton
38
- @entry1 = ui_entry
39
- @entry2 = ui_entry
40
- @checkbox1 = ui_checkbox
41
- @checkbox1.is_active
42
- @checkbox2 = ui_checkbox
38
+ @entry1 = entry
39
+ @entry2 = entry
40
+ @checkbox1 = checked_checkbox
41
+ @checkbox2 = checkbox
43
42
  end
44
43
 
45
44
  # ========================================================================= #
@@ -72,7 +71,7 @@ module ThreeToOne # === Bioroebe::GUI::LibUI::ThreeToOne
72
71
  small_hbox2 << ui_text('1-to-3 conversion')
73
72
  small_hbox2 << @checkbox2
74
73
  vbox_with_checkbuttons << small_hbox2
75
-
74
+ vbox_with_checkbuttons << quit_button
76
75
  bottom_hbox << vbox_with_checkbuttons
77
76
  outer_vbox << bottom_hbox
78
77
  main_window.child = outer_vbox
@@ -92,6 +91,9 @@ module ThreeToOne # === Bioroebe::GUI::LibUI::ThreeToOne
92
91
  else
93
92
  new_result = Bioroebe.one_to_three(i.delete('-')).to_s
94
93
  end
94
+ if new_result and new_result.empty?
95
+ error_msg('No result found. Is it a three-letter aminoacid?')
96
+ end
95
97
  @entry2.set_text(new_result) if new_result and !new_result.empty?
96
98
  end; alias do_the_conversion do_trigger_the_conversion # === do_the_conversion
97
99
 
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Bioroebe::GUI::AlignmentModule
6
+ #
7
+ # Usage example:
8
+ #
9
+ # Alignment.new(ARGV)
10
+ #
11
+ # =========================================================================== #
12
+ # require 'bioroebe/gui/shared_code/alignment/alignment_module.rb'
13
+ # include Bioroebe::GUI::AlignmentModule
14
+ # =========================================================================== #
15
+ module Bioroebe
16
+
17
+ module GUI
18
+
19
+ module AlignmentModule # === Bioroebe::GUI::AlignmentModule
20
+
21
+ require 'colours'
22
+ require 'bioroebe/sequence/alignment.rb'
23
+
24
+ # ========================================================================= #
25
+ # === TITLE
26
+ # ========================================================================= #
27
+ TITLE = 'Alignment'
28
+
29
+ # ========================================================================= #
30
+ # === TEXT_INPUT_THE_SEQUENCES
31
+ # ========================================================================= #
32
+ TEXT_INPUT_THE_SEQUENCES = 'Input the sequences that you wish '\
33
+ 'to compare to one another'
34
+
35
+ # ========================================================================= #
36
+ # === WIDTH
37
+ # ========================================================================= #
38
+ WIDTH = '65%'
39
+
40
+ # ========================================================================= #
41
+ # === HEIGHT
42
+ # ========================================================================= #
43
+ HEIGHT = '55%'
44
+
45
+ # ========================================================================= #
46
+ # === USE_THIS_FONT
47
+ # ========================================================================= #
48
+ USE_THIS_FONT = :dejavu_condensed_22
49
+
50
+ # ========================================================================= #
51
+ # === FONT_FOR_THE_ENTRIES
52
+ #
53
+ # The entries must use a mono-spaced font.
54
+ # ========================================================================= #
55
+ FONT_FOR_THE_ENTRIES = :hack_20
56
+
57
+ # ========================================================================= #
58
+ # === reset_the_alignment_object
59
+ # ========================================================================= #
60
+ def reset_the_alignment_object
61
+ # ======================================================================= #
62
+ # === @alignment
63
+ # ======================================================================= #
64
+ @alignment = Bioroebe::Alignment.new(nil, :do_not_run_yet)
65
+ end
66
+
67
+ # ========================================================================= #
68
+ # === return_the_consensus_sequence
69
+ # ========================================================================= #
70
+ def return_the_consensus_sequence
71
+ @alignment.consensus_sequence?
72
+ end
73
+
74
+ # ========================================================================= #
75
+ # === text_view_widget?
76
+ # ========================================================================= #
77
+ def text_view_widget?
78
+ @text_view
79
+ end
80
+
81
+ # ========================================================================= #
82
+ # === realign_the_numbers_showing_how_long_the_consensus_sequence_is
83
+ # ========================================================================= #
84
+ def realign_the_numbers_showing_how_long_the_consensus_sequence_is
85
+ @entry_numbers.center if @entry_numbers.respond_to?(:center)
86
+ n_characters = @entry_consensus_sequence.text?.size
87
+ @entry_numbers.set_text(return_fill_up_to(n_characters))
88
+ end
89
+
90
+ # ========================================================================= #
91
+ # === return_fill_up_to
92
+ # ========================================================================= #
93
+ def return_fill_up_to(i)
94
+ _ = ''.dup
95
+ i.times {|counter|
96
+ counter = (counter+1) % 10
97
+ _ << counter.to_s
98
+ }
99
+ return _
100
+ end
101
+
102
+ end; end; end
@@ -76,20 +76,6 @@ module LevenstheinDistanceModule
76
76
  }
77
77
  end
78
78
 
79
- # ========================================================================= #
80
- # === padding?
81
- # ========================================================================= #
82
- def padding?
83
- 12
84
- end
85
-
86
- # ========================================================================= #
87
- # === border_size?
88
- # ========================================================================= #
89
- def border_size?
90
- 2
91
- end
92
-
93
79
  # ========================================================================= #
94
80
  # === levensthein_object?
95
81
  # ========================================================================= #
@@ -383,8 +369,10 @@ module LevenstheinDistanceModule
383
369
  @levensthein_object.edit_distance?
384
370
  )
385
371
  total_score = @levensthein_object.total_score?.to_s
386
- @label_for_the_total_score.set_text(total_score)
387
- @label_for_the_total_score.make_bold
372
+ unless text2.empty?
373
+ @label_for_the_total_score.set_text(total_score)
374
+ @label_for_the_total_score.make_bold
375
+ end
388
376
  end; alias do_compare_the_two_sequences do_compare_the_two_strings # === do_compare_the_two_sequences
389
377
  alias recalculate_the_score do_compare_the_two_strings # === recalculate_the_score
390
378
 
@@ -399,4 +387,18 @@ module LevenstheinDistanceModule
399
387
  return small_label
400
388
  end
401
389
 
390
+ # ========================================================================= #
391
+ # === padding?
392
+ # ========================================================================= #
393
+ def padding?
394
+ 12
395
+ end
396
+
397
+ # ========================================================================= #
398
+ # === border_size?
399
+ # ========================================================================= #
400
+ def border_size?
401
+ 4
402
+ end
403
+
402
404
  end; end; end
@@ -143,13 +143,6 @@ module ProteinToDNAModule # === Bioroebe::GUI::ProteinToDNAModule
143
143
  end
144
144
  end
145
145
 
146
- # ========================================================================= #
147
- # === left_buffer?
148
- # ========================================================================= #
149
- def left_buffer?
150
- @dataset[:left_buffer]
151
- end; alias left? left_buffer? # === left?
152
-
153
146
  # ========================================================================= #
154
147
  # === right_buffer?
155
148
  # ========================================================================= #
@@ -164,6 +157,20 @@ module ProteinToDNAModule # === Bioroebe::GUI::ProteinToDNAModule
164
157
  @dataset[:left_buffer].set_text(i.to_s)
165
158
  end
166
159
 
160
+ # ========================================================================= #
161
+ # === aminoacid_sequence?
162
+ # ========================================================================= #
163
+ def aminoacid_sequence?
164
+ left_buffer?.to_s
165
+ end
166
+
167
+ # ========================================================================= #
168
+ # === left_buffer?
169
+ # ========================================================================= #
170
+ def left_buffer?
171
+ @dataset[:left_buffer]
172
+ end; alias left? left_buffer? # === left?
173
+
167
174
  # ========================================================================= #
168
175
  # === do_determine_the_backtrack_sequence (click tag)
169
176
  #
@@ -182,11 +189,4 @@ module ProteinToDNAModule # === Bioroebe::GUI::ProteinToDNAModule
182
189
  right_buffer?.set_text(text_for_right_hand_side)
183
190
  end; alias do_determine_the_DNA_sequence do_determine_the_backtrack_sequence # === do_determine_the_DNA_sequence
184
191
 
185
- # ========================================================================= #
186
- # === aminoacid_sequence?
187
- # ========================================================================= #
188
- def aminoacid_sequence?
189
- left_buffer?.to_s
190
- end
191
-
192
192
  end; end; end
@@ -0,0 +1,141 @@
1
+ /* package ThreeToOne; */
2
+ import javax.swing.*;
3
+ import java.awt.*;
4
+ import java.awt.event.*;
5
+ import java.awt.Dimension;
6
+ import java.awt.event.KeyAdapter;
7
+ import java.awt.event.KeyEvent;
8
+
9
+ import java.util.Random;
10
+ import javax.swing.border.EmptyBorder;
11
+
12
+ import java.util.*;
13
+ import java.util.HashMap;
14
+ import java.util.Map;
15
+
16
+ public class ThreeToOne {
17
+
18
+ private static final String TITLE = "Three To One - Aminoacid Code Converter";
19
+
20
+ /*
21
+ * HASH_THREE_TO_ONE
22
+ */
23
+ /*
24
+ Hashtable<String, String> HASH_THREE_TO_ONE = new Hashtable<String, String>();
25
+ */
26
+
27
+ /* HASH_THREE_TO_ONE.put("Ala", "A");
28
+ */
29
+
30
+
31
+ public Hashtable<String, String> hash = new Hashtable<>(); /* Only have to specify the types once */
32
+
33
+
34
+ public static JTextField entry1,
35
+ entry2;
36
+ /*
37
+ * Main constructor (def initialize)
38
+ */
39
+ public ThreeToOne() {
40
+ run();
41
+ }
42
+ void initialize_the_main_hash() {
43
+ hash.put("Ala", "A");
44
+ }
45
+ /*
46
+ * run()
47
+ */
48
+ void run() {
49
+
50
+ JFrame frame = new JFrame(TITLE);
51
+
52
+ frame.setLayout(new GridLayout(5, 2)); /* (int rows, int cols) */
53
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
54
+
55
+ JLabel label_title = new JLabel("Input Sequence");
56
+ label_title.setFont(new Font("Serif", Font.PLAIN, 30)); /* Set a new font size */
57
+
58
+ frame.add(label_title);
59
+ frame.add(new JLabel(""));
60
+
61
+ /* Input Sequence */
62
+ entry1 = new JTextField(30);
63
+ entry1.setFont(new Font("Serif", Font.PLAIN, 20));
64
+ entry1.setMargin(new Insets(4, 4, 4, 4));
65
+ entry1.setHorizontalAlignment(JTextField.CENTER);
66
+ entry1.setFocusable(true);
67
+ frame.add(entry1);
68
+ frame.add(new JLabel(""));
69
+
70
+ /* Fahrenheit */
71
+ entry2 = new JTextField(30);
72
+ entry2.setFont(new Font("Serif", Font.PLAIN, 20));
73
+ entry2.setMargin(new Insets(4, 4, 4, 4));
74
+ entry2.setHorizontalAlignment(JTextField.CENTER);
75
+ entry2.setFocusable(true);
76
+ frame.add(entry2);
77
+ frame.add(new JLabel(""));
78
+
79
+ JButton convert_button = new JButton("Convert");
80
+
81
+ frame.add(convert_button);
82
+ frame.add(return_quit_button());
83
+
84
+ frame.setSize(1200, 500);
85
+ frame.setVisible(true);
86
+
87
+ initialize_the_main_hash();
88
+
89
+ convert_button.setMnemonic('C');
90
+ convert_button.setBounds(10, 80, 80, 25); /* int x-coordinate, int y-coordinate, int width, int height */
91
+ convert_button.addActionListener(
92
+ e -> do_the_conversion()
93
+ );
94
+
95
+ }
96
+ /*
97
+ * return_quit_button()
98
+ */
99
+ JButton return_quit_button() {
100
+ JButton quit_button = new JButton("Quit");
101
+ quit_button.addActionListener(new CloseListener());
102
+ quit_button.setMnemonic('Q');
103
+ return quit_button;
104
+ }
105
+ private class CloseListener implements ActionListener {
106
+ @Override
107
+ public void actionPerformed(ActionEvent e) {
108
+ System.exit(0);
109
+ }
110
+ }
111
+
112
+ /*
113
+ * do_the_conversion()
114
+ */
115
+ void do_the_conversion() {
116
+ if (entry1.getText().isEmpty()) {
117
+ en("No text to check.");
118
+ }
119
+ else {
120
+ String target_key = entry1.getText();
121
+
122
+ if (hash.containsKey(target_key)) {
123
+ String result = hash.get(target_key);
124
+ entry2.setText(result);
125
+ };
126
+ }
127
+ }
128
+
129
+ public static void e(String i) {
130
+ System.out.print(i);
131
+ }
132
+
133
+ public static void en(String i) {
134
+ System.out.println(i);
135
+ }
136
+
137
+ public static void main(String[] args) {
138
+ ThreeToOne x = new ThreeToOne();
139
+ }
140
+
141
+ }
@@ -4,3 +4,7 @@ bioroebe to ever be fully written in Java.
4
4
  To compile it anew, do:
5
5
 
6
6
  run bioroebe/AllInOne.java
7
+
8
+ Since as of September 2022 it is easier to run:
9
+
10
+ bioroebe --create-jar
@@ -10,14 +10,38 @@ import java.io.*;
10
10
  */
11
11
  public class Sequence extends Base {
12
12
 
13
+ private static final boolean SHALL_WE_UPCASE = true;
13
14
  private static String sequence = "";
14
15
 
15
16
  public static void main(String[] args) {
16
17
  sequence = String.join("", args);
17
18
  }
19
+ /*
20
+ *
21
+ * === n_uracil?
22
+ *
23
+ * Report how many Uracil can be found in the given String. This is more
24
+ * of an ad-hoc method, though.
25
+ */
26
+ int n_uracil() {
27
+ String modified_sequence = sequence.
28
+ toUpperCase().
29
+ replace("T","U").
30
+ count('U');
31
+ return modified_sequence.
32
+ chars().
33
+ filter(ch -> ch == 'U').
34
+ count(); /* This is .count('U') */
35
+ }
18
36
 
19
37
  /*
20
- * return_sequence()
38
+ * === shall_we_upcase()
39
+ */
40
+ boolean shall_we_upcase() {
41
+ return SHALL_WE_UPCASE;
42
+ }
43
+ /*
44
+ * Sequence.return_sequence()
21
45
  *
22
46
  * Will return the sequence of our class Sequence instance.
23
47
  */
@@ -1,11 +1,14 @@
1
1
  package bioroebe;
2
+
2
3
  import bioroebe.*;
3
4
 
4
5
  /*
5
6
  * The Base class defines some constants, in particular in regards
6
7
  * to colours and console-output.
7
8
  */
8
- public abstract class Base {
9
+ /*public abstract class Base {*/
10
+
11
+ public class Base {
9
12
 
10
13
  static boolean are_we_on_windows = System.getProperty("os.name").toLowerCase().
11
14
  startsWith("windows");
@@ -56,12 +59,14 @@ public abstract class Base {
56
59
  public static void newline() {
57
60
  System.out.println();
58
61
  }
62
+
59
63
  /*
60
64
  * The colour red.
61
65
  */
62
66
  public static String red(String i) {
63
67
  return ANSI_RED+i+ANSI_WHITE;
64
68
  }
69
+
65
70
  /*
66
71
  * The colour green. (green tag)
67
72
  */
@@ -99,4 +104,12 @@ public abstract class Base {
99
104
  e(blue(i));
100
105
  }
101
106
 
102
- }
107
+ /*
108
+ * The main method here is only used for testing purposes.
109
+ */
110
+ public static void main(String[] args) {
111
+ Base x = new Base();
112
+ x.eblue("WTF");
113
+ }
114
+
115
+ }