bioroebe 0.10.80 → 0.12.12

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

Potentially problematic release.


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

Files changed (242) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3612 -2781
  3. data/bin/bioroebe +7 -1
  4. data/bin/bioroebe_hash +7 -0
  5. data/bin/codon_to_aminoacid +1 -0
  6. data/bioroebe.gemspec +3 -3
  7. data/doc/README.gen +3612 -2742
  8. data/doc/quality_control/commandline_applications.md +3 -3
  9. data/doc/todo/bioroebe_java_todo.md +22 -0
  10. data/doc/todo/bioroebe_todo.md +2059 -2615
  11. data/lib/bioroebe/aminoacids/aminoacid_substitution.rb +1 -9
  12. data/lib/bioroebe/aminoacids/codon_percentage.rb +1 -9
  13. data/lib/bioroebe/aminoacids/deduce_aminoacid_sequence.rb +1 -9
  14. data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
  15. data/lib/bioroebe/aminoacids/show_hydrophobicity.rb +1 -6
  16. data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
  17. data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +15 -11
  18. data/lib/bioroebe/base/commandline_application/misc.rb +66 -49
  19. data/lib/bioroebe/base/commandline_application/opn.rb +8 -8
  20. data/lib/bioroebe/base/commandline_application/reset.rb +3 -2
  21. data/lib/bioroebe/base/misc.rb +35 -0
  22. data/lib/bioroebe/base/prototype/misc.rb +11 -1
  23. data/lib/bioroebe/codon_tables/frequencies/parse_frequency_table.rb +2 -10
  24. data/lib/bioroebe/codons/codons.rb +1 -1
  25. data/lib/bioroebe/codons/convert_this_codon_to_that_aminoacid.rb +192 -58
  26. data/lib/bioroebe/codons/possible_codons_for_this_aminoacid.rb +1 -9
  27. data/lib/bioroebe/codons/show_codon_tables.rb +6 -2
  28. data/lib/bioroebe/codons/show_codon_usage.rb +15 -4
  29. data/lib/bioroebe/colours/rev.rb +4 -1
  30. data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
  31. data/lib/bioroebe/constants/database_constants.rb +1 -1
  32. data/lib/bioroebe/constants/files_and_directories.rb +31 -4
  33. data/lib/bioroebe/constants/misc.rb +20 -0
  34. data/lib/bioroebe/conversions/dna_to_aminoacid_sequence.rb +58 -24
  35. data/lib/bioroebe/count/count_amount_of_aminoacids.rb +3 -2
  36. data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
  37. data/lib/bioroebe/crystal/README.md +2 -0
  38. data/lib/bioroebe/crystal/to_rna.cr +19 -0
  39. data/lib/bioroebe/data/README.md +11 -8
  40. data/lib/bioroebe/data/electron_microscopy/pos_example.pos +396 -0
  41. data/lib/bioroebe/data/electron_microscopy/test_particles.star +36 -0
  42. data/lib/bioroebe/data/fasta/human/Homo_sapiens_hemoglobin_subunit_alpha_HBB_mRNA.fasta +9 -0
  43. data/lib/bioroebe/data/fasta/human/Homo_sapiens_hemoglobin_subunit_beta_HBB_mRNA.fasta +8 -0
  44. data/lib/bioroebe/data/fasta/human/README.md +2 -0
  45. data/lib/bioroebe/electron_microscopy/coordinate_analyzer.rb +15 -18
  46. data/lib/bioroebe/{fasta_and_fastq/parse_fasta/run.rb → electron_microscopy/electron_microscopy_module.rb} +16 -8
  47. data/lib/bioroebe/electron_microscopy/fix_pos_file.rb +1 -9
  48. data/lib/bioroebe/electron_microscopy/flipy.rb +83 -0
  49. data/lib/bioroebe/electron_microscopy/parse_coordinates.rb +2 -10
  50. data/lib/bioroebe/electron_microscopy/read_file_xmd.rb +1 -9
  51. data/lib/bioroebe/electron_microscopy/simple_star_file_generator.rb +4 -9
  52. data/lib/bioroebe/enzymes/has_this_restriction_enzyme.rb +10 -3
  53. data/lib/bioroebe/enzymes/restriction_enzyme.rb +23 -1
  54. data/lib/bioroebe/enzymes/restriction_enzymes/statistics.rb +65 -0
  55. data/lib/bioroebe/fasta_and_fastq/autocorrect_the_name_of_this_fasta_file.rb +1 -9
  56. data/lib/bioroebe/fasta_and_fastq/compact_fasta_file/compact_fasta_file.rb +7 -9
  57. data/lib/bioroebe/fasta_and_fastq/fasta_defline/fasta_defline.rb +1 -5
  58. data/lib/bioroebe/fasta_and_fastq/fasta_to_yaml/fasta_to_yaml.rb +81 -0
  59. data/lib/bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb +1465 -7
  60. data/lib/bioroebe/fasta_and_fastq/return_fasta_subsection_of_this_file.rb +11 -2
  61. data/lib/bioroebe/fasta_and_fastq/show_fasta_headers.rb +27 -12
  62. data/lib/bioroebe/fasta_and_fastq/simplify_fasta_header/simplify_fasta_header.rb +1 -5
  63. data/lib/bioroebe/fasta_and_fastq/split_this_fasta_file_into_chromosomes/constants.rb +0 -5
  64. data/lib/bioroebe/genome/README.md +4 -0
  65. data/lib/bioroebe/genome/genome.rb +67 -0
  66. data/lib/bioroebe/genomes/genome_pattern.rb +3 -9
  67. data/lib/bioroebe/gui/gtk +1 -0
  68. data/lib/bioroebe/gui/gtk3/alignment/alignment.rb +73 -128
  69. data/lib/bioroebe/gui/gtk3/controller/controller.rb +45 -27
  70. data/lib/bioroebe/gui/gtk3/dna_to_aminoacid_widget/dna_to_aminoacid_widget.rb +76 -50
  71. data/lib/bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb +99 -21
  72. data/lib/bioroebe/gui/gtk3/hamming_distance/hamming_distance.rb +42 -28
  73. data/lib/bioroebe/gui/gtk3/nucleotide_analyser/nucleotide_analyser.rb +119 -71
  74. data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +18 -18
  75. data/lib/bioroebe/gui/gtk3/random_sequence/random_sequence.rb +19 -11
  76. data/lib/bioroebe/gui/jruby/alignment/alignment.rb +165 -0
  77. data/lib/bioroebe/gui/libui/alignment/alignment.rb +3 -1
  78. data/lib/bioroebe/gui/libui/controller/controller.rb +116 -0
  79. data/lib/bioroebe/gui/libui/random_sequence/random_sequence.rb +18 -2
  80. data/lib/bioroebe/gui/libui/show_codon_table/show_codon_table.rb +2 -0
  81. data/lib/bioroebe/gui/libui/three_to_one/three_to_one.rb +8 -6
  82. data/lib/bioroebe/gui/shared_code/alignment/alignment_module.rb +102 -0
  83. data/lib/bioroebe/gui/shared_code/levensthein_distance/levensthein_distance_module.rb +18 -16
  84. data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
  85. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$1.class +0 -0
  86. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$CloseListener.class +0 -0
  87. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.class +0 -0
  88. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.java +141 -0
  89. data/lib/bioroebe/images/FORWARD_PRIMER.png +0 -0
  90. data/lib/bioroebe/images/REVERSE_PRIMER.png +0 -0
  91. data/lib/bioroebe/java/README.md +4 -0
  92. data/lib/bioroebe/java/bioroebe/Sequence.java +25 -1
  93. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Base.class +0 -0
  94. data/lib/bioroebe/java/bioroebe/{Base.java → src/main/java/bioroebe/Base.java} +15 -2
  95. data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.class → src/main/java/bioroebe/BisulfiteTreatment.class} +0 -0
  96. data/lib/bioroebe/java/bioroebe/{Codons.class → src/main/java/bioroebe/Codons.class} +0 -0
  97. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Codons.java +34 -0
  98. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.class +0 -0
  99. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.java +101 -0
  100. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.class → src/main/java/bioroebe/GenerateRandomDnaSequence.class} +0 -0
  101. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.java → src/main/java/bioroebe/GenerateRandomDnaSequence.java} +8 -2
  102. data/lib/bioroebe/java/bioroebe/{IsPalindrome.class → src/main/java/bioroebe/IsPalindrome.class} +0 -0
  103. data/lib/bioroebe/java/bioroebe/{IsPalindrome.java → src/main/java/bioroebe/IsPalindrome.java} +5 -1
  104. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.class +0 -0
  105. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.java +56 -0
  106. data/lib/bioroebe/java/bioroebe/{RemoveFile.java → src/main/java/bioroebe/RemoveFile.java} +10 -4
  107. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.class → src/main/java/bioroebe/RemoveNumbers.class} +0 -0
  108. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.java → src/main/java/bioroebe/RemoveNumbers.java} +1 -0
  109. data/lib/bioroebe/java/bioroebe/{ToCamelcase.class → src/main/java/bioroebe/ToCamelcase.class} +0 -0
  110. data/lib/bioroebe/java/bioroebe/{ToCamelcase.java → src/main/java/bioroebe/ToCamelcase.java} +3 -3
  111. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.class +0 -0
  112. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.java +42 -0
  113. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/toplevel_methods/BaseComposition.class +0 -0
  114. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/toplevel_methods/BaseComposition.java +75 -0
  115. data/lib/bioroebe/misc/ruler.rb +11 -2
  116. data/lib/bioroebe/nucleotides/most_likely_nucleotide_sequence_for_this_aminoacid_sequence.rb +1 -9
  117. data/lib/bioroebe/nucleotides/show_nucleotide_sequence.rb +7 -7
  118. data/lib/bioroebe/parsers/genbank_parser.rb +347 -26
  119. data/lib/bioroebe/parsers/gff.rb +1 -9
  120. data/lib/bioroebe/patterns/scan_for_repeat.rb +1 -5
  121. data/lib/bioroebe/pdb/fetch_fasta_sequence_from_pdb.rb +1 -9
  122. data/lib/bioroebe/pdb/parse_mmCIF_file.rb +1 -9
  123. data/lib/bioroebe/pdb/parse_pdb_file.rb +4 -10
  124. data/lib/bioroebe/project/project.rb +1 -1
  125. data/lib/bioroebe/python/README.md +1 -0
  126. data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
  127. data/lib/bioroebe/python/gui/gtk3/all_in_one.css +4 -0
  128. data/lib/bioroebe/python/gui/gtk3/all_in_one.py +59 -0
  129. data/lib/bioroebe/python/gui/gtk3/widget1.py +20 -0
  130. data/lib/bioroebe/python/gui/tkinter/all_in_one.py +91 -0
  131. data/lib/bioroebe/python/mymodule.py +8 -0
  132. data/lib/bioroebe/python/protein_to_dna.py +33 -0
  133. data/lib/bioroebe/python/shell/shell.py +19 -0
  134. data/lib/bioroebe/python/to_rna.py +14 -0
  135. data/lib/bioroebe/python/toplevel_methods/esystem.py +12 -0
  136. data/lib/bioroebe/python/toplevel_methods/open_in_browser.py +20 -0
  137. data/lib/bioroebe/python/toplevel_methods/palindromes.py +42 -0
  138. data/lib/bioroebe/python/toplevel_methods/rds.py +13 -0
  139. data/lib/bioroebe/python/toplevel_methods/shuffleseq.py +23 -0
  140. data/lib/bioroebe/python/toplevel_methods/three_delimiter.py +37 -0
  141. data/lib/bioroebe/python/toplevel_methods/time_and_date.py +43 -0
  142. data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +21 -0
  143. data/lib/bioroebe/requires/require_the_bioroebe_project.rb +3 -1
  144. data/lib/bioroebe/sequence/alignment.rb +14 -4
  145. data/lib/bioroebe/sequence/dna.rb +1 -0
  146. data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
  147. data/lib/bioroebe/sequence/protein.rb +105 -3
  148. data/lib/bioroebe/sequence/sequence.rb +87 -21
  149. data/lib/bioroebe/shell/menu.rb +3829 -3714
  150. data/lib/bioroebe/shell/misc.rb +59 -4307
  151. data/lib/bioroebe/shell/readline/readline.rb +1 -1
  152. data/lib/bioroebe/shell/shell.rb +11255 -28
  153. data/lib/bioroebe/siRNA/siRNA.rb +81 -1
  154. data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
  155. data/lib/bioroebe/string_matching/hamming_distance.rb +1 -9
  156. data/lib/bioroebe/taxonomy/class_methods.rb +3 -8
  157. data/lib/bioroebe/taxonomy/constants.rb +4 -3
  158. data/lib/bioroebe/taxonomy/edit.rb +2 -1
  159. data/lib/bioroebe/taxonomy/help/help.rb +10 -10
  160. data/lib/bioroebe/taxonomy/help/helpline.rb +2 -2
  161. data/lib/bioroebe/taxonomy/info/check_available.rb +15 -9
  162. data/lib/bioroebe/taxonomy/info/info.rb +18 -11
  163. data/lib/bioroebe/taxonomy/info/is_dna.rb +46 -36
  164. data/lib/bioroebe/taxonomy/interactive.rb +140 -104
  165. data/lib/bioroebe/taxonomy/menu.rb +27 -18
  166. data/lib/bioroebe/taxonomy/parse_fasta.rb +3 -1
  167. data/lib/bioroebe/taxonomy/shared.rb +1 -0
  168. data/lib/bioroebe/taxonomy/taxonomy.rb +1 -0
  169. data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
  170. data/lib/bioroebe/toplevel_methods/colourize_related_methods.rb +164 -0
  171. data/lib/bioroebe/toplevel_methods/databases.rb +1 -1
  172. data/lib/bioroebe/toplevel_methods/digest.rb +18 -8
  173. data/lib/bioroebe/toplevel_methods/fasta_and_fastq.rb +107 -63
  174. data/lib/bioroebe/toplevel_methods/file_and_directory_related_actions.rb +14 -2
  175. data/lib/bioroebe/toplevel_methods/frequencies.rb +8 -1
  176. data/lib/bioroebe/toplevel_methods/misc.rb +142 -12
  177. data/lib/bioroebe/toplevel_methods/nucleotides.rb +118 -46
  178. data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
  179. data/lib/bioroebe/toplevel_methods/palindromes.rb +1 -2
  180. data/lib/bioroebe/toplevel_methods/taxonomy.rb +2 -2
  181. data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
  182. data/lib/bioroebe/utility_scripts/align_open_reading_frames.rb +1 -9
  183. data/lib/bioroebe/utility_scripts/check_for_mismatches/check_for_mismatches.rb +1 -9
  184. data/lib/bioroebe/utility_scripts/compacter.rb +1 -9
  185. data/lib/bioroebe/utility_scripts/compseq/compseq.rb +1 -9
  186. data/lib/bioroebe/utility_scripts/consensus_sequence.rb +6 -6
  187. data/lib/bioroebe/utility_scripts/create_batch_entrez_file.rb +1 -9
  188. data/lib/bioroebe/utility_scripts/dot_alignment.rb +1 -9
  189. data/lib/bioroebe/utility_scripts/move_file_to_its_correct_location.rb +1 -4
  190. data/lib/bioroebe/utility_scripts/parse_taxonomy.rb +2 -2
  191. data/lib/bioroebe/utility_scripts/showorf/constants.rb +0 -5
  192. data/lib/bioroebe/utility_scripts/showorf/reset.rb +1 -4
  193. data/lib/bioroebe/version/version.rb +2 -2
  194. data/lib/bioroebe/www/embeddable_interface.rb +103 -54
  195. data/lib/bioroebe/www/sinatra/sinatra.rb +186 -70
  196. data/lib/bioroebe/yaml/aminoacids/amino_acids_long_name_to_one_letter.yml +2 -2
  197. data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
  198. data/lib/bioroebe/yaml/configuration/temp_dir.yml +1 -1
  199. data/lib/bioroebe/yaml/genomes/README.md +3 -4
  200. data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +27 -27
  201. metadata +81 -64
  202. data/doc/setup.rb +0 -1655
  203. data/lib/bioroebe/fasta_and_fastq/parse_fasta/constants.rb +0 -50
  204. data/lib/bioroebe/fasta_and_fastq/parse_fasta/initialize.rb +0 -86
  205. data/lib/bioroebe/fasta_and_fastq/parse_fasta/menu.rb +0 -117
  206. data/lib/bioroebe/fasta_and_fastq/parse_fasta/misc.rb +0 -981
  207. data/lib/bioroebe/fasta_and_fastq/parse_fasta/report.rb +0 -156
  208. data/lib/bioroebe/fasta_and_fastq/parse_fasta/reset.rb +0 -128
  209. data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
  210. data/lib/bioroebe/java/bioroebe/Base.class +0 -0
  211. data/lib/bioroebe/java/bioroebe/Codons.java +0 -22
  212. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.class +0 -0
  213. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.java +0 -19
  214. data/lib/bioroebe/java/bioroebe.jar +0 -0
  215. data/lib/bioroebe/shell/add.rb +0 -108
  216. data/lib/bioroebe/shell/assign.rb +0 -360
  217. data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
  218. data/lib/bioroebe/shell/constants.rb +0 -166
  219. data/lib/bioroebe/shell/download.rb +0 -335
  220. data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
  221. data/lib/bioroebe/shell/enzymes.rb +0 -310
  222. data/lib/bioroebe/shell/fasta.rb +0 -345
  223. data/lib/bioroebe/shell/gtk.rb +0 -76
  224. data/lib/bioroebe/shell/history.rb +0 -132
  225. data/lib/bioroebe/shell/initialize.rb +0 -217
  226. data/lib/bioroebe/shell/loop.rb +0 -74
  227. data/lib/bioroebe/shell/prompt.rb +0 -107
  228. data/lib/bioroebe/shell/random.rb +0 -289
  229. data/lib/bioroebe/shell/reset.rb +0 -335
  230. data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
  231. data/lib/bioroebe/shell/search.rb +0 -337
  232. data/lib/bioroebe/shell/sequences.rb +0 -200
  233. data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
  234. data/lib/bioroebe/shell/startup.rb +0 -127
  235. data/lib/bioroebe/shell/taxonomy.rb +0 -14
  236. data/lib/bioroebe/shell/tk.rb +0 -23
  237. data/lib/bioroebe/shell/user_input.rb +0 -88
  238. data/lib/bioroebe/shell/xorg.rb +0 -45
  239. /data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.java → src/main/java/bioroebe/BisulfiteTreatment.java} +0 -0
  240. /data/lib/bioroebe/java/bioroebe/{Esystem.class → src/main/java/bioroebe/Esystem.class} +0 -0
  241. /data/lib/bioroebe/java/bioroebe/{Esystem.java → src/main/java/bioroebe/Esystem.java} +0 -0
  242. /data/lib/bioroebe/java/bioroebe/{RemoveFile.class → src/main/java/bioroebe/RemoveFile.class} +0 -0
