Class: Bio::Protparam

Inherits:
Object
  • Object
show all
Defined in:
lib/bio/util/protparam.rb

Overview

Description

Bio::Protparam is a class for calculating protein paramesters. This class has a similer interface to BioPerl's Bio::Tools::Protparam. However, it calculate parameters instead of throwing a query to Expasy's Protparam tool}[http://web.expasy.org/protparam/]{[1] as Bio::Tools::Protparam does.

Defined Under Namespace

Modules: Local, Remote

Constant Summary collapse

IUPAC_CODE =

IUPAC codes for amino acids.

{
  :I => "Ile",
  :V => "Val",
  :L => "Leu",
  :F => "Phe",
  :C => "Cys",
  :M => "Met",
  :A => "Ala",
  :G => "Gly",
  :T => "Thr",
  :W => "Trp",
  :S => "Ser",
  :Y => "Tyr",
  :P => "Pro",
  :H => "His",
  :E => "Glu",
  :Q => "Gln",
  :D => "Asp",
  :N => "Asn",
  :K => "Lys",
  :R => "Arg",
  :U => "Sec",
  :O => "Pyl",
  :B => "Asx",
  :Z => "Glx",
  :X => "Xaa"
}
DIWV =

Dipeptide instability weight value for calculating instability index of proteins [10].

{
  :W => {
    :W => 1.0,   :C => 1.0,   :M => 24.68, :H => 24.68, :Y => 1.0, :F => 1.0,    :Q => 1.0,
    :N => 13.34, :I => 1.0,   :R => 1.0,   :D => 1.0,   :P => 1.0, :T => -14.03, :K => 1.0,
    :E => 1.0,   :V => -7.49, :S => 1.0,   :G => -9.37, :A => -14.03, :L => 13.34
  },
  :C => {
    :W => 24.68, :C => 1.0, :M => 33.6, :H => 33.6, :Y => 1.0, :F => 1.0, :Q => -6.54, :N => 1.0,
    :I => 1.0, :R => 1.0, :D => 20.26, :P => 20.26, :T => 33.6, :K => 1.0, :E => 1.0, :V => -6.54,
    :S => 1.0, :G => 1.0, :A => 1.0, :L => 20.26
  },
  :M => {
    :W => 1.0, :C => 1.0, :M => -1.88, :H => 58.28, :Y => 24.68, :F => 1.0, :Q => -6.54,
    :N => 1.0, :I => 1.0, :R => -6.54, :D => 1.0, :P => 44.94, :T => -1.88, :K => 1.0, :E => 1.0,
    :V => 1.0, :S => 44.94, :G => 1.0, :A => 13.34, :L => 1.0
  },
  :H => {
    :W => -1.88, :C => 1.0, :M => 1.0, :H => 1.0, :Y => 44.94, :F => -9.37, :Q => 1.0,
    :N => 24.68, :I => 44.94, :R => 1.0, :D => 1.0, :P => -1.88, :T => -6.54, :K => 24.68,
    :E => 1.0, :V => 1.0, :S => 1.0, :G => -9.37, :A => 1.0, :L => 1.0
  },
  :Y => {
    :W => -9.37, :C => 1.0, :M => 44.94, :H => 13.34, :Y => 13.34, :F => 1.0, :Q => 1.0,
    :N => 1.0, :I => 1.0, :R => -15.91, :D => 24.68, :P => 13.34, :T => -7.49, :K => 1.0,
    :E => -6.54, :V => 1.0, :S => 1.0, :G => -7.49, :A => 24.68, :L => 1.0
  },
  :F => {
    :W => 1.0, :C => 1.0, :M => 1.0, :H => 1.0, :Y => 33.6, :F => 1.0, :Q => 1.0, :N => 1.0,
    :I => 1.0, :R => 1.0, :D => 13.34, :P => 20.26, :T => 1.0, :K => -14.03, :E => 1.0,
    :V => 1.0, :S => 1.0, :G => 1.0, :A => 1.0, :L => 1.0
  },
  :Q => {
    :W => 1.0, :C => -6.54, :M => 1.0, :H => 1.0, :Y => -6.54, :F => -6.54, :Q => 20.26,
    :N => 1.0, :I => 1.0, :R => 1.0, :D => 20.26, :P => 20.26, :T => 1.0, :K => 1.0, :E => 20.26,
    :V => -6.54, :S => 44.94, :G => 1.0, :A => 1.0, :L => 1.0
  },
  :N => {
    :W => -9.37, :C => -1.88, :M => 1.0, :H => 1.0,    :Y => 1.0,   :F => -14.03, :Q => -6.54,
    :N => 1.0,   :I => 44.94, :R => 1.0, :D => 1.0,    :P => -1.88, :T => -7.49,  :K => 24.68,
    :E => 1.0,   :V => 1.0,   :S => 1.0, :G => -14.03, :A => 1.0,   :L => 1.0
  },
  :I => {
    :W => 1.0,   :C => 1.0, :M => 1.0, :H => 13.34, :Y => 1.0, :F => 1.0,   :Q => 1.0, :N => 1.0,
    :I => 1.0,   :R => 1.0, :D => 1.0, :P => -1.88, :T => 1.0, :K => -7.49, :E => 44.94,
    :V => -7.49, :S => 1.0, :G => 1.0, :A => 1.0,   :L => 20.26
  },
  :R => {
    :W => 58.28, :C => 1.0, :M => 1.0, :H => 20.26, :Y => -6.54, :F => 1.0, :Q => 20.26,
    :N => 13.34, :I => 1.0, :R => 58.28, :D => 1.0, :P => 20.26, :T => 1.0, :K => 1.0, :E => 1.0,
    :V => 1.0, :S => 44.94, :G => -7.49, :A => 1.0, :L => 1.0
  },
  :D => {
    :W => 1.0, :C => 1.0, :M => 1.0, :H => 1.0, :Y => 1.0, :F => -6.54, :Q => 1.0, :N => 1.0,
    :I => 1.0, :R => -6.54, :D => 1.0, :P => 1.0, :T => -14.03, :K => -7.49, :E => 1.0,
    :V => 1.0, :S => 20.26, :G => 1.0, :A => 1.0, :L => 1.0
  },
  :P => {
    :W => -1.88, :C => -6.54, :M => -6.54, :H => 1.0, :Y => 1.0, :F => 20.26, :Q => 20.26,
    :N => 1.0, :I => 1.0, :R => -6.54, :D => -6.54, :P => 20.26, :T => 1.0, :K => 1.0, :E => 18.38,
    :V => 20.26, :S => 20.26, :G => 1.0, :A => 20.26, :L => 1.0
  },
  :T => {
    :W => -14.03, :C => 1.0, :M => 1.0, :H => 1.0, :Y => 1.0, :F => 13.34, :Q => -6.54,
    :N => -14.03, :I => 1.0, :R => 1.0, :D => 1.0, :P => 1.0, :T => 1.0, :K => 1.0, :E => 20.26,
    :V => 1.0, :S => 1.0, :G => -7.49, :A => 1.0, :L => 1.0
  },
  :K => {
    :W => 1.0, :C => 1.0, :M => 33.6, :H => 1.0, :Y => 1.0, :F => 1.0, :Q => 24.68, :N => 1.0,
    :I => -7.49, :R => 33.6, :D => 1.0, :P => -6.54, :T => 1.0, :K => 1.0, :E => 1.0, :V => -7.49,
    :S => 1.0, :G => -7.49, :A => 1.0, :L => -7.49
  },
  :E => {
    :W => -14.03, :C => 44.94, :M => 1.0, :H => -6.54, :Y => 1.0, :F => 1.0, :Q => 20.26,
    :N => 1.0, :I => 20.26, :R => 1.0, :D => 20.26, :P => 20.26, :T => 1.0, :K => 1.0, :E => 33.6,
    :V => 1.0, :S => 20.26, :G => 1.0, :A => 1.0, :L => 1.0
  },
  :V => {
    :W => 1.0, :C => 1.0, :M => 1.0, :H => 1.0, :Y => -6.54, :F => 1.0, :Q => 1.0, :N => 1.0,
    :I => 1.0, :R => 1.0, :D => -14.03, :P => 20.26, :T => -7.49, :K => -1.88, :E => 1.0,
    :V => 1.0, :S => 1.0, :G => -7.49, :A => 1.0, :L => 1.0
  },
  :S => {
    :W => 1.0, :C => 33.6, :M => 1.0, :H => 1.0, :Y => 1.0, :F => 1.0, :Q => 20.26, :N => 1.0,
    :I => 1.0, :R => 20.26, :D => 1.0, :P => 44.94, :T => 1.0, :K => 1.0, :E => 20.26, :V => 1.0,
    :S => 20.26, :G => 1.0, :A => 1.0, :L => 1.0
  },
  :G => {
    :W => 13.34, :C => 1.0, :M => 1.0, :H => 1.0, :Y => -7.49, :F => 1.0, :Q => 1.0, :N => -7.49,
    :I => -7.49, :R => 1.0, :D => 1.0, :P => 1.0, :T => -7.49, :K => -7.49, :E => -6.54,
    :V => 1.0, :S => 1.0, :G => 13.34, :A => -7.49, :L => 1.0
  },
  :A => {
    :W => 1.0, :C => 44.94, :M => 1.0, :H => -7.49, :Y => 1.0, :F => 1.0, :Q => 1.0, :N => 1.0,
    :I => 1.0, :R => 1.0, :D => -7.49, :P => 20.26, :T => 1.0, :K => 1.0, :E => 1.0, :V => 1.0,
    :S => 1.0, :G => 1.0, :A => 1.0, :L => 1.0
  },
  :L => {
    :W => 24.68, :C => 1.0, :M => 1.0, :H => 1.0, :Y => 1.0, :F => 1.0, :Q => 33.6, :N => 1.0,
    :I => 1.0, :R => 20.26, :D => 1.0, :P => 20.26, :T => 1.0, :K => -7.49, :E => 1.0, :V => 1.0,
    :S => 1.0, :G => 1.0, :A => 1.0, :L => 1.0
  }
}
HALFLIFE =

Estemated half-life (minutes) of N-terminal residue of a protein.

{
  :ecoli => {
    :I => 600,
    :V => 600,
    :L => 2,
    :F => 2,
    :C => 600,
    :M => 600,
    :A => 600,
    :G => 600,
    :T => 600,
    :W => 2,
    :S => 600,
    :Y => 2,
    :P => 600,
    :H => 600,
    :E => 600,
    :Q => 600,
    :D => 600,
    :N => 600,
    :K => 2,
    :R => 2,
    :U => 600
  },
  :mammalian => {
    :A => 264,
    :R => 60,
    :N => 84,
    :D => 66,
    :C => 72,
    :Q => 48,
    :E => 60,
    :G => 30,
    :H => 210,
    :I => 1200,
    :L => 330,
    :K => 78,
    :M => 1800,
    :F => 66,
    :P => 1200,
    :S => 114,
    :T => 432,
    :W => 168,
    :Y => 168,
    :V => 6000
  },
  :yeast => {
    :A => 1200,
    :R => 2,
    :N => 3,
    :D => 3,
    :C => 1200,
    :Q => 10,
    :E => 30,
    :G => 1200,
    :H => 10,
    :I => 30,
    :L => 3,
    :K => 3,
    :M => 1200,
    :F => 3,
    :P => 1200,
    :S => 1200,
    :T => 1200,
    :W => 3,
    :Y => 10,
    :V => 1200
  }
}
HYDROPATHY =

Hydropathy values for amino acids [12].

{
  :I => 4.5 ,
  :V => 4.2 ,
  :L => 3.8 ,
  :F => 2.8 ,
  :C => 2.5 ,
  :M => 1.9 ,
  :A => 1.8 ,
  :G => -0.4,
  :T => -0.7,
  :W => -0.9,
  :S => -0.8,
  :Y => -1.3,
  :P => -1.6,
  :H => -3.2,
  :E => -3.5,
  :Q => -3.5,
  :D => -3.5,
  :N => -3.5,
  :K => -3.9,
  :R => -4.5,
  :U => 2.5
}
AVERAGE_MASS =
{
  :I => 113.1594,
  :V => 99.1326,
  :L => 113.1594,
  :F => 147.1766,
  :C => 103.1388,
  :M => 131.1926,
  :A => 71.0788,
  :G => 57.0519,
  :T => 101.1051,
  :W => 186.2132,
  :S => 87.0782,
  :Y => 163.1760,
  :P => 97.1167,
  :H => 137.1411,
  :E => 129.1155,
  :Q => 128.1307,
  :D => 115.0886,
  :N => 114.1038,
  :K => 128.1741,
  :R => 156.1875,
  :U => 150.0388
}
WATER_MASS =
18.01524
ATOM =

Atomic composition of amino acids.

{
  :I => {:C => 6, :H => 13, :O => 2, :N => 1, :S => 0}, # C6H13NO2
  :V => {:C => 5, :H => 11, :O => 2, :N => 1, :S => 0}, # C5H11NO2
  :L => {:C => 6, :H => 13, :O => 2, :N => 1, :S => 0}, # C6H13NO2
  :F => {:C => 9, :H => 11, :O => 2, :N => 1, :S => 0}, # C9H11NO2
  :C => {:C => 3, :H => 7 , :O => 2, :N => 1, :S => 1}, # C3H7NO2S
  :M => {:C => 5, :H => 11 ,:O => 2, :N => 1, :S => 1}, # C5H11NO2S
  :A => {:C => 3, :H => 7 , :O => 2, :N => 1, :S => 0}, # C3H7NO2
  :G => {:C => 2, :H => 5 , :O => 2, :N => 1, :S => 0}, # C2H5NO2
  :T => {:C => 4, :H => 9 , :O => 3, :N => 1, :S => 0}, # C4H9NO3
  :W => {:C => 11,:H => 12, :O => 2, :N => 2, :S => 0}, # C11H12N2O2
  :S => {:C => 3, :H => 7 , :O => 3, :N => 1, :S => 0}, # C3H7NO3
  :Y => {:C => 9, :H => 11, :O => 3, :N => 1, :S => 0}, # C9H11NO3
  :P => {:C => 5, :H => 9 , :O => 2, :N => 1, :S => 0}, # C5H9NO2
  :H => {:C => 6, :H => 9 , :O => 2, :N => 3, :S => 0}, # C6H9N3O2
  :E => {:C => 5, :H => 9 , :O => 4, :N => 1, :S => 0}, # C5H9NO4
  :Q => {:C => 5, :H => 10, :O => 3, :N => 2, :S => 0}, # C5H10N2O3
  :D => {:C => 4, :H => 7 , :O => 4, :N => 1, :S => 0}, # C4H7NO4
  :N => {:C => 4, :H => 8 , :O => 3, :N => 2, :S => 0}, # C4H8N2O3
  :K => {:C => 6, :H => 14, :O => 2, :N => 2, :S => 0}, # C6H14N2O2
  :R => {:C => 6, :H => 14, :O => 2, :N => 4, :S => 0}, # C6H14N4O2
}
PK =

pK value from Bjellqvist, et al [13]. Taking into account the decrease in pK differences between acids and bases when going from water to 8 M urea, a value of 7.5 has been assigned to the N-terminal residue .

{
  :cterm => {
    :normal => 3.55, :D => 4.55, :E => 4.75
  },
  :nterm => {
    :A => 7.59, :M => 7.00, :S => 6.93,  :P => 8.36,
    :T => 6.82, :V => 7.44, :E => 7.70 , :G => 7.50
  },
  :internal => {
    :D => 4.05, :E => 4.45, :H => 5.98, :C => 9.0,
    :Y => 10.0, :K => 10.0, :R => 12.0
  }
}

Instance Method Summary collapse

Constructor Details

#initialize(seq, mode = :local) ⇒ Protparam


355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
# File 'lib/bio/util/protparam.rb', line 355

def initialize(seq, mode=:local)

    if seq.kind_of?(String) && Bio::Sequence.guess(seq) == Bio::Sequence::AA
      @seq = Bio::Sequence::AA.new seq
    elsif seq.kind_of? Bio::Sequence::AA
      @seq = seq
    elsif seq.kind_of?(Bio::Sequence) &&
      seq.guess.kind_of?(Bio::Sequence::AA)
      @seq = seq.guess
    elsif seq.kind_of?(String) && 
        Bio::Sequence.guess(seq) == Bio::Sequence::NA
      raise ArgumentError, 
        "sequence must be an AA sequence" \
        "(Input sequence was guessed as a nucleotide sequence)"
    else
      raise ArgumentError, "sequence must be an AA sequence"
    end

    self.class.class_eval do
      include(if mode == :remote then Remote else Local end)
  end
end