bioroebe 0.10.80 → 0.11.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +507 -310
  3. data/bioroebe.gemspec +3 -3
  4. data/doc/README.gen +506 -309
  5. data/doc/todo/bioroebe_todo.md +29 -40
  6. data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
  7. data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
  8. data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +13 -11
  9. data/lib/bioroebe/base/commandline_application/misc.rb +18 -8
  10. data/lib/bioroebe/base/prototype/misc.rb +1 -1
  11. data/lib/bioroebe/codons/show_codon_tables.rb +6 -2
  12. data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
  13. data/lib/bioroebe/constants/files_and_directories.rb +8 -1
  14. data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
  15. data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +18 -18
  16. data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
  17. data/lib/bioroebe/parsers/genbank_parser.rb +353 -24
  18. data/lib/bioroebe/python/README.md +1 -0
  19. data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
  20. data/lib/bioroebe/python/gui/gtk3/widget1.py +22 -0
  21. data/lib/bioroebe/python/mymodule.py +8 -0
  22. data/lib/bioroebe/python/protein_to_dna.py +30 -0
  23. data/lib/bioroebe/python/shell/shell.py +19 -0
  24. data/lib/bioroebe/python/to_rna.py +14 -0
  25. data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +11 -0
  26. data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
  27. data/lib/bioroebe/sequence/sequence.rb +54 -2
  28. data/lib/bioroebe/shell/menu.rb +3336 -3304
  29. data/lib/bioroebe/shell/readline/readline.rb +1 -1
  30. data/lib/bioroebe/shell/shell.rb +11233 -28
  31. data/lib/bioroebe/siRNA/siRNA.rb +81 -1
  32. data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
  33. data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
  34. data/lib/bioroebe/toplevel_methods/nucleotides.rb +22 -5
  35. data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
  36. data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
  37. data/lib/bioroebe/version/version.rb +2 -2
  38. data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
  39. data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +3 -3
  40. metadata +17 -36
  41. data/doc/setup.rb +0 -1655
  42. data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
  43. data/lib/bioroebe/shell/add.rb +0 -108
  44. data/lib/bioroebe/shell/assign.rb +0 -360
  45. data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
  46. data/lib/bioroebe/shell/constants.rb +0 -166
  47. data/lib/bioroebe/shell/download.rb +0 -335
  48. data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
  49. data/lib/bioroebe/shell/enzymes.rb +0 -310
  50. data/lib/bioroebe/shell/fasta.rb +0 -345
  51. data/lib/bioroebe/shell/gtk.rb +0 -76
  52. data/lib/bioroebe/shell/history.rb +0 -132
  53. data/lib/bioroebe/shell/initialize.rb +0 -217
  54. data/lib/bioroebe/shell/loop.rb +0 -74
  55. data/lib/bioroebe/shell/misc.rb +0 -4341
  56. data/lib/bioroebe/shell/prompt.rb +0 -107
  57. data/lib/bioroebe/shell/random.rb +0 -289
  58. data/lib/bioroebe/shell/reset.rb +0 -335
  59. data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
  60. data/lib/bioroebe/shell/search.rb +0 -337
  61. data/lib/bioroebe/shell/sequences.rb +0 -200
  62. data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
  63. data/lib/bioroebe/shell/startup.rb +0 -127
  64. data/lib/bioroebe/shell/taxonomy.rb +0 -14
  65. data/lib/bioroebe/shell/tk.rb +0 -23
  66. data/lib/bioroebe/shell/user_input.rb +0 -88
  67. data/lib/bioroebe/shell/xorg.rb +0 -45
