Class | Bio::Shell::ColoredCodonTable |
In: |
lib/bio/shell/plugin/codon.rb
|
Parent: | Object |
table | [R] |
# File lib/bio/shell/plugin/codon.rb, line 23 23: def initialize(number, cuhash = nil) 24: @aacode = Bio::AminoAcid.names 25: @table = Bio::CodonTable[number] 26: @number = number 27: @cuhash = cuhash 28: setup_colors 29: if Bio::Shell.config[:color] 30: generate_colored_text 31: else 32: generate_mono_text 33: end 34: end
# File lib/bio/shell/plugin/codon.rb, line 76 76: def generate_colored_text 77: @table.each do |codon, aa| 78: property, = @@properties.detect {|key, list| list.include?(aa)} 79: 80: if aa == '*' 81: if @cuhash 82: color_code = "#{@colors[:stop]}STOP" 83: color_aa = "#{@colors[:stop]}#{aa}" 84: else 85: color_code = "#{@colors[:stop]}STP" 86: case codon 87: when 'tga' 88: color_aa = "#{@colors[:text]}U" 89: when 'tag' 90: color_aa = "#{@colors[:text]}O" 91: else 92: color_aa = "#{@colors[:text]}*" 93: end 94: end 95: else 96: color_code = "#{@colors[property]}#{@aacode[aa]}" 97: if @table.start_codon?(codon) 98: if @cuhash 99: color_aa = "#{@colors[:aa]}#{aa}" 100: else 101: color_aa = "#{@colors[:start]}#{aa}" 102: end 103: else 104: if @cuhash 105: color_aa = "#{@colors[property]}#{aa}" 106: else 107: color_aa = "#{@colors[:aa]}#{aa}" 108: end 109: end 110: end 111: 112: if @cuhash 113: percent = @cuhash[codon].to_s.rjust(6) 114: eval("@#{codon} = '#{color_aa}#{@colors[:text]}#{percent}'") 115: else 116: eval("@#{codon} = ' #{color_code} #{color_aa}#{@colors[:text]} '") 117: end 118: end 119: 120: @hydrophilic = [ 121: "#{@colors[:basic]}basic#{@colors[:text]},", 122: "#{@colors[:polar]}polar#{@colors[:text]},", 123: "#{@colors[:acidic]}acidic#{@colors[:text]}" 124: ].join(" ") 125: @hydrophobic = "#{@colors[:nonpolar]}nonpolar" 126: end
# File lib/bio/shell/plugin/codon.rb, line 52 52: def generate_mono_text 53: @table.each do |codon, aa| 54: if aa == '*' 55: code = 'STOP' 56: aa = '' unless @cuhash 57: else 58: code = @aacode[aa] 59: end 60: if @cuhash 61: percent = @cuhash[codon].to_s.rjust(6) 62: eval("@#{codon} = '#{aa}#{percent}'") 63: else 64: eval("@#{codon} = ' #{code} #{aa} '") 65: end 66: end 67: 68: @hydrophilic = [ 69: @@properties[:basic].join(" "), "(basic),", 70: @@properties[:polar].join(" "), "(polar),", 71: @@properties[:acidic].join(" "), "(acidic)", 72: ].join(" ") 73: @hydrophobic = @@properties[:nonpolar].join(" ") + " (nonpolar)" 74: end
# File lib/bio/shell/plugin/codon.rb, line 128 128: def output 129: header = "#\n# = Codon table \#{@number} : \#{@table.definition}\n#\n# hydrophilic: \#{@hydrophilic}\n# hydrophobic: \#{@hydrophobic}\n" 130: table = "#\n# *---------------------------------------------*\n# | | 2nd | |\n# | 1st |-------------------------------| 3rd |\n# | | U | C | A | G | |\n# |-------+-------+-------+-------+-------+-----|\n# | U U |\#{@ttt}|\#{@tct}|\#{@tat}|\#{@tgt}| u |\n# | U U |\#{@ttc}|\#{@tcc}|\#{@tac}|\#{@tgc}| c |\n# | U U |\#{@tta}|\#{@tca}|\#{@taa}|\#{@tga}| a |\n# | UUU |\#{@ttg}|\#{@tcg}|\#{@tag}|\#{@tgg}| g |\n# |-------+-------+-------+-------+-------+-----|\n# | CCCC |\#{@ctt}|\#{@cct}|\#{@cat}|\#{@cgt}| u |\n# | C |\#{@ctc}|\#{@ccc}|\#{@cac}|\#{@cgc}| c |\n# | C |\#{@cta}|\#{@cca}|\#{@caa}|\#{@cga}| a |\n# | CCCC |\#{@ctg}|\#{@ccg}|\#{@cag}|\#{@cgg}| g |\n# |-------+-------+-------+-------+-------+-----|\n# | A |\#{@att}|\#{@act}|\#{@aat}|\#{@agt}| u |\n# | A A |\#{@atc}|\#{@acc}|\#{@aac}|\#{@agc}| c |\n# | AAAAA |\#{@ata}|\#{@aca}|\#{@aaa}|\#{@aga}| a |\n# | A A |\#{@atg}|\#{@acg}|\#{@aag}|\#{@agg}| g |\n# |-------+-------+-------+-------+-------+-----|\n# | GGGG |\#{@gtt}|\#{@gct}|\#{@gat}|\#{@ggt}| u |\n# | G |\#{@gtc}|\#{@gcc}|\#{@gac}|\#{@ggc}| c |\n# | G GGG |\#{@gta}|\#{@gca}|\#{@gaa}|\#{@gga}| a |\n# | GG G |\#{@gtg}|\#{@gcg}|\#{@gag}|\#{@ggg}| g |\n# *---------------------------------------------*\n#\n" 131: if @cuhash 132: text = table 133: else 134: text = header + table 135: end 136: if Bio::Shell.config[:color] 137: text.gsub(/^\s+#/, @colors[:text]) 138: else 139: text.gsub(/^\s+#/, '') 140: end 141: end
# File lib/bio/shell/plugin/codon.rb, line 37 37: def setup_colors 38: c = Bio::Shell.colors 39: 40: @colors = { 41: :text => c[:none], 42: :aa => c[:green], 43: :start => c[:red], 44: :stop => c[:red], 45: :basic => c[:cyan], 46: :polar => c[:blue], 47: :acidic => c[:magenta], 48: :nonpolar => c[:yellow], 49: } 50: end