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

Methods

Attributes

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

Public Class methods

[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

[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

[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

[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

[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

[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

[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

[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

[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

[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

[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

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