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,108 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'bioroebe/shell/add.rb'
6
- # =========================================================================== #
7
- module Bioroebe
8
-
9
- class Shell < ::Bioroebe::CommandlineApplication
10
-
11
- # ========================================================================= #
12
- # === add_to_end
13
- #
14
- # This method will invoke append() if something has to be appended.
15
- # ========================================================================= #
16
- def add_to_end(i)
17
- add_to_start_or_end(i, :end)
18
- end; alias add add_to_end # === add (add tag)
19
-
20
- # ========================================================================= #
21
- # === add_to_start
22
- # ========================================================================= #
23
- def add_to_start(i)
24
- add_to_start_or_end(i, :start)
25
- end; alias left_add add_to_start # === left_add
26
-
27
- # ========================================================================= #
28
- # === add_to_start_or_end
29
- #
30
- # This method can either add to the start or to the end.
31
- #
32
- # The default is to append to the nucleotide sequence.
33
- #
34
- # We can input a number - in this case, we simply add these many
35
- # nucleotides onto the main string.
36
- # ========================================================================= #
37
- def add_to_start_or_end(
38
- i = '',
39
- append_or_prepend = :append
40
- )
41
- i = i.join('') if i.is_a? Array
42
- i = i.dup
43
- old_length = i.size
44
- case i.to_s # Easier start/stop entries.
45
- # ======================================================================= #
46
- # === Add a start codon.
47
- # ======================================================================= #
48
- when 'start',
49
- 'START',
50
- /ORF/i,
51
- ':start'
52
- i = ::Bioroebe.start_codon? # Used to be hardcoded -> 'ATG'
53
- # ======================================================================= #
54
- # === Add a stop codon.
55
- # ======================================================================= #
56
- when /^stop$/i,
57
- ':stop'
58
- i = ::Bioroebe.stop_codons?.sample
59
- end
60
- i.upcase!
61
- case append_or_prepend
62
- # ======================================================================= #
63
- # === :prepend
64
- # ======================================================================= #
65
- when :prepend,
66
- :to_start,
67
- :start
68
- if i =~ /^\d+$/ # If input is only numbers.
69
- erev 'Only numbers were given: Prepending '+
70
- sfancy(i.to_s)+rev+
71
- ' random nucleotides to the main string now.'
72
- i.to_i.times { prepend(add_nucleotide) }
73
- else
74
- erev "Prepending #{sfancy(i)}#{rev} to the main string."
75
- prepend(i)
76
- end
77
- # ======================================================================= #
78
- # === :append
79
- # ======================================================================= #
80
- when :append,
81
- :to_end,
82
- :end
83
- if i =~ /^\d+$/ # If input is only numbers.
84
- erev "Only numbers were given: Adding #{sfancy(i.to_s)}#{rev}"\
85
- " random nucleotides to the main string now."
86
- i.to_i.times { append(return_random_nucleotide) }
87
- else
88
- if only_nucleotides?(i)
89
- msg = "Adding #{sfancy(i)}#{rev}"
90
- msg = msg.dup if msg.frozen?
91
- if ::Bioroebe.is_a_stop_codon? i
92
- msg << ' (a stop codon)'
93
- end
94
- msg << ' to the main string.'
95
- erev msg
96
- end
97
- append(i)
98
- end
99
- end
100
- new_length = string?.size.to_s
101
- unless new_length.to_i == old_length.to_i
102
- erev "The new length of the main string is now: "\
103
- "#{simp(new_length)}#{rev}."
104
- end
105
- show_dna_sequence
106
- end
107
-
108
- end; end
@@ -1,360 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'bioroebe/shell/assign.rb'
6
- # =========================================================================== #
7
- module Bioroebe
8
-
9
- class Shell < ::Bioroebe::CommandlineApplication
10
-
11
- # ========================================================================= #
12
- # === set_dna_sequence (assign tag, assigning tag)
13
- #
14
- # This method can be used to set/assign the main DNA string.
15
- #
16
- # It is a fairly long method, mostly because it will do lots of
17
- # additional tasks, way aside from setting/assigning to a DNA
18
- # sequence only.
19
- #
20
- # As of June 2016, the method will also keep a backup of the
21
- # generated sequence in a local file as well. This will allow
22
- # us to "replay" the given sequence on startup of the shell.
23
- #
24
- # Note that as of Jun 2016, we will chop off any '"' found in
25
- # the input String.
26
- # ========================================================================= #
27
- def set_dna_sequence(
28
- i = nil,
29
- be_verbose = true,
30
- do_upcase = :check_for_config_value_here
31
- )
32
- if is_the_main_sequence_frozen?
33
- report_that_the_main_sequence_is_frozen
34
- return
35
- end
36
- case do_upcase
37
- # ======================================================================= #
38
- # === :check_for_config_value_here
39
- # ======================================================================= #
40
- when :check_for_config_value_here,
41
- :default
42
- if @config and @config.respond_to?(:upcase_nucleotides)
43
- do_upcase = @config.upcase_nucleotides
44
- else
45
- do_upcase = false
46
- end
47
- # ======================================================================= #
48
- # === :do_not_upcase
49
- # ======================================================================= #
50
- when :do_not_upcase
51
- do_upcase = false
52
- end
53
- if do_upcase
54
- shall_we_upcase = do_upcase if @config
55
- end
56
- # ======================================================================= #
57
- # === Sanitize the second variable next
58
- # ======================================================================= #
59
- case be_verbose
60
- # ======================================================================= #
61
- # === :be_verbose
62
- # ======================================================================= #
63
- when :be_verbose
64
- be_verbose = true
65
- # ======================================================================= #
66
- # === :do_not_upcase
67
- # ======================================================================= #
68
- when :do_not_upcase,
69
- :no_upcase,
70
- :no_upcasing,
71
- shall_we_upcase = false
72
- be_verbose = true # Sync this.
73
- # ======================================================================= #
74
- # === :be_silent
75
- # ======================================================================= #
76
- when :be_silent,
77
- :be_quiet
78
- be_verbose = false
79
- end
80
- if i.nil?
81
- # ===================================================================== #
82
- # === Hande nil value for the variable i next:
83
- #
84
- # Here in this entry point, we will handle if the first input
85
- # argument is nil.
86
- #
87
- # If @internal_hash[:misc_sequence] is NOT nil, then it will be used
88
- # once, then cleared. Otherwise, we will use dna_sequence?.
89
- # ===================================================================== #
90
- if @internal_hash[:misc_sequence]
91
- i = @internal_hash[:misc_sequence]
92
- @internal_hash[:misc_sequence] = nil # Set it to nil again.
93
- else
94
- i = dna_sequence?
95
- end
96
- end
97
- # ======================================================================= #
98
- # === Convert Array into String next
99
- # ======================================================================= #
100
- i = i.join if i.is_a? Array
101
- i = i.to_s # Work on a String past this point here.
102
- if i.include? ' ' # Sanitize the input a little bit.
103
- i = i.strip.delete(' ')
104
- end
105
- if i.include? '|' # I think we will not need '|' in our main string.
106
- i.delete!('|')
107
- end
108
- # ======================================================================= #
109
- # === If the input has only numbers
110
- # ======================================================================= #
111
- if i =~ /^\d+$/
112
- i = random_dna_sequence(i)
113
- end
114
- # ======================================================================= #
115
- # === Handle Fasta format next
116
- # ======================================================================= #
117
- if i.start_with?('>') and i.include?(N)
118
- erev 'It seems as if you have a FASTA sequence there, as it starts with '\
119
- 'a > character.'
120
- erev 'We will omit this first section (the header) though.'
121
- i[0 .. i.index(N)] = '' # This does the chop-off action.
122
- end
123
- i.delete!('-') if i.include? '-'
124
- i.delete!('_') if i.include? '_' # Don't want '_' characters.
125
- i.delete!('?') if i.include? '?'
126
- i.delete!('#') if i.include? '#' # This was added at 08.05.2016.
127
- i.delete!('"') if i.include? '"' # This was added at 02.06.2016.
128
- i.gsub!(/\^C/,'') if i.include? '^C'
129
- i = i.to_s.dup
130
- case i
131
- # ======================================================================= #
132
- # === :GFP
133
- # ======================================================================= #
134
- when ':GFP' # ← This means the default GFP sequence.
135
- i = return_default_GFP_sequence
136
- # ======================================================================= #
137
- # === random
138
- # ======================================================================= #
139
- when /^random$/i,
140
- '' # As of 04.01.2015, we will try '' too here.
141
- i = random :do_not_show_the_string
142
- # ======================================================================= #
143
- # === multiline
144
- # ======================================================================= #
145
- when 'multiline' # Handle multiline input.
146
- erev 'Multiline input detected.'
147
- erev 'Finish by issuing __ on an empty line. (These are 2 "_" tokens.)'
148
- i = $stdin.gets('__')
149
- # ===================================================================== #
150
- # Next, sanitize it a bit if it starts with a '>' identifier.
151
- # ===================================================================== #
152
- if i.strip.start_with? '>'
153
- i = i[(i.index(N)+1)..-1]
154
- end
155
- else
156
- if i
157
- # =================================================================== #
158
- # === Next upcase the input if the flag was set
159
- # =================================================================== #
160
- i.upcase! if shall_we_upcase
161
- case mode?
162
- # =================================================================== #
163
- # === :dna
164
- # =================================================================== #
165
- when :dna,
166
- :rna
167
- dna_sequence_object?.set_mode(mode?)
168
- # =================================================================== #
169
- # === :aminoacids
170
- # =================================================================== #
171
- when :aminoacids
172
- set_aminoacids(i)
173
- end
174
- else # else input is nil.
175
- erev 'Missing Input to assign_sequence(). Please input '\
176
- 'your DNA string now (Hitting the enter key will '\
177
- 'finish this):'
178
- i = $stdin.gets.chomp
179
- i = i.upcase if shall_we_upcase
180
- end
181
- end
182
- i = '' unless i
183
- # ======================================================================= #
184
- # === Remove possible newlines in the given input
185
- # ======================================================================= #
186
- i.delete!(N) if i.include? N
187
- i.delete!('_') if i.include? '_'
188
- # ======================================================================= #
189
- # Is faster than .gsub()# if i
190
- # i.upcase! # Since as of Feb 2016. Nope, disabled again as of May 2016.
191
- # end
192
- # ======================================================================= #
193
- if File.exist?(i) # Assume a file was given. Read its content then.
194
- if i.end_with? '.yml'
195
- i = YAML.load_file(i)
196
- else
197
- i = File.readlines(i).reject {|line|
198
- line.start_with? '>'
199
- }.join
200
- end
201
- end
202
- # ======================================================================= #
203
- # Also get rid of numbers.
204
- # ======================================================================= #
205
- i = i.dup if i.frozen?
206
- i.gsub!(/\d/,'')
207
- # ======================================================================= #
208
- # The DNA Sequence will be stored in the Sequence object directly.
209
- # The nil is required for now, because otherwise set_input() will
210
- # upcase the input by default.
211
- # ======================================================================= #
212
- if dna_sequence_object?.nil?
213
- _ = Bioroebe::Sequence.new(i.dup) { :is_DNA }
214
- @internal_hash[:array_dna_sequence] << _
215
- else
216
- # ===================================================================== #
217
- # Assign it here.
218
- # ===================================================================== #
219
- dna_sequence_object?.set_input(i.dup, nil) # We can re-use the old @sequence object.
220
- end
221
- # ======================================================================= #
222
- # === :coding_area
223
- #
224
- # Whenever the DNA sequence is modified like that, we will also reset
225
- # the "coding_area" entry in the internal Hash to the initial nil state.
226
- # ======================================================================= #
227
- @internal_hash[:coding_area] = nil
228
- # ======================================================================= #
229
- # === Report that we will perform an assignment next
230
- # ======================================================================= #
231
- if be_verbose # Check for verbosity
232
- case mode?
233
- when :dna
234
- if i.empty?
235
- erev 'Nothing was assigned yet.'
236
- else
237
- erev 'Setting DNA sequence to ('+
238
- sfancy(i.size.to_s)+
239
- rev+' nucleotides):'
240
- show_string
241
- end
242
- end
243
- end
244
- # ======================================================================= #
245
- # === Set the Xorg Buffer next
246
- # ======================================================================= #
247
- if @config and @config.respond_to?(:additionally_set_xorg_buffer) and
248
- @config.additionally_set_xorg_buffer
249
- begin
250
- set_xorg_buffer(i)
251
- rescue NoMethodError; end
252
- end
253
- unless i.empty? # We do not save empty nucleotide Strings.
254
- result = i.to_s.dup
255
- # ===================================================================== #
256
- # We will save into a file next.
257
- # ===================================================================== #
258
- this_file = "#{log_dir?}dna_string.yml"
259
- dna_sequence_object?.save_sequence_to_this_file(this_file) # Save it here.
260
- # ===================================================================== #
261
- # Since as of Jun 2016, we will also create a new RNA string.
262
- #
263
- # This has been disabled as of December 2021. It was too strange
264
- # to automatically create a RNA string.
265
- # ===================================================================== #
266
- # if @internal_hash[:array_rna_sequence]
267
- # @internal_hash[:array_rna_sequence].last.set_sequence(result)
268
- # end
269
- # ===================================================================== #
270
- # === Automatically assign the aminoacid sequence as well
271
- # ===================================================================== #
272
- _ = translate_dna_into_aminoacid(result)
273
- set_aminoacids(_, nil, :be_quiet)
274
- return result
275
- end
276
- end; alias set_dna_string set_dna_sequence # === set_dna_string
277
- alias set_string set_dna_sequence # === set_dna_sequence
278
- alias set_main_sequence set_dna_sequence # === set_main_sequence (set_main_sequence tag)
279
- alias set_sequence set_dna_sequence # === set_sequence (set_sequence tag)
280
- alias set_dna set_dna_sequence # === set_dna
281
- alias set_assign set_dna_sequence # === set_dna
282
- alias assign_sequence set_dna_sequence # === assign_sequence
283
- alias assign_dna_sequence set_dna_sequence # === assign_dna_sequence
284
- alias assign_this_dna_sequence set_dna_sequence # === assign_this_dna_sequence
285
- alias assign set_dna_sequence # === assign
286
-
287
- require 'bioroebe/aminoacids/create_random_aminoacids.rb'
288
- # ========================================================================= #
289
- # === set_aminoacids (assign protein tag, set aminoacids tag)
290
- #
291
- # Assign a protein sequence here. The first argument shall be the
292
- # aminoacid sequence in question.
293
- #
294
- # Usage example:
295
- #
296
- # assign_protein FLIMVSPTAYHQNKDECWRGX*
297
- #
298
- # ========================================================================= #
299
- def set_aminoacids(
300
- i = :random,
301
- how_many_to_generate = 1000, # Will only be applied if the input is :random or :generate
302
- be_verbose = true
303
- )
304
- # ======================================================================= #
305
- # === Sanitize the third argument next
306
- # ======================================================================= #
307
- case be_verbose
308
- when :be_silent,
309
- :be_quiet
310
- be_verbose = false
311
- end
312
- i = :random unless i
313
- case i
314
- # ======================================================================= #
315
- # === :random
316
- # ======================================================================= #
317
- when :random,
318
- :generate
319
- i = Bioroebe.create_random_aminoacids(how_many_to_generate) # Generate them here.
320
- end
321
- i = i.join if i.is_a? Array
322
- if i =~ /^\d+$/ # only numbers
323
- i = Bioroebe.create_random_aminoacids(i)
324
- end
325
- if be_verbose
326
- erev "Now assigning aminoacid sequence to: #{sfancy(i.to_s)}"
327
- end
328
- if i.is_a? String # Convert it into a Sequence object here.
329
- i = ::Bioroebe.sequence(i) { :aminoacid }
330
- end
331
- # ======================================================================= #
332
- # Do the assignment next.
333
- # ======================================================================= #
334
- if @internal_hash[:array_aminoacid_sequence].empty?
335
- @internal_hash[:array_aminoacid_sequence] << i
336
- else
337
- @internal_hash[:array_aminoacid_sequence].pop
338
- @internal_hash[:array_aminoacid_sequence] << i
339
- end
340
- end; alias assign_aminoacid_sequence set_aminoacids # === assign_aminoacid_sequence
341
- alias assign_protein_sequence set_aminoacids # === assign_protein_sequence
342
- alias set_aminoacid_sequence set_aminoacids # === set_aminoacid_sequence
343
-
344
- # ========================================================================= #
345
- # === report_that_a_string_must_be_assigned_first
346
- # ========================================================================= #
347
- def report_that_a_string_must_be_assigned_first
348
- erev 'No sequence has been assigned yet. Please first "'+
349
- sfancy('assign')+rev+'" a string.'
350
- end
351
-
352
- # ========================================================================= #
353
- # === assign_sequence2
354
- # ========================================================================= #
355
- def assign_sequence2(i)
356
- i = i.join(' ') if i.is_a? Array
357
- @internal_hash[:sequence2] = Bioroebe::Sequence.new(i)
358
- end
359
-
360
- end; end