bioroebe 0.10.80 → 0.11.25
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 +3117 -2645
- data/bioroebe.gemspec +3 -3
- data/doc/README.gen +3116 -2644
- data/doc/todo/bioroebe_todo.md +418 -387
- 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 +18 -8
- data/lib/bioroebe/base/misc.rb +16 -0
- data/lib/bioroebe/base/prototype/misc.rb +1 -1
- 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 +24 -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/{shell/tk.rb → electron_microscopy/electron_microscopy_module.rb} +15 -10
- data/lib/bioroebe/electron_microscopy/simple_star_file_generator.rb +4 -9
- data/lib/bioroebe/fasta_and_fastq/show_fasta_headers.rb +27 -12
- data/lib/bioroebe/genome/README.md +4 -0
- data/lib/bioroebe/genome/genome.rb +67 -0
- 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/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/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
- data/lib/bioroebe/misc/ruler.rb +1 -0
- data/lib/bioroebe/parsers/genbank_parser.rb +353 -24
- data/lib/bioroebe/parsers/gff.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/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/three_delimiter.py +34 -0
- data/lib/bioroebe/python/toplevel_methods/time_and_date.py +43 -0
- data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +11 -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 +3752 -3667
- data/lib/bioroebe/shell/misc.rb +51 -4311
- data/lib/bioroebe/shell/readline/readline.rb +1 -1
- data/lib/bioroebe/shell/shell.rb +11199 -28
- data/lib/bioroebe/siRNA/siRNA.rb +81 -1
- data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
- 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 +17 -2
- data/lib/bioroebe/taxonomy/info/is_dna.rb +46 -36
- data/lib/bioroebe/taxonomy/interactive.rb +139 -95
- 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/databases.rb +1 -1
- data/lib/bioroebe/toplevel_methods/fasta_and_fastq.rb +101 -63
- data/lib/bioroebe/toplevel_methods/misc.rb +17 -16
- 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 +33 -35
- data/doc/setup.rb +0 -1655
- data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
- 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/user_input.rb +0 -88
- data/lib/bioroebe/shell/xorg.rb +0 -45
data/lib/bioroebe/shell/gtk.rb
DELETED
@@ -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
|
data/lib/bioroebe/shell/loop.rb
DELETED
@@ -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
|
@@ -1,107 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'bioroebe/shell/prompt.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module Bioroebe
|
8
|
-
|
9
|
-
class Shell < ::Bioroebe::CommandlineApplication
|
10
|
-
|
11
|
-
require 'bioroebe/constants/misc.rb'
|
12
|
-
|
13
|
-
# ========================================================================= #
|
14
|
-
# === use_which_prompt?
|
15
|
-
# ========================================================================= #
|
16
|
-
def use_which_prompt?
|
17
|
-
@internal_hash[:prompt_to_use]
|
18
|
-
end
|
19
|
-
|
20
|
-
# ========================================================================= #
|
21
|
-
# === set_use_this_prompt
|
22
|
-
#
|
23
|
-
# This method can be used to set the prompt of the bio-shell.
|
24
|
-
# ========================================================================= #
|
25
|
-
def set_use_this_prompt(i = NAME_OF_BIO_SHELL)
|
26
|
-
case i # case tag
|
27
|
-
# ======================================================================= #
|
28
|
-
# === NONE
|
29
|
-
# ======================================================================= #
|
30
|
-
when /^NONE$/i,
|
31
|
-
'empty',
|
32
|
-
:empty
|
33
|
-
i = "\n"
|
34
|
-
do_not_use_working_directory_as_prompt
|
35
|
-
# ======================================================================= #
|
36
|
-
# === pwd
|
37
|
-
# ======================================================================= #
|
38
|
-
when 'pwd', :cwd, nil
|
39
|
-
i = return_default_prompt
|
40
|
-
do_use_working_directory_as_prompt
|
41
|
-
# ======================================================================= #
|
42
|
-
# === REVERT
|
43
|
-
# ======================================================================= #
|
44
|
-
when /^REVERT$/i,
|
45
|
-
/^DEFAULT$/i,
|
46
|
-
:default
|
47
|
-
i = NAME_OF_BIO_SHELL
|
48
|
-
do_not_use_working_directory_as_prompt
|
49
|
-
end
|
50
|
-
@internal_hash[:prompt_to_use] = i
|
51
|
-
end; alias set_prompt set_use_this_prompt # === set_prompt
|
52
|
-
|
53
|
-
# ========================================================================= #
|
54
|
-
# === return_pwd
|
55
|
-
# ========================================================================= #
|
56
|
-
def return_pwd
|
57
|
-
("#{Dir.pwd}/").squeeze('/')
|
58
|
-
end; alias return_default_prompt return_pwd # === return_default_prompt
|
59
|
-
|
60
|
-
# ========================================================================= #
|
61
|
-
# === obtain_current_prompt
|
62
|
-
#
|
63
|
-
# This is essentially a getter-method over the instance variable
|
64
|
-
# called @internal_hash[:prompt_to_use].
|
65
|
-
# ========================================================================= #
|
66
|
-
def obtain_current_prompt
|
67
|
-
if @internal_hash[:use_working_directory_as_prompt]
|
68
|
-
@internal_hash[:prompt_to_use] = return_pwd
|
69
|
-
end
|
70
|
-
@internal_hash[:prompt_to_use]
|
71
|
-
end
|
72
|
-
|
73
|
-
# ========================================================================= #
|
74
|
-
# === obtain_current_prompt_while_honouring_colours
|
75
|
-
# ========================================================================= #
|
76
|
-
def obtain_current_prompt_while_honouring_colours
|
77
|
-
_ = obtain_current_prompt
|
78
|
-
if _ and use_colours?
|
79
|
-
_ = "#{Colours::TEAL}#{_}#{rev}"
|
80
|
-
end
|
81
|
-
return _
|
82
|
-
end
|
83
|
-
|
84
|
-
# ========================================================================= #
|
85
|
-
# === restore_default_prompt
|
86
|
-
# ========================================================================= #
|
87
|
-
def restore_default_prompt
|
88
|
-
set_prompt :default
|
89
|
-
end
|
90
|
-
|
91
|
-
# ========================================================================= #
|
92
|
-
# === use_working_directory_as_prompt
|
93
|
-
#
|
94
|
-
# Use this method if you wish to use the working-directory as your prompt.
|
95
|
-
# ========================================================================= #
|
96
|
-
def do_use_working_directory_as_prompt
|
97
|
-
@internal_hash[:use_working_directory_as_prompt] = true
|
98
|
-
end; alias use_working_directory_as_prompt do_use_working_directory_as_prompt # === use_working_directory_as_prompt
|
99
|
-
|
100
|
-
# ========================================================================= #
|
101
|
-
# === do_not_use_working_directory_as_prompt
|
102
|
-
# ========================================================================= #
|
103
|
-
def do_not_use_working_directory_as_prompt
|
104
|
-
@internal_hash[:use_working_directory_as_prompt] = false
|
105
|
-
end
|
106
|
-
|
107
|
-
end; end
|