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
@@ -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
  # ========================================================================= #
@@ -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
  # ========================================================================= #
@@ -107,7 +107,7 @@ class ProteinToDNA < ::Gtk::Box # === Bioroebe::GUI::Gtk::ProteinToDNA
107
107
  scrolled_window_right.clear_background
108
108
  scrolled_window_right.width_height(300, 300)
109
109
  scrolled_window_right.bblack1
110
- scrolled_window_right.css_class('mar2px')
110
+ scrolled_window_right.mar2px
111
111
  # ======================================================================= #
112
112
  # === scrolled_window_left
113
113
  # ======================================================================= #
@@ -115,7 +115,7 @@ class ProteinToDNA < ::Gtk::Box # === Bioroebe::GUI::Gtk::ProteinToDNA
115
115
  scrolled_window_left.clear_background
116
116
  scrolled_window_left.width_height(300, 300)
117
117
  scrolled_window_left.bblack1
118
- scrolled_window_left.css_class('mar2px')
118
+ scrolled_window_left.mar2px
119
119
  top_hpaned = gtk_hpaned(
120
120
  scrolled_window_left,
121
121
  scrolled_window_right
@@ -126,22 +126,6 @@ class ProteinToDNA < ::Gtk::Box # === Bioroebe::GUI::Gtk::ProteinToDNA
126
126
  @dataset[:top_hbox] = top_hpaned
127
127
  end
128
128
 
129
- # ========================================================================= #
130
- # === connect_skeleton (connect tag)
131
- # ========================================================================= #
132
- def connect_skeleton
133
- abort_on_exception
134
- @main_vbox.maximal(@dataset[:top_hbox], 4)
135
- @main_vbox.maximal(@middle_bar)
136
- button_box = button_box(
137
- @dataset[:backtrack_button],
138
- @dataset[:quit_button]
139
- )
140
- button_box.vertical_layout
141
- @main_vbox.minimal(button_box)
142
- add(@main_vbox)
143
- end
144
-
145
129
  # ========================================================================= #
146
130
  # === create_left_buffer
147
131
  # ========================================================================= #
@@ -161,6 +145,22 @@ class ProteinToDNA < ::Gtk::Box # === Bioroebe::GUI::Gtk::ProteinToDNA
161
145
  super()
162
146
  end
163
147
 
148
+ # ========================================================================= #
149
+ # === connect_skeleton (connect tag)
150
+ # ========================================================================= #
151
+ def connect_skeleton
152
+ abort_on_exception
153
+ @main_vbox.maximal(@dataset[:top_hbox], 4)
154
+ @main_vbox.maximal(@middle_bar)
155
+ button_box = button_box(
156
+ @dataset[:backtrack_button],
157
+ @dataset[:quit_button]
158
+ )
159
+ button_box.vertical_layout
160
+ @main_vbox.minimal(button_box)
161
+ add(@main_vbox)
162
+ end
163
+
164
164
  # ========================================================================= #
165
165
  # === Bioroebe::GUI::Gtk::ProteinToDNA.run
166
166
  # ========================================================================= #
@@ -43,12 +43,12 @@ class RandomSequence < ::Gtk::Box # === Bioroebe::GUI::Gtk::RandomSequence
43
43
  # ========================================================================= #
44
44
  # === WIDTH
45
45
  # ========================================================================= #
46
- WIDTH = 900
46
+ WIDTH = '45% or minimum 1200px'
47
47
 
48
48
  # ========================================================================= #
49
49
  # === HEIGHT
50
50
  # ========================================================================= #
51
- HEIGHT = 720
51
+ HEIGHT = '45% or minimum 980px'
52
52
 
53
53
  # ========================================================================= #
54
54
  # === USE_THIS_HEADER
@@ -478,8 +478,20 @@ class RandomSequence < ::Gtk::Box # === Bioroebe::GUI::Gtk::RandomSequence
478
478
  create_the_entries
479
479
  end
480
480
 
481
+ # ========================================================================= #
482
+ # === handle_CSS
483
+ # ========================================================================= #
484
+ def handle_CSS
485
+ use_gtk_paradise_project_css_file
486
+ use_project_css_file
487
+ apply_the_CSS
488
+ end
489
+
481
490
  # ========================================================================= #
482
491
  # === do_generate_a_random_sequence
492
+ #
493
+ # This is the method that will be run whenever a new random aminoacid
494
+ # sequence is to be generated.
483
495
  # ========================================================================= #
484
496
  def do_generate_a_random_sequence(
485
497
  n_aminoacids = :default
@@ -521,18 +533,14 @@ class RandomSequence < ::Gtk::Box # === Bioroebe::GUI::Gtk::RandomSequence
521
533
  # list-store.
522
534
  # ======================================================================= #
523
535
  array = array1.zip(array2) # Zip it up with 0-values here.
536
+ # ======================================================================= #
537
+ # Next, populate the liststore with the new data - since as of July
538
+ # 2022 we will sort it based on most aminoacids though:
539
+ # ======================================================================= #
540
+ array = array.sort_by {|a, b| b }.reverse # This sorts by highest first.
524
541
  ::Gtk.populate_this_liststore(@list_store, array)
525
542
  end
526
543
 
527
- # ========================================================================= #
528
- # === handle_CSS
529
- # ========================================================================= #
530
- def handle_CSS
531
- use_gtk_paradise_project_css_file
532
- use_project_css_file
533
- apply_the_CSS
534
- end
535
-
536
544
  # ========================================================================= #
537
545
  # === run
538
546
  # ========================================================================= #
@@ -0,0 +1,165 @@
1
+ include Java
2
+
3
+ java_import javax.swing.JButton
4
+ java_import javax.swing.JFrame
5
+ java_import javax.swing.JLabel
6
+ java_import javax.swing.JPanel
7
+ java_import javax.swing.JTextArea
8
+ java_import javax.swing.JScrollBar
9
+ java_import javax.swing.JTextField
10
+ java_import javax.swing.JSpinner
11
+ java_import javax.swing.SpinnerNumberModel
12
+ java_import javax.swing.border.Border;
13
+ java_import java.lang.System
14
+ java_import java.awt.Font
15
+
16
+ module Bioroebe
17
+
18
+ module GUI
19
+
20
+ module Jruby
21
+
22
+ class Alignment < JFrame
23
+
24
+ require 'bioroebe/gui/shared_code/alignment/alignment_module.rb'
25
+ include Bioroebe::GUI::AlignmentModule
26
+
27
+ include ::Colours
28
+
29
+ require 'swing_paradise/awt/color.rb'
30
+ include SwingParadise::AWT
31
+
32
+ require 'swing_paradise/toplevel_methods/misc.rb'
33
+ include SwingParadise
34
+
35
+ require 'simple_widgets/simple_widgets.rb'
36
+ include SimpleWidgets
37
+ SimpleWidgets.use :jruby
38
+
39
+ # ========================================================================= #
40
+ # === LARGE_FONT
41
+ # ========================================================================= #
42
+ LARGE_FONT = Font.new('Sans serif', Font::PLAIN, 28)
43
+
44
+ # ========================================================================= #
45
+ # === MEDIUM_FONT
46
+ # ========================================================================= #
47
+ MEDIUM_FONT = Font.new('Sans serif', Font::PLAIN, 25)
48
+
49
+ # ========================================================================= #
50
+ # === MEDIUM_FONT_MONOSPACE
51
+ # ========================================================================= #
52
+ MEDIUM_FONT_MONOSPACE = Font.new('Monospace', Font::PLAIN, 25)
53
+
54
+ # ========================================================================= #
55
+ # === SMALL_FONT
56
+ # ========================================================================= #
57
+ SMALL_FONT = Font.new('Sans serif', Font::PLAIN, 22)
58
+
59
+ # ========================================================================= #
60
+ # === initialize
61
+ # ========================================================================= #
62
+ def initialize(
63
+ run_already = true
64
+ )
65
+ reset
66
+ run if run_already
67
+ end
68
+
69
+ # ========================================================================= #
70
+ # === reset (reset tag)
71
+ # ========================================================================= #
72
+ def reset
73
+ reset_the_internal_variables
74
+ reset_the_alignment_object
75
+ # reset_the_shared_module
76
+ end
77
+
78
+ # ========================================================================= #
79
+ # === run
80
+ # ========================================================================= #
81
+ def run
82
+ frame = jframe(TITLE)
83
+ panel = JPanel.new # This is an instance of Java::JavaxSwing::JPanel.
84
+ panel.set_font(MEDIUM_FONT)
85
+ frame.getContentPane.add(panel)
86
+ panel.no_layout
87
+ panel.hint = 'A Panel container'
88
+
89
+ label1 = jlabel(TEXT_INPUT_THE_SEQUENCES)
90
+ label1.font = MEDIUM_FONT
91
+ label1.setBounds(5, 20, 820, 25) # x, y, width, height
92
+
93
+ # ======================================================================= #
94
+ # Add the text-area next.
95
+ # ======================================================================= #
96
+ @text_view = JTextArea.new
97
+ @text_view.font = SMALL_FONT
98
+
99
+ @text_view.setBorder(javax.swing.BorderFactory.createLineBorder(Color.black, 2))
100
+ @text_view.setBounds(10, 60, 720, 400) # x, y, width, height
101
+ @text_view.background = WHITE
102
+
103
+ # ======================================================================= #
104
+ # === @entry_consensus_sequence
105
+ # ======================================================================= #
106
+ @entry_consensus_sequence = JTextField.new
107
+ @entry_consensus_sequence.center if @entry_consensus_sequence.respond_to?(:center)
108
+ @entry_consensus_sequence.setBounds(10, 460, 720, 40) # x, y, width, height
109
+ @entry_consensus_sequence.font = MEDIUM_FONT_MONOSPACE
110
+ @entry_numbers = JTextField.new
111
+ @entry_numbers.setBounds(10, 500, 720, 40) # x, y, width, height
112
+ @entry_numbers.font = MEDIUM_FONT_MONOSPACE
113
+
114
+ create_the_buttons
115
+ panel << label1
116
+ panel << @text_view
117
+ panel << @entry_consensus_sequence
118
+ panel << @entry_numbers
119
+ panel << @button_do_analyse
120
+ panel << @button_quit
121
+
122
+ frame.exit_on_close
123
+ frame.width_height = 1200, 900
124
+ frame.top_left
125
+ frame.show_all
126
+ end
127
+
128
+ # ========================================================================= #
129
+ # === create_the_buttons (buttons tag)
130
+ # ========================================================================= #
131
+ def create_the_buttons
132
+ # ======================================================================= #
133
+ # === @button_quit
134
+ # ======================================================================= #
135
+ @button_quit = quit_button
136
+ @button_quit.setBounds(130, 650, 300, 50)
137
+ @button_quit.hint = 'Click this button to quit the application.'
138
+ @button_quit.on_clicked {
139
+ do_quit
140
+ }
141
+ @button_do_analyse = button('Do analyse')
142
+ @button_do_analyse.setBounds(130, 600, 300, 44)
143
+ @button_do_analyse.on_clicked {
144
+ do_analyse
145
+ realign_the_numbers_showing_how_long_the_consensus_sequence_is
146
+ }
147
+ end
148
+
149
+ # ========================================================================= #
150
+ # === do_analyse
151
+ # ========================================================================= #
152
+ def do_analyse(
153
+ _ = @text_view.text?
154
+ )
155
+ _.strip!
156
+ @alignment.use_this_as_input(_)
157
+ consensus_sequence = return_the_consensus_sequence
158
+ @entry_consensus_sequence.set_text(consensus_sequence)
159
+ end
160
+
161
+ end; end; end; end
162
+
163
+ if __FILE__ == $PROGRAM_NAME
164
+ Bioroebe::GUI::Jruby::Alignment.new
165
+ end
@@ -4,6 +4,8 @@
4
4
  # =========================================================================== #
5
5
  # === Bioroebe::GUI::LibUI::Alignment
6
6
  # =========================================================================== #
7
+ # require 'bioroebe/gui/libui/alignment/alignment.rb'
8
+ # =========================================================================== #
7
9
  require 'bioroebe/constants/GUIs.rb'
8
10
 
9
11
  module Bioroebe
@@ -79,7 +81,6 @@ module Alignment # === Bioroebe::GUI::LibUI::Alignment
79
81
  @button_do_analyse.on_clicked {
80
82
  do_analyse
81
83
  }
82
-
83
84
  outer_vbox << @button_do_analyse
84
85
  outer_vbox << @entry_consensus_sequence
85
86
  main_window.child = outer_vbox
@@ -105,6 +106,7 @@ module Alignment # === Bioroebe::GUI::LibUI::Alignment
105
106
  object = Object.new
106
107
  object.extend(Alignment)
107
108
  object.reset_then_run
109
+ return object
108
110
  end
109
111
 
110
112
  end; end; end; end