bioroebe 0.10.80 → 0.11.32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bioroebe might be problematic. Click here for more details.

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