class Bio::Sequence::AA

DESCRIPTION

Bio::Sequence::AA represents a bare Amino Acid sequence in bioruby.

USAGE

# Create an Amino Acid sequence.
aa = Bio::Sequence::AA.new('ACDEFGHIKLMNPQRSTVWYU')

# What are the three-letter codes for all the residues?
puts aa.codes

# What are the names of all the residues?
puts aa.names

# What is the molecular weight of this peptide?
puts aa.molecular_weight

Public Class Methods

new(str) click to toggle source

Generate an amino acid sequence object from a string.

s = Bio::Sequence::AA.new("RRLEHTFVFLRNFSLMLLRY")

or maybe (if you have an amino acid sequence in a file)

s = Bio::Sequence:AA.new(File.open('aa.txt').read)

Amino Acid sequences are always all uppercase in bioruby

s = Bio::Sequence::AA.new("rrLeHtfV")
puts s                                  #=> "RRLEHTFVF"

Whitespace is stripped from the sequence

s = Bio::Sequence::AA.new("RRL\nELA\tRG\r  RL")
puts s                                  #=> "RRLELARGRL"

Arguments:

Returns

Bio::Sequence::AA object

Calls superclass method
# File lib/bio/sequence/aa.rb, line 58
def initialize(str)
  super
  self.upcase!
  self.tr!(" \t\n\r",'')
end
randomize(*arg, &block) click to toggle source

Generate a new random sequence with the given frequency of bases. The sequence length is determined by their cumulative sum. (See also Bio::Sequence::Common#randomize which creates a new randomized sequence object using the base composition of an existing sequence instance).

counts = {'R'=>1,'L'=>2,'E'=>3,'A'=>4}
puts Bio::Sequence::AA.randomize(counts)  #=> "AAEAELALRE" (for example)

You may also feed the output of randomize into a block

actual_counts = {'R'=>0,'L'=>0,'E'=>0,'A'=>0}
Bio::Sequence::AA.randomize(counts) {|x| actual_counts[x] += 1}
actual_counts                     #=> {"A"=>4, "L"=>2, "E"=>3, "R"=>1}

Arguments:

  • (optional) hash: Hash object

Returns

Bio::Sequence::AA object

# File lib/bio/sequence/compat.rb, line 113
def self.randomize(*arg, &block)
  self.new('').randomize(*arg, &block)
end

Public Instance Methods

codes() click to toggle source

Generate the list of the names of each residue along with the sequence (3 letters code). Codes used in bioruby are found in the Bio::AminoAcid::NAMES hash.

s = Bio::Sequence::AA.new("RRLE")
puts s.codes                        #=> ["Arg", "Arg", "Leu", "Glu"]

Returns

Array object

# File lib/bio/sequence/aa.rb, line 95
def codes
  array = []
  self.each_byte do |x|
    array.push(Bio::AminoAcid.names[x.chr])
  end
  return array
end
molecular_weight() click to toggle source

Estimate molecular weight based on Fasman1976

s = Bio::Sequence::AA.new("RRLE")
puts s.molecular_weight             #=> 572.655

Returns

Float object

# File lib/bio/sequence/aa.rb, line 72
def molecular_weight
  Bio::AminoAcid.weight(self)
end
names() click to toggle source

Generate the list of the names of each residue along with the sequence (full name). Names used in bioruby are found in the Bio::AminoAcid::NAMES hash.

s = Bio::Sequence::AA.new("RRLE")
puts s.names  
            #=> ["arginine", "arginine", "leucine", "glutamic acid"]

Returns

Array object

# File lib/bio/sequence/aa.rb, line 112
def names
  self.codes.map do |x|
    Bio::AminoAcid.names[x]
  end
end
to_re() click to toggle source

Create a ruby regular expression instance (Regexp)

s = Bio::Sequence::AA.new("RRLE")
puts s.to_re                        #=> /RRLE/

Returns

Regexp object

# File lib/bio/sequence/aa.rb, line 83
def to_re
  Bio::AminoAcid.to_re(self)
end