@@ -23,6 +23,7 @@ module Bioroebe
23
23
  #
24
24
  # Bioroebe.return_fasta_subsection_of_this_file("foobar.fa")
25
25
  # Bioroebe.return_fasta_subsection_of_this_file("foobar.fa", :keep_it_flat)
26
+ # Bioroebe.return_fasta_subsection_of_this_file("/home/Temp/bioroebe/fasta/alu_elements.fasta", :keep_it_flat)
26
27
  #
27
28
  # ========================================================================= #
28
29
  def self.return_fasta_subsection_of_this_file(
@@ -42,6 +43,8 @@ module Bioroebe
42
43
  end
43
44
  if File.exist? i
44
45
  dataset = File.readlines(i)
46
+ pp 'DEBUG'
47
+ pp dataset
45
48
  inner_array = []
46
49
  size = dataset.size
47
50
  dataset.each_with_index {|line, index|
@@ -55,16 +58,22 @@ module Bioroebe
55
58
  end
56
59
  inner_array.prepend(line)
57
60
  else
61
+ # ================================================================= #
58
62
  # This will be a FASTA body section.
63
+ # ================================================================= #
59
64
  case extra_options
60
- when :keep_body_together # the default
65
+ # ================================================================= #
66
+ # === :keep_body_together
67
+ # ================================================================= #
68
+ when :keep_body_together, # the default
69
+ :keep_it_flat
61
70
  inner_array << line
62
71
  else
63
72
  # =============================================================== #
64
73
  # Else we have to append it.
65
74
  # =============================================================== #
66
75
  previous_line = inner_array.last
67
- if previous_line.start_with? '>'
76
+ if previous_line and previous_line.start_with?('>')
68
77
  inner_array << line
69
78
  else
70
79
  inner_array.last.strip!
@@ -86,17 +86,6 @@ class ShowFastaHeaders < Bioroebe::CommandlineApplication # === Biroebe::ShowFas
86
86
  @input
87
87
  end
88
88
 
89
- # ========================================================================= #
90
- # === report_this_header_from_that_file
91
- # ========================================================================= #
92
- def report_this_header_from_that_file(header, file)
93
- if @be_verbose
94
- erev "The file at #{sfile(file)}#{rev} has the following FASTA header:"
95
- e
96
- end
97
- e " #{simp(header)}"
98
- end
99
-
100
89
  # ========================================================================= #
101
90
  # === input_without_extension
102
91
  # ========================================================================= #
@@ -116,13 +105,39 @@ class ShowFastaHeaders < Bioroebe::CommandlineApplication # === Biroebe::ShowFas
116
105
  }
117
106
  end
118
107
 
108
+ # ========================================================================= #
109
+ # === report_this_header_from_that_file
110
+ # ========================================================================= #
111
+ def report_this_header_from_that_file(header, file)
112
+ if @be_verbose
113
+ erev "The file at #{sfile(file)}#{rev} has the following FASTA header:"
114
+ e
115
+ end
116
+ e " #{simp(header)}"
117
+ if header.include? '|'
118
+ splitted = header.split('|')
119
+ if splitted.size > 2
120
+ assumed_name_of_the_organism = splitted[2].strip
121
+ if assumed_name_of_the_organism.include? 'OS='
122
+ assumed_name_of_the_organism = assumed_name_of_the_organism.scan(/ OS=(.+)/).flatten
123
+ assumed_name_of_the_organism = assumed_name_of_the_organism.first
124
+ if assumed_name_of_the_organism.include? ' ('
125
+ assumed_name_of_the_organism = assumed_name_of_the_organism.split(' (').first
126
+ end
127
+ end
128
+ erev 'The organism may be: '+
129
+ steelblue(assumed_name_of_the_organism)+rev
130
+ end
131
+ end
132
+ end
133
+
119
134
  # ========================================================================= #
120
135
  # === run (run tag)
121
136
  # ========================================================================= #
122
137
  def run
123
138
  files = Dir[input?]
124
139
  if files.empty?
125
- opnn; e 'No files could be found for '+input?+'.'
140
+ opnn; e "No files could be found for #{input?}."
126
141
  else
127
142
  report_these_files(files)
128
143
  end
@@ -29,11 +29,6 @@ class SimplifyFastaHeader < ::Bioroebe::CommandlineApplication # === Bioroebe::S
29
29
 
30
30
  require 'bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb'
31
31
 
32
- # ========================================================================= #
33
- # === NAMESPACE
34
- # ========================================================================= #
35
- NAMESPACE = inspect
36
-
37
32
  # ========================================================================= #
38
33
  # === initialize
39
34
  # ========================================================================= #
@@ -53,6 +48,7 @@ class SimplifyFastaHeader < ::Bioroebe::CommandlineApplication # === Bioroebe::S
53
48
  # ========================================================================= #
54
49
  def reset
55
50
  super()
51
+ infer_the_namespace
56
52
  end
57
53
 
58
54
  # ========================================================================= #
@@ -8,11 +8,6 @@ module Bioroebe
8
8
 
9
9
  class SplitThisFastaFileIntoChromosomes < ::Bioroebe::CommandlineApplication # === Bioroebe::SplitThisFastaFileIntoChromosomes
10
10
 
11
- # ========================================================================= #
12
- # === NAMESPACE
13
- # ========================================================================= #
14
- NAMESPACE = inspect
15
-
16
11
  # ========================================================================= #
17
12
  # === ALLOWED_CHARACTERS
18
13
  #
@@ -0,0 +1,4 @@
1
+ This directory was created on the 12.07.2022.
2
+
3
+ The idea is that we can make use of class Bioroebe::Genome
4
+ to represent a genome.
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Bioroebe::Genome
6
+ #
7
+ # This class should be able to represent a genome.
8
+ #
9
+ # Usage example:
10
+ #
11
+ # Bioroebe::Genome.new(ARGV)
12
+ #
13
+ # =========================================================================== #
14
+ # require 'bioroebe/genome/genome.rb'
15
+ # =========================================================================== #
16
+ module Bioroebe
17
+
18
+ class Genome # < Base # === Bioroebe::Genome
19
+
20
+ # ========================================================================= #
21
+ # === NAMESPACE
22
+ # ========================================================================= #
23
+ NAMESPACE = inspect
24
+
25
+ # ========================================================================= #
26
+ # === initialize
27
+ # ========================================================================= #
28
+ def initialize(
29
+ commandline_arguments = nil,
30
+ run_already = true
31
+ )
32
+ reset
33
+ set_commandline_arguments(
34
+ commandline_arguments
35
+ )
36
+ run if run_already
37
+ end
38
+
39
+ # ========================================================================= #
40
+ # === reset (reset tag)
41
+ # ========================================================================= #
42
+ def reset
43
+ super()
44
+ # ======================================================================= #
45
+ # === @namespace
46
+ # ======================================================================= #
47
+ @namespace = NAMESPACE
48
+ end
49
+
50
+ # ========================================================================= #
51
+ # === run (run tag)
52
+ # ========================================================================= #
53
+ def run
54
+ end
55
+
56
+ # ========================================================================= #
57
+ # === Bioroebe::Genome[]
58
+ # ========================================================================= #
59
+ def self.[](i = '')
60
+ new(i)
61
+ end
62
+
63
+ end; end
64
+
65
+ if __FILE__ == $PROGRAM_NAME
66
+ Bioroebe::Genome.new(ARGV)
67
+ end # genome
@@ -28,11 +28,6 @@ class GenomePattern < ::Bioroebe::CommandlineApplication # === Bioroebe::GenomeP
28
28
 
29
29
  require 'bioroebe/gene/gene.rb'
30
30
 
31
- # ========================================================================= #
32
- # === NAMESPACE
33
- # ========================================================================= #
34
- NAMESPACE = inspect
35
-
36
31
  # ========================================================================= #
37
32
  # === initialize
38
33
  # ========================================================================= #
@@ -50,15 +45,14 @@ class GenomePattern < ::Bioroebe::CommandlineApplication # === Bioroebe::GenomeP
50
45
  # ========================================================================= #
51
46
  def reset
52
47
  super()
53
- # ======================================================================= #
54
- # === @namespace
55
- # ======================================================================= #
56
- @namespace = NAMESPACE
48
+ infer_the_namespace
57
49
  # ======================================================================= #
58
50
  # === @hash
59
51
  # ======================================================================= #
60
52
  @hash = {}
53
+ # === :array_genes
61
54
  @hash[:array_genes] = []
55
+ # === :be_verbose
62
56
  @hash[:be_verbose] = true # If true then we tell the user what we will do.
63
57
  end
64
58
 
@@ -0,0 +1 @@
1
+ gtk3
@@ -19,46 +19,14 @@ module Gtk
19
19
 
20
20
  class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
21
21
 
22
- require 'bioroebe/sequence/alignment.rb'
22
+ require 'bioroebe/gui/shared_code/alignment/alignment_module.rb'
23
+ include Bioroebe::GUI::AlignmentModule
23
24
 
24
25
  require 'bioroebe/constants/GUIs.rb'
25
26
  include ::Bioroebe::GUI
26
27
 
27
- require 'gtk_paradise/requires/require_the_base_module.rb'
28
28
  include ::Gtk::BaseModule
29
29
 
30
- # ========================================================================= #
31
- # === NAMESPACE
32
- # ========================================================================= #
33
- NAMESPACE = inspect
34
-
35
- # ========================================================================= #
36
- # === TITLE
37
- # ========================================================================= #
38
- TITLE = 'Alignment'
39
-
40
- # ========================================================================= #
41
- # === WIDTH
42
- # ========================================================================= #
43
- WIDTH = '60%'
44
-
45
- # ========================================================================= #
46
- # === HEIGHT
47
- # ========================================================================= #
48
- HEIGHT = '50%'
49
-
50
- # ========================================================================= #
51
- # === USE_THIS_FONT
52
- # ========================================================================= #
53
- USE_THIS_FONT = :dejavu_condensed_22
54
-
55
- # ========================================================================= #
56
- # === FONT_FOR_THE_ENTRIES
57
- #
58
- # The entries must use a mono-spaced font.
59
- # ========================================================================= #
60
- FONT_FOR_THE_ENTRIES = :hack_20
61
-
62
30
  # ========================================================================= #
63
31
  # === initialize
64
32
  # ========================================================================= #
@@ -79,18 +47,16 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
79
47
  # ========================================================================= #
80
48
  def reset
81
49
  reset_the_internal_variables
50
+ infer_the_namespace
82
51
  # ======================================================================= #
83
52
  # === @configuration
84
53
  # ======================================================================= #
85
- @configuration = [true, __dir__, NAMESPACE]
54
+ @configuration = [true, __dir__, namespace?]
86
55
  title_width_height_font(TITLE, WIDTH, HEIGHT, USE_THIS_FONT)
87
56
  use_gtk_paradise_project_css_file
88
57
  append_project_CSS_file
89
58
  infer_the_size_automatically
90
- # ======================================================================= #
91
- # === @alignment
92
- # ======================================================================= #
93
- @alignment = Bioroebe::Alignment.new(nil, :do_not_run_yet)
59
+ reset_the_alignment_object
94
60
  end
95
61
 
96
62
  # ========================================================================= #
@@ -114,9 +80,9 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
114
80
  # ======================================================================= #
115
81
  # === @scrolled_window
116
82
  # ======================================================================= #
117
- @scrolled_window = gtk_scrolled_window(@text_view)
83
+ @scrolled_window = create_scrolled_window(@text_view)
118
84
  @scrolled_window.width_height(300, 400)
119
- @scrolled_window.css_class('pad4px')
85
+ @scrolled_window.pad4px
120
86
  @scrolled_window.bblack1
121
87
  end
122
88
 
@@ -127,39 +93,13 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
127
93
  # ======================================================================= #
128
94
  # === @text_buffer
129
95
  # ======================================================================= #
130
- @text_buffer = gtk_text_buffer
96
+ @text_buffer = create_text_buffer
131
97
  # ======================================================================= #
132
98
  # === @text_view
133
99
  # ======================================================================= #
134
- @text_view = gtk_text_view(@text_buffer)
100
+ @text_view = create_text_view(@text_buffer)
135
101
  end
136
102
 
137
- # ========================================================================= #
138
- # === text_view_widget?
139
- # ========================================================================= #
140
- def text_view_widget?
141
- @text_view
142
- end
143
-
144
- # ========================================================================= #
145
- # === do_analyse
146
- # ========================================================================= #
147
- def do_analyse(
148
- _ = @text_buffer.text?
149
- )
150
- if _ and !_.empty?
151
- _.strip!
152
- @alignment.use_this_as_input(_)
153
- consensus_sequence = @alignment.consensus_sequence?
154
- @entry_consensus_sequence.set_text(consensus_sequence)
155
- else
156
- pop_up_widget(
157
- over_this_widget: text_view_widget?,
158
- text: 'Please assign a sequence first.'
159
- )
160
- end
161
- end; alias do_analyse_again do_analyse # === do_analyse_again
162
-
163
103
  # ========================================================================= #
164
104
  # === create_the_entries (entry tag, entries tag)
165
105
  # ========================================================================= #
@@ -173,49 +113,18 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
173
113
  @entry_consensus_sequence.use_this_font = FONT_FOR_THE_ENTRIES
174
114
  @entry_consensus_sequence.yellow_background
175
115
  update_the_hint_for_the_entry_consequences_sequence(
176
- 'This entry will contain the consensus sequence, '\
116
+ 'This entry will contain the <b>consensus sequence</b>, '\
177
117
  'derived from the above sequences.'
178
118
  )
179
119
  # ======================================================================= #
180
120
  # === @entry_numbers
181
121
  # ======================================================================= #
182
- @entry_numbers = gtk_entry
122
+ @entry_numbers = create_entry
123
+ @entry_numbers.bblack1
183
124
  @entry_numbers.use_this_font = FONT_FOR_THE_ENTRIES
184
125
  @entry_numbers.hint = 'This area may indicate the numbers for '\
185
126
  'the alignment shown right above.'
186
- end
187
-
188
- # ========================================================================= #
189
- # === realign_the_numbers_showing_how_long_the_consensus_sequence_is
190
- # ========================================================================= #
191
- def realign_the_numbers_showing_how_long_the_consensus_sequence_is
192
- @entry_numbers.center
193
- n_characters = @entry_consensus_sequence.text?.size
194
- @entry_numbers.set_text(return_fill_up_to(n_characters))
195
- end
196
-
197
- # ========================================================================= #
198
- # === return_fill_up_to
199
- # ========================================================================= #
200
- def return_fill_up_to(i)
201
- _ = ''.dup
202
- i.times {|counter|
203
- counter = (counter+1) % 10
204
- _ << counter.to_s
205
- }
206
- return _
207
- end
208
-
209
- # ========================================================================= #
210
- # === connect_skeleton (connect tag)
211
- # ========================================================================= #
212
- def connect_skeleton
213
- abort_on_exception
214
- minimal(return_the_first_row, 5)
215
- minimal(@scrolled_window, 2)
216
- minimal(@button_do_analyse, 2)
217
- minimal(@entry_consensus_sequence, 2)
218
- minimal(@entry_numbers, 2)
127
+ @entry_numbers.very_light_yellow_background
219
128
  end
220
129
 
221
130
  # ========================================================================= #
@@ -223,12 +132,12 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
223
132
  # ========================================================================= #
224
133
  def return_the_first_row
225
134
  _ = gtk_hbox
226
- top_label = gtk_left_aligned_label(
227
- 'Input the sequences that you wish to compare to one another'
135
+ top_label = left_aligned_label(
136
+ TEXT_INPUT_THE_SEQUENCES
228
137
  )
229
138
  top_label.center
230
139
  _.minimal(top_label)
231
- event_box = gtk_event_box(
140
+ event_box = event_box(
232
141
  image_document_open
233
142
  )
234
143
  event_box.hint = 'Click on this icon to open a local file.'
@@ -258,13 +167,6 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
258
167
  @entry_consensus_sequence.hint = i
259
168
  end
260
169
 
261
- # ========================================================================= #
262
- # === run (run tag)
263
- # ========================================================================= #
264
- def run
265
- create_skeleton_then_connect_skeleton
266
- end
267
-
268
170
  # ========================================================================= #
269
171
  # === create_the_buttons (buttons tag)
270
172
  # ========================================================================= #
@@ -273,6 +175,7 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
273
175
  # === @button_do_analyse
274
176
  # ======================================================================= #
275
177
  @button_do_analyse = bold_button('_Do analyse')
178
+ @button_do_analyse.clear_background
276
179
  @button_do_analyse.bblack1
277
180
  @button_do_analyse.on_hover(:lightblue)
278
181
  @button_do_analyse.hint = 'Click on this button to '\
@@ -294,20 +197,6 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
294
197
  }
295
198
  end
296
199
 
297
- # ========================================================================= #
298
- # === Bioroebe::GUI::Gtk::Alignment.run
299
- # ========================================================================= #
300
- def self.run(
301
- i = ARGV
302
- )
303
- require 'gtk_paradise/run'
304
- _ = ::Bioroebe::GUI::Gtk::Alignment.new(i)
305
- r = ::Gtk.run
306
- r << _
307
- r.automatic_size_then_automatic_title
308
- r.top_left_then_run
309
- end
310
-
311
200
  # ========================================================================= #
312
201
  # === do_open_and_assign_a_local_file
313
202
  # ========================================================================= #
@@ -330,6 +219,62 @@ class Alignment < ::Gtk::Box # === Bioroebe::GUI::Gtk::Alignment
330
219
  end
331
220
  end
332
221
 
222
+ # ========================================================================= #
223
+ # === connect_skeleton (connect tag)
224
+ # ========================================================================= #
225
+ def connect_skeleton
226
+ abort_on_exception
227
+ grid = default_grid
228
+ grid.full_row(return_the_first_row)
229
+ grid.full_row(@scrolled_window)
230
+ grid.full_row(@entry_consensus_sequence)
231
+ grid.full_row(@entry_numbers)
232
+ grid.full_row(@button_do_analyse)
233
+ grid.hcenter
234
+ maximal(grid)
235
+ end
236
+
237
+ # ========================================================================= #
238
+ # === do_analyse
239
+ #
240
+ # This method will be called whenever the user hits the "Do analyse"
241
+ # button.
242
+ # ========================================================================= #
243
+ def do_analyse(
244
+ _ = @text_buffer.text?
245
+ )
246
+ if _ and !_.empty?
247
+ _.strip!
248
+ @alignment.use_this_as_input(_)
249
+ consensus_sequence = return_the_consensus_sequence
250
+ @entry_consensus_sequence.set_text(consensus_sequence)
251
+ else
252
+ pop_up_widget(
253
+ over_this_widget: text_view_widget?,
254
+ text: 'Please assign a sequence first.'
255
+ )
256
+ end
257
+ end; alias do_analyse_again do_analyse # === do_analyse_again
258
+
259
+ # ========================================================================= #
260
+ # === run (run tag)
261
+ # ========================================================================= #
262
+ def run
263
+ super()
264
+ end
265
+
266
+ # ========================================================================= #
267
+ # === Bioroebe::GUI::Gtk::Alignment.run
268
+ # ========================================================================= #
269
+ def self.run(
270
+ i = ARGV
271
+ )
272
+ require 'gtk_paradise/run'
273
+ r = ::Gtk.run
274
+ r << ::Bioroebe::GUI::Gtk::Alignment.new(i)
275
+ r.automatic_top_left_then_run
276
+ end
277
+
333
278
  end; end; end; end
334
279
 
335
280
  if __FILE__ == $PROGRAM_NAME