Class: Bioroebe::DisplayAminoacidTable

Inherits:
CommandlineApplication show all
Defined in:
lib/bioroebe/aminoacids/display_aminoacid_table.rb

Overview

Bioroebe::DisplayAminoacidTable

Constant Summary

Constants inherited from CommandlineApplication

CommandlineApplication::OLD_VERBOSE_VALUE

Constants included from ColoursForBase

ColoursForBase::ARRAY_HTML_COLOURS_IN_USE

Constants inherited from Base

Base::NAMESPACE

Class Method Summary collapse

Instance Method Summary collapse

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, #opne, #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, #set_be_verbose, #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 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_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?, #file_readlines, #infer_the_namespace, #is_on_roebe?, #is_palindrome?, #main_encoding?, #mkdir, #move_file, #mv, #namespace?, #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

Constructor Details

#initialize(i = nil, run_already = true) ⇒ DisplayAminoacidTable

#

initialize

#

28
29
30
31
32
33
34
35
36
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 28

def initialize(
    i           = nil,
    run_already = true
  )
  super()
  reset
  set_input(i) if i # If no input is provided, we default to nil.
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

Bioroebe::DisplayAminoacidTable[]

#

224
225
226
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 224

def self.[](i = '')
  new(i)
end

Instance Method Details

#do_display_additional_informationObject

#

do_display_additional_information

#

119
120
121
122
123
124
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 119

def do_display_additional_information
  erev 'Total number of negatively charged residues (Asp + Glu): '+
       steelblue(return_n_negatively_charged_residues)
  erev 'Total number of positively charged residues (Arg + Lys): '+
       steelblue(return_n_positively_charged_residues)
end

#input?Boolean Also known as: sequence?

#

input?

#

Returns:

  • (Boolean)

89
90
91
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 89

def input?
  @input
end

#n_aminoacids_in_the_sequence?Boolean

#

n_aminoacids_in_the_sequence?

#

Returns:

  • (Boolean)

96
97
98
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 96

def n_aminoacids_in_the_sequence?
  sequence?.to_s.delete('*').size
end

#resetObject

#

reset (reset tag)

#

41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 41

def reset
  super()
  set_input
  # ======================================================================= #
  # === @mono_mass_sum
  # ======================================================================= #
  @mono_mass_sum    = 0
  # ======================================================================= #
  # === @average_mass_sum
  # ======================================================================= #
  @average_mass_sum = 0
  # ======================================================================= #
  # === @shall_we_display_additional_information
  #
  # If the following instance variable is set to true then this class will
  # report more information by default, such as how many negatively
  # charged aminoacids can be found in this protein - information
  # like this.
  # ======================================================================= #
  @shall_we_display_additional_information = true
  # ======================================================================= #
  # === @average_residue_weight
  # ======================================================================= #
  @average_residue_weight = 0
end

#return_average_residue_weightObject

#

return_average_residue_weight

#

129
130
131
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 129

def return_average_residue_weight
  @average_residue_weight
end

#return_n_negatively_charged_residuesObject

#

return_n_negatively_charged_residues

#

103
104
105
106
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 103

def return_n_negatively_charged_residues
  _ = @input
  return _.count('D')+_.count('E')
end

#return_n_positively_charged_residuesObject

#

return_n_positively_charged_residues

#

111
112
113
114
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 111

def return_n_positively_charged_residues
  _ = @input
  return _.count('R')+_.count('K')
end

#runObject

#

run (run tag)

#

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 136

def run
  begin
    require 'percentage'
  rescue LoadError; end
  _ = sequence?
  unless _
    erev 'Please first assign some aminoacids. One way is via:'
    e
    erev '  random AA'
    e
  else
    @average_residue_weight = 0
    print rev
    cliner
    erev "Sequence Length: #{simp(_.delete('*').size.to_s)}"; e
    header = 'Symbol  Name-of-the-aminoacid  Mono-Mass  Average-Mass  Count  Percentage'
    erev header; e
    all_aminoacids?.each {|the_aminoacid|
      coloured_name_of_the_aminoacid = tomato(the_aminoacid.ljust(5))+rev
      result = '   '.dup # Lead-padding.
      result << "#{coloured_name_of_the_aminoacid} "
      result << ::Bioroebe.return_long_name_of_this_aminoacid(
        the_aminoacid
      ).ljust(22)
      # =================================================================== #
      # Add the monoisotopic mass, then the average mass of the aminoacid.
      # =================================================================== #
      mono_mass    = ::Bioroebe.amino_acid_monoisotopic_mass(the_aminoacid)
      result <<    ('%.4f' % mono_mass.to_s).rjust(9)
      result << '   ' # Add a bit of padding.
      average_mass = ::Bioroebe.amino_acid_average_mass(the_aminoacid)
      result <<   ('%.4f' % average_mass.to_s).rjust(9)
      # =================================================================== #
      # Next add how many specific aminoacids we have found. 
      # =================================================================== #
      count = _.count(the_aminoacid)
      @average_residue_weight += (average_mass * count)
      @mono_mass_sum += (mono_mass * count)
      @average_mass_sum += (average_mass * count)
      # =================================================================== #
      # Next add the percentage, before we colourize count.
      # =================================================================== #
      if Object.const_defined? :Percentage
        percentage = Percentage[ (count.to_f * 100) / _.size ].percentage?
      else
        percentage = ((count.to_f * 100) / _.size).round(2).to_s
      end
      count = (count.to_s.rjust(4)).ljust(7)
      if Object.const_defined? :Colours
        count = turquoise(count)
      end
      result << "    #{count}"
      # =================================================================== #
      # Next, format the percentage.
      # =================================================================== #
      percentage = '%.2f' % percentage.to_f
      percentage = percentage.to_s.rjust(5)
      # =================================================================== #
      # Colourize it a little:
      # =================================================================== #
      percentage = deepskyblue(percentage) if use_colours?
      result << rev+'('+rev+percentage+rev+'%)'
      erev result
    } # Ala A  Alanine   71.03711  71.07880  14
    e (' ' * 30)+'-----------  ----------'
    # ===================================================================== #
    # Next, we will show the total mass as well:
    # ===================================================================== #
    e (' ' * 31)+@mono_mass_sum.round(4).to_s+'    '+
                 ('%.4f' % @average_mass_sum.round(4).to_s)+
                 ' Dalton'
    @average_residue_weight = @average_residue_weight / n_aminoacids_in_the_sequence?
    erev (' ' * 31)+'Average Residue Weight = '+
         steelblue(return_average_residue_weight.round(3).to_s)+
         rev 	
    e
    cliner
  end
  if @shall_we_display_additional_information
    do_display_additional_information
    print rev
    cliner
  end
end

#set_input(i = nil) ⇒ Object

#

set_input

#

70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 70

def set_input(i = nil)
  i = i.first if i.is_a? Array
  i = i.to_s.dup
  if File.exist?(i)
    i = File.readlines(i)
    if i.first.start_with? '>'
      i.shift
    end
  end
  if i.is_a? Array
    i = i.join(' ').strip
  end
  i = ::Bioroebe.filter_away_invalid_aminoacids(i)
  @input = i
end