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