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
@@ -0,0 +1,91 @@
|
|
1
|
+
import sys
|
2
|
+
import os
|
3
|
+
import importlib
|
4
|
+
|
5
|
+
from tkinter import *
|
6
|
+
from tkinter import ttk
|
7
|
+
from tkinter.ttk import Label
|
8
|
+
from tkinter import messagebox
|
9
|
+
|
10
|
+
sys.path.append(".")
|
11
|
+
|
12
|
+
# sys.path.append("../../") # Adds higher directory to python modules path.
|
13
|
+
|
14
|
+
# from ../.. import protein_to_dna
|
15
|
+
# module_name = "../../protein_to_dna"
|
16
|
+
# importlib.import_module(module_name, package='Bioroebe')
|
17
|
+
|
18
|
+
# sys.path.append(os.path.abspath("/home/x/programming/ruby/src/bioroebe/lib/bioroebe/python/"))
|
19
|
+
# from protein_to_dny import *
|
20
|
+
|
21
|
+
class App:
|
22
|
+
|
23
|
+
# ========================================================================= #
|
24
|
+
# === TITLE
|
25
|
+
# ========================================================================= #
|
26
|
+
TITLE = "Bioroebe: all in one"
|
27
|
+
|
28
|
+
# ========================================================================= #
|
29
|
+
# === FONT_TO_USE
|
30
|
+
# ========================================================================= #
|
31
|
+
FONT_TO_USE = 'Hack' # 'Arial'
|
32
|
+
|
33
|
+
# ========================================================================= #
|
34
|
+
# === FONT_SIZE_TO_USE
|
35
|
+
# ========================================================================= #
|
36
|
+
FONT_SIZE_TO_USE = 28
|
37
|
+
|
38
|
+
# ========================================================================= #
|
39
|
+
# === SMALLER_FONT_SIZE_TO_USE
|
40
|
+
# ========================================================================= #
|
41
|
+
SMALLER_FONT_SIZE_TO_USE = 22
|
42
|
+
|
43
|
+
# ========================================================================= #
|
44
|
+
# === __init__
|
45
|
+
# ========================================================================= #
|
46
|
+
def __init__(self, master):
|
47
|
+
# Instantiating master i.e toplevel Widget
|
48
|
+
self.master = master
|
49
|
+
self.create_and_add_header()
|
50
|
+
self.create_and_add_the_button_for_the_protein_to_DNA_conversion()
|
51
|
+
|
52
|
+
# ========================================================================= #
|
53
|
+
# === do_the_conversion_from_protein_to_DNA
|
54
|
+
# ========================================================================= #
|
55
|
+
def do_the_conversion_from_protein_to_DNA(self):
|
56
|
+
messagebox.showinfo("Message","Hey There! I hope you are doing well.")
|
57
|
+
|
58
|
+
# ========================================================================= #
|
59
|
+
# === create_and_add_the_button_for_the_protein_to_DNA_conversion()
|
60
|
+
# ========================================================================= #
|
61
|
+
def create_and_add_the_button_for_the_protein_to_DNA_conversion(self):
|
62
|
+
Button(self.master,
|
63
|
+
text="Convert from protein sequence to DNA sequence",
|
64
|
+
font = (App.FONT_TO_USE, App.SMALLER_FONT_SIZE_TO_USE),
|
65
|
+
command = lambda: self.do_the_conversion_from_protein_to_DNA()
|
66
|
+
).pack(pady = 5)
|
67
|
+
|
68
|
+
# ========================================================================= #
|
69
|
+
# === create_and_add_header
|
70
|
+
# ========================================================================= #
|
71
|
+
def create_and_add_header(self):
|
72
|
+
# Creating second label
|
73
|
+
# This label has a font-family of Arial
|
74
|
+
# and font-size of 25
|
75
|
+
Label(self.master,
|
76
|
+
text = "Protein to DNA conversion:",
|
77
|
+
font = (App.FONT_TO_USE, App.FONT_SIZE_TO_USE) # Changing font-size here
|
78
|
+
).pack(padx = 12, pady = 12, anchor = "w") # Align to the left side.
|
79
|
+
|
80
|
+
if __name__ == "__main__":
|
81
|
+
root = Tk()
|
82
|
+
root.title(App.TITLE) # Setting the title of the window
|
83
|
+
root.geometry("1400x800") # Set width and height - aka the geometry/dimensions.
|
84
|
+
app = App(root) # Calling our App
|
85
|
+
root.mainloop() # Mainloop which will cause this toplevel to run infinitely
|
86
|
+
|
87
|
+
# frm = ttk.Frame(root, padding = 12)
|
88
|
+
# frm.grid()
|
89
|
+
# ttk.Label(frm, text="Hello World!").grid(column=0, row=0)
|
90
|
+
# ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0)
|
91
|
+
# root.mainloop()
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import sys
|
2
|
+
import yaml
|
3
|
+
|
4
|
+
USE_THIS_CODON_TABLE = \
|
5
|
+
'/home/x/programming/ruby/src/bioroebe/lib/bioroebe/yaml/codon_tables/1.yml'
|
6
|
+
|
7
|
+
# =========================================================================== #
|
8
|
+
# === protein_to_dna
|
9
|
+
# =========================================================================== #
|
10
|
+
def protein_to_dna(i):
|
11
|
+
output_string = ''
|
12
|
+
yaml_dataset = None
|
13
|
+
aminoacid_sequence = list(i)
|
14
|
+
|
15
|
+
with open(USE_THIS_CODON_TABLE) as file:
|
16
|
+
# The FullLoader parameter handles the conversion from YAML
|
17
|
+
# scalar values to Python the dictionary format
|
18
|
+
yaml_dataset = yaml.load(file, Loader=yaml.FullLoader)
|
19
|
+
yaml_dataset = { value: key for key, value in yaml_dataset.items() }
|
20
|
+
|
21
|
+
for this_aminoacid in aminoacid_sequence:
|
22
|
+
# Now we must obtain the DNA sequence.
|
23
|
+
# print(yaml_dataset[this_aminoacid])
|
24
|
+
output_string += yaml_dataset[this_aminoacid]
|
25
|
+
output_string += '-'
|
26
|
+
|
27
|
+
# print(yaml_dataset)
|
28
|
+
print(output_string[0: -1]) # Remove the last character.
|
29
|
+
|
30
|
+
if __name__ == '__main__':
|
31
|
+
i = sys.argv[1]
|
32
|
+
protein_to_dna(i)
|
33
|
+
# py protein_to_dna.py KKKLLL
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/python
|
2
|
+
import sys
|
3
|
+
|
4
|
+
# =========================================================================== #
|
5
|
+
# === obtain_user_input
|
6
|
+
# =========================================================================== #
|
7
|
+
def obtain_user_input():
|
8
|
+
user_input = input("> ")
|
9
|
+
return user_input
|
10
|
+
|
11
|
+
shall_we_continue = True
|
12
|
+
|
13
|
+
while (shall_we_continue):
|
14
|
+
result = obtain_user_input
|
15
|
+
if result == "q":
|
16
|
+
shall_we_continue = False
|
17
|
+
# exit
|
18
|
+
else:
|
19
|
+
print(result)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import sys
|
2
|
+
|
3
|
+
# =========================================================================== #
|
4
|
+
# === to_rna
|
5
|
+
#
|
6
|
+
# This method will simply convert the given input, such as a
|
7
|
+
# nucleotide sequence, to RNA.
|
8
|
+
# =========================================================================== #
|
9
|
+
def to_rna(i):
|
10
|
+
converted = i.replace('T','U')
|
11
|
+
print(converted)
|
12
|
+
|
13
|
+
to_rna(sys.argv[1])
|
14
|
+
# py to_rna.py ATG
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import subprocess
|
2
|
+
|
3
|
+
# =========================================================================== #
|
4
|
+
# === esystem
|
5
|
+
# =========================================================================== #
|
6
|
+
def esystem(i):
|
7
|
+
print(i)
|
8
|
+
process = subprocess.run(i)
|
9
|
+
|
10
|
+
# This is our shell command, executed in subprocess.
|
11
|
+
|
12
|
+
esystem("ls")
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/python3
|
2
|
+
import sys
|
3
|
+
import os
|
4
|
+
|
5
|
+
class Bioroebe(object):
|
6
|
+
|
7
|
+
# =========================================================================== #
|
8
|
+
# === open_in_browser
|
9
|
+
# =========================================================================== #
|
10
|
+
def open_in_browser(
|
11
|
+
this_url,
|
12
|
+
use_this_browser = 'firefox'
|
13
|
+
):
|
14
|
+
cmd = use_this_browser+" -new-tab "+this_url
|
15
|
+
print(cmd)
|
16
|
+
os.system(cmd)
|
17
|
+
|
18
|
+
if __name__ == '__main__':
|
19
|
+
i = sys.argv[1]
|
20
|
+
Bioroebe.open_in_browser(i) # py open_in_browser.py "derstandard.at"
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/python3
|
2
|
+
import sys
|
3
|
+
|
4
|
+
class Bioroebe(object):
|
5
|
+
|
6
|
+
# =========================================================================== #
|
7
|
+
# === is_palindrome
|
8
|
+
# =========================================================================== #
|
9
|
+
def is_palindrome(i):
|
10
|
+
result = False
|
11
|
+
reverse_string = i[::-1]
|
12
|
+
|
13
|
+
hash = {
|
14
|
+
"A": "T",
|
15
|
+
"T": "A",
|
16
|
+
"G": "C",
|
17
|
+
"C": "G"
|
18
|
+
}
|
19
|
+
|
20
|
+
for nucleotide in i:
|
21
|
+
print(nucleotide)
|
22
|
+
if hash[nucleotide] == reverse
|
23
|
+
result
|
24
|
+
# THIS IS INCOMPLETE AS OF JULY 2022.
|
25
|
+
return result
|
26
|
+
|
27
|
+
if __name__ == '__main__':
|
28
|
+
|
29
|
+
if len(sys.argv) > 1:
|
30
|
+
i = sys.argv[1]
|
31
|
+
else:
|
32
|
+
i = "malayalam"
|
33
|
+
|
34
|
+
ans = Bioroebe.is_palindrome(i)
|
35
|
+
|
36
|
+
if ans:
|
37
|
+
print(f"Yes, {i} is a palindrome.")
|
38
|
+
else:
|
39
|
+
print(f"No, {i} is NOT a palindrome.")
|
40
|
+
|
41
|
+
# py palindromes.py "OTTO"
|
42
|
+
# py palindromes.py "GAATTC"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/python3
|
2
|
+
import re
|
3
|
+
import sys
|
4
|
+
|
5
|
+
# =========================================================================== #
|
6
|
+
# === rds
|
7
|
+
# =========================================================================== #
|
8
|
+
def rds(i):
|
9
|
+
return re.sub('//', '/', i)
|
10
|
+
|
11
|
+
if __name__ == '__main__':
|
12
|
+
i = sys.argv[1]
|
13
|
+
print(rds(i)) # py rds.py "foobar//barfoo"
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/bin/python3
|
2
|
+
# =========================================================================== #
|
3
|
+
import sys
|
4
|
+
import random
|
5
|
+
|
6
|
+
# =========================================================================== #
|
7
|
+
# === shuffleseq
|
8
|
+
#
|
9
|
+
# This method will take the input string and simply re-arrange it as-is.
|
10
|
+
# =========================================================================== #
|
11
|
+
def shuffleseq(i):
|
12
|
+
l = list(i)
|
13
|
+
random.shuffle(l)
|
14
|
+
result = ''.join(l)
|
15
|
+
return result
|
16
|
+
|
17
|
+
if __name__ == '__main__':
|
18
|
+
if len(sys.argv) > 1:
|
19
|
+
i = sys.argv[1]
|
20
|
+
print(shuffleseq(i))
|
21
|
+
else:
|
22
|
+
print("Please provide an argument to this method.")
|
23
|
+
# py shuffleseq.py ATTTTTTTT
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/python3
|
2
|
+
# =========================================================================== #
|
3
|
+
import sys
|
4
|
+
import re
|
5
|
+
|
6
|
+
class Bioroebe(object):
|
7
|
+
|
8
|
+
# ========================================================================= #
|
9
|
+
# === Bioroebe.three_delimiter
|
10
|
+
#
|
11
|
+
# This method will, applied onto a String, add the '|' token
|
12
|
+
# after 3 positions.
|
13
|
+
#
|
14
|
+
# Example:
|
15
|
+
#
|
16
|
+
# Bioroebe.three_delimiter('ATGGGGATGTAGGTA') # => "ATG|GGG|ATG|TAG|GTA"
|
17
|
+
#
|
18
|
+
# ========================================================================= #
|
19
|
+
def three_delimiter(i):
|
20
|
+
|
21
|
+
if isinstance(i, list):
|
22
|
+
i = ' '.join(str(e) for e in i)
|
23
|
+
|
24
|
+
i = re.sub(r'(...)', r'\1-', i)
|
25
|
+
|
26
|
+
if i[-1] == '-': # Chop of the last character if it is a '-' token.
|
27
|
+
i = i[:-1]
|
28
|
+
|
29
|
+
return i
|
30
|
+
|
31
|
+
if __name__ == '__main__':
|
32
|
+
if len(sys.argv) > 1:
|
33
|
+
i = sys.argv[1]
|
34
|
+
print(Bioroebe.three_delimiter(i))
|
35
|
+
else:
|
36
|
+
print("Please provide an argument to this method.")
|
37
|
+
# py three_delimiter.py ATGGGGATGTAGGTA
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#!/usr/bin/python3
|
2
|
+
import sys
|
3
|
+
from datetime import datetime
|
4
|
+
|
5
|
+
class Bioroebe(object):
|
6
|
+
|
7
|
+
# ========================================================================= #
|
8
|
+
# === Bioroebe.return_current_day_month_year()
|
9
|
+
#
|
10
|
+
# This method will return a String such as "09.07.2022".
|
11
|
+
# ========================================================================= #
|
12
|
+
def return_current_day_month_year():
|
13
|
+
day = str(datetime.now().day).rjust(2, '0')
|
14
|
+
month = str(datetime.now().month).rjust(2, '0')
|
15
|
+
year = str(datetime.now().year)
|
16
|
+
return day+'.'+month+'.'+year
|
17
|
+
|
18
|
+
# ========================================================================= #
|
19
|
+
# === Bioroebe.return_current_hours_minutes_seconds()
|
20
|
+
#
|
21
|
+
# This method will return a String such as "20:44:20".
|
22
|
+
# ========================================================================= #
|
23
|
+
def return_current_hours_minutes_seconds():
|
24
|
+
hours = str(datetime.now().hour).rjust(2, '0')
|
25
|
+
minutes = str(datetime.now().minute).rjust(2, '0')
|
26
|
+
seconds = str(datetime.now().second).rjust(2, '0')
|
27
|
+
return hours+':'+minutes+':'+seconds
|
28
|
+
|
29
|
+
# ========================================================================= #
|
30
|
+
# === Bioroebe.show_time_now
|
31
|
+
#
|
32
|
+
# This method will show the current time. It will do so only if the
|
33
|
+
# verbosity-variable has been set to true.
|
34
|
+
# ========================================================================= #
|
35
|
+
def show_time_now(be_verbose = True):
|
36
|
+
time = Bioroebe.return_current_hours_minutes_seconds()
|
37
|
+
if be_verbose:
|
38
|
+
print("Showing the current time: "+time)
|
39
|
+
|
40
|
+
if __name__ == '__main__':
|
41
|
+
print(Bioroebe.return_current_day_month_year())
|
42
|
+
print(Bioroebe.return_current_hours_minutes_seconds())
|
43
|
+
Bioroebe.show_time_now()
|
@@ -0,0 +1,21 @@
|
|
1
|
+
from re import sub
|
2
|
+
import sys
|
3
|
+
|
4
|
+
# =========================================================================== #
|
5
|
+
# === camel_case
|
6
|
+
# =========================================================================== #
|
7
|
+
def camel_case(i):
|
8
|
+
i = sub(r"(_|-)+", " ", i).title().replace(" ", "")
|
9
|
+
return ''.join(
|
10
|
+
[
|
11
|
+
i[0].upper(),
|
12
|
+
i[1:]
|
13
|
+
]
|
14
|
+
)
|
15
|
+
|
16
|
+
if __name__ == "__main__":
|
17
|
+
print(
|
18
|
+
camel_case(
|
19
|
+
sys.argv[1]
|
20
|
+
)
|
21
|
+
) # py to_camelcase.py abcDef
|
@@ -159,4 +159,6 @@ require 'bioroebe/requires/require_all_codon_files.rb'
|
|
159
159
|
# And the sinatra-interface:
|
160
160
|
# =========================================================================== #
|
161
161
|
# require 'bioroebe/requires/require_the_bioroebe_sinatra_components.rb'
|
162
|
-
require 'bioroebe/www/sinatra/sinatra.rb'
|
162
|
+
require 'bioroebe/www/sinatra/sinatra.rb'
|
163
|
+
|
164
|
+
require 'bioroebe/sequence/protein.rb'
|
@@ -28,6 +28,8 @@ module Bioroebe
|
|
28
28
|
|
29
29
|
class Alignment < ::Bioroebe::CommandlineApplication # === Bioroebe::Alignment
|
30
30
|
|
31
|
+
require 'bioroebe/misc/ruler.rb'
|
32
|
+
|
31
33
|
# ========================================================================= #
|
32
34
|
# === initialize
|
33
35
|
# ========================================================================= #
|
@@ -122,9 +124,12 @@ class Alignment < ::Bioroebe::CommandlineApplication # === Bioroebe::Alignment
|
|
122
124
|
# ========================================================================= #
|
123
125
|
def print_consensus_sequence
|
124
126
|
e
|
125
|
-
|
127
|
+
n_nucleotides = @array_G.size
|
128
|
+
erev 'The consensus sequence ('+steelblue(n_nucleotides.to_s)+
|
129
|
+
rev+' nucleotides), '\
|
130
|
+
'derived from the above matrix, is:'
|
126
131
|
e
|
127
|
-
|
132
|
+
sequence_that_will_be_displayed = ''.dup
|
128
133
|
@array_G.size.times {|index|
|
129
134
|
hash = {}
|
130
135
|
hash['A'] = @array_A[index]
|
@@ -132,8 +137,12 @@ class Alignment < ::Bioroebe::CommandlineApplication # === Bioroebe::Alignment
|
|
132
137
|
hash['C'] = @array_C[index]
|
133
138
|
hash['G'] = @array_G[index]
|
134
139
|
_ = hash.max_by {|key, value| value }
|
135
|
-
|
140
|
+
sequence = _[0]
|
141
|
+
sequence_that_will_be_displayed << sequence
|
136
142
|
}
|
143
|
+
ruler_result = Bioroebe.return_ruler(sequence_that_will_be_displayed)
|
144
|
+
e ' '+ruler_result+rev
|
145
|
+
print ' '+mediumslateblue(sequence_that_will_be_displayed)+rev # Print each individual character here.
|
137
146
|
e Colours.rev
|
138
147
|
e
|
139
148
|
end
|
@@ -159,7 +168,8 @@ class Alignment < ::Bioroebe::CommandlineApplication # === Bioroebe::Alignment
|
|
159
168
|
# === print_row_for
|
160
169
|
# ========================================================================= #
|
161
170
|
def print_row_for(
|
162
|
-
i
|
171
|
+
i = 'A',
|
172
|
+
array = @array_A
|
163
173
|
)
|
164
174
|
print "#{rev} #{i}: " # First output the identifier, e. g. "A" or "T" and so forth.
|
165
175
|
array.each {|entry| # entry is a Float.
|
@@ -83,6 +83,7 @@ class DNA < ::Bioroebe::Sequence # === Bioroebe::DNA
|
|
83
83
|
end; alias to_RNA to_rna # === to_RNA
|
84
84
|
alias to_T to_rna # === to_T
|
85
85
|
|
86
|
+
require 'bioroebe/codons/convert_this_codon_to_that_aminoacid.rb'
|
86
87
|
# ========================================================================= #
|
87
88
|
# === to_aminoacids
|
88
89
|
#
|
@@ -72,13 +72,6 @@ module NucleotideModule # === Bioroebe::NucleotideModule
|
|
72
72
|
i.tr('U','T')
|
73
73
|
end
|
74
74
|
|
75
|
-
# ========================================================================= #
|
76
|
-
# === to_dna
|
77
|
-
# ========================================================================= #
|
78
|
-
def to_dna
|
79
|
-
seq?.tr('U','T')
|
80
|
-
end; alias dna to_dna # === dna
|
81
|
-
|
82
75
|
# ========================================================================= #
|
83
76
|
# === n_random_dna
|
84
77
|
#
|
@@ -258,24 +251,6 @@ module NucleotideModule # === Bioroebe::NucleotideModule
|
|
258
251
|
::Bioroebe.codon_to_aminoacid(codon)
|
259
252
|
end; alias translate_aminoacid_into_dna codon_to_aminoacid # === translate_aminoacid_into_dna
|
260
253
|
|
261
|
-
# ========================================================================= #
|
262
|
-
# === to_dna
|
263
|
-
#
|
264
|
-
# This method will convert a RNA sequence into a DNA sequence.
|
265
|
-
#
|
266
|
-
# It will return the translation.
|
267
|
-
#
|
268
|
-
# bio; puts Bioroebe.new.to_dna('actgggcgagagklklklklk')
|
269
|
-
# ========================================================================= #
|
270
|
-
def to_dna(
|
271
|
-
i = sequence?, upcase_me = true
|
272
|
-
)
|
273
|
-
if is_RNA?
|
274
|
-
i = sequence? if i.nil?
|
275
|
-
::Bioroebe.to_dna(i, upcase_me)
|
276
|
-
end
|
277
|
-
end; alias dna to_dna # === dna
|
278
|
-
|
279
254
|
# ========================================================================= #
|
280
255
|
# === random
|
281
256
|
#
|
@@ -397,6 +372,34 @@ module NucleotideModule # === Bioroebe::NucleotideModule
|
|
397
372
|
end
|
398
373
|
end; alias gc_percent gc_percentage # === gc_percent
|
399
374
|
|
375
|
+
# ========================================================================= #
|
376
|
+
# === to_dna
|
377
|
+
#
|
378
|
+
# This method will convert a RNA sequence into a DNA sequence.
|
379
|
+
#
|
380
|
+
# It will return the translation.
|
381
|
+
#
|
382
|
+
# Usage example:
|
383
|
+
#
|
384
|
+
# require 'bioroebe'; puts Bioroebe::DNA.new('actgggcgagaguuuuUUUUUU').to_dna
|
385
|
+
#
|
386
|
+
# ========================================================================= #
|
387
|
+
def to_dna(
|
388
|
+
i = sequence?,
|
389
|
+
upcase_me = true
|
390
|
+
)
|
391
|
+
i = sequence? if i.nil?
|
392
|
+
i = ::Bioroebe.to_dna(i, upcase_me)
|
393
|
+
return i
|
394
|
+
end; alias dna to_dna # === dna
|
395
|
+
|
396
|
+
# ========================================================================= #
|
397
|
+
# === to_dna
|
398
|
+
# ========================================================================= #
|
399
|
+
# def to_dna
|
400
|
+
# seq?.tr('U','T')
|
401
|
+
# end; alias dna to_dna # === dna
|
402
|
+
|
400
403
|
end; end
|
401
404
|
|
402
405
|
if __FILE__ == $PROGRAM_NAME
|
@@ -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
|
-
#
|
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
|