Class | Bio::KEGG::EXPRESSION
In: | lib/bio/db/kegg/expression.rb
Parent: | Object

### Methods

control_avg control_sd control_var down_regulated logy_minus_logx new regulated target_avg target_sd target_var up_regulated val2rgb

### Attributes

max_intensity | [R] |
orf2ratio | [R] |
orf2rgb | [R] |
orf2val | [R] |

### Public Class methods

new(entry)

[Source]

        # File lib/bio/db/kegg/expression.rb, line 19
    19:   def initialize(entry)
    20:     @orf2val   = Hash.new('')
    21:     @orf2rgb   = Hash.new('')
    22:     @orf2ratio = Hash.new('')
    23:     @max_intensity = 10000
    24:     entry.split("\n").each do |line|
    25:       unless /^#/ =~ line
    26:         ary = line.split("\t")
    27:         orf = ary.shift
    28:         val = ary[2, 4].collect {|x| x.to_f}
    29:         @orf2val[orf] = val
    30:       end
    31:     end
    32:   end

### Public Instance methods

control_avg()

[Source]

        # File lib/bio/db/kegg/expression.rb, line 38
    38:   def control_avg
    39:     sum = 0.0
    40:     @orf2val.values.each do |v|
    41:       sum += v[0] - v[1]
    42:     end
    43:     sum/orf2val.size
    44:   end

control_sd()

[Source]

        # File lib/bio/db/kegg/expression.rb, line 74
    74:   def control_sd
    75:     var = self.control_var
    76:     Math.sqrt(var)
    77:   end

control_var()

[Source]

        # File lib/bio/db/kegg/expression.rb, line 54
    54:   def control_var
    55:     sum = 0.0
    56:     avg = self.control_avg
    57:     @orf2val.values.each do |v|
    58:       tmp = v[0] - v[1]
    59:       sum += (tmp - avg)*(tmp - avg)
    60:     end
    61:     sum/orf2val.size
    62:   end

down_regulated(num=20, threshold=nil)

[Source]

         # File lib/bio/db/kegg/expression.rb, line 98
     98:   def down_regulated(num=20, threshold=nil)
     99:     logy_minus_logx
    100:     ary = @orf2ratio.to_a.sort{|a, b| a[1] <=> b[1]}
    101:     if threshold != nil
    102:       i = 0
    103:       while ary[i][1] < threshold
    104:         i += 1
    105:       end
    106:       return ary[0..i]
    107:     else
    108:       return ary[0..num-1]
    109:     end
    110:   end

logy_minus_logx()

[Source]

         # File lib/bio/db/kegg/expression.rb, line 126
    126:   def logy_minus_logx
    127:     @orf2val.each do |k, v|
    128:       @orf2ratio[k] = (1.0/Math.log10(2))*(Math.log10(v[2]-v[3]) - Math.log10(v[0]-v[1]))
    129:     end
    130:   end

regulated(num=20, threshold=nil)

[Source]

         # File lib/bio/db/kegg/expression.rb, line 112
    112:   def regulated(num=20, threshold=nil)
    113:     logy_minus_logx
    114:     ary = @orf2ratio.to_a.sort{|a, b| b[1].abs <=> a[1].abs}
    115:     if threshold != nil
    116:       i = 0
    117:       while ary[i][1].abs > threshold
    118:         i += 1
    119:       end
    120:       return ary[0..i]
    121:     else
    122:       return ary[0..num-1]
    123:     end
    124:   end

target_avg()

[Source]

        # File lib/bio/db/kegg/expression.rb, line 46
    46:   def target_avg
    47:     sum = 0.0
    48:     @orf2val.values.each do |v|
    49:       sum += v[2] - v[3]
    50:     end
    51:     sum/orf2val.size
    52:   end

target_sd()

[Source]

        # File lib/bio/db/kegg/expression.rb, line 79
    79:   def target_sd
    80:     var = self.target_var
    81:     Math.sqrt(var)
    82:   end

target_var()

[Source]

        # File lib/bio/db/kegg/expression.rb, line 64
    64:   def target_var
    65:     sum = 0.0
    66:     avg = self.target_avg
    67:     @orf2val.values.each do |v|
    68:       tmp = v[2] - v[3]
    69:       sum += (tmp - avg)*(tmp - avg)
    70:     end
    71:     sum/orf2val.size
    72:   end

up_regulated(num=20, threshold=nil)

[Source]

        # File lib/bio/db/kegg/expression.rb, line 84
    84:   def up_regulated(num=20, threshold=nil)
    85:     logy_minus_logx
    86:     ary = @orf2ratio.to_a.sort{|a, b| b[1] <=> a[1]}
    87:     if threshold != nil
    88:       i = 0
    89:       while ary[i][1] > threshold
    90:         i += 1
    91:       end
    92:       return ary[0..i]
    93:     else
    94:       return ary[0..num-1]
    95:     end
    96:   end

val2rgb()

[Source]

         # File lib/bio/db/kegg/expression.rb, line 132
    132:   def val2rgb
    133:     col_unit = @max_intensity/255
    134:     @orf2val.each do |k, v|
    135:       tmp_val = ((v[0] - v[1])/col_unit).to_i
    136:       if tmp_val > 255
    137:         g = "ff"
    138:       else
    139:         g = format("%02x", tmp_val)
    140:       end
    141:       tmp_val = ((v[2] - v[3])/col_unit).to_i
    142:       if tmp_val > 255
    143:         r = "ff"
    144:       else
    145:         r = format("%02x", tmp_val)
    146:       end
    147:       @orf2rgb[k] = r + g + "00"
    148:     end
    149:
    150:   end

[Validate]