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.
- checksums.yaml +4 -4
- data/README.md +3209 -2618
- data/bin/bioroebe +7 -1
- data/bioroebe.gemspec +3 -3
- data/doc/README.gen +3208 -2617
- data/doc/quality_control/commandline_applications.md +3 -3
- data/doc/todo/bioroebe_todo.md +2040 -2615
- data/lib/bioroebe/aminoacids/aminoacid_substitution.rb +1 -9
- data/lib/bioroebe/aminoacids/codon_percentage.rb +1 -9
- data/lib/bioroebe/aminoacids/deduce_aminoacid_sequence.rb +1 -9
- data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
- data/lib/bioroebe/aminoacids/show_hydrophobicity.rb +1 -6
- data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
- data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +13 -11
- data/lib/bioroebe/base/commandline_application/misc.rb +26 -9
- data/lib/bioroebe/base/commandline_application/opn.rb +8 -8
- data/lib/bioroebe/base/commandline_application/reset.rb +3 -2
- data/lib/bioroebe/base/misc.rb +35 -0
- data/lib/bioroebe/base/prototype/misc.rb +11 -1
- data/lib/bioroebe/codon_tables/frequencies/parse_frequency_table.rb +2 -10
- data/lib/bioroebe/codons/possible_codons_for_this_aminoacid.rb +1 -9
- data/lib/bioroebe/codons/show_codon_tables.rb +6 -2
- data/lib/bioroebe/codons/show_codon_usage.rb +2 -1
- data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
- data/lib/bioroebe/constants/database_constants.rb +1 -1
- data/lib/bioroebe/constants/files_and_directories.rb +31 -4
- data/lib/bioroebe/constants/misc.rb +20 -0
- data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
- data/lib/bioroebe/crystal/README.md +2 -0
- data/lib/bioroebe/crystal/to_rna.cr +19 -0
- data/lib/bioroebe/data/README.md +11 -8
- data/lib/bioroebe/data/electron_microscopy/pos_example.pos +396 -0
- data/lib/bioroebe/data/electron_microscopy/test_particles.star +36 -0
- data/lib/bioroebe/electron_microscopy/coordinate_analyzer.rb +15 -18
- data/lib/bioroebe/{fasta_and_fastq/parse_fasta/run.rb → electron_microscopy/electron_microscopy_module.rb} +16 -8
- data/lib/bioroebe/electron_microscopy/fix_pos_file.rb +1 -9
- data/lib/bioroebe/electron_microscopy/flipy.rb +83 -0
- data/lib/bioroebe/electron_microscopy/parse_coordinates.rb +2 -10
- data/lib/bioroebe/electron_microscopy/read_file_xmd.rb +1 -9
- data/lib/bioroebe/electron_microscopy/simple_star_file_generator.rb +4 -9
- data/lib/bioroebe/fasta_and_fastq/autocorrect_the_name_of_this_fasta_file.rb +1 -9
- data/lib/bioroebe/fasta_and_fastq/compact_fasta_file/compact_fasta_file.rb +7 -9
- data/lib/bioroebe/fasta_and_fastq/fasta_defline/fasta_defline.rb +1 -5
- data/lib/bioroebe/fasta_and_fastq/fasta_to_yaml/fasta_to_yaml.rb +81 -0
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb +1460 -7
- data/lib/bioroebe/fasta_and_fastq/return_fasta_subsection_of_this_file.rb +11 -2
- data/lib/bioroebe/fasta_and_fastq/show_fasta_headers.rb +27 -12
- data/lib/bioroebe/fasta_and_fastq/simplify_fasta_header/simplify_fasta_header.rb +1 -5
- data/lib/bioroebe/fasta_and_fastq/split_this_fasta_file_into_chromosomes/constants.rb +0 -5
- data/lib/bioroebe/genome/README.md +4 -0
- data/lib/bioroebe/genome/genome.rb +67 -0
- data/lib/bioroebe/genomes/genome_pattern.rb +3 -9
- data/lib/bioroebe/gui/gtk +1 -0
- data/lib/bioroebe/gui/gtk3/controller/controller.rb +45 -27
- data/lib/bioroebe/gui/gtk3/dna_to_aminoacid_widget/dna_to_aminoacid_widget.rb +76 -50
- data/lib/bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb +99 -21
- data/lib/bioroebe/gui/gtk3/hamming_distance/hamming_distance.rb +42 -28
- data/lib/bioroebe/gui/gtk3/nucleotide_analyser/nucleotide_analyser.rb +119 -71
- data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +18 -18
- data/lib/bioroebe/gui/gtk3/random_sequence/random_sequence.rb +19 -11
- data/lib/bioroebe/gui/libui/three_to_one/three_to_one.rb +8 -6
- data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
- data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$1.class +0 -0
- data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$CloseListener.class +0 -0
- data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.class +0 -0
- data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.java +141 -0
- data/lib/bioroebe/java/README.md +4 -0
- data/lib/bioroebe/java/bioroebe/Sequence.java +25 -1
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Base.class +0 -0
- data/lib/bioroebe/java/bioroebe/{Base.java → src/main/java/bioroebe/Base.java} +15 -2
- data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.class → src/main/java/bioroebe/BisulfiteTreatment.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.java → src/main/java/bioroebe/BisulfiteTreatment.java} +0 -0
- data/lib/bioroebe/java/bioroebe/{Codons.class → src/main/java/bioroebe/Codons.class} +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Codons.java +34 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.java +95 -0
- data/lib/bioroebe/java/bioroebe/{Esystem.class → src/main/java/bioroebe/Esystem.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{Esystem.java → src/main/java/bioroebe/Esystem.java} +0 -0
- data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.class → src/main/java/bioroebe/GenerateRandomDnaSequence.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.java → src/main/java/bioroebe/GenerateRandomDnaSequence.java} +8 -2
- data/lib/bioroebe/java/bioroebe/{IsPalindrome.class → src/main/java/bioroebe/IsPalindrome.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{IsPalindrome.java → src/main/java/bioroebe/IsPalindrome.java} +5 -1
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.java +56 -0
- data/lib/bioroebe/java/bioroebe/{RemoveFile.class → src/main/java/bioroebe/RemoveFile.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{RemoveFile.java → src/main/java/bioroebe/RemoveFile.java} +10 -4
- data/lib/bioroebe/java/bioroebe/{RemoveNumbers.class → src/main/java/bioroebe/RemoveNumbers.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{RemoveNumbers.java → src/main/java/bioroebe/RemoveNumbers.java} +1 -0
- data/lib/bioroebe/java/bioroebe/{ToCamelcase.class → src/main/java/bioroebe/ToCamelcase.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{ToCamelcase.java → src/main/java/bioroebe/ToCamelcase.java} +3 -3
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.java +42 -0
- data/lib/bioroebe/java/bioroebe/toplevel_methods/BaseComposition.class +0 -0
- data/lib/bioroebe/java/bioroebe/toplevel_methods/BaseComposition.java +73 -0
- data/lib/bioroebe/misc/ruler.rb +1 -0
- data/lib/bioroebe/nucleotides/most_likely_nucleotide_sequence_for_this_aminoacid_sequence.rb +1 -9
- data/lib/bioroebe/nucleotides/show_nucleotide_sequence.rb +7 -7
- data/lib/bioroebe/parsers/genbank_parser.rb +347 -26
- data/lib/bioroebe/parsers/gff.rb +1 -9
- data/lib/bioroebe/patterns/scan_for_repeat.rb +1 -5
- data/lib/bioroebe/pdb/fetch_fasta_sequence_from_pdb.rb +1 -9
- data/lib/bioroebe/pdb/parse_mmCIF_file.rb +1 -9
- data/lib/bioroebe/pdb/parse_pdb_file.rb +1 -9
- data/lib/bioroebe/project/project.rb +1 -1
- data/lib/bioroebe/python/README.md +1 -0
- data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
- data/lib/bioroebe/python/gui/gtk3/all_in_one.css +4 -0
- data/lib/bioroebe/python/gui/gtk3/all_in_one.py +59 -0
- data/lib/bioroebe/python/gui/gtk3/widget1.py +20 -0
- data/lib/bioroebe/python/gui/tkinter/all_in_one.py +91 -0
- data/lib/bioroebe/python/mymodule.py +8 -0
- data/lib/bioroebe/python/protein_to_dna.py +33 -0
- data/lib/bioroebe/python/shell/shell.py +19 -0
- data/lib/bioroebe/python/to_rna.py +14 -0
- data/lib/bioroebe/python/toplevel_methods/esystem.py +12 -0
- data/lib/bioroebe/python/toplevel_methods/open_in_browser.py +20 -0
- data/lib/bioroebe/python/toplevel_methods/palindromes.py +42 -0
- data/lib/bioroebe/python/toplevel_methods/rds.py +13 -0
- data/lib/bioroebe/python/toplevel_methods/shuffleseq.py +23 -0
- data/lib/bioroebe/python/toplevel_methods/three_delimiter.py +37 -0
- data/lib/bioroebe/python/toplevel_methods/time_and_date.py +43 -0
- data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +21 -0
- data/lib/bioroebe/requires/require_the_bioroebe_project.rb +3 -1
- data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
- data/lib/bioroebe/sequence/protein.rb +105 -3
- data/lib/bioroebe/sequence/sequence.rb +61 -2
- data/lib/bioroebe/shell/menu.rb +3819 -3713
- data/lib/bioroebe/shell/misc.rb +51 -4311
- data/lib/bioroebe/shell/readline/readline.rb +1 -1
- data/lib/bioroebe/shell/shell.rb +11250 -28
- data/lib/bioroebe/siRNA/siRNA.rb +81 -1
- data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
- data/lib/bioroebe/string_matching/hamming_distance.rb +1 -9
- data/lib/bioroebe/taxonomy/class_methods.rb +3 -8
- data/lib/bioroebe/taxonomy/constants.rb +4 -3
- data/lib/bioroebe/taxonomy/edit.rb +2 -1
- data/lib/bioroebe/taxonomy/help/help.rb +10 -10
- data/lib/bioroebe/taxonomy/info/check_available.rb +15 -9
- data/lib/bioroebe/taxonomy/info/info.rb +18 -11
- data/lib/bioroebe/taxonomy/info/is_dna.rb +46 -36
- data/lib/bioroebe/taxonomy/interactive.rb +140 -104
- data/lib/bioroebe/taxonomy/menu.rb +27 -18
- data/lib/bioroebe/taxonomy/parse_fasta.rb +3 -1
- data/lib/bioroebe/taxonomy/shared.rb +1 -0
- data/lib/bioroebe/taxonomy/taxonomy.rb +1 -0
- data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
- data/lib/bioroebe/toplevel_methods/colourize_related_methods.rb +164 -0
- data/lib/bioroebe/toplevel_methods/databases.rb +1 -1
- data/lib/bioroebe/toplevel_methods/fasta_and_fastq.rb +107 -63
- data/lib/bioroebe/toplevel_methods/file_and_directory_related_actions.rb +14 -2
- data/lib/bioroebe/toplevel_methods/misc.rb +118 -11
- data/lib/bioroebe/toplevel_methods/nucleotides.rb +22 -5
- data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
- data/lib/bioroebe/toplevel_methods/palindromes.rb +1 -2
- data/lib/bioroebe/toplevel_methods/taxonomy.rb +2 -2
- data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
- data/lib/bioroebe/utility_scripts/align_open_reading_frames.rb +1 -9
- data/lib/bioroebe/utility_scripts/check_for_mismatches/check_for_mismatches.rb +1 -9
- data/lib/bioroebe/utility_scripts/compacter.rb +1 -9
- data/lib/bioroebe/utility_scripts/compseq/compseq.rb +1 -9
- data/lib/bioroebe/utility_scripts/create_batch_entrez_file.rb +1 -9
- data/lib/bioroebe/utility_scripts/dot_alignment.rb +1 -9
- data/lib/bioroebe/utility_scripts/move_file_to_its_correct_location.rb +1 -4
- data/lib/bioroebe/utility_scripts/showorf/constants.rb +0 -5
- data/lib/bioroebe/utility_scripts/showorf/reset.rb +1 -4
- data/lib/bioroebe/version/version.rb +2 -2
- data/lib/bioroebe/www/embeddable_interface.rb +101 -52
- data/lib/bioroebe/www/sinatra/sinatra.rb +186 -70
- data/lib/bioroebe/yaml/aminoacids/amino_acids_long_name_to_one_letter.yml +2 -2
- data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
- data/lib/bioroebe/yaml/genomes/README.md +3 -4
- data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +3 -3
- metadata +69 -64
- data/doc/setup.rb +0 -1655
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/constants.rb +0 -50
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/initialize.rb +0 -86
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/menu.rb +0 -117
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/misc.rb +0 -981
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/report.rb +0 -156
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/reset.rb +0 -128
- data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
- data/lib/bioroebe/java/bioroebe/Base.class +0 -0
- data/lib/bioroebe/java/bioroebe/Codons.java +0 -22
- data/lib/bioroebe/java/bioroebe/PartnerNucleotide.class +0 -0
- data/lib/bioroebe/java/bioroebe/PartnerNucleotide.java +0 -19
- data/lib/bioroebe/java/bioroebe.jar +0 -0
- data/lib/bioroebe/shell/add.rb +0 -108
- data/lib/bioroebe/shell/assign.rb +0 -360
- data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
- data/lib/bioroebe/shell/constants.rb +0 -166
- data/lib/bioroebe/shell/download.rb +0 -335
- data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
- data/lib/bioroebe/shell/enzymes.rb +0 -310
- data/lib/bioroebe/shell/fasta.rb +0 -345
- data/lib/bioroebe/shell/gtk.rb +0 -76
- data/lib/bioroebe/shell/history.rb +0 -132
- data/lib/bioroebe/shell/initialize.rb +0 -217
- data/lib/bioroebe/shell/loop.rb +0 -74
- data/lib/bioroebe/shell/prompt.rb +0 -107
- data/lib/bioroebe/shell/random.rb +0 -289
- data/lib/bioroebe/shell/reset.rb +0 -335
- data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
- data/lib/bioroebe/shell/search.rb +0 -337
- data/lib/bioroebe/shell/sequences.rb +0 -200
- data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
- data/lib/bioroebe/shell/startup.rb +0 -127
- data/lib/bioroebe/shell/taxonomy.rb +0 -14
- data/lib/bioroebe/shell/tk.rb +0 -23
- data/lib/bioroebe/shell/user_input.rb +0 -88
- 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__,
|
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
|
-
# ===
|
183
|
+
# === populate_the_list_store_with_the_default_dataset
|
174
184
|
# ========================================================================= #
|
175
|
-
def
|
176
|
-
|
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 =
|
248
|
+
@top_box = vbox
|
273
249
|
|
274
250
|
@label_on_top = bold_label(USE_THIS_TITLE)
|
275
|
-
@label_on_top.
|
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
|
-
|
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 =
|
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(@
|
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.
|
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.
|
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
|
46
|
+
WIDTH = '45% or minimum 1200px'
|
47
47
|
|
48
48
|
# ========================================================================= #
|
49
49
|
# === HEIGHT
|
50
50
|
# ========================================================================= #
|
51
|
-
HEIGHT =
|
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
|
# ========================================================================= #
|