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,281 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'bioroebe/shell/chop_and_cut.rb'
6
- # =========================================================================== #
7
- module Bioroebe
8
-
9
- class Shell < ::Bioroebe::CommandlineApplication
10
-
11
- # ========================================================================= #
12
- # === chop (chop tag)
13
- #
14
- # We use this method to get rid of some nucleotides, from the 3'
15
- # end of a nucleotide sequence (aka the "right hand side" of it) by
16
- # default.
17
- #
18
- # The first argument to this method tells us how many nucleotides are
19
- # to be removed.
20
- #
21
- # The second argument determines whether to chop from the right side
22
- # (the 3' side) or from the left side (the 5' side).
23
- # ========================================================================= #
24
- def chop(
25
- i = 1,
26
- chop_from_left_or_right_hand_side = :default # The default is the 3' end.
27
- ) # Default will be to chop off one nucleotide.
28
- if is_the_main_sequence_frozen?
29
- report_that_the_main_sequence_is_frozen
30
- return
31
- end
32
- i = i.first if i.is_a? Array
33
- if i == '?'
34
- e 'chop allows us to remove nucleotides from the main sequence.'
35
- return
36
- end
37
- i = 1 if i.nil? # Assign to the default then.
38
- i = i.to_i # Need a number past this point.
39
- if i == 0
40
- erev 'Please add a number, such as 1, or any other value.'
41
- else
42
- case chop_from_left_or_right_hand_side
43
- # ===================================================================== #
44
- # === :right
45
- # ===================================================================== #
46
- when :right,
47
- :default
48
- which_end = "3'"
49
- # ===================================================================== #
50
- # === :left
51
- # ===================================================================== #
52
- when :left
53
- which_end = "5'"
54
- end
55
- if dna_sequence_object?.size > 0
56
- erev "We will now remove some characters (#{simp(i.to_s)}#{rev}"\
57
- ") from the #{which_end} end of our main string."
58
- end
59
- if dna_sequence_object?.size == 0
60
- erev 'Can not remove anything as the sequence is empty.'
61
- elsif i > dna_sequence_object?.size
62
- erev 'We can not remove that many characters, thus we will'
63
- erev 'simply remove all characters now.'
64
- reset_string
65
- else
66
- # =================================================================== #
67
- # Finally do the manipulation. We need to honour from which
68
- # side we will be operating on.
69
- # =================================================================== #
70
- case chop_from_left_or_right_hand_side
71
- # =================================================================== #
72
- # === :default
73
- # =================================================================== #
74
- when :default,
75
- :right
76
- # ================================================================= #
77
- # We also store the chopped-away sequence, but we have to be
78
- # mindful here since the sequence-object counts the nucleotides
79
- # differently than ruby counts Arrays.
80
- # ================================================================= #
81
- @internal_hash[:array_these_sequences_were_chopped_away] << seq_object?[(-i)+1, i-1].dup
82
- seq_object?[-i, i] = ''
83
- # =================================================================== #
84
- # === :left
85
- # =================================================================== #
86
- when :left
87
- @internal_hash[:array_these_sequences_were_chopped_away] << seq_object?[0, i].dup
88
- seq_object?[0, i+1] = ''
89
- end
90
- end
91
- unless dna_sequence_object?.size == 0
92
- erev "#{rev}The new length of the main string is now: "\
93
- "#{simp(dna_sequence_object?.size.to_s)}#{rev}."
94
- end
95
- show_dna_sequence
96
- end
97
- end; alias remove_n_nucleotides chop # === remove_n_nucleotides
98
-
99
- # ========================================================================= #
100
- # === cut_sequence_in_slices_of
101
- #
102
- # This method cuts the sequence into slices of n, where n is the
103
- # argument to this method.
104
- #
105
- # So if you input 10 as argument, then we will put the nucleotides
106
- # into chunks of 10 nucleotides per row.
107
- #
108
- # Usage examples:
109
- #
110
- # cut_sequence_in_slices_of 5
111
- # cut_sequence_in_slices_of 6
112
- # cut_sequence_in_slices_of 7
113
- #
114
- # ========================================================================= #
115
- def cut_sequence_in_slices_of(threshold = '9')
116
- _ = dna_sequence_object?
117
- matches = _.scan(/.{#{threshold}}/)
118
- matches.each {|entry|
119
- erev ' '+entry
120
- }
121
- end
122
-
123
- # ========================================================================= #
124
- # === left_chop
125
- # ========================================================================= #
126
- def left_chop(i)
127
- chop(i, :left)
128
- end
129
-
130
- # ========================================================================= #
131
- # === cut_at
132
- #
133
- # Use this method to chop off or rather cut at a DNA sequence.
134
- # ========================================================================= #
135
- def cut_at(
136
- this_sequence = 'GAATTC',
137
- be_verbose = true
138
- )
139
- main_sequence = dna_sequence_object?
140
- this_sequence = this_sequence.join.strip if this_sequence.is_a? Array
141
- if be_verbose
142
- erev "We will chop away (at) the sequence #{simp(this_sequence)}#{rev}."
143
- erev 'Note that the sequences all originated from the larger '\
144
- 'parent sequence.'
145
- end
146
- results = main_sequence.split(/#{this_sequence}/)
147
- results.each {|sequence|
148
- _ = properly_spaced_dna(sequence)
149
- _ << (' ('+sequence.size.to_s+' nucleotides)').rjust(110 - sequence.size)
150
- erev _
151
- }
152
- end
153
-
154
- # ========================================================================= #
155
- # === restore_the_last_chop_operation
156
- #
157
- # This method will "restore" the last chop operation.
158
- #
159
- # Presently it will only append onto the 3' area but in the future
160
- # this may change, depending on whether we will store the position
161
- # as well.
162
- # ========================================================================= #
163
- def restore_the_last_chop_operation
164
- if @internal_hash[:array_these_sequences_were_chopped_away].empty?
165
- erev 'Can not restore the last chop-operation as we have not yet'
166
- erev 'chopped away any nucleotide from the main sequence.'
167
- else
168
- this_sequence = @internal_hash[:array_these_sequences_were_chopped_away].pop
169
- erev 'Now adding the sequence '+
170
- format_this_nucleotide_sequence(
171
- this_sequence
172
- )
173
- erev 'to our main sequence.'
174
- main_sequence?.append(this_sequence)
175
- end
176
- end
177
-
178
- # ========================================================================= #
179
- # === chop_to
180
- #
181
- # This method will chop up to the first occurence of the given input
182
- # sequence.
183
- #
184
- # If the given input sequence can not be found, no change is made.
185
- # ========================================================================= #
186
- def chop_to(i)
187
- if i.is_a? Array
188
- i = i.first
189
- end
190
- case i
191
- when 'start'
192
- i = 'ATG'
193
- end
194
- _ = nucleotide_sequence?
195
- if i.include? 'U'
196
- # ===================================================================== #
197
- # Convert Uracil to Thymine next.
198
- # ===================================================================== #
199
- erev "The given input sequence includes at the least one "\
200
- "#{sfancy('U')}#{rev}, which we will convert to #{sfancy('T')}#{rev}."
201
- i.tr!('U','T')
202
- end
203
- if _.include? i
204
- # ===================================================================== #
205
- # Ok, we found the search sequence, so now we can chop off the
206
- # unnecessary sequences.
207
- # ===================================================================== #
208
- position = _.index(i)
209
- erev "Chopping away #{sfancy(position.to_s)}#{rev} nucleotides from "\
210
- "the left-hand side (5' end) next."
211
- @internal_hash[:array_these_sequences_were_chopped_away] << seq_object?[0, position+1]
212
- seq_object?[0, position+1] = ''
213
- show_dna_sequence
214
- else
215
- erev 'No modification can be made as our target nucleotide sequence'
216
- erev "does not include the given search string #{sfancy(i)}."
217
- end
218
- end
219
-
220
- # ========================================================================= #
221
- # === cut (cut tag)
222
- #
223
- # This method will cut away some part from the DNA string.
224
- # ========================================================================= #
225
- def cut(i)
226
- i = i.to_i
227
- @sequence[-i,i] = ''
228
- show_dna_sequence
229
- end
230
-
231
- # ========================================================================= #
232
- # === cutseq
233
- #
234
- # This can be used to modify the sequence object. It will cut some
235
- # segment out from the nucleotide.
236
- #
237
- # Usage examples:
238
- #
239
- # random 30; cutseq 5 8
240
- # random 30; cutseq 5-8
241
- #
242
- # ========================================================================= #
243
- def cutseq(i = [1,3])
244
- if i.is_a? Array
245
- if i.size == 1 and i.first.is_a? String and i.first.include?('-')
246
- i = [i.first.split('-')].flatten
247
- end
248
- if i.empty? # In this case we will ask the user for input.
249
- erev 'No argument was provided. Please input the start nucleotide position next:'
250
- start_position = $stdin.gets.chomp.to_i
251
- erev 'Next, input the end nucleotide position:'
252
- end_position = $stdin.gets.chomp
253
- elsif i.size > 1
254
- start_position = i.first
255
- end_position = i.last
256
- end
257
- end
258
- # ======================================================================= #
259
- # === Handle +3 relational position given
260
- # ======================================================================= #
261
- if end_position.is_a? String and end_position.include?('+')
262
- end_position = start_position + end_position.delete('+').to_i
263
- end
264
- n_nucleotides_will_be_deleted = (end_position.to_i - start_position.to_i)+1
265
- # ======================================================================= #
266
- # Notify the user what we will do next.
267
- # ======================================================================= #
268
- erev 'Next cutting away '+simp(n_nucleotides_will_be_deleted.to_s)+
269
- rev+' nucleotides.'
270
- sequence_object?[start_position, end_position] = ''
271
- end
272
-
273
- # ========================================================================= #
274
- # === cut_with_enzyme
275
- # ========================================================================= #
276
- def cut_with_enzyme(i)
277
- i = i.join(' ').strip if i.is_a? Array
278
- pp sequence_object?.cut_with_enzyme(i)
279
- end
280
-
281
- end; end
@@ -1,166 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'bioroebe/shell/constants.rb'
6
- # =========================================================================== #
7
- module Bioroebe # === Bioroebe::Shell
8
-
9
- class Shell < ::Bioroebe::CommandlineApplication
10
-
11
- # ========================================================================= #
12
- # Right now we will only add the chemistry_paradise gem, if it is available.
13
- # ========================================================================= #
14
- array_failsave_requires = %w(
15
- chemistry_paradise
16
- )
17
- array_failsave_requires.each {|project|
18
- begin
19
- require project
20
- rescue LoadError; end # Silent rescue.
21
- }
22
-
23
- # ========================================================================= #
24
- # === NAMESPACE
25
- # ========================================================================= #
26
- NAMESPACE = inspect
27
-
28
- # ========================================================================= #
29
- # === TRUNCATE_AT_N_ELEMENTS
30
- #
31
- # If we display nucleotide strings, then by default, these may be very
32
- # long. So the following constant will act as a threshold.
33
- # ========================================================================= #
34
- TRUNCATE_AT_N_ELEMENTS = 2000
35
-
36
- # ========================================================================= #
37
- # === VALID_WAYS_TO_EXIT
38
- #
39
- # All ways to exit will be recorded here.
40
- #
41
- # If you need to use more ways, simply append to this Array.
42
- #
43
- # This constant may have to be moved into the bio-shell part eventually.
44
- # ========================================================================= #
45
- VALID_WAYS_TO_EXIT = %w(
46
- quit q exit qq :q qt
47
- bye
48
- rda
49
- r2
50
- tq
51
- sq
52
- exit_program
53
- exitprogram
54
- )
55
-
56
- # ========================================================================= #
57
- # === DEFAULT_PADDING
58
- # ========================================================================= #
59
- DEFAULT_PADDING = ' ' # This is left-padding.
60
-
61
- # ========================================================================= #
62
- # === MAIN_EDITOR
63
- #
64
- # Which editor to use.
65
- # ========================================================================= #
66
- if ENV['IS_ROEBE']
67
- MAIN_EDITOR = 'bluefish'
68
- else # else assume that we may be on windows.
69
- MAIN_EDITOR = 'notepad++.exe'
70
- end; MY_EDITOR = MAIN_EDITOR # === MY_EDITOR
71
-
72
- # ========================================================================= #
73
- # === HOME_DIRECTORY_OF_USER_X
74
- #
75
- # Hardcoded path - only useful on my home setup, though.
76
- # ========================================================================= #
77
- HOME_DIRECTORY_OF_USER_X = '/home/x/'
78
-
79
- # ========================================================================= #
80
- # === RUBY_SRC
81
- #
82
- # Hardcoded. This is only useful on my home system.
83
- # ========================================================================= #
84
- if ENV['RSRC']
85
- RUBY_SRC = "#{ENV['RSRC']}/"
86
- else
87
- RUBY_SRC = "#{HOME_DIRECTORY_OF_USER_X}programming/ruby/src/"
88
- end
89
-
90
- # ========================================================================= #
91
- # === RUBY_BIOROEBE
92
- #
93
- # This allows a user to designate another home directory.
94
- # ========================================================================= #
95
- if ENV['RUBY_BIOROEBE']
96
- BIOROEBE = ENV['RUBY_BIOROEBE'].to_s
97
- else
98
- BIOROEBE = ENV['HOME']
99
- end
100
-
101
- # ========================================================================= #
102
- # === BIOSHELL_SAVE_FILE
103
- #
104
- # Designate the default location for the save-file, a markdown file.
105
- # ========================================================================= #
106
- if Dir.exist? ::Bioroebe.log_dir?
107
- BIOSHELL_SAVE_FILE = "#{::Bioroebe.log_dir?}shell_file.md"
108
- else
109
- BIOSHELL_SAVE_FILE = '/home/Temp/bioroebe/shell_file.md'
110
- end
111
-
112
- # ========================================================================= #
113
- # === HOME_DIR
114
- #
115
- # This probably is not used a lot anymore these days.
116
- # ========================================================================= #
117
- if RUBY_SRC # This is valid at home.
118
- HOME_DIR = "#{ENV['RSRC']}/bioroebe/lib/bioroebe/"
119
- else
120
- begin
121
- home_dir = File.expand_path('~')
122
- rescue Exception
123
- home_dir = '/root/'
124
- end
125
- HOME_DIR = home_dir+'.gem/gems/bioroebe-'+
126
- Bioroebe.version?.to_s+'/lib/bioroebe/'
127
- end
128
-
129
- require 'bioroebe/project/project.rb'
130
- # ========================================================================= #
131
- # === FILE_USE_SILENT_STARTUP
132
- # ========================================================================= #
133
- FILE_USE_SILENT_STARTUP =
134
- "#{::Bioroebe.project_base_directory?}shell/configuration/use_silent_startup.yml"
135
-
136
- # ========================================================================= #
137
- # === SHALL_WE_DEBUG
138
- # ========================================================================= #
139
- SHALL_WE_DEBUG = false
140
-
141
- _ = ::Bioroebe.project_yaml_directory?+
142
- 'default_dna_input.yml' # cat $RUBY_BIO/YAML/default_dna_input.yml
143
- # ========================================================================= #
144
- # === DEFAULT_DNA_INPUT_YAML_FILE
145
- # ========================================================================= #
146
- DEFAULT_DNA_INPUT_YAML_FILE = YAML.load_file(_) if File.exist? _
147
-
148
- require 'bioroebe/toplevel_methods/log_directory.rb' # ← Required for: Bioroebe.store_here?
149
- # ========================================================================= #
150
- # === store_here?
151
- #
152
- # Where to store output generated by BioRoebe. Should point to a
153
- # locally existing directory.
154
- # ========================================================================= #
155
- def store_here?
156
- ::Bioroebe.store_here?
157
- end
158
-
159
- # ========================================================================= #
160
- # === show_log_dir
161
- # ========================================================================= #
162
- def show_log_dir
163
- e ::Bioroebe.log_dir?
164
- end
165
-
166
- end; end