Class: Bioroebe::Trypsin

Inherits:
Digestion show all
Defined in:
lib/bioroebe/cleave_and_digest/trypsin.rb

Overview

Bioroebe::Trypsin

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 Digestion

#consider_reading_from_a_file_if_given_as_input_argument_to_this_class, #mediumturquoise_1_to_10, #return_1_to_10, #sequence?, #set_first, #show_the_weight_of_these_aminoacids?

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(commandline_arguments = nil, run_already = true, &block) ⇒ Trypsin

#

initialize

#


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 33

def initialize(
    commandline_arguments = nil,
    run_already           = true,
    &block
  )
  reset
  set_commandline_arguments(
    commandline_arguments
  )
  # ======================================================================= #
  # === Handle blocks given to this method next
  # ======================================================================= #
  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 = ARGV) ⇒ Object

#

Bioroebe::Trypsin[]

#


224
225
226
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 224

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

Instance Method Details

#display_the_result_similar_to_pp_outputObject

#

display_the_result_similar_to_pp_output

#


118
119
120
121
122
123
124
125
126
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 118

def display_the_result_similar_to_pp_output
  print '['
  @result.each_with_index {|entry, index|
    print entry
    print ', ' unless index == (@result.size - 1)
  }
  print ']'
  e
end

#perform_the_digestion(array_cut_at_these_aminoacids = @array_cut_at_these_aminoacids) ⇒ Object

#

perform_the_digestion

This method will perform the digestion.

#


85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 85

def perform_the_digestion(
    array_cut_at_these_aminoacids = 
      @array_cut_at_these_aminoacids
  )
  # ======================================================================= #
  # Trypsin splits at K and R, so we split on that.
  # ======================================================================= #
  _ = first?.dup.split(//)
  positions = []
  array_cut_at_these_aminoacids.each {|entry|
    positions <<
      _.each_index.select {|inner_entry| _[inner_entry] == entry }
  }
  positions.flatten!
  positions.sort!
  # ======================================================================= #
  # Because ruby arrays begin at 0, whereas peptides are counted from
  # 1, we have to add +1 to each member.
  # ======================================================================= #
  positions.map! {|entry| entry + 1 }
  @result = positions
end

#reportObject

#

report (report tag)

#


131
132
133
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
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 131

def report
  @internal_hash[:array_peptide_fragments].clear
  if @result.empty?
    erev 'No cut-sequence was found for Trypsin. (Make sure to '\
         'input an aminoacid sequence.)'
  else
    the_sequence = first?
    old_position = 0
    if be_verbose?
      display_the_result_similar_to_pp_output
      erev 'The following peptide fragments would be obtained '\
           'if this were to be cut via Trypsin:'
      e
      erev ''.ljust(36)+the_sequence
      e ''.ljust(36)+
        colourize_this_aminoacid_sequence_for_the_commandline(
          the_sequence
        )
      e ''.ljust(36)+
        mediumturquoise_1_to_10+
        mediumturquoise_1_to_10+
        mediumturquoise_1_to_10+
        mediumturquoise_1_to_10+
        mediumturquoise_1_to_10
    end
    @result.each {|this_position|
      this_subsequence = the_sequence[old_position .. (this_position - 1)]
      old_position = this_position
      if be_verbose?
        erev '  after the aminoacid-position '+
             sfancy(this_position.to_s.rjust(3))+
             rev+
             ': '+
             steelblue(
               this_subsequence
             )+crimson('')+
             rev
      end
      # =================================================================== #
      # === Show the weight of these aminoacids, if instructed to do so
      # =================================================================== #
      weight_of_this_peptide_fragment = Bioroebe.weight_of_this_aminoacid?(
        this_subsequence.split(//)
      ).round(5)
      @internal_hash[:array_peptide_fragments] << [
        this_subsequence, weight_of_this_peptide_fragment
      ]
      if show_the_weight_of_these_aminoacids? and be_verbose?
        erev ''.ljust(36)+'Weight of this peptide fragment: '+
             olivedrab(weight_of_this_peptide_fragment.to_s)
      end
    }
    if be_verbose?
      e
      unless @internal_hash[:array_peptide_fragments].empty?
        show_sorted_peptide_fragments(@internal_hash[:array_peptide_fragments])
      end
    end
  end
end

#resetObject

#

reset (reset tag)

#


61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 61

def reset
  super()
  set_be_verbose
  # ======================================================================= #
  # === @array_cut_at_these_aminoacids
  #
  # This variable ensures that trypsine cuts after lysines (K) and
  # arginines (R).
  # ======================================================================= #
  @array_cut_at_these_aminoacids = %w( K R )
  # ======================================================================= #
  # === :array_peptide_fragments
  #
  # This class will store the peptide fragments into this unsorted
  # Array.
  # ======================================================================= #
  @internal_hash[:array_peptide_fragments] = []
end

#result?Boolean

#

result?

#

Returns:

  • (Boolean)


111
112
113
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 111

def result?
  @result
end

#runObject

#

run (run tag)

#


215
216
217
218
219
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 215

def run
  consider_reading_from_a_file_if_given_as_input_argument_to_this_class
  perform_the_digestion
  report
end

#show_sorted_peptide_fragments(i = ) ⇒ Object

#

show_sorted_peptide_fragments

#


195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# File 'lib/bioroebe/cleave_and_digest/trypsin.rb', line 195

def show_sorted_peptide_fragments(
    i = @internal_hash[:array_peptide_fragments]
  )
  sorted = i.sort_by {|fragment, weight| weight}.reverse
  erev 'Next, the '+steelblue('five heaviest fragments')+
       rev+' will be shown:'
  e
  # ======================================================================= #
  # Only the top 5 heaviest fragments will be shown:
  # ======================================================================= #
  sorted[0 .. 4].each {|fragment, weight|
    weight = '%.5f' % weight.to_f
    erev weight.to_s.rjust(20)+'   '+
         steelblue(fragment)
  }
end