Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue 630 export user tree colours #645

Merged
merged 56 commits into from
Feb 21, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
a848dea
Tabular tree export includes user defined colours
LukedFitzpatrick Dec 22, 2016
a6db5c7
Update tests after addition of colour to tabular tree export.
LukedFitzpatrick Dec 22, 2016
4ec7d03
Clean up node colour implementation in Dendrogram.pm
LukedFitzpatrick Dec 22, 2016
879259e
Quick fix to previous commit
LukedFitzpatrick Dec 22, 2016
d80b2b1
Minor bug fixes
LukedFitzpatrick Dec 23, 2016
b786fca
User defined colours in newick and nexus export. Yes/No dialog for co…
LukedFitzpatrick Dec 23, 2016
30ba5b4
Quick fix: default values in Export.pm
LukedFitzpatrick Jan 1, 2017
ecaf53a
Extract method for cluster_colour_mode to aid colour export down the …
LukedFitzpatrick Jan 2, 2017
d2bae1a
Make colour export dialog only appear when in multiselect mode
LukedFitzpatrick Jan 2, 2017
f2cbc44
Minor update to tests for exporting trees
LukedFitzpatrick Jan 2, 2017
801aad5
Merge branch 'master' into issue_630_export_user_tree_colours
LukedFitzpatrick Jan 18, 2017
7d935a5
Add module to deal with boostrap blocks.
LukedFitzpatrick Jan 18, 2017
6e9263c
Make colour exports work through the TreeNode bootstrap block.
LukedFitzpatrick Jan 19, 2017
ff6ac04
Add exclusions to bootstrap block.
LukedFitzpatrick Jan 19, 2017
e9ff77d
Put BootstrapBlock in the TreeNode space.
LukedFitzpatrick Jan 19, 2017
da6f4ac
Merge changes from remap so we don't get too far behind
LukedFitzpatrick Jan 19, 2017
08dd186
Change colour functions in TreeNode to just use generic bootstrap fun…
LukedFitzpatrick Jan 19, 2017
475916b
Putting back in the proper colour format.
LukedFitzpatrick Jan 19, 2017
588341b
Fix export fail when bootstrap block not defined, and silly 'unbless'…
LukedFitzpatrick Jan 19, 2017
188a190
Fix bootstrap block encode exclusions, add test.
LukedFitzpatrick Jan 19, 2017
d9b6c9d
Make exclusions actually work.
LukedFitzpatrick Jan 20, 2017
56ef3b5
Skeleton for unquted bootstrap block import handling.
LukedFitzpatrick Jan 20, 2017
13b5170
Make the BootstrapBlock decoder deal with unquoted key/value pairs.
LukedFitzpatrick Jan 20, 2017
3ce3da5
Hook up bootstrap decoding to nexus import.
LukedFitzpatrick Jan 20, 2017
50b7f15
Fiddly changes to make bootstrap colour export work.
LukedFitzpatrick Jan 20, 2017
798c089
Make the tests pass
LukedFitzpatrick Jan 20, 2017
176e3d9
Roundtrip test for bootstrap import/export.
LukedFitzpatrick Jan 20, 2017
3836d9f
Fix typo in BootstrapBlock.pm
LukedFitzpatrick Jan 22, 2017
e7a60f5
Add better exclusion handling mechanism to bootstrap block. Sets up f…
LukedFitzpatrick Jan 22, 2017
5771ca4
Stop passing around an 'export_colours' value, instead add exclusion …
LukedFitzpatrick Jan 23, 2017
a4db9ed
Add Data::Structure::Util to the Config checklist
shawnlaffan Feb 3, 2017
7860d7a
Add .travis.yml file to this branch.
LukedFitzpatrick Feb 13, 2017
108e237
Make the bootstrap block export in the form [&!key=value,!key=value].…
LukedFitzpatrick Feb 13, 2017
0bd21ce
Make exclamation mark only apply to color block.
LukedFitzpatrick Feb 14, 2017
20e63df
Option to export colours is now in the export metadata. Also slight t…
LukedFitzpatrick Feb 14, 2017
c555049
Modify tooltip
shawnlaffan Feb 16, 2017
0662b97
Tree exports: Move the bootstrap block to before the length
shawnlaffan Feb 16, 2017
7829900
Re-enable travis for this branch
shawnlaffan Feb 16, 2017
6e5c269
Merge branch 'master' into issue_630_export_user_tree_colours
shawnlaffan Feb 17, 2017
3c30cfc
re-enable travis for branch
shawnlaffan Feb 17, 2017
d82b078
disable colour export in newick files, enable in text metadata
shawnlaffan Feb 17, 2017
b9ed9bf
Change a few idioms
shawnlaffan Feb 17, 2017
a21c74e
change a few idioms and some styles
shawnlaffan Feb 18, 2017
7b28273
separate the colours from the rest of the bootstrap block lists
shawnlaffan Feb 19, 2017
93b7437
plain newick files do not support complex bootstrap blocks
shawnlaffan Feb 19, 2017
89792a3
shift the colour reformatter into BootstrapBlock.pm
shawnlaffan Feb 19, 2017
5e9c2c7
Shift the bootstrap data into a subhash, add array args methods
shawnlaffan Feb 19, 2017
fdb9ce0
Add a round trip test that incudes complex data structures
shawnlaffan Feb 19, 2017
9f01603
Update tests to use colour methods
shawnlaffan Feb 20, 2017
c37dad1
Use a non-capturing group
shawnlaffan Feb 20, 2017
4e26ac9
Miscellaneous changes
shawnlaffan Feb 20, 2017
ebd3a60
set roundtrip test as todo
shawnlaffan Feb 21, 2017
45da3a3
disable a failing roundtrip test
shawnlaffan Feb 21, 2017
000b355
Merge branch 'master' into issue_630_export_user_tree_colours
shawnlaffan Feb 21, 2017
4a6b141
store bootstrap/comments objects under private key
shawnlaffan Feb 21, 2017
a593117
remove a Gtk call in the engine code
shawnlaffan Feb 21, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,4 @@ branches:
except:
- ppm
# list GUI only branches here since we lack GUI tests
- issue_630_export_user_tree_colours
- issue_633_remove_pixbuf
242 changes: 242 additions & 0 deletions data/Example_tree_with_bootstrap.nex
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
#NEXUS
[ID: Example_site_data_Cluster1]
begin trees;
[Export of a Biodiverse::TreeNode tree using Biodiverse::TreeNode version 1.99_006]
Translate
0 2650000:650000,
1 61___,
2 1950000:1350000,
3 3550000:1550000,
4 70___,
5 3150000:550000,
6 82___,
7 73___,
8 83___,
9 3750000:2150000,
10 3350000:950000,
11 104___,
12 3450000:1350000,
13 2250000:1250000,
14 29___,
15 89___,
16 3850000:1750000,
17 96___,
18 3250000:2150000,
19 78___,
20 36___,
21 68___,
22 62___,
23 3150000:50000,
24 2650000:850000,
25 3950000:1750000,
26 2750000:950000,
27 2950000:250000,
28 77___,
29 14___,
30 92___,
31 3850000:1450000,
32 117___,
33 2850000:650000,
34 97___,
35 3450000:1050000,
36 116___,
37 3850000:1650000,
38 30___,
39 3750000:1450000,
40 3250000:250000,
41 3450000:1450000,
42 91___,
43 98___,
44 3150000:350000,
45 45___,
46 88___,
47 3650000:1550000,
48 46___,
49 3650000:1850000,
50 3250000:3050000,
51 3850000:1850000,
52 23___,
53 3450000:650000,
54 2350000:1050000,
55 3350000:2150000,
56 38___,
57 3550000:1450000,
58 3350000:1250000,
59 3750000:1950000,
60 2550000:750000,
61 3350000:750000,
62 59___,
63 33___,
64 20___,
65 113___,
66 110___,
67 3250000:150000,
68 27___,
69 2950000:650000,
70 2550000:950000,
71 48___,
72 112___,
73 3650000:1450000,
74 99___,
75 2050000:1350000,
76 3550000:2250000,
77 17___,
78 64___,
79 2950000:350000,
80 1950000:1450000,
81 2850000:750000,
82 3250000:350000,
83 2250000:950000,
84 3350000:850000,
85 3050000:750000,
86 3150000:750000,
87 84___,
88 2350000:1250000,
89 3550000:1050000,
90 81___,
91 3750000:1650000,
92 42___,
93 15___,
94 39___,
95 3650000:1750000,
96 66___,
97 3550000:950000,
98 3450000:750000,
99 3250000:850000,
100 79___,
101 2150000:1250000,
102 80___,
103 2550000:1050000,
104 3050000:350000,
105 101___,
106 3750000:2050000,
107 67___,
108 2350000:1150000,
109 3150000:2950000,
110 2650000:950000,
111 32___,
112 2950000:50000,
113 100___,
114 35___,
115 41___,
116 2650000:750000,
117 3550000:2150000,
118 74___,
119 55___,
120 2950000:750000,
121 49___,
122 50___,
123 37___,
124 3750000:1850000,
125 3450000:1550000,
126 56___,
127 72___,
128 114___,
129 3550000:1950000,
130 26___,
131 3650000:1950000,
132 3150000:650000,
133 3250000:450000,
134 65___,
135 3350000:2050000,
136 3050000:250000,
137 71___,
138 3850000:1950000,
139 58___,
140 24___,
141 105___,
142 69___,
143 75___,
144 2150000:1150000,
145 63___,
146 3550000:1250000,
147 44___,
148 3650000:1150000,
149 3850000:1550000,
150 76___,
151 3150000:150000,
152 3250000:2950000,
153 3450000:850000,
154 22___,
155 102___,
156 2750000:850000,
157 57___,
158 3150000:250000,
159 3450000:2050000,
160 2450000:1250000,
161 2250000:1050000,
162 3250000:950000,
163 3050000:650000,
164 122___,
165 54___,
166 3750000:1350000,
167 60___,
168 3050000:50000,
169 2550000:850000,
170 107___,
171 3350000:650000,
172 3350000:1050000,
173 3250000:650000,
174 3650000:2050000,
175 3350000:1350000,
176 3050000:850000,
177 106___,
178 3450000:950000,
179 3650000:1350000,
180 2450000:1150000,
181 123___,
182 3050000:550000,
183 2150000:1050000,
184 2450000:950000,
185 3250000:750000,
186 119___,
187 3350000:1150000,
188 87___,
189 31___,
190 118___,
191 3850000:1350000,
192 43___,
193 94___,
194 2450000:1050000,
195 3250000:2850000,
196 3650000:1650000,
197 121___,
198 93___,
199 3450000:1250000,
200 111___,
201 115___,
202 3050000:150000,
203 90___,
204 85___,
205 3550000:1150000,
206 124___,
207 40___,
208 109___,
209 47___,
210 3750000:1550000,
211 25___,
212 3750000:1750000,
213 2350000:950000,
214 3450000:2150000,
215 103___,
216 2750000:750000,
217 86___,
218 120___,
219 3150000:850000,
220 51___,
221 2750000:650000,
222 108___,
223 2050000:1250000,
224 3650000:1250000,
225 125___,
226 3450000:1150000,
227 95___,
228 3550000:2050000,
229 3750000:1250000,
230 52___,
231 3650000:2350000,
232 53___
;
Tree Example_site_data_Cluster1 = ((((((((((((((33:0["color":"#e41a1c"],202:0["color":"#e41a1c"],104:0["color":"#e41a1c"],23:0["color":"#e41a1c"],67:0["color":"#e41a1c"])68:0.142857142857143["color":"#e41a1c"],44:0.142857142857143["color":"#e41a1c"])121:0.0793650793650793["color":"#e41a1c"],(168:0["color":"#e41a1c"],133:0["color":"#e41a1c"])140:0.222222222222222["color":"#e41a1c"])22:0.0176587301587302["color":"#e41a1c"],((151:0["color":"#e41a1c"],158:0["color":"#e41a1c"])154:0.142857142857143["color":"#e41a1c"],40:0.142857142857143["color":"#e41a1c"])209:0.0970238095238095["color":"#e41a1c"])145:0.0873917748917748["color":"#e41a1c"],82:0.327272727272727["color":"#e41a1c"])127:0.0510341510341511["color":"#e41a1c"],((221:0["color":"#e41a1c"],182:0["color":"#e41a1c"])123:0.2["color":"#e41a1c"],0:0.2["color":"#e41a1c"])126:0.178306878306878["color":"#e41a1c"])188:0.134040897374231["color":"#e41a1c"],(((((69:0.0909090909090909["color":"#e41a1c"],163:0.0909090909090909["color":"#e41a1c"])92:0.107808857808858["color":"#e41a1c"],85:0.198717948717949["color":"#e41a1c"])165:0.06996891996892["color":"#e41a1c"],(81:0["color":"#e41a1c"],120:0["color":"#e41a1c"],132:0["color":"#e41a1c"])115:0.268686868686869["color":"#e41a1c"])142:0.132616280778046["color":"#e41a1c"],(61:0.333333333333333["color":"#e41a1c"],98:0.333333333333333["color":"#e41a1c"])90:0.0679698161315808["color":"#e41a1c"])15:0.0925918444300797["color":"#e41a1c"],216:0.493894993894994["color":"#e41a1c"])74:0.0184527817861152["color":"#e41a1c"])215:0.113719108823275["color":"#e41a1c"],((((173:0.142857142857143["color":"#e41a1c"],171:0.142857142857143["color":"#e41a1c"])122:0.123809523809524["color":"#e41a1c"],53:0.266666666666667["color":"#e41a1c"])21:0.191005291005291["color":"#e41a1c"],(37:0.333333333333333["color":"#e41a1c"],51:0.333333333333333["color":"#e41a1c"])6:0.124338624338624["color":"#e41a1c"])34:0.100708994708995["color":"#e41a1c"],((103:0["color":"#e41a1c"],79:0["color":"#e41a1c"],112:0["color":"#e41a1c"],5:0["color":"#e41a1c"])38:0.5["color":"#e41a1c"],91:0.5["color":"#e41a1c"])105:0.0583809523809524["color":"#e41a1c"])177:0.0676859321234321["color":"#e41a1c"])66:0.0524022024157472["color":"#e41a1c"],(((((178:0.125["color":"#e41a1c"],89:0.125["color":"#e41a1c"])48:0.075["color":"#e41a1c"],205:0.2["color":"#e41a1c"])157:0.229292929292929["color":"#e41a1c"],(97:0.25["color":"#e41a1c"],148:0.25["color":"#e41a1c"])134:0.179292929292929["color":"#e41a1c"])198:0.0886380286380286["color":"#e41a1c"],(226:0.25["color":"#e41a1c"],153:0.25["color":"#e41a1c"])96:0.267930957930958["color":"#e41a1c"])11:0.133290043290043["color":"#e41a1c"],210:0.651221001221001["color":"#e41a1c"])72:0.0272480856991304["color":"#e41a1c"])128:0.0792086850433544["color":"#e41a1c"],(60:0["color":"#e41a1c"],116:0["color":"#e41a1c"])211:0.757677771963486["color":"#e41a1c"])32:0.102693398472619["color":"#e41a1c"],(((((((213:0["color":"#377eb8"],184:0["color":"#377eb8"])207:0.111111111111111["color":"#377eb8"],83:0.111111111111111["color":"#377eb8"])192:0.133597883597884["color":"#377eb8"],((180:0.142857142857143["color":"#377eb8"],70:0.142857142857143["color":"#377eb8"])220:0.0535714285714285["color":"#377eb8"],194:0.196428571428571["color":"#377eb8"])232:0.0482804232804233["color":"#377eb8"])78:0.0822751322751323["color":"#377eb8"],(144:0["color":"#377eb8"],160:0["color":"#377eb8"],169:0["color":"#377eb8"],24:0["color":"#377eb8"],110:0["color":"#377eb8"])64:0.326984126984127["color":"#377eb8"])137:0.102886002886003["color":"#377eb8"],(54:0.333333333333333["color":"#377eb8"],156:0.333333333333333["color":"#377eb8"])28:0.0965367965367966["color":"#377eb8"])193:0.0812654012654013["color":"#377eb8"],((161:0["color":"#377eb8"],88:0["color":"#377eb8"],26:0["color":"#377eb8"])14:0.333333333333333["color":"#377eb8"],(223:0["color":"#377eb8"],101:0["color":"#377eb8"])63:0.333333333333333["color":"#377eb8"])7:0.177802197802198["color":"#377eb8"])155:0.146800976800977["color":"#377eb8"],((183:0["color":"#377eb8"],108:0["color":"#377eb8"])114:0.333333333333333["color":"#377eb8"],13:0.333333333333333["color":"#377eb8"])118:0.324603174603175["color":"#377eb8"])65:0.202434662499598["color":"#377eb8"])218:0.0453247433367313["color":"#000000"],(((176:0.2["color":"#4daf4a"],99:0.2["color":"#4daf4a"])119:0.208333333333333["color":"#4daf4a"],(86:0.2["color":"#4daf4a"],219:0.2["color":"#4daf4a"])167:0.208333333333333["color":"#4daf4a"])42:0.3["color":"#4daf4a"],(27:0["color":"#4daf4a"],136:0["color":"#4daf4a"])189:0.708333333333333["color":"#4daf4a"])36:0.197362580439503["color":"#4daf4a"])197:0.0534506405199558["color":"#000000"],(((((((55:0["color":"#984ea3"],159:0["color":"#984ea3"])111:0.266666666666667["color":"#984ea3"],(228:0.142857142857143["color":"#984ea3"],76:0.142857142857143["color":"#984ea3"])71:0.123809523809524["color":"#984ea3"])107:0.175["color":"#984ea3"],(109:0["color":"#984ea3"],18:0["color":"#984ea3"])130:0.441666666666667["color":"#984ea3"])17:0.186111111111111["color":"#984ea3"],(195:0["color":"#984ea3"],135:0["color":"#984ea3"],214:0["color":"#984ea3"],117:0["color":"#984ea3"])20:0.627777777777778["color":"#984ea3"])200:0.0645396825396826["color":"#984ea3"],((((131:0.111111111111111["color":"#984ea3"],174:0.111111111111111["color":"#984ea3"])147:0.0444444444444444["color":"#984ea3"],106:0.155555555555556["color":"#984ea3"])230:0.222222222222222["color":"#984ea3"],59:0.377777777777778["color":"#984ea3"])217:0.0269841269841271["color":"#984ea3"],49:0.404761904761905["color":"#984ea3"])203:0.287555555555556["color":"#984ea3"])201:0.228139833711262["color":"#984ea3"],(((((124:0["color":"#984ea3"],191:0["color":"#984ea3"],25:0["color":"#984ea3"])93:0.333333333333333["color":"#984ea3"],138:0.333333333333333["color":"#984ea3"])102:0.1625["color":"#984ea3"],(229:0.333333333333333["color":"#984ea3"],166:0.333333333333333["color":"#984ea3"])19:0.1625["color":"#984ea3"])113:0.0686838624338624["color":"#984ea3"],(((31:0.111111111111111["color":"#984ea3"],16:0.111111111111111["color":"#984ea3"])45:0.180555555555556["color":"#984ea3"],149:0.291666666666667["color":"#984ea3"])4:0.0734126984126984["color":"#984ea3"],224:0.365079365079365["color":"#984ea3"])87:0.199437830687831["color":"#984ea3"])170:0.236554232804233["color":"#984ea3"],(((50:0["color":"#984ea3"],231:0["color":"#984ea3"])56:0.333333333333333["color":"#984ea3"],152:0.333333333333333["color":"#984ea3"])150:0.0555555555555556["color":"#984ea3"],9:0.388888888888889["color":"#984ea3"])46:0.41218253968254["color":"#984ea3"])186:0.119385865457294["color":"#984ea3"])164:0.0232454352343514["color":"#984ea3"],((((((((172:0["color":"#ff7f00"],187:0["color":"#ff7f00"],58:0["color":"#ff7f00"],175:0["color":"#ff7f00"],12:0["color":"#ff7f00"],41:0["color":"#ff7f00"],125:0["color":"#ff7f00"],3:0["color":"#ff7f00"])94:0.333333333333333["color":"#ff7f00"],212:0.333333333333333["color":"#ff7f00"])143:0.0185185185185185["color":"#ff7f00"],57:0.351851851851852["color":"#ff7f00"])8:0.0148148148148148["color":"#ff7f00"],(199:0["color":"#ff7f00"],146:0["color":"#ff7f00"])77:0.366666666666667["color":"#ff7f00"])204:0.0944444444444444["color":"#ff7f00"],(196:0.2["color":"#ff7f00"],95:0.2["color":"#ff7f00"])62:0.261111111111111["color":"#ff7f00"])43:0.0865079365079366["color":"#ff7f00"],129:0.547619047619048["color":"#ff7f00"])141:0.0258518518518518["color":"#ff7f00"],(((73:0["color":"#ff7f00"],47:0["color":"#ff7f00"])52:0.2["color":"#ff7f00"],35:0.2["color":"#ff7f00"])139:0.22989417989418["color":"#ff7f00"],(179:0.2["color":"#ff7f00"],39:0.2["color":"#ff7f00"])1:0.22989417989418["color":"#ff7f00"])227:0.14357671957672["color":"#ff7f00"])222:0.216778087653088["color":"#ff7f00"],(((162:0.333333333333333["color":"#ff7f00"],10:0.333333333333333["color":"#ff7f00"])100:0.0833333333333334["color":"#ff7f00"],84:0.416666666666667["color":"#ff7f00"])30:0.203703703703704["color":"#ff7f00"],185:0.62037037037037["color":"#ff7f00"])208:0.169878616753617["color":"#ff7f00"])190:0.153453742139087["color":"#ff7f00"])181:0.0154438250297185["color":"#000000"])206:0.022036241406132["color":"#000000"],(2:0["color":"#ffff33"],80:0["color":"#ffff33"],75:0["color":"#ffff33"])29:0.981182795698925["color":"#ffff33"])225:0["color":"#000000"];
end;

Binary file modified data/example_data_x64.bps
Binary file not shown.
2 changes: 1 addition & 1 deletion lib/Biodiverse/Config.pm
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ BEGIN {
. "See https://metacpan.org/pod/Sort::Naturally for more details about what it does.";
}
# more general solution for anything new
my @reqd = qw /Text::Fuzzy Data::Compare Text::Levenshtein/;
my @reqd = qw /Text::Fuzzy Data::Structure::Util Data::Compare Text::Levenshtein/;
foreach my $module (@reqd) {
if (not eval "require $module") {
my $feedback = <<"END_FEEDBACK"
Expand Down
Loading