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
@@ -4,7 +4,12 @@
4
4
  # =========================================================================== #
5
5
  # === Bioroebe::Protein
6
6
  #
7
- # This is a typical sequence of aminoacids.
7
+ # This is a typical sequence of aminoacids. It is not 100% certain whether
8
+ # this class will be retained, but for the time being it will be. Note
9
+ # that peptides should also use this class - while the name may not be
10
+ # 100% accurate (smaller proteins are typically called peptides or
11
+ # oligopeptides) I feel that this is a distinction that does not really
12
+ # make a whole lot of sense.
8
13
  # =========================================================================== #
9
14
  # require 'bioroebe/sequence/protein.rb'
10
15
  # =========================================================================== #
@@ -94,6 +99,9 @@ class Protein < ::Bioroebe::Sequence # === Bioroebe::Protein
94
99
  # This method will return true if there are at the least two
95
100
  # cysteines in the aminoacid sequence of this protein.
96
101
  #
102
+ # If anyone knows of a better algorithm to determine whether
103
+ # a protein can REALLY create a disulfide bond let me know.
104
+ #
97
105
  # Usage example:
98
106
  #
99
107
  # Bioroebe::Protein.new('MLKLKNASCCEEE').can_form_disulfide_bonds? # => true
@@ -146,7 +154,7 @@ class Protein < ::Bioroebe::Sequence # === Bioroebe::Protein
146
154
  chars.each {|this_aminoacid|
147
155
  sum += weight_of(this_aminoacid)
148
156
  }
149
- sum
157
+ return sum
150
158
  end; alias molecular_weight? weight? # === molecular_weight?
151
159
 
152
160
  # ========================================================================= #
@@ -230,10 +238,99 @@ class Protein < ::Bioroebe::Sequence # === Bioroebe::Protein
230
238
  return result
231
239
  end
232
240
 
241
+ # ========================================================================= #
242
+ # === can_be_stained_via_coomassie?
243
+ #
244
+ # Determine whether a protein can be stained in a coomassie
245
+ # staining. This is just a simple, fairly dumb check and
246
+ # NOT guaranteed to be correct. If anyone has a better
247
+ # way to check for this let me know.
248
+ # ========================================================================= #
249
+ def can_be_stained_via_coomassie?
250
+ disallowed_aminoacids = %w( K H R W F Y)
251
+ sequence = sequence?
252
+ return sequence.chars.uniq.any? {|this_aminoacid|
253
+ disallowed_aminoacids.include? this_aminoacid
254
+ }
255
+ end
256
+
257
+ # ========================================================================= #
258
+ # === aliphatic_index
259
+ #
260
+ # This method will calculate the aliphatic acid of an aminoacid,
261
+ # aka a Protein.
262
+ #
263
+ # Usage example:
264
+ #
265
+ # require 'bioroebe'; Bioroebe::Protein.new('MVKSYDRYEYEDCLGIVNSKSSNCVFLNNA').aliphatic_index # => 71.33333
266
+ #
267
+ # ========================================================================= #
268
+ def aliphatic_index(
269
+ a = 2.9,
270
+ b = 3.9
271
+ )
272
+ composition = {}
273
+ composition.default = 0
274
+ chars = sequence?.chars
275
+ chars.each { |entry| composition[entry] += 1}
276
+ (
277
+ composition['A'] +
278
+ a * composition['V'].to_f +
279
+ b * (composition['I'] + composition['L'])
280
+ ).to_f / length.to_f * 100
281
+ end
282
+
283
+ # ========================================================================= #
284
+ # === Bioroebe::Protein.one_to_three
285
+ #
286
+ # Usage example:
287
+ #
288
+ # Bioroebe::Protein.one_to_three('A') # => "Ala"
289
+ #
290
+ # ========================================================================= #
291
+ def self.one_to_three(this_aminoacid = 'A')
292
+ if this_aminoacid.is_a? Array
293
+ this_aminoacid = this_aminoacid.join(' ').strip
294
+ end
295
+ return ::Bioroebe.one_to_three(this_aminoacid)
296
+ end
297
+
298
+ # ========================================================================= #
299
+ # === Bioroebe::Protein.name
300
+ #
301
+ # Usage example:
302
+ #
303
+ # Bioroebe::Protein.name('A') # => "alanine"
304
+ #
305
+ # ========================================================================= #
306
+ def self.name(this_aminoacid = 'A')
307
+ Bioroebe.return_long_name_of_this_aminoacid(this_aminoacid).downcase
308
+ end
309
+
310
+ # ========================================================================= #
311
+ # === Bioroebe::Protein.to_1
312
+ #
313
+ # This will convert from the long name of an aminoacid, such as 'alanine',
314
+ # to the short one-letter abbreviation.
315
+ #
316
+ # Usage example:
317
+ #
318
+ # Bioroebe::Protein.to_1('alanine') # => "A"
319
+ #
320
+ # ========================================================================= #
321
+ def self.to_1(this_aminoacid = 'alanine')
322
+ if this_aminoacid.is_a? Array
323
+ this_aminoacid = this_aminoacid.join(' ').strip
324
+ end
325
+ this_aminoacid.downcase!
326
+ dataset = YAML.load_file(Bioroebe.file_amino_acids_long_name_to_one_letter)
327
+ return dataset[this_aminoacid]
328
+ end
329
+
233
330
  end
