bioroebe 0.10.80 → 0.12.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bioroebe might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +3612 -2781
- data/bin/bioroebe +7 -1
- data/bin/bioroebe_hash +7 -0
- data/bin/codon_to_aminoacid +1 -0
- data/bioroebe.gemspec +3 -3
- data/doc/README.gen +3612 -2742
- data/doc/quality_control/commandline_applications.md +3 -3
- data/doc/todo/bioroebe_java_todo.md +22 -0
- data/doc/todo/bioroebe_todo.md +2059 -2615
- data/lib/bioroebe/aminoacids/aminoacid_substitution.rb +1 -9
- data/lib/bioroebe/aminoacids/codon_percentage.rb +1 -9
- data/lib/bioroebe/aminoacids/deduce_aminoacid_sequence.rb +1 -9
- data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
- data/lib/bioroebe/aminoacids/show_hydrophobicity.rb +1 -6
- data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
- data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +15 -11
- data/lib/bioroebe/base/commandline_application/misc.rb +66 -49
- data/lib/bioroebe/base/commandline_application/opn.rb +8 -8
- data/lib/bioroebe/base/commandline_application/reset.rb +3 -2
- data/lib/bioroebe/base/misc.rb +35 -0
- data/lib/bioroebe/base/prototype/misc.rb +11 -1
- data/lib/bioroebe/codon_tables/frequencies/parse_frequency_table.rb +2 -10
- data/lib/bioroebe/codons/codons.rb +1 -1
- data/lib/bioroebe/codons/convert_this_codon_to_that_aminoacid.rb +192 -58
- data/lib/bioroebe/codons/possible_codons_for_this_aminoacid.rb +1 -9
- data/lib/bioroebe/codons/show_codon_tables.rb +6 -2
- data/lib/bioroebe/codons/show_codon_usage.rb +15 -4
- data/lib/bioroebe/colours/rev.rb +4 -1
- data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
- data/lib/bioroebe/constants/database_constants.rb +1 -1
- data/lib/bioroebe/constants/files_and_directories.rb +31 -4
- data/lib/bioroebe/constants/misc.rb +20 -0
- data/lib/bioroebe/conversions/dna_to_aminoacid_sequence.rb +58 -24
- data/lib/bioroebe/count/count_amount_of_aminoacids.rb +3 -2
- data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
- data/lib/bioroebe/crystal/README.md +2 -0
- data/lib/bioroebe/crystal/to_rna.cr +19 -0
- data/lib/bioroebe/data/README.md +11 -8
- data/lib/bioroebe/data/electron_microscopy/pos_example.pos +396 -0
- data/lib/bioroebe/data/electron_microscopy/test_particles.star +36 -0
- data/lib/bioroebe/data/fasta/human/Homo_sapiens_hemoglobin_subunit_alpha_HBB_mRNA.fasta +9 -0
- data/lib/bioroebe/data/fasta/human/Homo_sapiens_hemoglobin_subunit_beta_HBB_mRNA.fasta +8 -0
- data/lib/bioroebe/data/fasta/human/README.md +2 -0
- data/lib/bioroebe/electron_microscopy/coordinate_analyzer.rb +15 -18
- data/lib/bioroebe/{fasta_and_fastq/parse_fasta/run.rb → electron_microscopy/electron_microscopy_module.rb} +16 -8
- data/lib/bioroebe/electron_microscopy/fix_pos_file.rb +1 -9
- data/lib/bioroebe/electron_microscopy/flipy.rb +83 -0
- data/lib/bioroebe/electron_microscopy/parse_coordinates.rb +2 -10
- data/lib/bioroebe/electron_microscopy/read_file_xmd.rb +1 -9
- data/lib/bioroebe/electron_microscopy/simple_star_file_generator.rb +4 -9
- data/lib/bioroebe/enzymes/has_this_restriction_enzyme.rb +10 -3
- data/lib/bioroebe/enzymes/restriction_enzyme.rb +23 -1
- data/lib/bioroebe/enzymes/restriction_enzymes/statistics.rb +65 -0
- data/lib/bioroebe/fasta_and_fastq/autocorrect_the_name_of_this_fasta_file.rb +1 -9
- data/lib/bioroebe/fasta_and_fastq/compact_fasta_file/compact_fasta_file.rb +7 -9
- data/lib/bioroebe/fasta_and_fastq/fasta_defline/fasta_defline.rb +1 -5
- data/lib/bioroebe/fasta_and_fastq/fasta_to_yaml/fasta_to_yaml.rb +81 -0
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb +1465 -7
- data/lib/bioroebe/fasta_and_fastq/return_fasta_subsection_of_this_file.rb +11 -2
- data/lib/bioroebe/fasta_and_fastq/show_fasta_headers.rb +27 -12
- data/lib/bioroebe/fasta_and_fastq/simplify_fasta_header/simplify_fasta_header.rb +1 -5
- data/lib/bioroebe/fasta_and_fastq/split_this_fasta_file_into_chromosomes/constants.rb +0 -5
- data/lib/bioroebe/genome/README.md +4 -0
- data/lib/bioroebe/genome/genome.rb +67 -0
- data/lib/bioroebe/genomes/genome_pattern.rb +3 -9
- data/lib/bioroebe/gui/gtk +1 -0
- data/lib/bioroebe/gui/gtk3/alignment/alignment.rb +73 -128
- data/lib/bioroebe/gui/gtk3/controller/controller.rb +45 -27
- data/lib/bioroebe/gui/gtk3/dna_to_aminoacid_widget/dna_to_aminoacid_widget.rb +76 -50
- data/lib/bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb +99 -21
- data/lib/bioroebe/gui/gtk3/hamming_distance/hamming_distance.rb +42 -28
- data/lib/bioroebe/gui/gtk3/nucleotide_analyser/nucleotide_analyser.rb +119 -71
- data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +18 -18
- data/lib/bioroebe/gui/gtk3/random_sequence/random_sequence.rb +19 -11
- data/lib/bioroebe/gui/jruby/alignment/alignment.rb +165 -0
- data/lib/bioroebe/gui/libui/alignment/alignment.rb +3 -1
- data/lib/bioroebe/gui/libui/controller/controller.rb +116 -0
- data/lib/bioroebe/gui/libui/random_sequence/random_sequence.rb +18 -2
- data/lib/bioroebe/gui/libui/show_codon_table/show_codon_table.rb +2 -0
- data/lib/bioroebe/gui/libui/three_to_one/three_to_one.rb +8 -6
- data/lib/bioroebe/gui/shared_code/alignment/alignment_module.rb +102 -0
- data/lib/bioroebe/gui/shared_code/levensthein_distance/levensthein_distance_module.rb +18 -16
- data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
- data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$1.class +0 -0
- data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$CloseListener.class +0 -0
- data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.class +0 -0
- data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.java +141 -0
- data/lib/bioroebe/images/FORWARD_PRIMER.png +0 -0
- data/lib/bioroebe/images/REVERSE_PRIMER.png +0 -0
- data/lib/bioroebe/java/README.md +4 -0
- data/lib/bioroebe/java/bioroebe/Sequence.java +25 -1
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Base.class +0 -0
- data/lib/bioroebe/java/bioroebe/{Base.java → src/main/java/bioroebe/Base.java} +15 -2
- data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.class → src/main/java/bioroebe/BisulfiteTreatment.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{Codons.class → src/main/java/bioroebe/Codons.class} +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Codons.java +34 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.java +101 -0
- data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.class → src/main/java/bioroebe/GenerateRandomDnaSequence.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.java → src/main/java/bioroebe/GenerateRandomDnaSequence.java} +8 -2
- data/lib/bioroebe/java/bioroebe/{IsPalindrome.class → src/main/java/bioroebe/IsPalindrome.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{IsPalindrome.java → src/main/java/bioroebe/IsPalindrome.java} +5 -1
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.java +56 -0
- data/lib/bioroebe/java/bioroebe/{RemoveFile.java → src/main/java/bioroebe/RemoveFile.java} +10 -4
- data/lib/bioroebe/java/bioroebe/{RemoveNumbers.class → src/main/java/bioroebe/RemoveNumbers.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{RemoveNumbers.java → src/main/java/bioroebe/RemoveNumbers.java} +1 -0
- data/lib/bioroebe/java/bioroebe/{ToCamelcase.class → src/main/java/bioroebe/ToCamelcase.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{ToCamelcase.java → src/main/java/bioroebe/ToCamelcase.java} +3 -3
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.java +42 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/toplevel_methods/BaseComposition.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/toplevel_methods/BaseComposition.java +75 -0
- data/lib/bioroebe/misc/ruler.rb +11 -2
- data/lib/bioroebe/nucleotides/most_likely_nucleotide_sequence_for_this_aminoacid_sequence.rb +1 -9
- data/lib/bioroebe/nucleotides/show_nucleotide_sequence.rb +7 -7
- data/lib/bioroebe/parsers/genbank_parser.rb +347 -26
- data/lib/bioroebe/parsers/gff.rb +1 -9
- data/lib/bioroebe/patterns/scan_for_repeat.rb +1 -5
- data/lib/bioroebe/pdb/fetch_fasta_sequence_from_pdb.rb +1 -9
- data/lib/bioroebe/pdb/parse_mmCIF_file.rb +1 -9
- data/lib/bioroebe/pdb/parse_pdb_file.rb +4 -10
- data/lib/bioroebe/project/project.rb +1 -1
- data/lib/bioroebe/python/README.md +1 -0
- data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
- data/lib/bioroebe/python/gui/gtk3/all_in_one.css +4 -0
- data/lib/bioroebe/python/gui/gtk3/all_in_one.py +59 -0
- data/lib/bioroebe/python/gui/gtk3/widget1.py +20 -0
- data/lib/bioroebe/python/gui/tkinter/all_in_one.py +91 -0
- data/lib/bioroebe/python/mymodule.py +8 -0
- data/lib/bioroebe/python/protein_to_dna.py +33 -0
- data/lib/bioroebe/python/shell/shell.py +19 -0
- data/lib/bioroebe/python/to_rna.py +14 -0
- data/lib/bioroebe/python/toplevel_methods/esystem.py +12 -0
- data/lib/bioroebe/python/toplevel_methods/open_in_browser.py +20 -0
- data/lib/bioroebe/python/toplevel_methods/palindromes.py +42 -0
- data/lib/bioroebe/python/toplevel_methods/rds.py +13 -0
- data/lib/bioroebe/python/toplevel_methods/shuffleseq.py +23 -0
- data/lib/bioroebe/python/toplevel_methods/three_delimiter.py +37 -0
- data/lib/bioroebe/python/toplevel_methods/time_and_date.py +43 -0
- data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +21 -0
- data/lib/bioroebe/requires/require_the_bioroebe_project.rb +3 -1
- data/lib/bioroebe/sequence/alignment.rb +14 -4
- data/lib/bioroebe/sequence/dna.rb +1 -0
- data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
- data/lib/bioroebe/sequence/protein.rb +105 -3
- data/lib/bioroebe/sequence/sequence.rb +87 -21
- data/lib/bioroebe/shell/menu.rb +3829 -3714
- data/lib/bioroebe/shell/misc.rb +59 -4307
- data/lib/bioroebe/shell/readline/readline.rb +1 -1
- data/lib/bioroebe/shell/shell.rb +11255 -28
- data/lib/bioroebe/siRNA/siRNA.rb +81 -1
- data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
- data/lib/bioroebe/string_matching/hamming_distance.rb +1 -9
- data/lib/bioroebe/taxonomy/class_methods.rb +3 -8
- data/lib/bioroebe/taxonomy/constants.rb +4 -3
- data/lib/bioroebe/taxonomy/edit.rb +2 -1
- data/lib/bioroebe/taxonomy/help/help.rb +10 -10
- data/lib/bioroebe/taxonomy/help/helpline.rb +2 -2
- data/lib/bioroebe/taxonomy/info/check_available.rb +15 -9
- data/lib/bioroebe/taxonomy/info/info.rb +18 -11
- data/lib/bioroebe/taxonomy/info/is_dna.rb +46 -36
- data/lib/bioroebe/taxonomy/interactive.rb +140 -104
- data/lib/bioroebe/taxonomy/menu.rb +27 -18
- data/lib/bioroebe/taxonomy/parse_fasta.rb +3 -1
- data/lib/bioroebe/taxonomy/shared.rb +1 -0
- data/lib/bioroebe/taxonomy/taxonomy.rb +1 -0
- data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
- data/lib/bioroebe/toplevel_methods/colourize_related_methods.rb +164 -0
- data/lib/bioroebe/toplevel_methods/databases.rb +1 -1
- data/lib/bioroebe/toplevel_methods/digest.rb +18 -8
- data/lib/bioroebe/toplevel_methods/fasta_and_fastq.rb +107 -63
- data/lib/bioroebe/toplevel_methods/file_and_directory_related_actions.rb +14 -2
- data/lib/bioroebe/toplevel_methods/frequencies.rb +8 -1
- data/lib/bioroebe/toplevel_methods/misc.rb +142 -12
- data/lib/bioroebe/toplevel_methods/nucleotides.rb +118 -46
- data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
- data/lib/bioroebe/toplevel_methods/palindromes.rb +1 -2
- data/lib/bioroebe/toplevel_methods/taxonomy.rb +2 -2
- data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
- data/lib/bioroebe/utility_scripts/align_open_reading_frames.rb +1 -9
- data/lib/bioroebe/utility_scripts/check_for_mismatches/check_for_mismatches.rb +1 -9
- data/lib/bioroebe/utility_scripts/compacter.rb +1 -9
- data/lib/bioroebe/utility_scripts/compseq/compseq.rb +1 -9
- data/lib/bioroebe/utility_scripts/consensus_sequence.rb +6 -6
- data/lib/bioroebe/utility_scripts/create_batch_entrez_file.rb +1 -9
- data/lib/bioroebe/utility_scripts/dot_alignment.rb +1 -9
- data/lib/bioroebe/utility_scripts/move_file_to_its_correct_location.rb +1 -4
- data/lib/bioroebe/utility_scripts/parse_taxonomy.rb +2 -2
- data/lib/bioroebe/utility_scripts/showorf/constants.rb +0 -5
- data/lib/bioroebe/utility_scripts/showorf/reset.rb +1 -4
- data/lib/bioroebe/version/version.rb +2 -2
- data/lib/bioroebe/www/embeddable_interface.rb +103 -54
- data/lib/bioroebe/www/sinatra/sinatra.rb +186 -70
- data/lib/bioroebe/yaml/aminoacids/amino_acids_long_name_to_one_letter.yml +2 -2
- data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
- data/lib/bioroebe/yaml/configuration/temp_dir.yml +1 -1
- data/lib/bioroebe/yaml/genomes/README.md +3 -4
- data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +27 -27
- metadata +81 -64
- data/doc/setup.rb +0 -1655
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/constants.rb +0 -50
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/initialize.rb +0 -86
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/menu.rb +0 -117
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/misc.rb +0 -981
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/report.rb +0 -156
- data/lib/bioroebe/fasta_and_fastq/parse_fasta/reset.rb +0 -128
- data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
- data/lib/bioroebe/java/bioroebe/Base.class +0 -0
- data/lib/bioroebe/java/bioroebe/Codons.java +0 -22
- data/lib/bioroebe/java/bioroebe/PartnerNucleotide.class +0 -0
- data/lib/bioroebe/java/bioroebe/PartnerNucleotide.java +0 -19
- data/lib/bioroebe/java/bioroebe.jar +0 -0
- data/lib/bioroebe/shell/add.rb +0 -108
- data/lib/bioroebe/shell/assign.rb +0 -360
- data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
- data/lib/bioroebe/shell/constants.rb +0 -166
- data/lib/bioroebe/shell/download.rb +0 -335
- data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
- data/lib/bioroebe/shell/enzymes.rb +0 -310
- data/lib/bioroebe/shell/fasta.rb +0 -345
- data/lib/bioroebe/shell/gtk.rb +0 -76
- data/lib/bioroebe/shell/history.rb +0 -132
- data/lib/bioroebe/shell/initialize.rb +0 -217
- data/lib/bioroebe/shell/loop.rb +0 -74
- data/lib/bioroebe/shell/prompt.rb +0 -107
- data/lib/bioroebe/shell/random.rb +0 -289
- data/lib/bioroebe/shell/reset.rb +0 -335
- data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
- data/lib/bioroebe/shell/search.rb +0 -337
- data/lib/bioroebe/shell/sequences.rb +0 -200
- data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
- data/lib/bioroebe/shell/startup.rb +0 -127
- data/lib/bioroebe/shell/taxonomy.rb +0 -14
- data/lib/bioroebe/shell/tk.rb +0 -23
- data/lib/bioroebe/shell/user_input.rb +0 -88
- data/lib/bioroebe/shell/xorg.rb +0 -45
- /data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.java → src/main/java/bioroebe/BisulfiteTreatment.java} +0 -0
- /data/lib/bioroebe/java/bioroebe/{Esystem.class → src/main/java/bioroebe/Esystem.class} +0 -0
- /data/lib/bioroebe/java/bioroebe/{Esystem.java → src/main/java/bioroebe/Esystem.java} +0 -0
- /data/lib/bioroebe/java/bioroebe/{RemoveFile.class → src/main/java/bioroebe/RemoveFile.class} +0 -0
data/lib/bioroebe/shell/add.rb
DELETED
@@ -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
|