@@ -1,76 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # This file contains some GTK-related code, which allows us to load up
6
- # the gtk GUI section of the traditional commandline programs.
7
- # =========================================================================== #
8
- # require 'bioroebe/shell/gtk.rb'
9
- # =========================================================================== #
10
- module Bioroebe
11
-
12
- class Shell < ::Bioroebe::CommandlineApplication
13
-
14
- # ========================================================================= #
15
- # === load_gtk3_component_aminoacid_composition
16
- # ========================================================================= #
17
- def load_gtk3_component_aminoacid_composition
18
- require 'bioroebe/gui/gtk3/aminoacid_composition/aminoacid_composition.rb'
19
- Bioroebe::GUI::Gtk::AminoacidComposition.run(aminoacid_sequence?)
20
- end
21
-
22
- # ========================================================================= #
23
- # === load_gtk
24
- #
25
- # Load my gtk module.
26
- # ========================================================================= #
27
- def load_gtk
28
- begin
29
- require 'gtk_paradise/require_gtk3.rb'
30
- rescue LoadError; end
31
- end
32
-
33
- # ========================================================================= #
34
- # === enable_gtk
35
- #
36
- # This enables gtk.
37
- # ========================================================================= #
38
- def enable_gtk
39
- begin
40
- if ENV['IS_ROEBE'].to_s
41
- load_gtk
42
- # =================================================================== #
43
- # Pulling in the controller.rb file is enough to also require the
44
- # other GTK-GUI components of the Bioroebe project.
45
- # =================================================================== #
46
- require 'bioroebe/gui/gtk3/controller/controller.rb'
47
- end
48
- return ::Bioroebe.controller # This will instantiate a new GTK widget.
49
- rescue LoadError => error
50
- e 'Failed to load GTK-related files. Showing the specific error next:'
51
- pp error
52
- end
53
- end
54
-
55
- # ========================================================================= #
56
- # === start_gtk_controller
57
- # ========================================================================= #
58
- def start_gtk_controller
59
- require 'bioroebe/gui/gtk3/controller/controller.rb'
60
- ::Bioroebe.run_gtk_controller
61
- end
62
-
63
- # ========================================================================= #
64
- # === enable_gtk_section_antisensestrand
65
- # ========================================================================= #
66
- def enable_gtk_section_antisensestrand
67
- require 'bioroebe/gui/gtk3/anti_sense_strand/anti_sense_strand.rb'
68
- e 'Starting AntiSenseStrand ...'
69
- Bioroebe::GUI::Gtk::AntiSenseStrand.start_gui_application
70
- end
71
-
72
- end; end
73
-
74
- if __FILE__ == $PROGRAM_NAME
75
- Bioroebe::Shell.new.enable_gtk_section_antisensestrand
76
- end
@@ -1,132 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # Note that the word history means "user-inputted commands", in the
6
- # context of this file here.
7
- # =========================================================================== #
8
- # require 'bioroebe/shell/history.rb'
9
- # =========================================================================== #
10
- module Bioroebe
11
-
12
- class Shell < ::Bioroebe::CommandlineApplication
13
-
14
- # ========================================================================= #
15
- # === add_the_current_user_input_to_the_history
16
- # ========================================================================= #
17
- def add_the_current_user_input_to_the_history
18
- # ======================================================================= #
19
- # And add the user-input to the array that keeps track of it. This
20
- # has to be done through a specific method, which can do additional
21
- # checks before adding the user-input onto the history.
22
- # ======================================================================= #
23
- add_to_history(user_input?)
24
- end
25
-
26
- # ========================================================================= #
27
- # === array_history?
28
- #
29
- # Access the input-history of the bioshell.
30
- # ========================================================================= #
31
- def array_history?
32
- @internal_hash[:array_history]
33
- end
34
-
35
- # ========================================================================= #
36
- # === add_to_history
37
- #
38
- # This method should be used consistently whenever content is added onto
39
- # the history of the bioshell. Content in this context refers primarily
40
- # to user-submitted input.
41
- # ========================================================================= #
42
- def add_to_history(i = user_input?)
43
- if i.is_a? Array
44
- i.each {|entry| add_to_history(entry) }
45
- else
46
- i = i.to_s.chomp
47
- unless i.empty?
48
- if array_history? and array_history?.respond_to?(:last)
49
- last_history_element = array_history?.last # <- On startup there is no history, hence this check as safeguard.
50
- if last_history_element
51
- unless (last_history_element.strip == i.strip) # Only add if it is new input.
52
- array_history? << i
53
- if log_user_input?
54
- what = "#{i}#{N}"
55
- into = "#{bioshell_log_dir?}input_history.yml"
56
- append_what_into(what, into)
57
- end
58
- end
59
- else # This clause is valid for new entries.
60
- array_history? << i
61
- end
62
- end
63
- end
64
- end
65
- end
66
-
67
- # ========================================================================= #
68
- # === log_user_input?
69
- #
70
- # Delegate to the class method here, via this wrapper-method.
71
- # ========================================================================= #
72
- def log_user_input?
73
- ::Bioroebe::Configuration.log_user_input?
74
- end
75
-
76
- # ========================================================================= #
77
- # === verbose_save_history_to_file
78
- # ========================================================================= #
79
- def verbose_save_history_to_file
80
- erev 'We will next save the input-history into a file.'
81
- save_history_to_file
82
- end
83
-
84
- # ========================================================================= #
85
- # === save_history_to_file
86
- #
87
- # This method will save the history to a local file.
88
- # ========================================================================= #
89
- def save_history_to_file(
90
- dataset = array_history?[0..-2]
91
- )
92
- what = YAML.dump(dataset) # Save all but the last entry. Last entry will be "replay" usually.
93
- into = "#{log_dir?}replay_file.yml"
94
- write_what_into(what, into)
95
- end
96
-
97
- # ========================================================================= #
98
- # === last_inputted_command?
99
- #
100
- # This method will return the last user-inputted element.
101
- # ========================================================================= #
102
- def last_inputted_command?
103
- if array_history? and array_history?.respond_to?(:last)
104
- return array_history?.last
105
- end
106
- end
107
-
108
- # ========================================================================= #
109
- # === show_history (history tag)
110
- #
111
- # Method to show the history.
112
- # ========================================================================= #
113
- def show_history
114
- print_rev
115
- cliner {
116
- erev "Now showing the #{sfancy('history')}#{rev} of the BioShell:"
117
- }
118
- array_history = array_history?
119
- if array_history.empty?
120
- erev 'No input-history was used yet.'
121
- else
122
- array_history.each_with_index {|item, index|
123
- index += 1
124
- _ = ' - '.dup # Need to unfreeze the string.
125
- _ << ' ' if array_history.size > 9 and index.to_s.size < 2
126
- _ << '('+simp((index).to_s)+rev+') '+item.to_s
127
- erev _
128
- }
129
- end
130
- end
131
-
132
- end; end
@@ -1,217 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'bioroebe/shell/initialize.rb'
6
- # =========================================================================== #
7
- require 'bioroebe/base/commandline_application/commandline_application.rb'
8
-
9
- module Bioroebe
10
-
11
- class Shell < ::Bioroebe::CommandlineApplication
12
-
13
- require 'bioroebe/toplevel_methods/statistics.rb'
14
- require 'bioroebe/shell/startup.rb'
15
- require 'bioroebe/shell/readline/readline.rb' # ← Needed in this file here.
16
-
17
- # ========================================================================= #
18
- # === initialize
19
- # ========================================================================= #
20
- def initialize(
21
- i = ARGV
22
- )
23
- reset
24
- set_commandline_arguments(i)
25
- # ======================================================================= #
26
- # Intercept some important commandline arguments next.
27
- # ======================================================================= #
28
- case first?
29
- # ======================================================================= #
30
- # === bioshell --controller
31
- # ======================================================================= #
32
- when /^-?-?controller$/i
33
- require 'bioroebe/gui/gtk3/controller/controller.rb'
34
- ::Bioroebe.run_gtk_controller
35
- exit_program
36
- # ======================================================================= #
37
- # === bioshell --do-not-create-directories-on-startup
38
- # === bioshell --do-not-create-directories
39
- #
40
- # Do not create directories on startup.
41
- #
42
- # Invocation example:
43
- #
44
- # bioshell --do-not-create-directories-on-startup
45
- #
46
- # ======================================================================= #
47
- when /^-?-?do(-|_| )?not(-|_| )?create(-|_| )?directories(-|_| )?on(-|_| )?startup$/i,
48
- /^-?-?do(-|_| )?not(-|_| )?create(-|_| )?directories$/i
49
- @internal_hash[:create_directories_on_startup_of_the_shell] = false
50
- # ======================================================================= #
51
- # === bioroebe --protein-to-dna
52
- #
53
- # This entry point will try to start the ruby-gtk3 protein-to-DNA
54
- # converting widget.
55
- # ======================================================================= #
56
- when /^-?-?protein(-|_| )?to(-|_| )?dna$/i
57
- require 'bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb'
58
- ::Bioroebe::GUI::Gtk::ProteinToDNA.run_gtk3_widget
59
- exit
60
- # ======================================================================= #
61
- # === bioroebe --help
62
- #
63
- # This entry-point will quickly show which options are available for
64
- # the bioshell.
65
- # ======================================================================= #
66
- when /^-?-?help$/
67
- show_commandline_options
68
- # ======================================================================= #
69
- # === bioshell --permanently-disable-startup-intro
70
- # === bioshell --permanently-disable-startup-notice
71
- # === bioshell --permanently-no-startup-intro
72
- # === bioshell --permanently-no-startup-info
73
- # ======================================================================= #
74
- when /^-?-?permanently(-|_)?disable(-|_)?startup(-|_)?intro$/,
75
- /^-?-?permanently(-|_)?disable(-|_)?startup(-|_)?notice$/,
76
- /^-?-?permanently(-|_)?no(-|_)?startup(-|_)?intro$/,
77
- /^-?-?permanently(-|_)?no(-|_)?startup(-|_)?info$/
78
- permanently_disable_startup_intro
79
- # ======================================================================= #
80
- # === :no_commandline_arguments
81
- # ======================================================================= #
82
- when :no_commandline_arguments
83
- # ===================================================================== #
84
- # Simply pass through in this case.
85
- # ===================================================================== #
86
- # ======================================================================= #
87
- # === :exit_gracefully
88
- # ======================================================================= #
89
- when :exit_gracefully
90
- set_exit_gracefully
91
- # ======================================================================= #
92
- # === bioroebe --silent-startup
93
- # ======================================================================= #
94
- when /^-?-?silent(-|_)?startup$/,
95
- /^-?-?silent$/
96
- do_a_silent_startup
97
- # ======================================================================= #
98
- # === bioroebe --random-aminoacids=33
99
- # === bioroebe --n-aminoacids=33
100
- # ======================================================================= #
101
- when /^-?-?random(-|_)?aminoacids=(.+)$/i,
102
- /^-?-?n(-|_)?aminoacids=(.+)$/i
103
- n_aminoacids = $2.to_s.dup
104
- ::Bioroebe.create_random_aminoacids(n_aminoacids) { :do_report }
105
- exit
106
- # ======================================================================= #
107
- # === bioroebe --rnafold=cdna.MT.fa
108
- # ======================================================================= #
109
- when /^-?-?rnafold=(.+)$/
110
- try_to_run_rnalfold_on_this_file($1.to_s.dup)
111
- exit
112
- # ======================================================================= #
113
- # === bioroebe --fasta=/Depot/Bioroebe/Arabidopsis_thaliana_chromosome_5_sequence.fasta
114
- # ======================================================================= #
115
- when /^-?-?fasta=(.+)$/
116
- this_fasta_file = $1.to_s.dup
117
- if File.exist?
118
- handle_fasta(this_fasta_file)
119
- else
120
- e 'No file could be found at `'+sfile(this_fasta_file)+'`.'
121
- end
122
- # ======================================================================= #
123
- # === bioroebe --n-fasta-entries
124
- #
125
- # Usage example:
126
- #
127
- # cd /root/Bioroebe/Downloads/; bioroebe --n-fasta-entries
128
- #
129
- # ======================================================================= #
130
- when /^-?-?n(-|_)?fasta(-|_)?entries$/
131
- require 'bioroebe/fasta/display_how_many_fasta_entries_are_in_this_directory.rb'
132
- ::Bioroebe::DisplayHowManyFastaEntriesAreInThisDirectory.new
133
- exit
134
- # ======================================================================= #
135
- # === bioroebe --split-this-fasta-file-into-chromosomes=Mus_musculus.GRCm38.ncrna.fa
136
- # ======================================================================= #
137
- when /^-?-?split(-|_)?this(-|_)?fasta(-|_)?file(-|_)?into(-|_)?chromosomes=(.+)$/i # $6
138
- _ = $6.to_s.dup
139
- require 'bioroebe/fasta/split_this_fasta_file_into_chromosomes/split_this_fasta_file_into_chromosomes.rb'
140
- ::Bioroebe::SplitThisFastaFileIntoChromosomes.new(_)
141
- exit
142
- # ======================================================================= #
143
- # === bioroebe --stats
144
- #
145
- # This entry-point will show some simple fasta-statistics, from
146
- # the current directory.
147
- #
148
- # Usage example:
149
- #
150
- # cd /root/Bioroebe/Downloads/; bioroebe --stats
151
- #
152
- # ======================================================================= #
153
- when /^-?-?stats$/i,
154
- /^-?-?statistics$/i,
155
- /^-?-?fasta(-|_)?stats$/i
156
- require 'bioroebe/fasta/show_fasta_statistics.rb'
157
- ::Bioroebe.show_fasta_statistics(Dir['*'])
158
- exit
159
- # ======================================================================= #
160
- # === bioroebe --download=ftp://ftp.ensembl.org/pub/release-92/gtf/mus_musculus/
161
- #
162
- # This entry point allows us to download a remote program.
163
- #
164
- # Invocation example:
165
- #
166
- # bioroebe --download=ftp://ftp.ensembl.org/pub/release-92/gtf/mus_musculus/
167
- # bioroebe --download ftp://ftp.ensembl.org/pub/release-92/gtf/mus_musculus/
168
- #
169
- # Note that the second variant currently (April 2020) does not work -
170
- # let's see if we need it again in the future.
171
- # ======================================================================= #
172
- when /^-?-?download=(.+)/
173
- ::Bioroebe.download($1.to_s.dup)
174
- # ======================================================================= #
175
- # === bioroebe --sequence=150
176
- #
177
- # This entry point allows us to use any sequence, on startup.
178
- #
179
- # Invocation example:
180
- #
181
- # bioroebe --sequence=1505
182
- #
183
- # ======================================================================= #
184
- when /^-?-?sequence (.+)/,
185
- /^-?-?sequence=(.+)/
186
- set_dna($1.to_s.dup, :be_quiet) # Be quiet here when doing the assignment.
187
- # ======================================================================= #
188
- # === bioroebe --show-exon-statistics-for=/tmp/praktikum/Mouse/chromosome_8/parsed/cdna.8.L100.global.gtf
189
- # ======================================================================= #
190
- when /^-?-?show(-|_)?exon(-|_)?statistics(-|_)?for=(.+)$/ # === $4
191
- ::Bioroebe.show_exon_statistics($4.to_s.dup)
192
- exit
193
- # ======================================================================= #
194
- # === bioroebe --sinatra
195
- # ======================================================================= #
196
- when /^-?-?sinatra$/i
197
- do_start_the_sinatra_interface
198
- return
199
- end
200
- run
201
- end
202
-
203
- # ========================================================================= #
204
- # === run
205
- # ========================================================================= #
206
- def run
207
- setup_readline if use_readline?
208
- perform_startup_actions # Should come before we show the welcome message.
209
- show_welcome_message
210
- menu(
211
- commandline_arguments?,
212
- :be_quiet_if_the_input_was_not_found
213
- )
214
- enter_main_loop # Enter the main user-input loop here.
215
- end
216
-
217
- end; end
@@ -1,74 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'bioroebe/shell/loop.rb'
6
- # =========================================================================== #
7
- module Bioroebe
8
-
9
- class Shell < ::Bioroebe::CommandlineApplication
10
-
11
- # ========================================================================= #
12
- # === enter_main_loop (loop tag)
13
- #
14
- # This is the main-loop of the shell.
15
- # ========================================================================= #
16
- def enter_main_loop
17
- exit_from_the_main_loop = false
18
- loop {
19
- begin
20
- read_user_input
21
- add_the_current_user_input_to_the_history
22
- if @internal_hash[:user_input]
23
- unless @internal_hash[:user_input].empty?
24
- # =============================================================== #
25
- # Pass the user input into the menu next. We will use an
26
- # Array for this, as user input such as "ls; random 20" should
27
- # also be valid.
28
- # =============================================================== #
29
- user_input = [ @internal_hash[:user_input] ].flatten
30
- user_input.each {|use_this_as_user_input|
31
- result_from_the_menu = menu(
32
- use_this_as_user_input
33
- )
34
- case result_from_the_menu
35
- when :exit_gracefully
36
- say_goodbye
37
- exit_from_the_main_loop = true
38
- # =============================================================== #
39
- # === :break
40
- # =============================================================== #
41
- when :break
42
- case exit_the_shell_how?
43
- # ============================================================= #
44
- # === :exit_gracefully
45
- # ============================================================= #
46
- when :exit_gracefully # User wants to exit here.
47
- say_goodbye
48
- exit_from_the_main_loop = true
49
- # ============================================================= #
50
- # === :instantly
51
- # ============================================================= #
52
- when :instantly
53
- exit_from_the_main_loop = true
54
- end
55
- exit_from_the_main_loop = true
56
- else
57
- end
58
- }
59
- @internal_hash[:user_input] = nil # And clear it here again.
60
- end
61
- end
62
- # ===================================================================== #
63
- # Rescue sigints (aka ctrl-c) and SystemExit.
64
- # ===================================================================== #
65
- rescue Interrupt, SystemExit
66
- e
67
- end
68
- if exit_from_the_main_loop == true
69
- break
70
- end
71
- }
72
- end; alias loop_get_user_input enter_main_loop # Legacy name.
73
-
74
- end; end