Class | Bio::KEGG::EXPRESSION |
In: |
lib/bio/db/kegg/expression.rb
|
Parent: | Object |
max_intensity | [R] | |
orf2ratio | [R] | |
orf2rgb | [R] | |
orf2val | [R] |
# 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
# 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
# File lib/bio/db/kegg/expression.rb, line 74 74: def control_sd 75: var = self.control_var 76: Math.sqrt(var) 77: end
# 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
# 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
# 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
# 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
# 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
# File lib/bio/db/kegg/expression.rb, line 79 79: def target_sd 80: var = self.target_var 81: Math.sqrt(var) 82: end
# 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
# 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
# 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