bioroebe 0.10.80 → 0.12.24
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.
- checksums.yaml +4 -4
- data/README.md +3946 -2817
- data/bin/bioroebe +13 -2
- data/bin/bioroebe_hash +7 -0
- data/bin/codon_to_aminoacid +6 -4
- data/bin/compacter +7 -0
- data/bin/plain_palindrome +7 -0
- data/bioroebe.gemspec +3 -3
- data/doc/README.gen +3918 -2793
- data/doc/quality_control/commandline_applications.md +3 -3
- data/doc/statistics/statistics.md +7 -7
- data/doc/todo/bioroebe_GUI_todo.md +19 -14
- data/doc/todo/bioroebe_java_todo.md +22 -0
- data/doc/todo/bioroebe_todo.md +2075 -2620
- data/lib/bioroebe/C++/DNA.cpp +69 -0
- data/lib/bioroebe/C++/RNA.cpp +58 -0
- data/lib/bioroebe/C++/sequence.cpp +35 -0
- data/lib/bioroebe/abstract/README.md +1 -0
- data/lib/bioroebe/abstract/features.rb +29 -0
- 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/base_module/base_module.rb +36 -0
- data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
- data/lib/bioroebe/base/commandline_application/commandline_application.rb +13 -9
- data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +24 -19
- 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 +5 -3
- data/lib/bioroebe/base/internal_hash_module/internal_hash_module.rb +42 -0
- data/lib/bioroebe/base/misc.rb +35 -0
- data/lib/bioroebe/base/prototype/misc.rb +15 -9
- data/lib/bioroebe/base/prototype/reset.rb +10 -0
- data/lib/bioroebe/cleave_and_digest/digestion.rb +10 -2
- data/lib/bioroebe/cleave_and_digest/trypsin.rb +104 -50
- 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 +208 -59
- data/lib/bioroebe/codons/possible_codons_for_this_aminoacid.rb +1 -9
- data/lib/bioroebe/codons/show_codon_tables.rb +8 -3
- 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/constants/nucleotides.rb +7 -0
- data/lib/bioroebe/conversions/dna_to_aminoacid_sequence.rb +109 -39
- 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/cpp +1 -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/dotplots/advanced_dotplot.rb +1 -1
- 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 +1518 -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 +130 -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 +106 -137
- data/lib/bioroebe/gui/gtk3/aminoacid_composition/aminoacid_composition.rb +27 -61
- data/lib/bioroebe/gui/gtk3/aminoacid_composition/customized_dialog.rb +1 -1
- data/lib/bioroebe/gui/gtk3/blosum_matrix_viewer/blosum_matrix_viewer.rb +1 -2
- data/lib/bioroebe/gui/gtk3/calculate_cell_numbers_of_bacteria/calculate_cell_numbers_of_bacteria.rb +1 -2
- data/lib/bioroebe/gui/gtk3/controller/controller.rb +46 -29
- data/lib/bioroebe/gui/gtk3/dna_to_aminoacid_widget/dna_to_aminoacid_widget.rb +77 -52
- data/lib/bioroebe/gui/gtk3/dna_to_reverse_complement_widget/dna_to_reverse_complement_widget.rb +1 -2
- data/lib/bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb +100 -23
- data/lib/bioroebe/gui/gtk3/format_converter/format_converter.rb +1 -2
- data/lib/bioroebe/gui/gtk3/gene/gene.rb +1 -2
- data/lib/bioroebe/gui/gtk3/hamming_distance/hamming_distance.rb +43 -30
- data/lib/bioroebe/gui/gtk3/levensthein_distance/levensthein_distance.rb +1 -2
- data/lib/bioroebe/gui/gtk3/nucleotide_analyser/nucleotide_analyser.rb +120 -73
- data/lib/bioroebe/gui/gtk3/primer_design_widget/primer_design_widget.rb +1 -2
- data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +19 -20
- data/lib/bioroebe/gui/gtk3/random_sequence/random_sequence.rb +20 -13
- data/lib/bioroebe/gui/gtk3/restriction_enzymes/restriction_enzymes.rb +1 -2
- data/lib/bioroebe/gui/gtk3/show_codon_table/misc.rb +97 -22
- data/lib/bioroebe/gui/gtk3/show_codon_table/show_codon_table.rb +3 -73
- data/lib/bioroebe/gui/gtk3/show_codon_usage/show_codon_usage.rb +1 -2
- data/lib/bioroebe/gui/gtk3/sizeseq/sizeseq.rb +1 -2
- data/lib/bioroebe/gui/gtk3/three_to_one/three_to_one.rb +1 -2
- data/lib/bioroebe/gui/gtk3/www_finder/www_finder.rb +1 -2
- data/lib/bioroebe/gui/javafx/bioroebe/Bioroebe.class +0 -0
- data/lib/bioroebe/gui/javafx/bioroebe/Bioroebe.java +104 -0
- data/lib/bioroebe/gui/javafx/bioroebe.jar +0 -0
- data/lib/bioroebe/gui/javafx/bioroebe.mf +1 -0
- data/lib/bioroebe/gui/javafx/module-info.class +0 -0
- data/lib/bioroebe/gui/javafx/module-info.java +5 -0
- data/lib/bioroebe/gui/jruby/alignment/alignment.rb +165 -0
- data/lib/bioroebe/gui/jruby/aminoacid_composition/aminoacid_composition.rb +166 -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/aminoacid_composition/aminoacid_composition_module.rb +94 -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/images/images.html +29845 -0
- data/lib/bioroebe/java/README.md +5 -0
- data/lib/bioroebe/java/bioroebe/AllInOne.java +1 -0
- data/lib/bioroebe/java/bioroebe/Base.class +0 -0
- data/lib/bioroebe/java/bioroebe/Base.java +39 -5
- data/lib/bioroebe/java/bioroebe/IsPalindrome.java +23 -5
- data/lib/bioroebe/java/bioroebe/SanitizeNucleotideSequence.java +0 -0
- data/lib/bioroebe/java/bioroebe/Sequence.java +28 -3
- data/lib/bioroebe/java/bioroebe/ToCamelcase.class +0 -0
- data/lib/bioroebe/java/bioroebe/ToCamelcase.java +16 -4
- data/lib/bioroebe/java/bioroebe/ToRNA.java +43 -0
- data/lib/bioroebe/java/bioroebe/ToplevelMethods.java +6 -0
- data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.class → src/BisulfiteTreatment.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{Codons.class → src/Codons.class} +0 -0
- data/lib/bioroebe/java/bioroebe/src/Codons.java +35 -0
- data/lib/bioroebe/java/bioroebe/src/Commandline.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/Commandline.java +101 -0
- data/lib/bioroebe/java/bioroebe/{Esystem.class → src/Esystem.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{Esystem.java → src/Esystem.java} +6 -1
- data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.class → src/GenerateRandomDnaSequence.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.java → src/GenerateRandomDnaSequence.java} +8 -2
- data/lib/bioroebe/java/bioroebe/src/PartnerNucleotide.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/PartnerNucleotide.java +56 -0
- data/lib/bioroebe/java/bioroebe/{RemoveFile.java → src/RemoveFile.java} +10 -4
- data/lib/bioroebe/java/bioroebe/{RemoveNumbers.class → src/RemoveNumbers.class} +0 -0
- data/lib/bioroebe/java/bioroebe/{RemoveNumbers.java → src/RemoveNumbers.java} +1 -0
- data/lib/bioroebe/java/bioroebe/src/toplevel_methods/BaseComposition.class +0 -0
- data/lib/bioroebe/java/bioroebe/src/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/sanitize_nucleotide_sequence.rb +59 -18
- 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/convert_dna_to_aminoacid_sequence.py +137 -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 +52 -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_cleave_and_digest.rb +3 -1
- 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/rna.rb +220 -0
- data/lib/bioroebe/sequence/sequence.rb +128 -40
- data/lib/bioroebe/shell/menu.rb +3815 -3696
- data/lib/bioroebe/shell/misc.rb +9019 -3133
- data/lib/bioroebe/shell/readline/readline.rb +1 -1
- data/lib/bioroebe/shell/shell.rb +1137 -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 +175 -11
- 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 +75 -47
- data/lib/bioroebe/toplevel_methods/taxonomy.rb +3 -3
- 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/compacter.rb +251 -0
- 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/permutations.rb +36 -9
- 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 +121 -58
- data/lib/bioroebe/www/sinatra/sinatra.rb +186 -71
- data/lib/bioroebe/yaml/aminoacids/amino_acids_long_name_to_one_letter.yml +2 -2
- data/lib/bioroebe/yaml/aminoacids/weight_of_common_proteins.yml +17 -17
- data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
- data/lib/bioroebe/yaml/configuration/temp_dir.yml +1 -1
- data/lib/bioroebe/yaml/consensus_sequences/consensus_sequences.yml +1 -0
- data/lib/bioroebe/yaml/genomes/README.md +3 -4
- data/lib/bioroebe/yaml/nucleotides/nucleotides.yml +5 -0
- data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +57 -57
- data/spec/README.md +6 -0
- data/spec/project_wide_specification/classes.md +5 -0
- metadata +107 -70
- 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/AllInOne.class +0 -0
- data/lib/bioroebe/java/bioroebe/Cat.class +0 -0
- data/lib/bioroebe/java/bioroebe/Codons.java +0 -22
- data/lib/bioroebe/java/bioroebe/IsPalindrome.class +0 -0
- data/lib/bioroebe/java/bioroebe/PartnerNucleotide.class +0 -0
- data/lib/bioroebe/java/bioroebe/PartnerNucleotide.java +0 -19
- data/lib/bioroebe/java/bioroebe/SanitizeNucleotideSequence.class +0 -0
- data/lib/bioroebe/java/bioroebe/ToplevelMethods.class +0 -0
- 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/utility_scripts/compacter.rb +0 -131
- /data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.java → src/BisulfiteTreatment.java} +0 -0
- /data/lib/bioroebe/java/bioroebe/{RemoveFile.class → src/RemoveFile.class} +0 -0
@@ -8,6 +8,8 @@
|
|
8
8
|
#
|
9
9
|
# https://raw.githubusercontent.com/labsquare/fastQt/master/screenshot.gif
|
10
10
|
#
|
11
|
+
# The widget supports loading .fasta files from the commandline - simply
|
12
|
+
# pass the file location (local path) to the widget as argument.
|
11
13
|
# =========================================================================== #
|
12
14
|
# require 'bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb'
|
13
15
|
# Bioroebe::GUI::Gtk::FastaTableWidget.run
|
@@ -27,11 +29,6 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
|
|
27
29
|
require 'gtk_paradise/requires/require_the_base_module.rb'
|
28
30
|
include ::Gtk::BaseModule
|
29
31
|
|
30
|
-
# ========================================================================= #
|
31
|
-
# === NAMESPACE
|
32
|
-
# ========================================================================= #
|
33
|
-
NAMESPACE = inspect
|
34
|
-
|
35
32
|
# ========================================================================= #
|
36
33
|
# === TITLE
|
37
34
|
# ========================================================================= #
|
@@ -81,16 +78,21 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
|
|
81
78
|
# === reset (reset tag)
|
82
79
|
# ========================================================================= #
|
83
80
|
def reset
|
81
|
+
infer_the_namespace
|
84
82
|
reset_the_internal_variables
|
85
83
|
# ======================================================================= #
|
86
84
|
# === @configuration
|
87
85
|
# ======================================================================= #
|
88
|
-
@configuration = [true, __dir__,
|
86
|
+
@configuration = [true, __dir__, namespace?]
|
89
87
|
title_width_height_font(TITLE, WIDTH, HEIGHT, main_font?)
|
90
88
|
# ======================================================================= #
|
91
89
|
# === @use_this_directory
|
92
90
|
# ======================================================================= #
|
93
91
|
@use_this_directory = ::Bioroebe.log_directory?+'fasta/'
|
92
|
+
# ======================================================================= #
|
93
|
+
# === @all_fasta_files
|
94
|
+
# ======================================================================= #
|
95
|
+
@all_fasta_files = Dir[@use_this_directory+'*.fasta']
|
94
96
|
handle_CSS_rules
|
95
97
|
infer_the_size_automatically
|
96
98
|
end
|
@@ -109,6 +111,13 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
|
|
109
111
|
0
|
110
112
|
end
|
111
113
|
|
114
|
+
# ========================================================================= #
|
115
|
+
# === list_store?
|
116
|
+
# ========================================================================= #
|
117
|
+
def list_store?
|
118
|
+
@list_store
|
119
|
+
end; alias liststore? list_store? # === liststore?
|
120
|
+
|
112
121
|
# ========================================================================= #
|
113
122
|
# === create_view
|
114
123
|
# ========================================================================= #
|
@@ -122,6 +131,7 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
|
|
122
131
|
@view.make_sortable
|
123
132
|
@view.the_headers_can_be_moved
|
124
133
|
@view.enable_search
|
134
|
+
@view.deselect_on_right_click_event
|
125
135
|
deselect_the_main_treeview
|
126
136
|
end
|
127
137
|
|
@@ -154,7 +164,7 @@ class FastaTableWidget < ::Gtk::Frame # === Bioroebe::GUI::Gtk::FastaTableWidget
|
|
154
164
|
end
|
155
165
|
|
156
166
|
# ========================================================================= #
|
157
|
-
# === handle_CSS_rules
|
167
|
+
# === handle_CSS_rules (CSS tag)
|
158
168
|
# ========================================================================= #
|
159
169
|
def handle_CSS_rules
|
160
170
|
use_gtk_paradise_project_css_file
|
@@ -170,21 +180,10 @@ treeview.view header button {
|
|
170
180
|
end
|
171
181
|
|
172
182
|
# ========================================================================= #
|
173
|
-
# ===
|
183
|
+
# === populate_the_list_store_with_the_default_dataset
|
174
184
|
# ========================================================================= #
|
175
|
-
def
|
176
|
-
|
177
|
-
set_border_width(15)
|
178
|
-
_ = label_widget
|
179
|
-
_.set_text('FASTA files')
|
180
|
-
_.left_align
|
181
|
-
_.fonty(main_font?)
|
182
|
-
_.make_bold
|
183
|
-
_.css_class('darkblue')
|
184
|
-
_.pad4px
|
185
|
-
all_fasta_files = Dir[@use_this_directory+'*.fasta']
|
186
|
-
|
187
|
-
array = all_fasta_files.map {|path|
|
185
|
+
def populate_the_list_store_with_the_default_dataset
|
186
|
+
array = @all_fasta_files.map {|path|
|
188
187
|
parse_fasta_object = ::Bioroebe.parse_fasta(path) { :be_quiet }
|
189
188
|
n_nucleotides = parse_fasta_object.n_nucleotides?
|
190
189
|
gc_content = parse_fasta_object.gc_content # Bioroebe.gc_content
|
@@ -210,20 +209,98 @@ treeview.view header button {
|
|
210
209
|
}
|
211
210
|
|
212
211
|
populate_this_list_store_with_that_array4(@list_store, array)
|
212
|
+
end
|
213
|
+
|
214
|
+
# ========================================================================= #
|
215
|
+
# === connect_skeleton (connect tag)
|
216
|
+
# ========================================================================= #
|
217
|
+
def connect_skeleton
|
218
|
+
abort_on_exception
|
219
|
+
set_border_width(15)
|
220
|
+
populate_the_list_store_with_the_default_dataset
|
213
221
|
scrolled_window = gtk_scrolled_window(@view) { :always }
|
214
222
|
scrolled_window.width_height(540, 500)
|
215
223
|
vbox = gtk_vbox
|
216
224
|
vbox.minimal(scrolled_window, 14)
|
217
225
|
add(vbox)
|
226
|
+
style_the_label_widget
|
218
227
|
end
|
219
228
|
|
220
229
|
# ========================================================================= #
|
221
230
|
# === run (run tag)
|
222
231
|
# ========================================================================= #
|
223
232
|
def run
|
233
|
+
menu # Must come before the super() call.
|
224
234
|
super()
|
225
235
|
end
|
226
236
|
|
237
|
+
# ========================================================================= #
|
238
|
+
# === menu (menu tag)
|
239
|
+
# ========================================================================= #
|
240
|
+
def menu(
|
241
|
+
i = commandline_arguments?
|
242
|
+
)
|
243
|
+
if i.is_a? Array
|
244
|
+
i.each {|entry| menu(entry) }
|
245
|
+
else
|
246
|
+
# ===================================================================== #
|
247
|
+
# Load existing files:
|
248
|
+
# ===================================================================== #
|
249
|
+
if i and File.exist?(i)
|
250
|
+
clear_the_old_dataset
|
251
|
+
append_this_fasta_file(i)
|
252
|
+
end
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
# ========================================================================= #
|
257
|
+
# === append_this_fasta_file
|
258
|
+
# ========================================================================= #
|
259
|
+
def append_this_fasta_file(i)
|
260
|
+
unless @all_fasta_files.include?(i)
|
261
|
+
if i.end_with?('.fa','.fasta','.txt','.md')
|
262
|
+
@all_fasta_files << i
|
263
|
+
end
|
264
|
+
end
|
265
|
+
end; alias append_this_file append_this_fasta_file # === append_this_file
|
266
|
+
|
267
|
+
# ========================================================================= #
|
268
|
+
# === clear_the_old_dataset
|
269
|
+
# ========================================================================= #
|
270
|
+
def clear_the_old_dataset
|
271
|
+
@all_fasta_files.clear
|
272
|
+
end
|
273
|
+
|
274
|
+
# ========================================================================= #
|
275
|
+
# === style_the_label_widget
|
276
|
+
# ========================================================================= #
|
277
|
+
def style_the_label_widget
|
278
|
+
_ = hbox
|
279
|
+
label = text('FASTA files')
|
280
|
+
label.left_align
|
281
|
+
label.fonty(main_font?)
|
282
|
+
label.make_bold
|
283
|
+
label.css_class('darkblue')
|
284
|
+
label.pad4px
|
285
|
+
_.minimal label, 10
|
286
|
+
event_box = event_box(image_document_open)
|
287
|
+
event_box.on_clicked {
|
288
|
+
filename = ::Gtk.select_file(@parent_widget) {{ # @parent_widget should be of Gtk::Window class or subclass.
|
289
|
+
current_folder: return_pwd,
|
290
|
+
show_hidden: true,
|
291
|
+
add_these_shortcut_folders: Bioroebe.fasta_dir?
|
292
|
+
}}
|
293
|
+
if filename and File.exist?(filename)
|
294
|
+
append_this_file(filename)
|
295
|
+
# @view.clear
|
296
|
+
liststore?.clear
|
297
|
+
populate_the_list_store_with_the_default_dataset
|
298
|
+
end
|
299
|
+
}
|
300
|
+
_.minimal event_box, 10
|
301
|
+
self.label_widget = _
|
302
|
+
end
|
303
|
+
|
227
304
|
# ========================================================================= #
|
228
305
|
# === Bioroebe::GUI::Gtk::FastaTableWidget.run
|
229
306
|
# ========================================================================= #
|
@@ -233,9 +310,9 @@ treeview.view header button {
|
|
233
310
|
require 'gtk_paradise/run'
|
234
311
|
_ = ::Bioroebe::GUI::Gtk::FastaTableWidget.new(i)
|
235
312
|
r = ::Gtk.run
|
313
|
+
_.set_parent_widget(_)
|
236
314
|
r << _
|
237
|
-
r.
|
238
|
-
r.top_left_then_run
|
315
|
+
r.automatic_top_left_then_run
|
239
316
|
end
|
240
317
|
|
241
318
|
end; end; end; end
|
@@ -171,8 +171,7 @@ class Gene < ::Gtk::Box # === Bioroebe::GUI::Gtk::Gene
|
|
171
171
|
_ = ::Bioroebe::GUI::Gtk::Gene.new(i)
|
172
172
|
r = ::Gtk.run
|
173
173
|
r << _
|
174
|
-
r.
|
175
|
-
r.top_left_then_run
|
174
|
+
r.automatic_top_left_then_run
|
176
175
|
end
|
177
176
|
|
178
177
|
end; end; end; end
|
@@ -152,30 +152,6 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
|
|
152
152
|
@entry_on_top
|
153
153
|
end
|
154
154
|
|
155
|
-
# ========================================================================= #
|
156
|
-
# === compare_the_two_sequences
|
157
|
-
#
|
158
|
-
# This is the method that will compare the two sequences.
|
159
|
-
# ========================================================================= #
|
160
|
-
def compare_the_two_sequences
|
161
|
-
hamming_distance_object = ::Bioroebe::HammingDistance.new("#{seq1?} #{seq2?}") { :be_quiet }
|
162
|
-
@entry_n_differences.set_text(
|
163
|
-
hamming_distance_object.n_differences?.to_s
|
164
|
-
)
|
165
|
-
end; alias do_compare compare_the_two_sequences # === do_compare
|
166
|
-
alias do_calculate_the_differences compare_the_two_sequences # === do_calculate_the_differences
|
167
|
-
|
168
|
-
# ========================================================================= #
|
169
|
-
# === consider_sanitizing_the_input
|
170
|
-
# ========================================================================= #
|
171
|
-
def consider_sanitizing_the_input
|
172
|
-
# ======================================================================= #
|
173
|
-
# The following two lines were added as of 07.05.2020.
|
174
|
-
# ======================================================================= #
|
175
|
-
@entry_on_top.set_text(@entry_on_top.text.delete('-'))
|
176
|
-
@entry_on_bottom.set_text(@entry_on_bottom.text.delete('-'))
|
177
|
-
end
|
178
|
-
|
179
155
|
# ========================================================================= #
|
180
156
|
# === create_entries (entries tag, entry tag)
|
181
157
|
# ========================================================================= #
|
@@ -211,10 +187,10 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
|
|
211
187
|
# This is ok.
|
212
188
|
when *%w( B D E F H I J K L M N O P Q R S V W X Y Z ) # Otherwise set the old input here.
|
213
189
|
unless event.state.control_mask? # This snippet checks whether a key-combination has been used.
|
214
|
-
widget.set_text(old_text)
|
190
|
+
widget.set_text(old_text.upcase)
|
215
191
|
end
|
216
192
|
end
|
217
|
-
}
|
193
|
+
} if false # disabled as of August 2022.
|
218
194
|
# ======================================================================= #
|
219
195
|
# And keep things upcased here:
|
220
196
|
# ======================================================================= #
|
@@ -269,10 +245,10 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
|
|
269
245
|
# ======================================================================= #
|
270
246
|
# === The top box
|
271
247
|
# ======================================================================= #
|
272
|
-
@top_box =
|
248
|
+
@top_box = vbox
|
273
249
|
|
274
250
|
@label_on_top = bold_label(USE_THIS_TITLE)
|
275
|
-
@label_on_top.
|
251
|
+
@label_on_top.hint =
|
276
252
|
"Only <b>valid nucleotides</b> (A, T, C, G, U) \n"\
|
277
253
|
"can be accepted as input."
|
278
254
|
# ======================================================================= #
|
@@ -334,6 +310,44 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
|
|
334
310
|
show_all
|
335
311
|
end
|
336
312
|
|
313
|
+
# ========================================================================= #
|
314
|
+
# === compare_the_two_sequences
|
315
|
+
#
|
316
|
+
# This is the method that will compare the two sequences.
|
317
|
+
# ========================================================================= #
|
318
|
+
def compare_the_two_sequences
|
319
|
+
do_upcase_all_entries
|
320
|
+
hamming_distance_object = ::Bioroebe::HammingDistance.new("#{seq1?} #{seq2?}") { :be_quiet }
|
321
|
+
@entry_n_differences.set_text(
|
322
|
+
hamming_distance_object.n_differences?.to_s
|
323
|
+
)
|
324
|
+
end; alias do_compare compare_the_two_sequences # === do_compare
|
325
|
+
alias do_calculate_the_differences compare_the_two_sequences # === do_calculate_the_differences
|
326
|
+
|
327
|
+
# ========================================================================= #
|
328
|
+
# === do_upcase_all_entries
|
329
|
+
# ========================================================================= #
|
330
|
+
def do_upcase_all_entries
|
331
|
+
[
|
332
|
+
@entry_on_top,
|
333
|
+
@entry_on_bottom
|
334
|
+
].each {|entry|
|
335
|
+
entry.do_upcase
|
336
|
+
}
|
337
|
+
end
|
338
|
+
|
339
|
+
# ========================================================================= #
|
340
|
+
# === consider_sanitizing_the_input
|
341
|
+
# ========================================================================= #
|
342
|
+
def consider_sanitizing_the_input
|
343
|
+
# ======================================================================= #
|
344
|
+
# The following two lines were added as of 07.05.2020.
|
345
|
+
# ======================================================================= #
|
346
|
+
@entry_on_top.set_text(@entry_on_top.text.delete('-'))
|
347
|
+
@entry_on_bottom.set_text(@entry_on_bottom.text.delete('-'))
|
348
|
+
do_upcase_all_entries
|
349
|
+
end
|
350
|
+
|
337
351
|
# ========================================================================= #
|
338
352
|
# === run (run tag)
|
339
353
|
# ========================================================================= #
|
@@ -359,8 +373,7 @@ class HammingDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::HammingDistance
|
|
359
373
|
r = ::Gtk.run
|
360
374
|
r << _
|
361
375
|
r.modify_background(:normal, :mintcream)
|
362
|
-
r.
|
363
|
-
r.top_left_then_run
|
376
|
+
r.automatic_top_left_then_run
|
364
377
|
end; self.instance_eval { alias run_gtk3_widget run } # === Bioroebe::GUI::Gtk::HammingDistance.run_gtk3_widget
|
365
378
|
|
366
379
|
end; end; end; end
|
@@ -163,8 +163,7 @@ class LevenstheinDistance < ::Gtk::Box # === Bioroebe::GUI::Gtk::LevenstheinDist
|
|
163
163
|
_ = ::Bioroebe::GUI::Gtk::LevenstheinDistance.new(i)
|
164
164
|
r = ::Gtk.run
|
165
165
|
r << _
|
166
|
-
r.
|
167
|
-
r.top_left_then_run
|
166
|
+
r.automatic_top_left_then_run
|
168
167
|
end; self.instance_eval { alias start_gui_application run } # === Bioroebe::GUI::Gtk::LevenstheinDistanceModule.start_gui_application
|
169
168
|
self.instance_eval { alias run_gtk3_widget run } # === Bioroebe::GUI::Gtk::LevenstheinDistance.run_gtk3_widget
|
170
169
|
|
@@ -128,7 +128,7 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
|
|
128
128
|
# ========================================================================= #
|
129
129
|
def create_skeleton
|
130
130
|
create_buttons
|
131
|
-
|
131
|
+
create_the_labels
|
132
132
|
create_entry
|
133
133
|
end
|
134
134
|
|
@@ -163,46 +163,6 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
|
|
163
163
|
@list_store.clear
|
164
164
|
end
|
165
165
|
|
166
|
-
# ========================================================================= #
|
167
|
-
# === create_entry (entry tag)
|
168
|
-
# ========================================================================= #
|
169
|
-
def create_entry
|
170
|
-
# ======================================================================= #
|
171
|
-
# === @entry_input_sequence
|
172
|
-
# ======================================================================= #
|
173
|
-
@entry_input_sequence = gtk_entry
|
174
|
-
@entry_input_sequence.yellow_background
|
175
|
-
@entry_input_sequence.hint = 'The sequence will be evaluated '\
|
176
|
-
'whenever it is changed, as-is. Hit the <b>enter</b> key '\
|
177
|
-
'to change it, for convenience.'
|
178
|
-
@entry_input_sequence.on_changed {
|
179
|
-
update_this_sequence_contains_n_nucleotides
|
180
|
-
update_the_table_dataset
|
181
|
-
update_the_GC_content_label
|
182
|
-
}
|
183
|
-
# ======================================================================= #
|
184
|
-
# Act on when the user hits the enter-key.
|
185
|
-
# ======================================================================= #
|
186
|
-
@entry_input_sequence.on_enter_key {
|
187
|
-
sanitize_the_sequence
|
188
|
-
do_analyse_the_sequence
|
189
|
-
update_this_sequence_contains_n_nucleotides(
|
190
|
-
return_how_many_nucleotides_this_sequence_contains
|
191
|
-
)
|
192
|
-
}
|
193
|
-
end
|
194
|
-
|
195
|
-
# ========================================================================= #
|
196
|
-
# === update_the_GC_content_label
|
197
|
-
# ========================================================================= #
|
198
|
-
def update_the_GC_content_label
|
199
|
-
_ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
|
200
|
-
@label_gc_content.set_text(
|
201
|
-
'The <b>GC content</b> (G+C) is: <b>'+_.to_s+'%</b>'
|
202
|
-
)
|
203
|
-
@label_gc_content.do_markify
|
204
|
-
end; alias update_the_labels update_the_GC_content_label # === update_the_labels
|
205
|
-
|
206
166
|
# ========================================================================= #
|
207
167
|
# === open_local_file
|
208
168
|
# ========================================================================= #
|
@@ -217,13 +177,6 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
|
|
217
177
|
return this_file
|
218
178
|
end
|
219
179
|
|
220
|
-
# ========================================================================= #
|
221
|
-
# === set_main_entry
|
222
|
-
# ========================================================================= #
|
223
|
-
def set_main_entry(i)
|
224
|
-
@entry_input_sequence.set_text(i.to_s)
|
225
|
-
end
|
226
|
-
|
227
180
|
require 'bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb'
|
228
181
|
# ========================================================================= #
|
229
182
|
# === do_open_a_local_file
|
@@ -283,26 +236,13 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
|
|
283
236
|
# === update_this_sequence_contains_n_nucleotides
|
284
237
|
# ========================================================================= #
|
285
238
|
def update_this_sequence_contains_n_nucleotides(
|
286
|
-
i =
|
239
|
+
i =
|
240
|
+
return_how_many_nucleotides_this_sequence_contains
|
287
241
|
)
|
288
242
|
@text_this_sequence_contains.set_text(i.to_s)
|
289
243
|
@text_this_sequence_contains.do_markify
|
290
244
|
end
|
291
245
|
|
292
|
-
# ========================================================================= #
|
293
|
-
# === create_labels
|
294
|
-
# ========================================================================= #
|
295
|
-
def create_labels
|
296
|
-
# ======================================================================= #
|
297
|
-
# === @label_gc_content
|
298
|
-
# ======================================================================= #
|
299
|
-
@label_gc_content = gtk_left_aligned_label
|
300
|
-
# ======================================================================= #
|
301
|
-
# === @text_this_sequence_contains
|
302
|
-
# ======================================================================= #
|
303
|
-
@text_this_sequence_contains = gtk_left_aligned_label
|
304
|
-
end
|
305
|
-
|
306
246
|
# ========================================================================= #
|
307
247
|
# === return_dataset_based_on_this_sequence
|
308
248
|
# ========================================================================= #
|
@@ -350,6 +290,13 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
|
|
350
290
|
end
|
351
291
|
end
|
352
292
|
|
293
|
+
# ========================================================================= #
|
294
|
+
# === update_the_main_sequence_variable
|
295
|
+
# ========================================================================= #
|
296
|
+
def update_the_main_sequence_variable
|
297
|
+
@sequence = @entry_input_sequence.text?.delete('-')
|
298
|
+
end
|
299
|
+
|
353
300
|
# ========================================================================= #
|
354
301
|
# === connect_skeleton (connect tag)
|
355
302
|
# ========================================================================= #
|
@@ -365,15 +312,9 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
|
|
365
312
|
scrolled_window.set_size_request(420, 260)
|
366
313
|
minimal(scrolled_window, 5)
|
367
314
|
minimal(gtk_horizontal_spacer)
|
368
|
-
_ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
|
369
315
|
update_the_labels
|
370
|
-
minimal(@
|
371
|
-
minimal(
|
372
|
-
gtk_left_aligned_label(
|
373
|
-
'The <b>AT content</b> (A+T) is: <b>'+
|
374
|
-
(100.0 - _.to_f).round(1).to_s+'%</b>'
|
375
|
-
)
|
376
|
-
)
|
316
|
+
minimal(@label_GC_content)
|
317
|
+
minimal(@label_AT_content)
|
377
318
|
hbox = gtk_hbox
|
378
319
|
hbox.maximal(@button_reset, 1)
|
379
320
|
hbox.maximal(@button_reset_the_input_sequence, 1)
|
@@ -399,6 +340,113 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
|
|
399
340
|
apply_the_CSS_rules
|
400
341
|
end
|
401
342
|
|
343
|
+
# ========================================================================= #
|
344
|
+
# === create_the_labels
|
345
|
+
# ========================================================================= #
|
346
|
+
def create_the_labels
|
347
|
+
# ======================================================================= #
|
348
|
+
# === @label_GC_content
|
349
|
+
# ======================================================================= #
|
350
|
+
@label_GC_content = left_aligned_label
|
351
|
+
@label_GC_content.make_selectable
|
352
|
+
# ======================================================================= #
|
353
|
+
# === @label_AT_content
|
354
|
+
# ======================================================================= #
|
355
|
+
_ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
|
356
|
+
@label_AT_content = left_aligned_label(
|
357
|
+
'The <b>AT content</b> (A+T) is: <b>'+
|
358
|
+
(100.0 - _.to_f).round(1).to_s+'%</b>'
|
359
|
+
)
|
360
|
+
@label_AT_content.make_selectable
|
361
|
+
# ======================================================================= #
|
362
|
+
# === @text_this_sequence_contains
|
363
|
+
# ======================================================================= #
|
364
|
+
@text_this_sequence_contains = left_aligned_label
|
365
|
+
@text_this_sequence_contains.make_selectable
|
366
|
+
end
|
367
|
+
|
368
|
+
# ========================================================================= #
|
369
|
+
# === create_entry (entry tag)
|
370
|
+
# ========================================================================= #
|
371
|
+
def create_entry
|
372
|
+
# ======================================================================= #
|
373
|
+
# === @entry_input_sequence
|
374
|
+
# ======================================================================= #
|
375
|
+
@entry_input_sequence = entry
|
376
|
+
@entry_input_sequence.default_values
|
377
|
+
@entry_input_sequence.hint = 'The sequence will be evaluated '\
|
378
|
+
'whenever it is changed, as-is. Hit the <b>enter</b> key '\
|
379
|
+
'to change it, for convenience.'
|
380
|
+
@entry_input_sequence.on_changed {
|
381
|
+
update_the_main_sequence_variable
|
382
|
+
update_this_sequence_contains_n_nucleotides
|
383
|
+
update_the_table_dataset
|
384
|
+
update_the_labels
|
385
|
+
}
|
386
|
+
# ======================================================================= #
|
387
|
+
# Act on when the user hits the enter-key.
|
388
|
+
# ======================================================================= #
|
389
|
+
@entry_input_sequence.on_enter_key {
|
390
|
+
sanitize_the_sequence
|
391
|
+
do_analyse_the_sequence
|
392
|
+
update_this_sequence_contains_n_nucleotides(
|
393
|
+
return_how_many_nucleotides_this_sequence_contains
|
394
|
+
)
|
395
|
+
}
|
396
|
+
end
|
397
|
+
|
398
|
+
# ========================================================================= #
|
399
|
+
# === entry_input_sequence?
|
400
|
+
# ========================================================================= #
|
401
|
+
def entry_input_sequence?
|
402
|
+
@entry_input_sequence
|
403
|
+
end; alias main_entry? entry_input_sequence? # === main_entry?
|
404
|
+
|
405
|
+
# ========================================================================= #
|
406
|
+
# === dna_sequence?
|
407
|
+
# ========================================================================= #
|
408
|
+
def dna_sequence?
|
409
|
+
@entry_input_sequence.text?
|
410
|
+
end
|
411
|
+
|
412
|
+
# ========================================================================= #
|
413
|
+
# === update_the_GC_content_label
|
414
|
+
# ========================================================================= #
|
415
|
+
def update_the_GC_content_label
|
416
|
+
_ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
|
417
|
+
@label_GC_content.set_text(
|
418
|
+
'The <b>GC content</b> (G+C) is: <b>'+_.to_s+'%</b>'
|
419
|
+
)
|
420
|
+
@label_GC_content.do_markify
|
421
|
+
end
|
422
|
+
|
423
|
+
# ========================================================================= #
|
424
|
+
# === update_the_labels
|
425
|
+
# ========================================================================= #
|
426
|
+
def update_the_labels
|
427
|
+
update_the_GC_content_label
|
428
|
+
update_the_AT_content_label
|
429
|
+
end
|
430
|
+
|
431
|
+
# ========================================================================= #
|
432
|
+
# === update_the_AT_content_label
|
433
|
+
# ========================================================================= #
|
434
|
+
def update_the_AT_content_label
|
435
|
+
_ = ::Bioroebe.gc_content(@sequence, 1) # => 50.0
|
436
|
+
@label_AT_content.set_text(
|
437
|
+
"The <b>AT content</b> (A+T) is: <b>"\
|
438
|
+
"#{(100.0 - _.to_f).round(1).to_s}%</b>"
|
439
|
+
)
|
440
|
+
@label_AT_content.do_markify
|
441
|
+
end
|
442
|
+
|
443
|
+
# ========================================================================= #
|
444
|
+
# === set_main_entry
|
445
|
+
# ========================================================================= #
|
446
|
+
def set_main_entry(i)
|
447
|
+
@entry_input_sequence.set_text(i.to_s)
|
448
|
+
end; alias set_dna_sequence set_main_entry # === set_dna_sequence
|
449
|
+
|
402
450
|
# ========================================================================= #
|
403
451
|
# === run (run tag)
|
404
452
|
# ========================================================================= #
|
@@ -417,8 +465,7 @@ class NucleotideAnalyser < ::Gtk::Box # === Bioroebe::GUI::Gtk::NucleotideAnalys
|
|
417
465
|
_ = ::Bioroebe::GUI::Gtk::NucleotideAnalyser.new(i)
|
418
466
|
r = ::Gtk.run
|
419
467
|
r << _
|
420
|
-
r.
|
421
|
-
r.top_left_then_run
|
468
|
+
r.automatic_top_left_then_run
|
422
469
|
end
|
423
470
|
|
424
471
|
end; end; end; end
|
@@ -349,8 +349,7 @@ class PrimerDesignWidget < ::Gtk::Box # === Bioroebe::GUI::Gtk::PrimerDesignWidg
|
|
349
349
|
_ = ::Bioroebe::GUI::Gtk::PrimerDesignWidget.new(i)
|
350
350
|
r = ::Gtk.run
|
351
351
|
r << _
|
352
|
-
r.
|
353
|
-
r.top_left_then_run
|
352
|
+
r.automatic_top_left_then_run
|
354
353
|
end
|
355
354
|
|
356
355
|
# ========================================================================= #
|