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, #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(i = nil, run_already = true) ⇒ DisplayAminoacidTable

#

initialize

#


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

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[]

#


222
223
224
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 222

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

Instance Method Details

#do_display_additional_informationObject

#

do_display_additional_information

#


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

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)


87
88
89
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 87

def input?
  @input
end

#n_aminoacids_in_the_sequence?Boolean

#

n_aminoacids_in_the_sequence?

#

Returns:

  • (Boolean)


94
95
96
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 94

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

#resetObject

#

reset (reset tag)

#


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

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

#


127
128
129
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 127

def return_average_residue_weight
  @average_residue_weight
end

#return_n_negatively_charged_residuesObject

#

return_n_negatively_charged_residues

#


101
102
103
104
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 101

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

#return_n_positively_charged_residuesObject

#

return_n_positively_charged_residues

#


109
110
111
112
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 109

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

#runObject

#

run (run tag)

#


134
135
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
# File 'lib/bioroebe/aminoacids/display_aminoacid_table.rb', line 134

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

#


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

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