bioroebe 0.10.80 → 0.11.32

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 (210) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3209 -2618
  3. data/bin/bioroebe +7 -1
  4. data/bioroebe.gemspec +3 -3
  5. data/doc/README.gen +3208 -2617
  6. data/doc/quality_control/commandline_applications.md +3 -3
  7. data/doc/todo/bioroebe_todo.md +2040 -2615
  8. data/lib/bioroebe/aminoacids/aminoacid_substitution.rb +1 -9
  9. data/lib/bioroebe/aminoacids/codon_percentage.rb +1 -9
  10. data/lib/bioroebe/aminoacids/deduce_aminoacid_sequence.rb +1 -9
  11. data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
  12. data/lib/bioroebe/aminoacids/show_hydrophobicity.rb +1 -6
  13. data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
  14. data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +13 -11
  15. data/lib/bioroebe/base/commandline_application/misc.rb +26 -9
  16. data/lib/bioroebe/base/commandline_application/opn.rb +8 -8
  17. data/lib/bioroebe/base/commandline_application/reset.rb +3 -2
  18. data/lib/bioroebe/base/misc.rb +35 -0
  19. data/lib/bioroebe/base/prototype/misc.rb +11 -1
  20. data/lib/bioroebe/codon_tables/frequencies/parse_frequency_table.rb +2 -10
  21. data/lib/bioroebe/codons/possible_codons_for_this_aminoacid.rb +1 -9
  22. data/lib/bioroebe/codons/show_codon_tables.rb +6 -2
  23. data/lib/bioroebe/codons/show_codon_usage.rb +2 -1
  24. data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
  25. data/lib/bioroebe/constants/database_constants.rb +1 -1
  26. data/lib/bioroebe/constants/files_and_directories.rb +31 -4
  27. data/lib/bioroebe/constants/misc.rb +20 -0
  28. data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
  29. data/lib/bioroebe/crystal/README.md +2 -0
  30. data/lib/bioroebe/crystal/to_rna.cr +19 -0
  31. data/lib/bioroebe/data/README.md +11 -8
  32. data/lib/bioroebe/data/electron_microscopy/pos_example.pos +396 -0
  33. data/lib/bioroebe/data/electron_microscopy/test_particles.star +36 -0
  34. data/lib/bioroebe/electron_microscopy/coordinate_analyzer.rb +15 -18
  35. data/lib/bioroebe/{fasta_and_fastq/parse_fasta/run.rb → electron_microscopy/electron_microscopy_module.rb} +16 -8
  36. data/lib/bioroebe/electron_microscopy/fix_pos_file.rb +1 -9
  37. data/lib/bioroebe/electron_microscopy/flipy.rb +83 -0
  38. data/lib/bioroebe/electron_microscopy/parse_coordinates.rb +2 -10
  39. data/lib/bioroebe/electron_microscopy/read_file_xmd.rb +1 -9
  40. data/lib/bioroebe/electron_microscopy/simple_star_file_generator.rb +4 -9
  41. data/lib/bioroebe/fasta_and_fastq/autocorrect_the_name_of_this_fasta_file.rb +1 -9
  42. data/lib/bioroebe/fasta_and_fastq/compact_fasta_file/compact_fasta_file.rb +7 -9
  43. data/lib/bioroebe/fasta_and_fastq/fasta_defline/fasta_defline.rb +1 -5
  44. data/lib/bioroebe/fasta_and_fastq/fasta_to_yaml/fasta_to_yaml.rb +81 -0
  45. data/lib/bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb +1460 -7
  46. data/lib/bioroebe/fasta_and_fastq/return_fasta_subsection_of_this_file.rb +11 -2
  47. data/lib/bioroebe/fasta_and_fastq/show_fasta_headers.rb +27 -12
  48. data/lib/bioroebe/fasta_and_fastq/simplify_fasta_header/simplify_fasta_header.rb +1 -5
  49. data/lib/bioroebe/fasta_and_fastq/split_this_fasta_file_into_chromosomes/constants.rb +0 -5
  50. data/lib/bioroebe/genome/README.md +4 -0
  51. data/lib/bioroebe/genome/genome.rb +67 -0
  52. data/lib/bioroebe/genomes/genome_pattern.rb +3 -9
  53. data/lib/bioroebe/gui/gtk +1 -0
  54. data/lib/bioroebe/gui/gtk3/controller/controller.rb +45 -27
  55. data/lib/bioroebe/gui/gtk3/dna_to_aminoacid_widget/dna_to_aminoacid_widget.rb +76 -50
  56. data/lib/bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb +99 -21
  57. data/lib/bioroebe/gui/gtk3/hamming_distance/hamming_distance.rb +42 -28
  58. data/lib/bioroebe/gui/gtk3/nucleotide_analyser/nucleotide_analyser.rb +119 -71
  59. data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +18 -18
  60. data/lib/bioroebe/gui/gtk3/random_sequence/random_sequence.rb +19 -11
  61. data/lib/bioroebe/gui/libui/three_to_one/three_to_one.rb +8 -6
  62. data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
  63. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$1.class +0 -0
  64. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$CloseListener.class +0 -0
  65. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.class +0 -0
  66. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.java +141 -0
  67. data/lib/bioroebe/java/README.md +4 -0
  68. data/lib/bioroebe/java/bioroebe/Sequence.java +25 -1
  69. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Base.class +0 -0
  70. data/lib/bioroebe/java/bioroebe/{Base.java → src/main/java/bioroebe/Base.java} +15 -2
  71. data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.class → src/main/java/bioroebe/BisulfiteTreatment.class} +0 -0
  72. data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.java → src/main/java/bioroebe/BisulfiteTreatment.java} +0 -0
  73. data/lib/bioroebe/java/bioroebe/{Codons.class → src/main/java/bioroebe/Codons.class} +0 -0
  74. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Codons.java +34 -0
  75. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.class +0 -0
  76. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.java +95 -0
  77. data/lib/bioroebe/java/bioroebe/{Esystem.class → src/main/java/bioroebe/Esystem.class} +0 -0
  78. data/lib/bioroebe/java/bioroebe/{Esystem.java → src/main/java/bioroebe/Esystem.java} +0 -0
  79. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.class → src/main/java/bioroebe/GenerateRandomDnaSequence.class} +0 -0
  80. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.java → src/main/java/bioroebe/GenerateRandomDnaSequence.java} +8 -2
  81. data/lib/bioroebe/java/bioroebe/{IsPalindrome.class → src/main/java/bioroebe/IsPalindrome.class} +0 -0
  82. data/lib/bioroebe/java/bioroebe/{IsPalindrome.java → src/main/java/bioroebe/IsPalindrome.java} +5 -1
  83. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.class +0 -0
  84. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.java +56 -0
  85. data/lib/bioroebe/java/bioroebe/{RemoveFile.class → src/main/java/bioroebe/RemoveFile.class} +0 -0
  86. data/lib/bioroebe/java/bioroebe/{RemoveFile.java → src/main/java/bioroebe/RemoveFile.java} +10 -4
  87. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.class → src/main/java/bioroebe/RemoveNumbers.class} +0 -0
  88. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.java → src/main/java/bioroebe/RemoveNumbers.java} +1 -0
  89. data/lib/bioroebe/java/bioroebe/{ToCamelcase.class → src/main/java/bioroebe/ToCamelcase.class} +0 -0
  90. data/lib/bioroebe/java/bioroebe/{ToCamelcase.java → src/main/java/bioroebe/ToCamelcase.java} +3 -3
  91. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.class +0 -0
  92. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.java +42 -0
  93. data/lib/bioroebe/java/bioroebe/toplevel_methods/BaseComposition.class +0 -0
  94. data/lib/bioroebe/java/bioroebe/toplevel_methods/BaseComposition.java +73 -0
  95. data/lib/bioroebe/misc/ruler.rb +1 -0
  96. data/lib/bioroebe/nucleotides/most_likely_nucleotide_sequence_for_this_aminoacid_sequence.rb +1 -9
  97. data/lib/bioroebe/nucleotides/show_nucleotide_sequence.rb +7 -7
  98. data/lib/bioroebe/parsers/genbank_parser.rb +347 -26
  99. data/lib/bioroebe/parsers/gff.rb +1 -9
  100. data/lib/bioroebe/patterns/scan_for_repeat.rb +1 -5
  101. data/lib/bioroebe/pdb/fetch_fasta_sequence_from_pdb.rb +1 -9
  102. data/lib/bioroebe/pdb/parse_mmCIF_file.rb +1 -9
  103. data/lib/bioroebe/pdb/parse_pdb_file.rb +1 -9
  104. data/lib/bioroebe/project/project.rb +1 -1
  105. data/lib/bioroebe/python/README.md +1 -0
  106. data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
  107. data/lib/bioroebe/python/gui/gtk3/all_in_one.css +4 -0
  108. data/lib/bioroebe/python/gui/gtk3/all_in_one.py +59 -0
  109. data/lib/bioroebe/python/gui/gtk3/widget1.py +20 -0
  110. data/lib/bioroebe/python/gui/tkinter/all_in_one.py +91 -0
  111. data/lib/bioroebe/python/mymodule.py +8 -0
  112. data/lib/bioroebe/python/protein_to_dna.py +33 -0
  113. data/lib/bioroebe/python/shell/shell.py +19 -0
  114. data/lib/bioroebe/python/to_rna.py +14 -0
  115. data/lib/bioroebe/python/toplevel_methods/esystem.py +12 -0
  116. data/lib/bioroebe/python/toplevel_methods/open_in_browser.py +20 -0
  117. data/lib/bioroebe/python/toplevel_methods/palindromes.py +42 -0
  118. data/lib/bioroebe/python/toplevel_methods/rds.py +13 -0
  119. data/lib/bioroebe/python/toplevel_methods/shuffleseq.py +23 -0
  120. data/lib/bioroebe/python/toplevel_methods/three_delimiter.py +37 -0
  121. data/lib/bioroebe/python/toplevel_methods/time_and_date.py +43 -0
  122. data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +21 -0
  123. data/lib/bioroebe/requires/require_the_bioroebe_project.rb +3 -1
  124. data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
  125. data/lib/bioroebe/sequence/protein.rb +105 -3
  126. data/lib/bioroebe/sequence/sequence.rb +61 -2
  127. data/lib/bioroebe/shell/menu.rb +3819 -3713
  128. data/lib/bioroebe/shell/misc.rb +51 -4311
  129. data/lib/bioroebe/shell/readline/readline.rb +1 -1
  130. data/lib/bioroebe/shell/shell.rb +11250 -28
  131. data/lib/bioroebe/siRNA/siRNA.rb +81 -1
  132. data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
  133. data/lib/bioroebe/string_matching/hamming_distance.rb +1 -9
  134. data/lib/bioroebe/taxonomy/class_methods.rb +3 -8
  135. data/lib/bioroebe/taxonomy/constants.rb +4 -3
  136. data/lib/bioroebe/taxonomy/edit.rb +2 -1
  137. data/lib/bioroebe/taxonomy/help/help.rb +10 -10
  138. data/lib/bioroebe/taxonomy/info/check_available.rb +15 -9
  139. data/lib/bioroebe/taxonomy/info/info.rb +18 -11
  140. data/lib/bioroebe/taxonomy/info/is_dna.rb +46 -36
  141. data/lib/bioroebe/taxonomy/interactive.rb +140 -104
  142. data/lib/bioroebe/taxonomy/menu.rb +27 -18
  143. data/lib/bioroebe/taxonomy/parse_fasta.rb +3 -1
  144. data/lib/bioroebe/taxonomy/shared.rb +1 -0
  145. data/lib/bioroebe/taxonomy/taxonomy.rb +1 -0
  146. data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
  147. data/lib/bioroebe/toplevel_methods/colourize_related_methods.rb +164 -0
  148. data/lib/bioroebe/toplevel_methods/databases.rb +1 -1
  149. data/lib/bioroebe/toplevel_methods/fasta_and_fastq.rb +107 -63
  150. data/lib/bioroebe/toplevel_methods/file_and_directory_related_actions.rb +14 -2
  151. data/lib/bioroebe/toplevel_methods/misc.rb +118 -11
  152. data/lib/bioroebe/toplevel_methods/nucleotides.rb +22 -5
  153. data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
  154. data/lib/bioroebe/toplevel_methods/palindromes.rb +1 -2
  155. data/lib/bioroebe/toplevel_methods/taxonomy.rb +2 -2
  156. data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
  157. data/lib/bioroebe/utility_scripts/align_open_reading_frames.rb +1 -9
  158. data/lib/bioroebe/utility_scripts/check_for_mismatches/check_for_mismatches.rb +1 -9
  159. data/lib/bioroebe/utility_scripts/compacter.rb +1 -9
  160. data/lib/bioroebe/utility_scripts/compseq/compseq.rb +1 -9
  161. data/lib/bioroebe/utility_scripts/create_batch_entrez_file.rb +1 -9
  162. data/lib/bioroebe/utility_scripts/dot_alignment.rb +1 -9
  163. data/lib/bioroebe/utility_scripts/move_file_to_its_correct_location.rb +1 -4
  164. data/lib/bioroebe/utility_scripts/showorf/constants.rb +0 -5
  165. data/lib/bioroebe/utility_scripts/showorf/reset.rb +1 -4
  166. data/lib/bioroebe/version/version.rb +2 -2
  167. data/lib/bioroebe/www/embeddable_interface.rb +101 -52
  168. data/lib/bioroebe/www/sinatra/sinatra.rb +186 -70
  169. data/lib/bioroebe/yaml/aminoacids/amino_acids_long_name_to_one_letter.yml +2 -2
  170. data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
  171. data/lib/bioroebe/yaml/genomes/README.md +3 -4
  172. data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +3 -3
  173. metadata +69 -64
  174. data/doc/setup.rb +0 -1655
  175. data/lib/bioroebe/fasta_and_fastq/parse_fasta/constants.rb +0 -50
  176. data/lib/bioroebe/fasta_and_fastq/parse_fasta/initialize.rb +0 -86
  177. data/lib/bioroebe/fasta_and_fastq/parse_fasta/menu.rb +0 -117
  178. data/lib/bioroebe/fasta_and_fastq/parse_fasta/misc.rb +0 -981
  179. data/lib/bioroebe/fasta_and_fastq/parse_fasta/report.rb +0 -156
  180. data/lib/bioroebe/fasta_and_fastq/parse_fasta/reset.rb +0 -128
  181. data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
  182. data/lib/bioroebe/java/bioroebe/Base.class +0 -0
  183. data/lib/bioroebe/java/bioroebe/Codons.java +0 -22
  184. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.class +0 -0
  185. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.java +0 -19
  186. data/lib/bioroebe/java/bioroebe.jar +0 -0
  187. data/lib/bioroebe/shell/add.rb +0 -108
  188. data/lib/bioroebe/shell/assign.rb +0 -360
  189. data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
  190. data/lib/bioroebe/shell/constants.rb +0 -166
  191. data/lib/bioroebe/shell/download.rb +0 -335
  192. data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
  193. data/lib/bioroebe/shell/enzymes.rb +0 -310
  194. data/lib/bioroebe/shell/fasta.rb +0 -345
  195. data/lib/bioroebe/shell/gtk.rb +0 -76
  196. data/lib/bioroebe/shell/history.rb +0 -132
  197. data/lib/bioroebe/shell/initialize.rb +0 -217
  198. data/lib/bioroebe/shell/loop.rb +0 -74
  199. data/lib/bioroebe/shell/prompt.rb +0 -107
  200. data/lib/bioroebe/shell/random.rb +0 -289
  201. data/lib/bioroebe/shell/reset.rb +0 -335
  202. data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
  203. data/lib/bioroebe/shell/search.rb +0 -337
  204. data/lib/bioroebe/shell/sequences.rb +0 -200
  205. data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
  206. data/lib/bioroebe/shell/startup.rb +0 -127
  207. data/lib/bioroebe/shell/taxonomy.rb +0 -14
  208. data/lib/bioroebe/shell/tk.rb +0 -23
  209. data/lib/bioroebe/shell/user_input.rb +0 -88
  210. data/lib/bioroebe/shell/xorg.rb +0 -45
@@ -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,6 +310,7 @@ 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
315
  r.automatic_size_then_automatic_title
238
316
  r.top_left_then_run
@@ -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
  # ========================================================================= #