forked from tgvaughan/bioinf702_lectures
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathphylogenetics.dot
87 lines (53 loc) · 3.49 KB
/
phylogenetics.dot
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
digraph G {
d2toptions ="-ftikz --tikzedgelabels --styleonly --autosize -traw -c --straightedges";
d2tfigpreamble = "\tikzstyle{model}=[draw=yellow!50, very thick, rectangle,fill=yellow!20], \tikzstyle{objective}=[draw=gray!50, very thick, rectangle,fill=gray!20], \tikzstyle{data}=[draw=red!50, very thick, fill=red!20], \tikzstyle{algo}=[draw=blue!50, very thick, fill=blue!20,ellipse], \tikzstyle{treestyle}=[draw=green!50, very thick, fill=green!20];";
d2tdocpreamble = "\tikzset{every text node part/.style={align=center}}"
mindist = 0.5;
graph [fontname = "arial", ranksep="0.3", nodesep="0.4"];
node [fontname = "arial"];
edge [fontname = "arial", arrowhead="vee"];
sequences [ label="DNA\\\\sequences", style=data];
sequence_alignment [ label="MSA\\\\algorithm", style=algo ];
msa [ label="Multiple\\\\sequence\\\\alignment\\\\($D$: $n \times L$)", style=data];
distances [ label="Genetic\\\\distance\\\\matrix\\\\($\hat d$: $n \times n$)",style=data];
felsenstein_pruning [ label="Felsenstein's\\\\pruning\\\\algorithm\\\\$\\Pr(D|T,Q)$", style="algo" ];
substmodel [ label="CTMC\\\\Substitution\\\\model ($Q$)", style=model];
treeprior [ label="Model-based\\\\tree prior\\\\$f(T|\\theta)$", style=model];
matrix_exponentiation [label="Matrix\\\\exponentiation\\\\$P(d)=\exp(Qd)$", style="algo"];
maximum_likelihood [label="Maximum\\\\likelihood\\\\tree", style=treestyle ];
bayesian_inference [label="Bayesian\\\\MCMC\\\\algorithm\\\\$f(T,Q,\theta|D)$", style=algo ];
bayesian_posterior [label="Posterior\\\\distribution\\\\on trees", style=treestyle];
ml_objective [label="Maximum\\\\likelihood\\\\objective", shape=rect, style=objective];
ls [label="Least-squares\\\\tree", style=treestyle];
distance_correction [label="distance\\\\correction\\\\$\hat d_{ij}=f_{corr}(p_{ij})$", style=algo]
ls_objective [label="Least-squares\\\\objective", style=objective];
nj_algorithm [ label="Neighbour-joining\\\\algorithm\\\\$O(n^3)$", style=algo];
upgma_algorithm [ label="UPGMA\\\\algorithm\\\\$O(n^2)$ or $O(n^3)$", style=algo];
parsimony_algorithm [ label="parsimony\\\\algorithm\\\\$O(nL)$",style=algo];
parsimony_objective [label="Maximum\\\\parsimony\\\\objective", shape=rect, style=objective];
maximum_parsimony [label="Maximum\\\\parsimony\\\\tree\\\\(unrooted)", style=treestyle];
nj_tree [ label="Neighbour-joining\\\\tree\\\\(unrooted)", style=treestyle];
upgma_tree [ label="UPGMA\\\\tree\\\\(rooted, ultrametric)", style=treestyle];
substmodel -> distance_correction;
substmodel -> matrix_exponentiation;
matrix_exponentiation -> felsenstein_pruning[label="Transition\\\\probabilities,\\\\$P(d)$"];
felsenstein_pruning -> bayesian_inference;
treeprior -> bayesian_inference[weight=2];
felsenstein_pruning -> ml_objective;
ml_objective -> maximum_likelihood[label="heuristic\\\\tree\\\\search"];
parsimony_algorithm -> parsimony_objective;
parsimony_objective -> maximum_parsimony[label="heuristic\\\\tree\\\\search"];
sequences -> sequence_alignment
sequence_alignment -> msa;
msa -> distance_correction[label="p-distances\\\\($p$: $n \times n$)"];
distance_correction -> distances;
msa -> parsimony_algorithm
msa -> felsenstein_pruning
bayesian_inference -> bayesian_posterior;
distances -> nj_algorithm
distances -> upgma_algorithm
distances -> ls_objective;
ls_objective -> ls[label="heuristic\\\\tree\\\\search"];
nj_algorithm -> nj_tree
upgma_algorithm -> upgma_tree
}