234
331
 
235
332
  # =========================================================================== #
236
- # This "alias" was added in May 2022.
333
+ # The following "alias" was added in May 2022.
237
334
  # =========================================================================== #
238
335
  Aminoacids = Protein
239
336
 
@@ -267,6 +364,7 @@ end
267
364
 
268
365
  if __FILE__ == $PROGRAM_NAME
269
366
  require 'colours/autoinclude'
367
+ require 'bioroebe/toplevel_methods/verbose.rb'
270
368
  protein = Bioroebe::Protein.new(ARGV)
271
369
  e protein.weight?
272
370
  e Colours.rev+'For the aminoacid sequence:'
@@ -277,5 +375,9 @@ if __FILE__ == $PROGRAM_NAME
277
375
  e
278
376
  e " #{Colours.royalblue(protein.to_rna)}"
279
377
  e
378
+ e 'Can this protein be stained via coomassie brilliant blue?:'
379
+ e
380
+ e " #{lightblue(Bioroebe::VerboseTruth[protein.can_be_stained_via_coomassie?])}"
381
+ e
280
382
  end # protein MAC
281
383
  # protein MACCCCAAAAAKKKKLLLLL
@@ -188,6 +188,27 @@ class Sequence < ::Bioroebe::RawSequence
188
188
  @internal_hash[:type]
189
189
  end; alias type type? # === type
190
190
 
191
+ # ========================================================================= #
192
+ # === index
193
+ # ========================================================================= #
194
+ def index(i)
195
+ @sequence.index(i)
196
+ end
197
+
198
+ # ========================================================================= #
199
+ # === map
200
+ # ========================================================================= #
201
+ def map(&block)
202
+ @sequence.map(&block)
203
+ end
204
+
205
+ # ========================================================================= #
206
+ # === size?
207
+ # ========================================================================= #
208
+ def size?
209
+ @sequence.size
210
+ end
211
+
191
212
  # ========================================================================= #
192
213
  # === to_regexp
193
214
  #
@@ -334,7 +355,7 @@ class Sequence < ::Bioroebe::RawSequence
334
355
  # ===================================================================== #
335
356
  sequence?.tr!('T','U') if sequence?
336
357
  end
337
- end
358
+ end; alias normalize sanitize_dataset # === normalize
338
359
 
339
360
  # ========================================================================= #
340
361
  # === set_type
@@ -484,7 +505,8 @@ class Sequence < ::Bioroebe::RawSequence
484
505
  # ===================================================================== #
485
506
  # === :do_not_downcase
486
507
  # ===================================================================== #
487
- when :do_not_downcase
508
+ when :do_not_downcase,
509
+ :make_no_modification
488
510
  # Make no modification in this case.
489
511
  # ===================================================================== #
490
512
  # === :do_upcase
@@ -526,6 +548,16 @@ class Sequence < ::Bioroebe::RawSequence
526
548
  end; alias set_rna_type set_rna # === set_rna_type
527
549
  alias convert_to_rna set_rna # === convert_to_rna
528
550
 
551
+ # ========================================================================= #
552
+ # === automatic_support_for_nucleotides
553
+ #
554
+ # This adds automatic support for RNA and DNA to this sequence object.
555
+ # ========================================================================= #
556
+ def automatic_support_for_nucleotides
557
+ require 'bioroebe/sequence/nucleotide_module/nucleotide_module.rb'
558
+ extend(Bioroebe::NucleotideModule)
559
+ end
560
+
529
561
  # ========================================================================= #
530
562
  # === set_dna
531
563
  # ========================================================================= #
@@ -544,6 +576,33 @@ class Sequence < ::Bioroebe::RawSequence
544
576
  }.join
545
577
  end
546
578
 
579
+ # ========================================================================= #
580
+ # === remove_invalid_entries_from_the_dna_sequence!
581
+ # ========================================================================= #
582
+ def remove_invalid_entries_from_the_dna_sequence!(i = sequence?)
583
+ result = i.chars.select {|character|
584
+ DNA_NUCLEOTIDES.include? character.upcase
585
+ }.join
586
+ set_sequence(result)
587
+ end
588
+
589
+ # ========================================================================= #
590
+ # === randomize
591
+ #
592
+ # Usage example:
593
+ #
594
+ # x = Bioroebe::Sequence.new; x.randomize
595
+ #
596
+ # ========================================================================= #
597
+ def randomize(
598
+ i = { 'A'=>1,'C'=>2,'G'=>3,'T'=>4 }
599
+ )
600
+ if i.is_a? Hash
601
+ i = i.map{|key, value| "#{key * value}" }.join
602
+ end
603
+ ::Bioroebe.random_dna(size?, i) # => "GGTAGGGGGGGGTAGGGGGG"
604
+ end
605
+
547
606
  # ========================================================================= #
548
607
  # === Bioroebe::Sequence.sequence_from_file
549
608
  #