diff --git a/galaxy/test-data/large_input_00.tsv b/galaxy/test-data/mentalist_distance/large_input_00.tsv
similarity index 100%
rename from galaxy/test-data/large_input_00.tsv
rename to galaxy/test-data/mentalist_distance/large_input_00.tsv
diff --git a/galaxy/test-data/large_output_00.tsv b/galaxy/test-data/mentalist_distance/large_output_00.tsv
similarity index 100%
rename from galaxy/test-data/large_output_00.tsv
rename to galaxy/test-data/mentalist_distance/large_output_00.tsv
diff --git a/galaxy/test-data/med_input_00.tsv b/galaxy/test-data/mentalist_distance/med_input_00.tsv
similarity index 100%
rename from galaxy/test-data/med_input_00.tsv
rename to galaxy/test-data/mentalist_distance/med_input_00.tsv
diff --git a/galaxy/test-data/med_output_00.tsv b/galaxy/test-data/mentalist_distance/med_output_00.tsv
similarity index 100%
rename from galaxy/test-data/med_output_00.tsv
rename to galaxy/test-data/mentalist_distance/med_output_00.tsv
diff --git a/galaxy/test-data/small_input_00.tsv b/galaxy/test-data/mentalist_distance/small_input_00.tsv
similarity index 100%
rename from galaxy/test-data/small_input_00.tsv
rename to galaxy/test-data/mentalist_distance/small_input_00.tsv
diff --git a/galaxy/test-data/small_output_00.tsv b/galaxy/test-data/mentalist_distance/small_output_00.tsv
similarity index 100%
rename from galaxy/test-data/small_output_00.tsv
rename to galaxy/test-data/mentalist_distance/small_output_00.tsv
diff --git a/galaxy/test-data/mentalist_tree/med_input_00.tsv b/galaxy/test-data/mentalist_tree/med_input_00.tsv
new file mode 100644
index 0000000..aa3cc43
--- /dev/null
+++ b/galaxy/test-data/mentalist_tree/med_input_00.tsv
@@ -0,0 +1,101 @@
+ sample-0 sample-1 sample-2 sample-3 sample-4 sample-5 sample-6 sample-7 sample-8 sample-9 sample-10 sample-11 sample-12 sample-13 sample-14 sample-15 sample-16 sample-17 sample-18 sample-19 sample-20 sample-21 sample-22 sample-23 sample-24 sample-25 sample-26 sample-27 sample-28 sample-29 sample-30 sample-31 sample-32 sample-33 sample-34 sample-35 sample-36 sample-37 sample-38 sample-39 sample-40 sample-41 sample-42 sample-43 sample-44 sample-45 sample-46 sample-47 sample-48 sample-49 sample-50 sample-51 sample-52 sample-53 sample-54 sample-55 sample-56 sample-57 sample-58 sample-59 sample-60 sample-61 sample-62 sample-63 sample-64 sample-65 sample-66 sample-67 sample-68 sample-69 sample-70 sample-71 sample-72 sample-73 sample-74 sample-75 sample-76 sample-77 sample-78 sample-79 sample-80 sample-81 sample-82 sample-83 sample-84 sample-85 sample-86 sample-87 sample-88 sample-89 sample-90 sample-91 sample-92 sample-93 sample-94 sample-95 sample-96 sample-97 sample-98 sample-99
+sample-0 0 95 88 87 91 89 89 89 90 87 95 91 93 95 94 89 87 92 90 95 90 92 95 92 90 89 92 89 92 90 92 90 94 88 89 88 84 90 94 94 88 88 92 85 90 92 95 95 91 90 95 88 90 91 91 88 86 93 95 89 91 92 88 91 93 88 84 91 90 89 89 88 91 91 92 92 91 90 91 91 92 90 91 84 88 90 95 93 88 90 89 96 87 94 95 86 90 93 94 85
+sample-1 95 0 86 97 87 91 92 91 90 90 90 85 88 83 91 91 91 86 92 91 79 92 87 91 86 87 94 90 92 87 93 91 92 94 92 85 91 93 87 90 92 90 91 93 87 88 90 90 86 91 91 93 92 90 88 91 89 81 84 94 86 96 89 89 90 85 87 90 88 85 94 91 90 93 88 87 81 89 94 89 94 91 87 94 93 85 93 94 94 93 88 92 93 85 93 89 91 86 89 93
+sample-2 88 86 0 91 92 91 91 92 92 92 89 91 93 91 91 93 92 91 85 89 87 92 95 85 89 97 91 90 87 92 89 89 92 94 90 90 88 84 87 95 92 93 89 86 93 88 94 92 90 91 91 88 91 88 88 85 87 92 92 91 87 88 91 92 86 87 89 97 93 95 94 91 88 93 92 90 91 86 89 86 91 95 88 88 85 85 87 88 90 87 90 94 89 95 85 84 92 84 88 94
+sample-3 87 97 91 0 84 90 95 89 92 85 91 95 91 94 93 89 95 87 88 95 94 93 94 92 96 90 93 88 91 92 88 91 91 86 91 94 96 85 94 89 88 89 93 87 97 87 90 92 96 98 88 94 90 86 92 89 88 95 91 85 95 88 89 95 91 89 96 88 89 87 92 92 87 91 86 95 90 88 85 85 88 86 90 92 94 93 90 90 86 88 93 93 95 89 89 91 94 90 88 88
+sample-4 91 87 92 84 0 94 95 91 91 82 86 87 85 92 92 90 92 93 91 91 92 92 92 91 83 92 87 96 89 88 91 90 90 94 87 87 88 88 85 93 90 88 94 86 89 90 90 89 88 88 90 83 88 91 89 88 89 91 93 94 95 91 91 89 89 91 92 90 92 90 89 87 91 90 89 91 86 91 91 89 86 92 91 94 94 89 90 96 93 88 95 91 87 95 84 92 89 86 93 89
+sample-5 89 91 91 90 94 0 85 90 90 91 92 90 87 91 87 86 88 93 93 90 93 94 93 86 90 91 88 92 90 87 92 88 89 88 96 89 91 94 91 94 87 87 89 90 86 90 91 91 92 88 91 88 89 84 88 90 90 87 91 81 89 93 92 91 86 92 89 91 89 92 91 87 85 91 87 90 96 88 90 91 92 93 88 97 93 88 88 89 92 87 92 88 91 92 92 87 93 96 92 90
+sample-6 89 92 91 95 95 85 0 92 90 93 87 87 85 93 93 85 88 93 87 85 91 90 87 94 90 92 94 87 86 95 88 88 92 90 87 91 85 94 88 91 88 91 93 97 85 94 86 94 91 94 91 91 90 93 88 93 90 90 92 90 87 94 89 88 90 88 86 88 92 93 91 88 95 93 93 94 88 93 86 91 89 90 87 90 86 93 87 93 85 91 88 89 89 85 89 91 87 89 90 86
+sample-7 89 91 92 89 91 90 92 0 96 90 82 87 94 91 88 90 90 93 95 86 93 87 91 95 88 88 92 90 87 83 92 89 95 90 86 90 93 92 93 90 89 91 91 90 91 94 91 88 88 92 93 92 92 89 95 93 93 92 87 94 88 90 88 87 95 91 89 94 83 86 91 89 92 96 92 91 82 93 90 83 93 94 92 91 89 91 90 93 87 83 95 93 88 89 88 92 93 82 87 90
+sample-8 90 90 92 92 91 90 90 96 0 84 91 91 93 87 87 90 91 92 89 88 98 89 92 85 87 92 89 87 92 97 88 83 86 88 92 91 92 88 91 86 90 87 87 86 85 83 92 88 91 95 89 90 94 93 88 93 94 85 90 93 93 91 93 90 87 93 89 89 85 88 91 90 95 86 90 89 86 87 92 89 87 83 89 91 90 83 90 84 89 90 81 90 86 89 93 92 85 87 87 93
+sample-9 87 90 92 85 82 91 93 90 84 0 93 86 96 90 87 93 90 95 89 91 96 89 86 88 89 91 90 90 94 92 91 86 89 92 93 84 85 91 92 96 87 90 91 93 85 95 90 87 91 95 89 87 88 79 91 92 89 92 87 91 91 90 92 89 96 88 89 95 90 86 85 90 94 89 94 89 89 90 94 94 87 88 93 91 90 94 91 89 87 88 91 92 91 91 91 93 88 90 90 88
+sample-10 95 90 89 91 86 92 87 82 91 93 0 91 97 92 95 88 91 93 94 91 92 92 89 89 88 91 92 92 92 82 87 90 85 92 90 81 92 93 95 95 88 90 90 89 89 95 86 94 92 90 92 89 96 86 90 91 90 92 88 96 87 86 91 90 84 92 91 85 86 91 93 88 88 90 91 91 86 91 93 89 91 87 94 87 88 90 89 92 90 80 88 94 88 86 88 93 95 89 82 91
+sample-11 91 85 91 95 87 90 87 87 91 86 91 0 94 93 90 89 89 93 90 87 87 91 87 89 88 87 90 88 95 88 95 88 90 95 87 88 89 93 90 89 85 89 91 92 89 92 91 93 88 93 95 93 87 91 90 89 90 91 88 81 89 91 92 88 89 94 92 88 86 81 92 90 93 88 88 90 93 92 89 91 85 91 90 89 90 92 89 93 89 87 93 94 87 94 85 88 89 92 93 89
+sample-12 93 88 93 91 85 87 85 94 93 96 97 94 0 87 91 92 89 88 89 90 89 92 91 91 93 91 91 92 90 91 88 88 90 91 91 91 85 90 87 88 90 88 92 86 93 90 84 85 92 89 88 96 89 92 93 87 93 85 92 90 88 90 93 93 93 90 91 93 92 87 89 88 89 92 89 92 89 94 94 86 94 97 90 92 88 92 91 87 95 95 91 87 85 94 91 90 95 90 89 93
+sample-13 95 83 91 94 92 91 93 91 87 90 92 93 87 0 91 91 94 90 90 89 84 91 86 92 92 91 91 93 88 93 88 92 88 92 90 86 93 90 94 90 93 92 87 89 87 91 84 83 91 87 90 89 89 92 92 87 90 98 90 92 89 89 89 87 90 95 91 93 84 95 92 84 94 88 89 88 93 91 93 91 92 90 94 86 89 87 88 89 86 87 86 94 87 78 96 91 91 88 88 90
+sample-14 94 91 91 93 92 87 93 88 87 87 95 90 91 91 0 89 90 88 97 88 91 87 87 92 92 93 91 87 87 92 93 84 93 92 88 88 96 83 91 85 88 92 86 89 86 91 89 89 93 90 89 92 90 92 89 92 93 88 95 87 92 92 89 94 92 87 93 87 86 89 88 88 91 88 90 87 92 88 91 92 90 97 88 93 88 89 83 89 91 88 93 89 91 87 90 92 90 93 91 92
+sample-15 89 91 93 89 90 86 85 90 90 93 88 89 92 91 89 0 91 95 89 94 92 91 94 93 87 89 89 87 92 84 90 90 82 91 88 91 95 89 90 92 91 92 86 90 89 89 91 89 91 91 93 94 89 96 93 92 87 92 83 97 89 93 88 90 88 89 86 92 91 90 86 87 88 88 85 89 91 89 89 94 94 98 95 86 89 88 88 92 85 94 90 90 86 93 91 92 89 93 89 93
+sample-16 87 91 92 95 92 88 88 90 91 90 91 89 89 94 90 91 0 91 99 84 88 90 96 96 91 86 91 93 89 89 88 91 94 86 89 91 91 94 94 88 83 89 92 94 91 92 92 90 88 89 96 89 88 97 91 92 91 94 89 84 95 90 93 89 87 94 82 88 88 89 88 83 88 93 93 88 89 89 96 90 97 93 89 90 87 92 90 88 91 91 92 93 95 90 89 90 91 92 93 91
+sample-17 92 86 91 87 93 93 93 93 92 95 93 93 88 90 88 95 91 0 95 88 85 91 89 90 93 91 93 94 92 88 93 92 95 89 93 84 92 90 85 80 86 91 91 84 94 89 84 91 89 89 91 88 87 93 87 90 89 90 91 96 84 92 91 92 92 82 93 93 91 96 90 92 92 88 85 93 91 87 90 82 88 91 92 89 93 89 93 94 92 93 85 93 95 90 89 87 93 92 90 94
+sample-18 90 92 85 88 91 93 87 95 89 89 94 90 89 90 97 89 99 95 0 86 92 94 92 91 88 96 92 90 95 92 89 93 86 85 92 90 91 95 86 92 91 94 89 92 91 93 93 91 89 94 87 90 92 89 92 96 86 92 87 89 88 92 90 87 89 88 89 89 91 92 92 96 91 83 90 90 89 92 89 94 94 92 88 89 87 93 93 91 86 92 90 88 90 91 85 90 94 87 90 89
+sample-19 95 91 89 95 91 90 85 86 88 91 91 87 90 89 88 94 84 88 86 0 88 92 95 85 86 87 95 91 90 93 95 87 96 95 92 85 90 90 86 90 92 91 92 93 88 90 89 91 82 90 89 88 88 92 86 88 94 88 87 88 83 85 93 89 92 93 89 91 90 91 89 84 93 91 90 90 89 86 92 81 90 90 86 97 85 86 90 83 88 89 89 88 89 89 95 91 93 86 89 93
+sample-20 90 79 87 94 92 93 91 93 98 96 92 87 89 84 91 92 88 85 92 88 0 92 88 92 91 81 93 91 85 92 87 91 94 91 89 89 90 92 79 90 97 86 91 94 89 84 93 90 87 93 87 89 91 89 93 86 85 94 84 87 88 93 93 92 89 87 86 85 88 92 85 88 88 89 88 93 86 93 93 93 85 88 90 84 89 94 91 88 88 87 89 83 90 88 95 92 91 91 88 90
+sample-21 92 92 92 93 92 94 90 87 89 89 92 91 92 91 87 91 90 91 94 92 92 0 92 94 90 93 95 89 94 93 92 90 88 91 89 89 85 88 92 85 88 89 85 90 91 94 92 88 86 89 87 89 85 94 91 86 93 89 92 92 87 89 88 88 92 93 91 95 87 90 94 95 89 92 91 89 90 94 91 90 85 88 82 93 93 88 91 91 90 89 97 90 88 84 93 85 95 88 88 91
+sample-22 95 87 95 94 92 93 87 91 92 86 89 87 91 86 87 94 96 89 92 95 88 92 0 90 90 87 94 86 90 89 88 88 90 90 91 93 90 94 93 95 92 90 88 90 92 90 92 85 94 92 92 94 95 90 92 94 95 88 91 92 93 88 95 89 92 88 91 82 90 89 93 91 91 91 93 85 84 93 94 90 90 90 92 92 85 94 87 90 91 90 91 96 85 91 87 84 90 91 94 84
+sample-23 92 91 85 92 91 86 94 95 85 88 89 89 91 92 92 93 96 90 91 85 92 94 90 0 88 95 88 89 90 95 88 81 88 88 94 89 95 89 90 91 83 93 84 93 81 85 93 87 90 94 94 87 89 89 88 90 86 91 94 92 89 91 90 91 90 92 90 89 93 91 95 91 89 90 88 91 87 88 95 87 87 89 85 90 93 92 95 87 91 82 94 84 93 93 84 93 84 91 91 89
+sample-24 90 86 89 96 83 90 90 88 87 89 88 88 93 92 92 87 91 93 88 86 91 90 90 88 0 95 91 83 92 92 91 91 91 92 90 88 89 94 89 90 92 86 86 87 87 89 95 86 87 92 92 87 87 94 92 88 89 89 87 95 86 92 90 86 85 92 93 93 92 90 88 91 86 86 97 87 87 91 90 87 85 94 94 86 89 94 89 93 90 82 88 91 85 86 90 88 91 94 91 88
+sample-25 89 87 97 90 92 91 92 88 92 91 91 87 91 91 93 89 86 91 96 87 81 93 87 95 95 0 91 90 86 86 92 87 91 92 89 88 85 96 88 86 86 91 91 87 96 89 90 88 91 90 88 92 87 92 89 86 94 91 92 88 89 85 91 89 94 94 89 87 83 91 89 88 92 90 88 85 92 90 91 87 87 91 86 91 88 90 94 86 90 95 89 89 91 94 87 86 91 93 93 87
+sample-26 92 94 91 93 87 88 94 92 89 90 92 90 91 91 91 89 91 93 92 95 93 95 94 88 91 91 0 85 85 90 91 89 83 96 84 89 93 86 92 88 85 89 87 91 86 83 90 88 87 86 87 93 93 92 90 91 89 91 90 92 90 91 88 97 87 88 88 93 91 93 87 88 91 87 85 93 94 94 93 88 90 89 94 91 92 86 89 89 92 90 93 96 87 91 90 96 90 90 93 88
+sample-27 89 90 90 88 96 92 87 90 87 90 92 88 92 93 87 87 93 94 90 91 91 89 86 89 83 90 85 0 93 92 89 90 90 94 85 94 91 90 90 91 93 90 84 89 91 91 89 85 93 89 88 87 85 91 92 93 90 90 95 95 91 87 87 91 93 91 85 93 93 93 89 93 89 92 93 87 89 95 88 92 90 88 92 91 92 88 88 92 90 89 91 88 87 90 87 93 93 92 84 90
+sample-28 92 92 87 91 89 90 86 87 92 94 92 95 90 88 87 92 89 92 95 90 85 94 90 90 92 86 85 93 0 88 90 88 83 92 94 92 99 88 89 94 92 91 89 87 91 90 87 90 94 94 93 89 95 93 86 90 88 91 93 94 92 86 93 89 94 89 87 89 87 91 86 90 94 94 92 94 90 88 86 89 88 94 93 91 88 90 92 89 89 90 90 96 90 87 90 91 89 94 89 91
+sample-29 90 87 92 92 88 87 95 83 97 92 82 88 91 93 92 84 89 88 92 93 92 93 89 95 92 86 90 92 88 0 94 90 90 90 84 84 89 92 93 90 90 90 87 84 89 93 90 91 90 89 90 89 88 86 95 93 94 87 88 94 93 82 92 86 89 91 93 86 93 91 89 91 87 94 88 85 90 87 85 90 89 94 94 88 94 86 90 89 92 88 88 89 85 93 92 86 86 92 91 90
+sample-30 92 93 89 88 91 92 88 92 88 91 87 95 88 88 93 90 88 93 89 95 87 92 88 88 91 92 91 89 90 94 0 91 86 97 89 92 93 89 89 91 87 90 92 90 89 89 91 89 89 96 90 89 87 93 90 89 85 93 94 91 94 92 91 95 89 86 88 91 93 95 93 90 92 90 89 95 85 92 95 93 93 85 91 88 90 95 86 89 93 93 85 87 91 91 91 92 93 82 91 94
+sample-31 90 91 89 91 90 88 88 89 83 86 90 88 88 92 84 90 91 92 93 87 91 90 88 81 91 87 89 90 88 90 91 0 91 88 95 85 91 88 91 89 90 90 91 90 88 89 89 88 91 89 86 96 90 91 93 90 94 88 90 92 86 91 93 92 91 91 92 87 91 87 93 87 93 88 91 91 88 92 87 90 88 89 90 92 92 90 86 90 88 88 94 88 90 92 86 93 86 90 88 91
+sample-32 94 92 92 91 90 89 92 95 86 89 85 90 90 88 93 82 94 95 86 96 94 88 90 88 91 91 83 90 83 90 86 91 0 92 93 92 91 91 92 89 92 86 89 90 88 87 87 87 91 88 86 90 90 93 89 90 87 90 86 92 89 96 93 87 95 84 88 91 88 89 87 92 89 86 91 86 93 88 93 94 91 93 92 84 85 88 89 88 91 91 89 90 87 91 87 90 88 92 89 90
+sample-33 88 94 94 86 94 88 90 90 88 92 92 95 91 92 92 91 86 89 85 95 91 91 90 88 92 92 96 94 92 90 97 88 92 0 88 89 96 89 89 89 92 87 82 89 86 94 88 92 90 91 90 90 96 93 82 92 90 86 89 93 86 89 89 92 91 89 88 89 97 93 85 90 89 90 93 92 90 91 86 89 91 89 86 91 93 94 94 87 89 88 90 86 91 85 89 88 91 95 88 89
+sample-34 89 92 90 91 87 96 87 86 92 93 90 87 91 90 88 88 89 93 92 92 89 89 91 94 90 89 84 85 94 84 89 95 93 88 0 95 91 91 92 89 94 91 82 91 88 86 90 85 90 86 86 97 90 90 90 94 88 95 88 93 89 83 89 89 91 88 89 85 92 90 83 93 89 88 95 91 91 91 89 87 90 91 91 90 88 83 88 89 98 81 94 97 90 88 92 84 90 85 93 90
+sample-35 88 85 90 94 87 89 91 90 91 84 81 88 91 86 88 91 91 84 90 85 89 89 93 89 88 88 89 94 92 84 92 85 92 89 95 0 89 92 92 90 87 96 90 90 88 92 87 90 88 90 87 93 92 89 92 86 84 88 94 91 85 89 83 85 87 89 87 85 91 95 93 89 93 86 89 90 89 90 89 88 86 89 91 90 91 89 92 85 85 86 90 91 89 93 90 90 87 88 90 91
+sample-36 84 91 88 96 88 91 85 93 92 85 92 89 85 93 96 95 91 92 91 90 90 85 90 95 89 85 93 91 99 89 93 91 91 96 91 89 0 93 89 89 83 89 93 92 93 91 87 92 91 90 90 85 90 92 92 93 96 90 89 86 92 89 88 87 87 95 87 92 90 94 97 91 95 94 91 86 93 90 89 86 88 93 89 92 87 89 95 94 92 95 93 85 84 93 91 92 92 86 94 88
+sample-37 90 93 84 85 88 94 94 92 88 91 93 93 90 90 83 89 94 90 95 90 92 88 94 89 94 96 86 90 88 92 89 88 91 89 91 92 93 0 92 88 91 91 87 87 86 85 89 88 89 93 87 90 92 92 93 89 95 87 93 88 91 94 89 91 87 91 90 89 94 93 92 92 91 91 93 94 85 91 85 84 88 92 92 89 87 82 85 92 90 90 93 90 91 93 86 92 91 91 88 97
+sample-38 94 87 87 94 85 91 88 93 91 92 95 90 87 94 91 90 94 85 86 86 79 92 93 90 89 88 92 90 89 93 89 91 92 89 92 92 89 92 0 89 91 92 94 82 91 92 89 94 87 95 83 84 91 88 88 85 90 93 91 91 93 90 91 90 91 90 91 92 89 92 89 90 87 92 87 89 88 89 89 93 90 88 91 90 88 84 87 94 92 90 90 95 89 95 93 93 93 95 85 93
+sample-39 94 90 95 89 93 94 91 90 86 96 95 89 88 90 85 92 88 80 92 90 90 85 95 91 90 86 88 91 94 90 91 89 89 89 89 90 89 88 89 0 88 84 88 84 87 85 90 93 84 89 83 88 86 93 91 94 88 91 92 93 92 90 95 92 92 93 90 91 91 88 89 91 87 86 91 87 95 89 90 87 88 87 91 96 93 93 92 87 91 95 86 91 94 88 92 86 90 92 87 89
+sample-40 88 92 92 88 90 87 88 89 90 87 88 85 90 93 88 91 83 86 91 92 97 88 92 83 92 86 85 93 92 90 87 90 92 92 94 87 83 91 91 88 0 91 94 93 87 89 90 91 88 92 93 87 86 87 95 94 91 94 91 86 91 91 92 91 84 92 92 92 88 92 89 87 85 92 89 91 89 82 90 88 95 87 90 89 94 94 93 88 93 88 84 87 80 90 92 96 96 86 95 83
+sample-41 88 90 93 89 88 87 91 91 87 90 90 89 88 92 92 92 89 91 94 91 86 89 90 93 86 91 89 90 91 90 90 90 86 87 91 96 89 91 92 84 91 0 88 91 88 82 91 90 87 93 90 90 87 92 89 87 94 90 90 97 91 90 90 93 93 90 89 89 93 89 90 89 89 94 94 88 90 92 92 86 83 90 93 92 95 90 92 88 97 87 89 87 88 91 94 86 92 92 92 94
+sample-42 92 91 89 93 94 89 93 91 87 91 90 91 92 87 86 86 92 91 89 92 91 85 88 84 86 91 87 84 89 87 92 91 89 82 82 90 93 87 94 88 94 88 0 91 90 89 93 90 90 97 90 89 89 85 87 90 91 84 88 92 88 87 94 87 94 89 89 88 89 94 90 95 91 81 94 90 92 90 94 90 89 88 91 89 95 96 88 91 90 94 95 92 87 87 93 88 86 90 92 91
+sample-43 85 93 86 87 86 90 97 90 86 93 89 92 86 89 89 90 94 84 92 93 94 90 90 93 87 87 91 89 87 84 90 90 90 89 91 90 92 87 82 84 93 91 91 0 93 89 92 86 92 93 89 89 90 91 93 92 91 87 89 92 90 90 94 89 89 90 90 93 91 89 87 89 93 91 91 89 94 89 87 94 87 96 92 90 86 91 90 92 92 89 91 93 91 87 92 83 83 97 89 90
+sample-44 90 87 93 97 89 86 85 91 85 85 89 89 93 87 86 89 91 94 91 88 89 91 92 81 87 96 86 91 91 89 89 88 88 86 88 88 93 86 91 87 87 88 90 93 0 95 88 86 88 93 84 93 88 93 94 91 93 93 91 94 89 90 91 95 86 84 91 92 90 89 94 86 93 91 94 88 85 88 92 92 90 92 89 91 92 98 91 93 94 85 91 88 92 91 90 89 87 92 88 89
+sample-45 92 88 88 87 90 90 94 94 83 95 95 92 90 91 91 89 92 89 93 90 84 94 90 85 89 89 83 91 90 93 89 89 87 94 86 92 91 85 92 85 89 82 89 89 95 0 92 93 92 98 89 87 86 91 92 87 93 88 88 88 89 91 90 86 90 88 97 94 89 88 92 94 85 93 93 95 92 93 82 87 84 87 89 92 89 89 96 90 93 83 90 95 87 93 89 91 93 91 90 92
+sample-46 95 90 94 90 90 91 86 91 92 90 86 91 84 84 89 91 92 84 93 89 93 92 92 93 95 90 90 89 87 90 91 89 87 88 90 87 87 89 89 90 90 91 93 92 88 92 0 87 92 85 91 88 90 85 90 83 88 87 92 89 93 92 88 92 89 86 88 90 91 86 89 91 93 88 86 90 86 92 84 92 90 92 90 90 88 89 90 92 92 89 84 88 95 93 92 94 92 94 88 86
+sample-47 95 90 92 92 89 91 94 88 88 87 94 93 85 83 89 89 90 91 91 91 90 88 85 87 86 88 88 85 90 91 89 88 87 92 85 90 92 88 94 93 91 90 90 86 86 93 87 0 96 80 91 93 89 89 92 93 90 93 90 91 90 91 92 81 90 90 95 88 90 93 90 96 88 89 93 85 86 92 93 86 92 95 90 91 85 88 90 88 86 90 91 93 87 91 91 87 90 88 88 88
+sample-48 91 86 90 96 88 92 91 88 91 91 92 88 92 91 93 91 88 89 89 82 87 86 94 90 87 91 87 93 94 90 89 91 91 90 90 88 91 89 87 84 88 87 90 92 88 92 92 96 0 93 88 91 86 92 93 89 90 89 90 91 87 92 91 89 85 83 82 89 93 89 92 92 94 88 90 90 93 90 96 87 89 91 87 89 93 89 95 84 91 95 88 88 87 88 91 90 90 84 93 95
+sample-49 90 91 91 98 88 88 94 92 95 95 90 93 89 87 90 91 89 89 94 90 93 89 92 94 92 90 86 89 94 89 96 89 88 91 86 90 90 93 95 89 92 93 97 93 93 98 85 80 93 0 93 92 91 94 91 88 89 91 96 84 88 90 94 88 96 91 94 86 92 91 88 90 85 86 89 87 93 92 89 89 89 90 91 91 91 89 92 93 92 95 85 87 92 87 91 86 91 89 88 95
+sample-50 95 91 91 88 90 91 91 93 89 89 92 95 88 90 89 93 96 91 87 89 87 87 92 94 92 88 87 88 93 90 90 86 86 90 86 87 90 87 83 83 93 90 90 89 84 89 91 91 88 93 0 93 86 89 83 94 92 86 95 92 90 90 88 93 92 83 91 86 85 90 90 89 92 87 88 91 86 90 90 90 87 88 94 88 93 90 89 88 93 91 86 89 88 87 93 88 89 89 89 91
+sample-51 88 93 88 94 83 88 91 92 90 87 89 93 96 89 92 94 89 88 90 88 89 89 94 87 87 92 93 87 89 89 89 96 90 90 97 93 85 90 84 88 87 90 89 89 93 87 88 93 91 92 93 0 93 86 89 88 91 92 92 88 90 89 89 88 84 95 86 91 92 87 89 87 89 86 86 94 91 88 89 90 85 88 87 90 93 91 86 92 88 87 90 86 85 90 84 95 89 84 92 85
+sample-52 90 92 91 90 88 89 90 92 94 88 96 87 89 89 90 89 88 87 92 88 91 85 95 89 87 87 93 85 95 88 87 90 90 96 90 92 90 92 91 86 86 87 89 90 88 86 90 89 86 91 86 93 0 89 93 88 86 91 92 87 89 95 92 90 94 91 98 94 95 90 90 84 96 93 90 90 89 90 91 93 88 85 88 89 91 92 96 90 86 93 92 88 93 87 89 95 90 90 91 88
+sample-53 91 90 88 86 91 84 93 89 93 79 86 91 92 92 92 96 97 93 89 92 89 94 90 89 94 92 92 91 93 86 93 91 93 93 90 89 92 92 88 93 87 92 85 91 93 91 85 89 92 94 89 86 89 0 88 83 85 93 95 90 87 89 88 92 94 92 91 92 91 93 91 91 89 89 87 87 94 88 94 91 92 86 93 90 86 91 89 93 92 82 89 91 89 93 90 92 91 87 91 91
+sample-54 91 88 88 92 89 88 88 95 88 91 90 90 93 92 89 93 91 87 92 86 93 91 92 88 92 89 90 92 86 95 90 93 89 82 90 92 92 93 88 91 95 89 87 93 94 92 90 92 93 91 83 89 93 88 0 90 90 92 94 92 89 89 94 92 87 93 84 93 91 87 85 90 88 89 88 86 92 89 92 92 86 85 86 91 91 83 98 96 85 91 90 92 92 92 90 82 89 93 94 90
+sample-55 88 91 85 89 88 90 93 93 93 92 91 89 87 87 92 92 92 90 96 88 86 86 94 90 88 86 91 93 90 93 89 90 90 92 94 86 93 89 85 94 94 87 90 92 91 87 83 93 89 88 94 88 88 83 90 0 90 89 92 88 92 91 92 96 88 88 92 92 90 91 88 90 93 89 90 92 91 86 90 89 86 89 89 95 82 89 89 92 92 89 89 91 87 95 89 91 92 90 92 91
+sample-56 86 89 87 88 89 90 90 93 94 89 90 90 93 90 93 87 91 89 86 94 85 93 95 86 89 94 89 90 88 94 85 94 87 90 88 84 96 95 90 88 91 94 91 91 93 93 88 90 90 89 92 91 86 85 90 90 0 92 90 89 90 92 84 92 91 89 90 89 94 92 85 86 87 91 93 91 87 89 90 93 93 90 93 86 82 90 92 89 89 87 85 91 92 94 89 97 89 88 92 93
+sample-57 93 81 92 95 91 87 90 92 85 92 92 91 85 98 88 92 94 90 92 88 94 89 88 91 89 91 91 90 91 87 93 88 90 86 95 88 90 87 93 91 94 90 84 87 93 88 87 93 89 91 86 92 91 93 92 89 92 0 91 93 90 86 93 91 93 86 89 94 92 88 86 94 87 91 89 94 80 91 87 90 88 87 89 92 89 91 88 84 93 94 86 96 89 93 89 89 91 88 89 94
+sample-58 95 84 92 91 93 91 92 87 90 87 88 88 92 90 95 83 89 91 87 87 84 92 91 94 87 92 90 95 93 88 94 90 86 89 88 94 89 93 91 92 91 90 88 89 91 88 92 90 90 96 95 92 92 95 94 92 90 91 0 93 87 91 90 90 89 90 87 93 87 87 85 91 86 90 88 90 91 92 89 88 92 88 92 92 89 86 87 92 93 87 94 90 89 87 88 94 88 87 89 94
+sample-59 89 94 91 85 94 81 90 94 93 91 96 81 90 92 87 97 84 96 89 88 87 92 92 92 95 88 92 95 94 94 91 92 92 93 93 91 86 88 91 93 86 97 92 92 94 88 89 91 91 84 92 88 87 90 92 88 89 93 93 0 90 88 94 91 88 94 93 88 91 85 91 94 91 87 87 93 90 95 90 91 92 89 86 89 89 91 91 89 95 90 88 86 83 89 86 89 90 88 91 86
+sample-60 91 86 87 95 95 89 87 88 93 91 87 89 88 89 92 89 95 84 88 83 88 87 93 89 86 89 90 91 92 93 94 86 89 86 89 85 92 91 93 92 91 91 88 90 89 89 93 90 87 88 90 90 89 87 89 92 90 90 87 90 0 91 89 94 88 93 90 91 92 90 93 87 89 89 83 91 90 90 87 87 94 88 84 89 89 91 91 92 92 88 92 90 91 88 87 88 94 85 90 93
+sample-61 92 96 88 88 91 93 94 90 91 90 86 91 90 89 92 93 90 92 92 85 93 89 88 91 92 85 91 87 86 82 92 91 96 89 83 89 89 94 90 90 91 90 87 90 90 91 92 91 92 90 90 89 95 89 89 91 92 86 91 88 91 0 95 86 89 93 93 92 91 95 87 89 95 93 91 89 91 90 93 91 90 94 95 94 93 85 89 90 85 88 93 89 89 91 95 83 92 90 93 93
+sample-62 88 89 91 89 91 92 89 88 93 92 91 92 93 89 89 88 93 91 90 93 93 88 95 90 90 91 88 87 93 92 91 93 93 89 89 83 88 89 91 95 92 90 94 94 91 90 88 92 91 94 88 89 92 88 94 92 84 93 90 94 89 95 0 93 90 88 87 96 87 89 93 92 90 93 90 90 90 92 92 87 92 90 86 89 87 87 85 94 92 87 86 88 87 93 91 89 85 91 93 90
+sample-63 91 89 92 95 89 91 88 87 90 89 90 88 93 87 94 90 89 92 87 89 92 88 89 91 86 89 97 91 89 86 95 92 87 92 89 85 87 91 90 92 91 93 87 89 95 86 92 81 89 88 93 88 90 92 92 96 92 91 90 91 94 86 93 0 90 92 92 83 89 87 87 91 88 88 97 87 94 96 84 90 93 95 93 89 91 85 91 90 90 92 95 95 87 91 93 91 88 85 93 87
+sample-64 93 90 86 91 89 86 90 95 87 96 84 89 93 90 92 88 87 92 89 92 89 92 92 90 85 94 87 93 94 89 89 91 95 91 91 87 87 87 91 92 84 93 94 89 86 90 89 90 85 96 92 84 94 94 87 88 91 93 89 88 88 89 90 90 0 91 92 91 86 93 93 90 91 90 92 88 88 88 87 89 89 97 88 92 92 91 88 92 95 88 89 92 89 90 88 92 93 93 93 89
+sample-65 88 85 87 89 91 92 88 91 93 88 92 94 90 95 87 89 94 82 88 93 87 93 88 92 92 94 88 91 89 91 86 91 84 89 88 89 95 91 90 93 92 90 89 90 84 88 86 90 83 91 83 95 91 92 93 88 89 86 90 94 93 93 88 92 91 0 87 92 89 88 87 90 94 88 91 91 92 88 87 87 96 88 89 83 96 88 83 89 93 92 87 90 90 96 82 91 91 81 93 90
+sample-66 84 87 89 96 92 89 86 89 89 89 91 92 91 91 93 86 82 93 89 89 86 91 91 90 93 89 88 85 87 93 88 92 88 88 89 87 87 90 91 90 92 89 89 90 91 97 88 95 82 94 91 86 98 91 84 92 90 89 87 93 90 93 87 92 92 87 0 87 93 87 89 87 90 90 90 90 91 92 88 91 93 90 89 94 90 92 83 87 95 88 83 91 91 90 86 90 80 90 91 93
+sample-67 91 90 97 88 90 91 88 94 89 95 85 88 93 93 87 92 88 93 89 91 85 95 82 89 93 87 93 93 89 86 91 87 91 89 85 85 92 89 92 91 92 89 88 93 92 94 90 88 89 86 86 91 94 92 93 92 89 94 93 88 91 92 96 83 91 92 87 0 93 91 86 87 86 83 89 91 82 92 93 94 90 87 92 89 85 95 90 89 88 93 93 89 90 94 92 88 90 87 94 90
+sample-68 90 88 93 89 92 89 92 83 85 90 86 86 92 84 86 91 88 91 91 90 88 87 90 93 92 83 91 93 87 93 93 91 88 97 92 91 90 94 89 91 88 93 89 91 90 89 91 90 93 92 85 92 95 91 91 90 94 92 87 91 92 91 87 89 86 89 93 93 0 89 92 93 94 91 94 91 93 91 95 90 95 88 87 89 92 88 94 87 86 95 94 94 86 90 92 94 96 91 96 94
+sample-69 89 85 95 87 90 92 93 86 88 86 91 81 87 95 89 90 89 96 92 91 92 90 89 91 90 91 93 93 91 91 95 87 89 93 90 95 94 93 92 88 92 89 94 89 89 88 86 93 89 91 90 87 90 93 87 91 92 88 87 85 90 95 89 87 93 88 87 91 89 0 93 95 88 88 90 87 89 92 87 92 92 92 90 95 96 91 88 93 93 88 90 91 95 94 88 87 91 90 89 83
+sample-70 89 94 94 92 89 91 91 91 91 85 93 92 89 92 88 86 88 90 92 89 85 94 93 95 88 89 87 89 86 89 93 93 87 85 83 93 97 92 89 89 89 90 90 87 94 92 89 90 92 88 90 89 90 91 85 88 85 86 85 91 93 87 93 87 93 87 89 86 92 93 0 88 90 86 91 93 90 91 91 92 96 91 92 82 87 89 94 87 88 93 92 89 87 88 96 93 87 90 91 92
+sample-71 88 91 91 92 87 87 88 89 90 90 88 90 88 84 88 87 83 92 96 84 88 95 91 91 91 88 88 93 90 91 90 87 92 90 93 89 91 92 90 91 87 89 95 89 86 94 91 96 92 90 89 87 84 91 90 90 86 94 91 94 87 89 92 91 90 90 87 87 93 95 88 0 97 92 90 91 91 87 90 93 89 92 91 91 88 93 84 94 88 95 90 90 92 91 91 87 87 93 88 94
+sample-72 91 90 88 87 91 85 95 92 95 94 88 93 89 94 91 88 88 92 91 93 88 89 91 89 86 92 91 89 94 87 92 93 89 89 89 93 95 91 87 87 85 89 91 93 93 85 93 88 94 85 92 89 96 89 88 93 87 87 86 91 89 95 90 88 91 94 90 86 94 88 90 97 0 87 94 92 89 91 91 91 91 94 93 91 92 93 89 92 93 80 92 89 88 85 92 91 95 88 91 91
+sample-73 91 93 93 91 90 91 93 96 86 89 90 88 92 88 88 88 93 88 83 91 89 92 91 90 86 90 87 92 94 94 90 88 86 90 88 86 94 91 92 86 92 94 81 91 91 93 88 89 88 86 87 86 93 89 89 89 91 91 90 87 89 93 93 88 90 88 90 83 91 88 86 92 87 0 85 93 92 91 87 95 92 93 89 86 86 93 85 88 93 91 91 89 91 88 85 88 91 91 87 93
+sample-74 92 88 92 86 89 87 93 92 90 94 91 88 89 89 90 85 93 85 90 90 88 91 93 88 97 88 85 93 92 88 89 91 91 93 95 89 91 93 87 91 89 94 94 91 94 93 86 93 90 89 88 86 90 87 88 90 93 89 88 87 83 91 90 97 92 91 90 89 94 90 91 90 94 85 0 94 90 88 85 83 95 87 88 92 95 92 91 96 94 92 84 90 93 94 88 89 94 91 90 85
+sample-75 92 87 90 95 91 90 94 91 89 89 91 90 92 88 87 89 88 93 90 90 93 89 85 91 87 85 93 87 94 85 95 91 86 92 91 90 86 94 89 87 91 88 90 89 88 95 90 85 90 87 91 94 90 87 86 92 91 94 90 93 91 89 90 87 88 91 90 91 91 87 93 91 92 93 94 0 98 95 88 94 95 93 92 91 89 88 89 91 90 92 91 88 86 95 88 84 83 91 88 88
+sample-76 91 81 91 90 86 96 88 82 86 89 86 93 89 93 92 91 89 91 89 89 86 90 84 87 87 92 94 89 90 90 85 88 93 90 91 89 93 85 88 95 89 90 92 94 85 92 86 86 93 93 86 91 89 94 92 91 87 80 91 90 90 91 90 94 88 92 91 82 93 89 90 91 89 92 90 98 0 87 86 83 88 87 92 86 91 91 92 91 93 83 89 89 88 95 92 94 93 79 91 92
+sample-77 90 89 86 88 91 88 93 93 87 90 91 92 94 91 88 89 89 87 92 86 93 94 93 88 91 90 94 95 88 87 92 92 88 91 91 90 90 91 89 89 82 92 90 89 88 93 92 92 90 92 90 88 90 88 89 86 89 91 92 95 90 90 92 96 88 88 92 92 91 92 91 87 91 91 88 95 87 0 85 93 90 91 86 92 86 90 91 84 89 88 84 93 93 91 85 91 86 94 94 88
+sample-78 91 94 89 85 91 90 86 90 92 94 93 89 94 93 91 89 96 90 89 92 93 91 94 95 90 91 93 88 86 85 95 87 93 86 89 89 89 85 89 90 90 92 94 87 92 82 84 93 96 89 90 89 91 94 92 90 90 87 89 90 87 93 92 84 87 87 88 93 95 87 91 90 91 87 85 88 86 85 0 84 90 92 89 88 86 90 90 92 89 90 85 88 90 97 86 91 92 95 93 91
+sample-79 91 89 86 85 89 91 91 83 89 94 89 91 86 91 92 94 90 82 94 81 93 90 90 87 87 87 88 92 89 90 93 90 94 89 87 88 86 84 93 87 88 86 90 94 92 87 92 86 87 89 90 90 93 91 92 89 93 90 88 91 87 91 87 90 89 87 91 94 90 92 92 93 91 95 83 94 83 93 84 0 96 92 90 97 91 81 90 88 92 88 88 86 87 90 87 94 91 86 94 91
+sample-80 92 94 91 88 86 92 89 93 87 87 91 85 94 92 90 94 97 88 94 90 85 85 90 87 85 87 90 90 88 89 93 88 91 91 90 86 88 88 90 88 95 83 89 87 90 84 90 92 89 89 87 85 88 92 86 86 93 88 92 92 94 90 92 93 89 96 93 90 95 92 96 89 91 92 95 95 88 90 90 96 0 90 82 96 92 92 91 93 89 85 85 92 89 90 86 90 89 89 86 93
+sample-81 90 91 95 86 92 93 90 94 83 88 87 91 97 90 97 98 93 91 92 90 88 88 90 89 94 91 89 88 94 94 85 89 93 89 91 89 93 92 88 87 87 90 88 96 92 87 92 95 91 90 88 88 85 86 85 89 90 87 88 89 88 94 90 95 97 88 90 87 88 92 91 92 94 93 87 93 87 91 92 92 90 0 84 83 92 88 91 87 89 91 88 86 89 88 94 94 88 83 90 93
+sample-82 91 87 88 90 91 88 87 92 89 93 94 90 90 94 88 95 89 92 88 86 90 82 92 85 94 86 94 92 93 94 91 90 92 86 91 91 89 92 91 91 90 93 91 92 89 89 90 90 87 91 94 87 88 93 86 89 93 89 92 86 84 95 86 93 88 89 89 92 87 90 92 91 93 89 88 92 92 86 89 90 82 84 0 94 91 89 86 95 94 91 89 87 89 95 92 89 89 92 90 91
+sample-83 84 94 88 92 94 97 90 91 91 91 87 89 92 86 93 86 90 89 89 97 84 93 92 90 86 91 91 91 91 88 88 92 84 91 90 90 92 89 90 96 89 92 89 90 91 92 90 91 89 91 88 90 89 90 91 95 86 92 92 89 89 94 89 89 92 83 94 89 89 95 82 91 91 86 92 91 86 92 88 97 96 83 94 0 86 90 91 86 92 84 88 88 86 86 91 88 86 94 90 87
+sample-84 88 93 85 94 94 93 86 89 90 90 88 90 88 89 88 89 87 93 87 85 89 93 85 93 89 88 92 92 88 94 90 92 85 93 88 91 87 87 88 93 94 95 95 86 92 89 88 85 93 91 93 93 91 86 91 82 82 89 89 89 89 93 87 91 92 96 90 85 92 96 87 88 92 86 95 89 91 86 86 91 92 92 91 86 0 91 93 83 90 88 86 89 96 86 90 93 92 87 92 90
+sample-85 90 85 85 93 89 88 93 91 83 94 90 92 92 87 89 88 92 89 93 86 94 88 94 92 94 90 86 88 90 86 95 90 88 94 83 89 89 82 84 93 94 90 96 91 98 89 89 88 89 89 90 91 92 91 83 89 90 91 86 91 91 85 87 85 91 88 92 95 88 91 89 93 93 93 92 88 91 90 90 81 92 88 89 90 91 0 92 91 93 86 93 91 88 93 93 91 93 88 96 89
+sample-86 95 93 87 90 90 88 87 90 90 91 89 89 91 88 83 88 90 93 93 90 91 91 87 95 89 94 89 88 92 90 86 86 89 94 88 92 95 85 87 92 93 92 88 90 91 96 90 90 95 92 89 86 96 89 98 89 92 88 87 91 91 89 85 91 88 83 83 90 94 88 94 84 89 85 91 89 92 91 90 90 91 91 86 91 93 92 0 95 88 87 91 88 87 91 87 87 86 87 83 94
+sample-87 93 94 88 90 96 89 93 93 84 89 92 93 87 89 89 92 88 94 91 83 88 91 90 87 93 86 89 92 89 89 89 90 88 87 89 85 94 92 94 87 88 88 91 92 93 90 92 88 84 93 88 92 90 93 96 92 89 84 92 89 92 90 94 90 92 89 87 89 87 93 87 94 92 88 96 91 91 84 92 88 93 87 95 86 83 91 95 0 93 87 90 86 88 86 90 87 87 84 89 93
+sample-88 88 94 90 86 93 92 85 87 89 87 90 89 95 86 91 85 91 92 86 88 88 90 91 91 90 90 92 90 89 92 93 88 91 89 98 85 92 90 92 91 93 97 90 92 94 93 92 86 91 92 93 88 86 92 85 92 89 93 93 95 92 85 92 90 95 93 95 88 86 93 88 88 93 93 94 90 93 89 89 92 89 89 94 92 90 93 88 93 0 96 97 87 93 83 85 91 89 95 90 88
+sample-89 90 93 87 88 88 87 91 83 90 88 80 87 95 87 88 94 91 93 92 89 87 89 90 82 82 95 90 89 90 88 93 88 91 88 81 86 95 90 90 95 88 87 94 89 85 83 89 90 95 95 91 87 93 82 91 89 87 94 87 90 88 88 87 92 88 92 88 93 95 88 93 95 80 91 92 92 83 88 90 88 85 91 91 84 88 86 87 87 96 0 93 92 89 90 86 89 95 91 88 89
+sample-90 89 88 90 93 95 92 88 95 81 91 88 93 91 86 93 90 92 85 90 89 89 97 91 94 88 89 93 91 90 88 85 94 89 90 94 90 93 93 90 86 84 89 95 91 91 90 84 91 88 85 86 90 92 89 90 89 85 86 94 88 92 93 86 95 89 87 83 93 94 90 92 90 92 91 84 91 89 84 85 88 85 88 89 88 86 93 91 90 97 93 0 88 87 93 93 85 95 92 90 89
+sample-91 96 92 94 93 91 88 89 93 90 92 94 94 87 94 89 90 93 93 88 88 83 90 96 84 91 89 96 88 96 89 87 88 90 86 97 91 85 90 95 91 87 87 92 93 88 95 88 93 88 87 89 86 88 91 92 91 91 96 90 86 90 89 88 95 92 90 91 89 94 91 89 90 89 89 90 88 89 93 88 86 92 86 87 88 89 91 88 86 87 92 88 0 88 93 96 92 91 88 94 94
+sample-92 87 93 89 95 87 91 89 88 86 91 88 87 85 87 91 86 95 95 90 89 90 88 85 93 85 91 87 87 90 85 91 90 87 91 90 89 84 91 89 94 80 88 87 91 92 87 95 87 87 92 88 85 93 89 92 87 92 89 89 83 91 89 87 87 89 90 91 90 86 95 87 92 88 91 93 86 88 93 90 87 89 89 89 86 96 88 87 88 93 89 87 88 0 87 92 84 89 83 89 92
+sample-93 94 85 95 89 95 92 85 89 89 91 86 94 94 78 87 93 90 90 91 89 88 84 91 93 86 94 91 90 87 93 91 92 91 85 88 93 93 93 95 88 90 91 87 87 91 93 93 91 88 87 87 90 87 93 92 95 94 93 87 89 88 91 93 91 90 96 90 94 90 94 88 91 85 88 94 95 95 91 97 90 90 88 95 86 86 93 91 86 83 90 93 93 87 0 84 90 91 95 85 88
+sample-94 95 93 85 89 84 92 89 88 93 91 88 85 91 96 90 91 89 89 85 95 95 93 87 84 90 87 90 87 90 92 91 86 87 89 92 90 91 86 93 92 92 94 93 92 90 89 92 91 91 91 93 84 89 90 90 89 89 89 88 86 87 95 91 93 88 82 86 92 92 88 96 91 92 85 88 88 92 85 86 87 86 94 92 91 90 93 87 90 85 86 93 96 92 84 0 96 91 90 88 90
+sample-95 86 89 84 91 92 87 91 92 92 93 93 88 90 91 92 92 90 87 90 91 92 85 84 93 88 86 96 93 91 86 92 93 90 88 84 90 92 92 93 86 96 86 88 83 89 91 94 87 90 86 88 95 95 92 82 91 97 89 94 89 88 83 89 91 92 91 90 88 94 87 93 87 91 88 89 84 94 91 91 94 90 94 89 88 93 91 87 87 91 89 85 92 84 90 96 0 90 95 87 92
+sample-96 90 91 92 94 89 93 87 93 85 88 95 89 95 91 90 89 91 93 94 93 91 95 90 84 91 91 90 93 89 86 93 86 88 91 90 87 92 91 93 90 96 92 86 83 87 93 92 90 90 91 89 89 90 91 89 92 89 91 88 90 94 92 85 88 93 91 80 90 96 91 87 87 95 91 94 83 93 86 92 91 89 88 89 86 92 93 86 87 89 95 95 91 89 91 91 90 0 89 89 94
+sample-97 93 86 84 90 86 96 89 82 87 90 89 92 90 88 93 93 92 92 87 86 91 88 91 91 94 93 90 92 94 92 82 90 92 95 85 88 86 91 95 92 86 92 90 97 92 91 94 88 84 89 89 84 90 87 93 90 88 88 87 88 85 90 91 85 93 81 90 87 91 90 90 93 88 91 91 91 79 94 95 86 89 83 92 94 87 88 87 84 95 91 92 88 83 95 90 95 89 0 92 93
+sample-98 94 89 88 88 93 92 90 87 87 90 82 93 89 88 91 89 93 90 90 89 88 88 94 91 91 93 93 84 89 91 91 88 89 88 93 90 94 88 85 87 95 92 92 89 88 90 88 88 93 88 89 92 91 91 94 92 92 89 89 91 90 93 93 93 93 93 91 94 96 89 91 88 91 87 90 88 91 94 93 94 86 90 90 90 92 96 83 89 90 88 90 94 89 85 88 87 89 92 0 91
+sample-99 85 93 94 88 89 90 86 90 93 88 91 89 93 90 92 93 91 94 89 93 90 91 84 89 88 87 88 90 91 90 94 91 90 89 90 91 88 97 93 89 83 94 91 90 89 92 86 88 95 95 91 85 88 91 90 91 93 94 94 86 93 93 90 87 89 90 93 90 94 83 92 94 91 93 85 88 92 88 91 91 93 93 91 87 90 89 94 93 88 89 89 94 92 88 90 92 94 93 91 0
diff --git a/galaxy/test-data/mentalist_tree/med_output_00.nwk b/galaxy/test-data/mentalist_tree/med_output_00.nwk
new file mode 100644
index 0000000..9281eaa
--- /dev/null
+++ b/galaxy/test-data/mentalist_tree/med_output_00.nwk
@@ -0,0 +1 @@
+(((((sample-55:41.71429,sample-46:41.28571)Inner36:2.08594,(sample-12:42.79847,sample-6:42.20153)Inner50:1.41406)Inner73:1.17639,(((((sample-89:39.37228,sample-72:40.62772)Inner7:2.88906,(sample-45:40.87658,sample-41:41.12342)Inner20:2.11094)Inner59:0.95241,(sample-27:41.71186,sample-24:41.28814)Inner40:2.29759)Inner77:0.51510,(sample-80:41.63672,(sample-82:40.88750,sample-21:41.11250)Inner19:0.86328)Inner35:2.70365)Inner84:0.48215,(((sample-53:39.58763,sample-9:39.41237)Inner2:3.35795,(sample-4:41.68852,sample-3:42.31148)Inner38:1.14205)Inner55:1.86063,(((sample-99:43.18750,(sample-69:40.72472,sample-11:40.27528)Inner10:2.31250)Inner57:0.78292,(sample-59:40.65000,sample-5:40.35000)Inner9:3.21708)Inner71:0.49007,((sample-64:42.29009,sample-51:41.70991)Inner46:1.50781,((sample-92:39.63235,sample-40:40.36765)Inner14:2.19477,(sample-36:41.94129,sample-0:42.05871)Inner33:1.30523)Inner56:0.99219)Inner72:0.29118)Inner75:0.68624)Inner85:0.26394)Inner90:0.19666)Inner95:0.08868,(((sample-98:41.20513,sample-10:40.79487)Inner21:2.48769,((sample-97:39.56720,sample-76:39.43280)Inner6:1.17105,sample-7:41.32895)Inner23:2.51231)Inner66:1.14558,((sample-74:41.75746,sample-60:41.24254)Inner32:2.66667,(sample-57:40.47159,sample-1:40.52841)Inner11:3.58333)Inner81:0.38567)Inner86:0.41473)Inner97:0.06049,((((((sample-85:40.63889,sample-79:40.36111)Inner18:2.67318,(sample-34:41.67500,(sample-61:41.34740,sample-29:40.65260)Inner22:0.82500)Inner39:1.57682)Inner63:0.86737,(sample-28:42.59722,sample-26:42.40278)Inner45:1.94513)Inner78:0.65710,((sample-68:41.90893,sample-25:41.09107)Inner29:2.04375,(sample-50:42.40701,(sample-38:39.78646,sample-20:39.21354)Inner3:3.09299)Inner58:0.45625)Inner64:1.28040)Inner91:0.18081,(((sample-75:43.23395,(sample-63:42.24892,(sample-49:40.47632,sample-47:39.52368)Inner4:2.25108)Inner41:1.01605)Inner62:0.40142,(sample-67:40.70640,sample-22:41.29360)Inner13:2.78608)Inner65:1.37617,(((sample-73:40.43750,sample-42:40.56250)Inner15:2.78987,(sample-54:40.93373,sample-33:41.06627)Inner16:2.71013)Inner70:0.76270,((sample-95:41.60769,sample-43:41.39231)Inner34:1.04255,(sample-39:39.71809,sample-17:40.28191)Inner5:2.70745)Inner52:1.79980)Inner83:0.34258)Inner89:0.30845)Inner94:0.14628,(((sample-87:41.83004,(sample-48:41.19366,sample-19:40.80634)Inner28:0.66996)Inner42:2.31867,((sample-91:43.22596,(sample-81:42.31971,sample-30:42.68029)Inner47:0.77404)Inner60:0.92154,(sample-90:40.65854,sample-8:40.34146)Inner17:2.82846)Inner76:0.33758)Inner80:0.63334,(((sample-52:42.86528,(sample-71:41.14062,sample-16:41.85938)Inner27:1.63472)Inner54:1.13031,(sample-88:42.35491,(sample-93:39.14796,sample-13:38.85204)Inner1:3.14509)Inner43:1.93219)Inner74:0.91706,(((sample-83:40.94000,sample-70:41.06000)Inner24:2.54713,(sample-58:42.45098,(sample-32:40.81926,sample-15:41.18074)Inner25:1.04902)Inner48:1.32787)Inner68:0.77832,((sample-84:40.79281,sample-56:41.20719)Inner26:1.93092,(sample-18:42.71250,sample-2:42.28750)Inner49:0.81908)Inner61:1.22168)Inner79:0.55950)Inner92:0.07174)Inner93:0.17696)Inner96:0.08099,(((sample-96:40.31319,sample-66:39.68681)Inner8:3.27246,(sample-62:42.03226,sample-35:40.96774)Inner37:1.72754)Inner67:1.19815,((sample-31:42.10677,(sample-44:40.49425,sample-23:40.50575)Inner12:1.89323)Inner51:1.99544,(((sample-78:42.29891,sample-77:42.70109)Inner53:0.82760,(sample-94:40.98713,sample-65:41.01287)Inner31:2.17240)Inner69:0.84881,(sample-86:41.76705,(sample-37:41.45833,sample-14:41.54167)Inner30:0.73295)Inner44:2.08869)Inner82:0.34831)Inner87:0.14560)Inner88:0.30133)Inner98:0.00000;
diff --git a/galaxy/test-data/mentalist_tree/small_input_00.tsv b/galaxy/test-data/mentalist_tree/small_input_00.tsv
new file mode 100644
index 0000000..e1df68c
--- /dev/null
+++ b/galaxy/test-data/mentalist_tree/small_input_00.tsv
@@ -0,0 +1,11 @@
+ sample-0 sample-1 sample-2 sample-3 sample-4 sample-5 sample-6 sample-7 sample-8 sample-9
+sample-0 0 10 10 9 10 10 8 9 10 10
+sample-1 10 0 9 9 8 7 9 7 9 9
+sample-2 10 9 0 10 9 10 9 10 10 10
+sample-3 9 9 10 0 10 10 8 10 9 8
+sample-4 10 8 9 10 0 7 9 10 10 6
+sample-5 10 7 10 10 7 0 10 8 9 10
+sample-6 8 9 9 8 9 10 0 10 8 7
+sample-7 9 7 10 10 10 8 10 0 9 9
+sample-8 10 9 10 9 10 9 8 9 0 8
+sample-9 10 9 10 8 6 10 7 9 8 0
diff --git a/galaxy/test-data/mentalist_tree/small_output_00.nwk b/galaxy/test-data/mentalist_tree/small_output_00.nwk
new file mode 100644
index 0000000..e7da3cd
--- /dev/null
+++ b/galaxy/test-data/mentalist_tree/small_output_00.nwk
@@ -0,0 +1 @@
+((sample-8:4.42708,(sample-3:4.32812,(sample-6:3.42500,sample-0:4.57500)Inner4:0.17188)Inner5:0.32292)Inner6:0.17969,(sample-2:5.13281,(sample-7:3.87500,(sample-5:3.78571,sample-1:3.21429)Inner2:0.12500)Inner3:0.86719)Inner7:0.05469,(sample-9:2.87500,sample-4:3.12500)Inner1:1.32031)Inner8:0.00000;
diff --git a/galaxy/tools/mentalist_distance/mentalist_distance.xml b/galaxy/tools/mentalist_distance/mentalist_distance.xml
index f41fa82..29a79d3 100644
--- a/galaxy/tools/mentalist_distance/mentalist_distance.xml
+++ b/galaxy/tools/mentalist_distance/mentalist_distance.xml
@@ -15,16 +15,16 @@
-
-
+
+
-
-
+
+
-
-
+
+
\n")
+
+def process_input_matrix(input_matrix):
+ """ Converts an array-of-arrays containting sample IDs and distances
+ into a BioPython DistanceMatrix object
+ """
+ input_matrix.pop(0)
+ sample_names = [row[0] for row in input_matrix]
+ for row in input_matrix:
+ row.pop(0)
+ distance_matrix = []
+ for input_matrix_row in input_matrix:
+ distance_matrix.append([int(i) for i in input_matrix_row])
+ """ np.tril() converts a matrix like this: [[0 1 2]
+ [1 0 1]
+ [2 1 0]]
+ ...into this: [[0 0 0]
+ [1 0 0]
+ [2 1 0]]
+ ...but what we need to pass to DistanceMatrix() is this: [[0]
+ [1 0]
+ [2 1 0]]
+ ...so that's what the (somewhat cryptic) code below does.
+ """
+ distance_matrix = np.tril(np.array(distance_matrix))
+ num_rows = distance_matrix.shape[0]
+ """ masking the distance matrix with tril_indices gives a linearized
+ distance matrix [0 1 0 2 1 0] that we need to re-construct into [[0], [1, 0], [2, 1, 0]]
+ """
+ lower_triangular_idx_mask = np.tril_indices(num_rows)
+ linear_distance_matrix = distance_matrix[lower_triangular_idx_mask]
+ distance_matrix = []
+ min = 0
+ max = 1
+ for i in range(num_rows):
+ distance_matrix.append(linear_distance_matrix[min:max].tolist())
+ min = max
+ max = max + (i + 2)
+ distance_matrix = DistanceMatrix(names=sample_names, matrix=distance_matrix)
+ return distance_matrix
+
+def main():
+ if len(sys.argv) < 2:
+ usage()
+ sys.exit(1)
+
+ input_file = sys.argv[1]
+ reader = csv.reader(open(input_file, "r"), delimiter="\t")
+ input_matrix = list(reader)
+ distance_matrix = process_input_matrix(input_matrix)
+ constructor = DistanceTreeConstructor()
+ tree = constructor.nj(distance_matrix)
+ Bio.Phylo.write(tree, sys.stdout, 'newick')
+
+if __name__ == '__main__':
+ main()
diff --git a/galaxy/tools/mentalist_tree/mentalist_tree.xml b/galaxy/tools/mentalist_tree/mentalist_tree.xml
new file mode 100644
index 0000000..8c02546
--- /dev/null
+++ b/galaxy/tools/mentalist_tree/mentalist_tree.xml
@@ -0,0 +1,35 @@
+
+
+ biopython
+
+ '${output}'
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+