1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 """ Popular color codings for nucleic and amino acids.
27
28 Classes:
29 ColorScheme -- A color scheme
30 ColorGroup
31
32
33 Generic
34 monochrome
35
36 Nucleotides
37 nucleotide
38 base pairing
39
40 Amino Acid
41 hydrophobicity
42 chemistry
43 charge
44 taylor
45
46 Status : Beta - Needs documentation.
47
48 """
49
50
51
52
53
54
55 from corebio import seq
56 from color import Color
57
59 """ A coloring of an alphabet.
60
61 title : string -- A human readable description
62 defualt_color : Color --
63 groups : list of color groups
64 alphabet : string -- The set of colored symbols
65 color -- A map between a symbol and a Coloring
66
67
68 """
69
70 - def __init__(self,
71 groups = [],
72 title = "",
73 description = "",
74 default_color = "black",
75 alphabet = seq.generic_alphabet) :
76 """ """
77 self.title= title
78 self.description = description
79 self.default_color = Color.from_string(default_color)
80 self.groups = groups
81 self.alphabet = alphabet
82
83 color = {}
84 for cg in groups :
85 for s in cg.symbols :
86 color[s] = cg.color
87 if s not in alphabet :
88 raise KeyError("Colored symbol does not exist in alphabet.")
89 self._color = color
90
91 - def color(self, symbol) :
92 if symbol in self._color :
93 return self._color[symbol]
94 return self.default_color
95
97 """Associate a group of symbols with a color"""
98 - def __init__(self, symbols, color, description=None) :
102
103
104
105 monochrome = ColorScheme([])
106
107
108 nucleotide = ColorScheme([
109 ColorGroup("G", "orange"),
110 ColorGroup("TU", "red"),
111 ColorGroup("C", "blue"),
112 ColorGroup("A", "green")
113 ])
114
115 base_pairing = ColorScheme([
116 ColorGroup("TAU", "darkorange", "Weak (2 Watson-Crick hydrogen bonds)"),
117 ColorGroup("GC", "blue", "Strong (3 Watson-Crick hydrogen bonds)")],
118 )
119
120
121 hydrophobicity = ColorScheme([
122 ColorGroup( "RKDENQ", "black", "hydrophilic"),
123 ColorGroup( "SGHTAP", "green", "neutral" ),
124 ColorGroup( "YVMCLFIW", "blue", "hydrophobic") ],
125 alphabet = seq.unambiguous_protein_alphabet
126 )
127
128
129 chemistry = ColorScheme([
130 ColorGroup( "GSTYC", "green", "polar"),
131 ColorGroup( "NQ", "purple", "neutral"),
132 ColorGroup( "KRH", "blue", "basic"),
133 ColorGroup( "DE", "red", "acidic"),
134 ColorGroup("PAWFLIMV", "black", "hydrophobic") ],
135 alphabet = seq.unambiguous_protein_alphabet
136 )
137
138 charge = ColorScheme([
139 ColorGroup("KRH", "blue", "Positive" ),
140 ColorGroup( "DE", "red", "Negative") ],
141 alphabet = seq.unambiguous_protein_alphabet
142 )
143
144
145 taylor = ColorScheme([
146 ColorGroup( 'A', '#CCFF00' ),
147 ColorGroup( 'C', '#FFFF00' ),
148 ColorGroup( 'D', '#FF0000'),
149 ColorGroup( 'E', '#FF0066' ),
150 ColorGroup( 'F', '#00FF66'),
151 ColorGroup( 'G', '#FF9900'),
152 ColorGroup( 'H', '#0066FF'),
153 ColorGroup( 'I', '#66FF00'),
154 ColorGroup( 'K', '#6600FF'),
155 ColorGroup( 'L', '#33FF00'),
156 ColorGroup( 'M', '#00FF00'),
157 ColorGroup( 'N', '#CC00FF'),
158 ColorGroup( 'P', '#FFCC00'),
159 ColorGroup( 'Q', '#FF00CC'),
160 ColorGroup( 'R', '#0000FF'),
161 ColorGroup( 'S', '#FF3300'),
162 ColorGroup( 'T', '#FF6600'),
163 ColorGroup( 'V', '#99FF00'),
164 ColorGroup( 'W', '#00CCFF'),
165 ColorGroup( 'Y', '#00FFCC')],
166 title = "Taylor",
167 description = "W. Taylor, Protein Engineering, Vol 10 , 743-746 (1997)",
168 alphabet = seq.unambiguous_protein_alphabet
169 )
170