Class: Bioroebe::PalindromeGenerator
- Inherits:
-
CommandlineApplication
- Object
- Base
- CommandlineApplication
- Bioroebe::PalindromeGenerator
- Defined in:
- lib/bioroebe/palindromes/palindrome_generator.rb
Overview
Bioroebe::PalindromeGenerator
Constant Summary
Constants inherited from CommandlineApplication
CommandlineApplication::OLD_VERBOSE_VALUE
Constants included from ColoursForBase
ColoursForBase::ARRAY_HTML_COLOURS_IN_USE
Constants inherited from Base
Class Method Summary collapse
-
.[](i = '') ⇒ Object
# === Bioroebe::PalindromeGenerator[] ========================================================================= #.
-
.return_as_string(i = ARGV) ⇒ Object
# === Bioroebe::PalindromeGenerator.return_as_string.
Instance Method Summary collapse
-
#find_complementary_nucleotide_to(i) ⇒ Object
# === find_complementary_nucleotide_to.
-
#forward_strand? ⇒ Boolean
# === forward_strand? ========================================================================= #.
-
#initialize(length_of_the_palindrome = nil, run_already = true) ⇒ PalindromeGenerator
constructor
# === initialize ========================================================================= #.
-
#length_of_the_palindrome? ⇒ Boolean
# === length_of_the_palindrome? ========================================================================= #.
-
#lpad? ⇒ Boolean
# === lpad? ========================================================================= #.
-
#report ⇒ Object
# === report (report tag).
-
#report_forward_strand(i = @forward_strand) ⇒ Object
# === report_forward_strand ========================================================================= #.
-
#report_reverse_strand(i = @reverse_strand) ⇒ Object
# === report_reverse_strand ========================================================================= #.
-
#reset ⇒ Object
# === reset (reset tag) ========================================================================= #.
-
#result? ⇒ Boolean
# === result? ========================================================================= #.
-
#return_the_reverse_strand(forward_strand = @forward_strand) ⇒ Object
# === return_the_reverse_strand.
-
#reverse_strand? ⇒ Boolean
# === reverse_strand? ========================================================================= #.
-
#run ⇒ Object
# === run (run tag) ========================================================================= #.
-
#set_length_of_the_palindrome(i = '') ⇒ Object
# === set_length_of_the_palindrome.
Methods inherited from CommandlineApplication
#all_aminoacids?, #append_what_into, #at_home?, #be_silent, #be_verbose?, #cat, #ccliner, #change_directory, #cliner, #codon_table_dataset?, #codon_to_aminoacid, #codons_for?, #colourize_this_dna_sequence, #complement, #cp, #disable_warnings, #download_dir?, #editor?, #enable_warnings, #ensure_that_the_base_directories_exist, #esystem, #extract, #is_this_a_start_codon?, #is_this_a_stop_codon?, #leading_five_prime, #load_bioroebe_yaml_file, #log_directory?, #one_letter_to_long_name, #one_to_three, #only_numbers?, #open_in_browser, #opnerev, #opnn, #pad_with_double_quotes, #pad_with_single_quotes, #partner_nucleotide, #remove_numbers, #remove_trailing_ansii_escape_code, #return_all_possible_start_codons, #return_array_of_one_letter_aminoacids, #return_cheerful_person, #return_chunked_display, #return_ubiquitin_sequence, #runmode?, #set_be_verbose, #set_runmode, #start_codon?, #stop_codons?, #strict_filter_away_invalid_aminoacids, #taxonomy_download_directory?, #three_to_one, #to_rna, #trailing_three_prime, #use_opn?, #verbose_truth, #was_or_were, #without_extname, #write_what_into
Methods included from BaseModule
#absolute_path, #default_file_read, #file_readlines
Methods included from CommandlineArguments
#commandline_arguments?, #commandline_arguments_that_are_files?, #e, #first?, #first_non_hyphen_argument?, #remove_hyphens_from_the_commandline_arguments, #return_commandline_arguments_as_string, #return_commandline_arguments_that_are_not_files, #return_entries_without_two_leading_hyphens, #select_commandline_arguments, #select_entries_starting_with_two_hyphens, #set_commandline_arguments
Methods included from ColoursForBase
#colourize_this_aminoacid_sequence_for_the_commandline, #colourize_this_nucleotide_sequence, #disable_colours, #ecomment, #efancy, #egold, #enable_colours, #eorange, #eparse, #erev, #red, #remove_trailing_escape_part, #return_colour_for_nucleotides, #rev, #sdir, #set_will_we_use_colours, #sfancy, #sfile, #simp, #swarn, #use_colours?, #use_colours_within_the_bioroebe_namespace?
Methods inherited from Base
#append_what_into, #can_base_pair?, #convert_global_env, #delete_file, #directory_to_the_codon_tables?, #is_on_roebe?, #is_palindrome?, #main_encoding?, #mkdir, #move_file, #mv, #no_file_exists_at, #no_newlines, #project_yaml_directory?, #rds, #register_sigint, #return_pwd, #return_the_first_line_of_this_file, #word_wrap, #write_what_into
Methods included from InternalHashModule
#internal_hash?, #reset_the_internal_hash
Methods included from InferTheNamespaceModule
#infer_the_namespace, #namespace?
Constructor Details
#initialize(length_of_the_palindrome = nil, run_already = true) ⇒ PalindromeGenerator
#
initialize
#
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 28 def initialize( length_of_the_palindrome = nil, run_already = true ) reset set_length_of_the_palindrome( length_of_the_palindrome ) if block_given? yielded = yield case yielded # ===================================================================== # # === :be_quiet # ===================================================================== # when :be_quiet set_be_quiet end end run if run_already end |
Class Method Details
.[](i = '') ⇒ Object
#
Bioroebe::PalindromeGenerator[]
#
220 221 222 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 220 def self.[](i = '') new(i) end |
.return_as_string(i = ARGV) ⇒ Object
#
Bioroebe::PalindromeGenerator.return_as_string
This method has been added particularly to embed the information yielded by this class into a webpage (e. g. for sinatra). That way we can make available the functionality for people who visit a website making use of Bioroebe.
Invocation example:
Bioroebe::PalindromeGenerator.return_as_string(6) # => "GTGCAC\nCACGTG\n"
#
237 238 239 240 241 242 243 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 237 def self.return_as_string(i = ARGV) _ = ::Bioroebe::PalindromeGenerator.new(i) { :be_quiet } result = ''.dup result << _.forward_strand? << "\n" << _.reverse_strand? << "\n" result end |
Instance Method Details
#find_complementary_nucleotide_to(i) ⇒ Object
#
find_complementary_nucleotide_to
Find the corresponding complementary nucleotide to the given token at hand.
#
196 197 198 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 196 def find_complementary_nucleotide_to(i) return ::Bioroebe.complementary_nucleotide(i) end |
#forward_strand? ⇒ Boolean
#
forward_strand?
#
179 180 181 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 179 def forward_strand? @forward_strand end |
#length_of_the_palindrome? ⇒ Boolean
#
length_of_the_palindrome?
#
100 101 102 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 100 def length_of_the_palindrome? @length_of_the_palindrome end |
#lpad? ⇒ Boolean
#
lpad?
#
107 108 109 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 107 def lpad? ' ' end |
#report ⇒ Object
#
report (report tag)
You have to invoke the report method manually, thus, on your own.
We will report first the forward strand and then the reverse strand.
#
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 118 def report e if @use_header_with_numbers print ' ' n_times = @reverse_strand.size n_times.times {|n| n += 1 # This begins at 0, hence we add +1. if n > 9 n = n % 10 end print steelblue(n) } e end report_forward_strand report_reverse_strand e end |
#report_forward_strand(i = @forward_strand) ⇒ Object
#
report_forward_strand
#
139 140 141 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 139 def report_forward_strand(i = @forward_strand) e rev+lpad?+"5' - "+simp(i)+rev+" - 3'" end |
#report_reverse_strand(i = @reverse_strand) ⇒ Object
#
report_reverse_strand
#
146 147 148 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 146 def report_reverse_strand(i = @reverse_strand) e rev+lpad?+"3' - "+simp(i)+rev+" - 5'" end |
#reset ⇒ Object
#
reset (reset tag)
#
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 52 def reset super() infer_the_namespace # ======================================================================= # # === @use_header_with_numbers # # If the following variable is set to true then a numbered header will # be shown above the sequence. # ======================================================================= # @use_header_with_numbers = true # ======================================================================= # # === @forward_strand # ======================================================================= # @forward_strand = ''.dup # ======================================================================= # # === @reverse_strand # ======================================================================= # @reverse_strand = ''.dup end |
#result? ⇒ Boolean
#
result?
#
186 187 188 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 186 def result? @forward_strand+"\n"+@reverse_strand end |
#return_the_reverse_strand(forward_strand = @forward_strand) ⇒ Object
#
return_the_reverse_strand
This will only return the reverse strand, but not assign to it.
#
155 156 157 158 159 160 161 162 163 164 165 166 167 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 155 def return_the_reverse_strand( forward_strand = @forward_strand ) reverse_strand = ''.dup # ======================================================================= # # Ok, the forward strand was built - now we will add the reverse strand. # ======================================================================= # forward_strand.chars.each {|char| complement = find_complementary_nucleotide_to(char) reverse_strand << complement } return reverse_strand end |
#reverse_strand? ⇒ Boolean
#
reverse_strand?
#
172 173 174 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 172 def reverse_strand? @reverse_strand end |
#run ⇒ Object
#
run (run tag)
#
203 204 205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 203 def run first_half = ''.dup # This has the first half of the target. (length_of_the_palindrome? / 2).times { first_half << ::Bioroebe::DNA_NUCLEOTIDES.sample } forward_strand = first_half first_half.reverse.chars.each {|char| complement = find_complementary_nucleotide_to(char) forward_strand << complement } @forward_strand = forward_strand @reverse_strand = return_the_reverse_strand end |
#set_length_of_the_palindrome(i = '') ⇒ Object
#
set_length_of_the_palindrome
This setter-method determines the length of the palindrome that is to be generated.
#
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/bioroebe/palindromes/palindrome_generator.rb', line 78 def set_length_of_the_palindrome( i = '' ) i = i.first if i.is_a? Array i = i.to_i # Must be an Integer. if i.odd? if be_verbose? opnn { :short } e e erev 'The input '+sfancy(i.to_s)+rev+' is odd - we need an '\ 'even number for Palindromes.' erev 'Thus, we will deduct 1 from it and use that instead.' end i -= 1 # Odd numbers will become even here. end @length_of_the_palindrome = i end |