@@ -169,10 +169,10 @@ <h1>Source code for ete4.smartview.graphics</h1><div class="highlight"><pre>
169169 < span class ="k "> return</ span > < span class ="p "> [</ span > < span class ="s1 "> 'image'</ span > < span class ="p "> ,</ span > < span class ="n "> box</ span > < span class ="p "> ,</ span > < span class ="n "> href</ span > < span class ="p "> ,</ span > < span class ="n "> style</ span > < span class ="p "> ]</ span > </ div >
170170
171171
172- < div class ="viewcode-block " id ="draw_array ">
173- < a class ="viewcode-back " href ="../../../reference/reference_smartview.html#ete4.smartview.graphics.draw_array "> [docs]</ a >
174- < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> draw_array </ span > < span class ="p "> (</ span > < span class ="n "> box</ span > < span class ="p "> ,</ span > < span class ="n "> a </ span > < span class ="p "> ):</ span >
175- < span class ="k "> return</ span > < span class ="p "> [</ span > < span class ="s1 "> 'array '</ span > < span class ="p "> ,</ span > < span class ="n "> box</ span > < span class ="p "> ,</ span > < span class ="n "> a </ span > < span class ="p "> ]</ span > </ div >
172+ < div class ="viewcode-block " id ="draw_heatmap ">
173+ < a class ="viewcode-back " href ="../../../reference/reference_smartview.html#ete4.smartview.graphics.draw_heatmap "> [docs]</ a >
174+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> draw_heatmap </ span > < span class ="p "> (</ span > < span class ="n "> box</ span > < span class ="p "> ,</ span > < span class ="n "> values </ span > < span class =" p " > , </ span > < span class =" n " > value_range </ span > < span class =" p " > , </ span > < span class =" n " > color_range </ span > < span class ="p "> ):</ span >
175+ < span class ="k "> return</ span > < span class ="p "> [</ span > < span class ="s1 "> 'heatmap '</ span > < span class ="p "> ,</ span > < span class ="n "> box</ span > < span class ="p "> ,</ span > < span class ="n "> values </ span > < span class =" p " > , </ span > < span class =" n " > value_range </ span > < span class =" p " > , </ span > < span class =" n " > color_range </ span > < span class ="p "> ]</ span > </ div >
176176
177177
178178< div class ="viewcode-block " id ="draw_seq ">
@@ -212,7 +212,7 @@ <h1>Source code for ete4.smartview.graphics</h1><div class="highlight"><pre>
212212
213213 < span class ="k "> for</ span > < span class ="n "> element</ span > < span class ="ow "> in</ span > < span class ="n "> elements</ span > < span class ="p "> :</ span >
214214 < span class ="n "> eid</ span > < span class ="o "> =</ span > < span class ="n "> element</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ]</ span > < span class ="c1 "> # "element identifier" (name of drawing element)</ span >
215- < span class ="k "> if</ span > < span class ="n "> eid</ span > < span class ="ow "> in</ span > < span class ="p "> [</ span > < span class ="s1 "> 'nodebox'</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'array'</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'seq'</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'text'</ span > < span class ="p "> ]:</ span >
215+ < span class ="k "> if</ span > < span class ="n "> eid</ span > < span class ="ow "> in</ span > < span class ="p "> [</ span > < span class ="s1 "> 'nodebox'</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'array'</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'seq'</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'heatmap' </ span > < span class =" p " > , </ span > < span class =" s1 " > ' text'</ span > < span class ="p "> ]:</ span >
216216 < span class ="c1 "> # The position for these elements is given by a box.</ span >
217217 < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="n "> y</ span > < span class ="p "> ,</ span > < span class ="n "> dx</ span > < span class ="p "> ,</ span > < span class ="n "> dy</ span > < span class ="o "> =</ span > < span class ="n "> element</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span >
218218 < span class ="n "> box</ span > < span class ="o "> =</ span > < span class ="n "> x0</ span > < span class ="o "> +</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="n "> y0</ span > < span class ="o "> +</ span > < span class ="n "> y</ span > < span class ="p "> ,</ span > < span class ="n "> dx</ span > < span class ="p "> ,</ span > < span class ="n "> dy</ span >
@@ -245,6 +245,27 @@ <h1>Source code for ete4.smartview.graphics</h1><div class="highlight"><pre>
245245 < span class ="n "> EPSILON</ span > < span class ="o "> =</ span > < span class ="mf "> 1e-8</ span > < span class ="c1 "> # without it, rounding can fake an angle a > pi</ span >
246246 < span class ="k "> return</ span > < span class ="nb "> all</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="n "> pi</ span > < span class ="o "> <=</ span > < span class ="n "> a</ span > < span class ="o "> <</ span > < span class ="n "> pi</ span > < span class ="o "> +</ span > < span class ="n "> EPSILON</ span > < span class ="k "> for</ span > < span class ="n "> a</ span > < span class ="ow "> in</ span > < span class ="n "> angles</ span > < span class ="p "> )</ span > </ div >
247247
248+
249+
250+ < div class ="viewcode-block " id ="hex2rgba ">
251+ < a class ="viewcode-back " href ="../../../reference/reference_smartview.html#ete4.smartview.graphics.hex2rgba "> [docs]</ a >
252+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> hex2rgba</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="p "> ):</ span >
253+ < span class ="w "> </ span > < span class ="sd "> """Return [r, g, b, a] (from 0 to 255) for color in hex like "#rrggbbaa"."""</ span >
254+ < span class ="k "> assert</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="p "> )</ span > < span class ="ow "> is</ span > < span class ="nb "> str</ span > < span class ="ow "> and</ span > < span class ="n "> color</ span > < span class ="o "> .</ span > < span class ="n "> startswith</ span > < span class ="p "> (</ span > < span class ="s1 "> '#'</ span > < span class ="p "> )</ span > < span class ="ow "> and</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="p "> )</ span > < span class ="ow "> in</ span > < span class ="p "> [</ span > < span class ="mi "> 4</ span > < span class ="p "> ,</ span > < span class ="mi "> 7</ span > < span class ="p "> ,</ span > < span class ="mi "> 5</ span > < span class ="p "> ,</ span > < span class ="mi "> 9</ span > < span class ="p "> ],</ span > \
255+ < span class ="sa "> f</ span > < span class ="s1 "> 'color format must be "#rrggbbaa", invalid value: </ span > < span class ="si "> {</ span > < span class ="n "> color</ span > < span class ="si "> }</ span > < span class ="s1 "> '</ span >
256+
257+ < span class ="c1 "> # Make color look like "#rrggbbaa".</ span >
258+ < span class ="k "> if</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="mi "> 4</ span > < span class ="p "> :</ span > < span class ="c1 "> # '#rgb'</ span >
259+ < span class ="n "> _</ span > < span class ="p "> ,</ span > < span class ="n "> r</ span > < span class ="p "> ,</ span > < span class ="n "> g</ span > < span class ="p "> ,</ span > < span class ="n "> b</ span > < span class ="o "> =</ span > < span class ="n "> color</ span >
260+ < span class ="n "> color</ span > < span class ="o "> =</ span > < span class ="sa "> f</ span > < span class ="s1 "> '#</ span > < span class ="si "> {</ span > < span class ="n "> r</ span > < span class ="si "> }{</ span > < span class ="n "> r</ span > < span class ="si "> }{</ span > < span class ="n "> g</ span > < span class ="si "> }{</ span > < span class ="n "> g</ span > < span class ="si "> }{</ span > < span class ="n "> b</ span > < span class ="si "> }{</ span > < span class ="n "> b</ span > < span class ="si "> }</ span > < span class ="s1 "> ff'</ span >
261+ < span class ="k "> elif</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="mi "> 7</ span > < span class ="p "> :</ span > < span class ="c1 "> # '#rrggbb'</ span >
262+ < span class ="n "> color</ span > < span class ="o "> =</ span > < span class ="n "> color</ span > < span class ="o "> +</ span > < span class ="s1 "> 'ff'</ span >
263+ < span class ="k "> elif</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="mi "> 5</ span > < span class ="p "> :</ span > < span class ="c1 "> # '#rgba'</ span >
264+ < span class ="n "> _</ span > < span class ="p "> ,</ span > < span class ="n "> r</ span > < span class ="p "> ,</ span > < span class ="n "> g</ span > < span class ="p "> ,</ span > < span class ="n "> b</ span > < span class ="p "> ,</ span > < span class ="n "> a</ span > < span class ="o "> =</ span > < span class ="n "> color</ span >
265+ < span class ="n "> color</ span > < span class ="o "> =</ span > < span class ="sa "> f</ span > < span class ="s1 "> '#</ span > < span class ="si "> {</ span > < span class ="n "> r</ span > < span class ="si "> }{</ span > < span class ="n "> r</ span > < span class ="si "> }{</ span > < span class ="n "> g</ span > < span class ="si "> }{</ span > < span class ="n "> g</ span > < span class ="si "> }{</ span > < span class ="n "> b</ span > < span class ="si "> }{</ span > < span class ="n "> b</ span > < span class ="si "> }{</ span > < span class ="n "> a</ span > < span class ="si "> }{</ span > < span class ="n "> a</ span > < span class ="si "> }</ span > < span class ="s1 "> '</ span >
266+
267+ < span class ="k "> return</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> (</ span > < span class ="n "> color</ span > < span class ="p "> [</ span > < span class ="mi "> 1</ span > < span class ="o "> +</ span > < span class ="mi "> 2</ span > < span class ="o "> *</ span > < span class ="n "> i</ span > < span class ="p "> :</ span > < span class ="mi "> 3</ span > < span class ="o "> +</ span > < span class ="mi "> 2</ span > < span class ="o "> *</ span > < span class ="n "> i</ span > < span class ="p "> ],</ span > < span class ="mi "> 16</ span > < span class ="p "> )</ span > < span class ="k "> for</ span > < span class ="n "> i</ span > < span class ="ow "> in</ span > < span class ="nb "> range</ span > < span class ="p "> (</ span > < span class ="mi "> 4</ span > < span class ="p "> )]</ span > </ div >
268+
248269</ pre > </ div >
249270
250271 </ div >
0 commit comments