# A Linear-Time Algorithm for the Perfect Phylogeny - CS-CSIF

```A Linear-Time Algorithm for the
Perfect Phylogeny Haplotyping
(PPH) Problem
Zhihong Ding, Vladimir Filkov, Dan Gusfield
Department of Computer Science
University of California, Davis
RECOMB 2005
1
Haplotypes to Genotypes



Each individual has two “copies” of each
chromosome.
At each site, each chromosome has one of
two states denoted by 0 and 1
From haplotypes to genotypes:
For each site of an individual, if both haplotypes
have state 0, then the genotype has state 0. Same
rule for state 1. If two haplotypes have state 0 and
1, or 1 and 0, then the state of the genotype is 2.
2
Haplotypes to Genotypes
Sites: 1 2 3 4 5 6 7 8 9
0 1 1 1 0 0 1 1 0 Two haplotypes per individual
1 1 0 1 0 0 1 0 0
Merge the haplotypes
2 1 2 1 0 0 1 2 0 Genotype for the individual
3
Genotypes to Haplotypes
For each site, if the genotype has state 0 or 1, then
the two haplotypes must have states 0, 0 or 1, 1.
If the genotype has state 2, the two haplotypes can
either have states 0, 1 or 1, 0.
0 1 1 1 0 0 1 1 0
Two haplotypes per individual
1 1 0 1 0 0 1 0 0
2 1 2 1 0 0 1 2 0 Genotype for the individual
4
Haplotype Inference Problem

For disease association studies, haplotype data
is more valuable than genotype data, but
haplotype data is harder and more expensive
to collect than genotype data.

Haplotype Inference Problem: Given a set
of n genotypes, determine the original set of n
haplotype pairs that generated the n genotypes.

NIH leads HAPMAP project to find common
haplotypes in the human population.
5
Haplotype Inference Problem



If the genotype has state 2 at k sites, there
are 2k – 1 possible explaining haplotype
pairs.
How to determine which haplotype pair is
the original one generating the genotype?
We need a model of haplotype evolution
to help solve the haplotype inference
problem.
6
The Perfect Phylogeny Model of
Haplotype Evolution
sites 12345
Ancestral haplotype 00000
1
4
Site mutations on edges
3
10100
10000
2
00010
5
01010
01011
Extant haplotypes at the leaves
7
Assumptions of Perfect Phylogeny
Model

No recombination, only mutation.

Infinite-site assumption: one mutation per
site.
8
The Perfect Phylogeny Haplotyping
(PPH) Problem
Given a set of genotypes, find an explaining
set of haplotypes that fits a perfect phylogeny
Site
a
b
c
1
2
0
1
2
2
2
0
Genotype matrix
a
a
b
b
c
c
1
1
0
0
0
1
1
2
1
0
1
0
1
0
cc
0 10 10
Haplotype matrix
2
b
00
a
10
a
01
Perfect phylogeny
b
01
9
Prior Work

Several existing algorithms that solve the
PPH problem, but none of them is in
linear time.

Our contribution:
A linear time algorithm.
 Our implementation is about 250 times faster
than the fastest one of previous algorithms
for large data set.

10
A P-Class of PPH Solutions


P-Class: Maximum common
subgraph in all PPH solutions
Each P-Class consists of two subtrees
1
Sites: 1 2 3 4 5
a
b
Genotypes
c
d
22200
20022
22202
20020
Genotype Matrix
root
5
a,d
b,c
4
2
3
b,d
a,c
One PPH Solution11
P-Class Property of PPH Solutions

All PPH solutions can be obtained by choosing how
to flip each P-Class.
Switching
points
root
1
a,d 5
b,c
4
Switching
points
4
2
3
1
b,d
a,c
One PPH Solution
b,d
root
5 a,d
2 b,c
3
a,c
Second PPH Solutions
12
The Key Theorem

Every PPH solution can be obtained by
choosing a flip for each P-Class.

Conversely, after fixing one P-Class, every
distinct choice of flips of P-Classes, leads to
a distinct PPH solution.

If there are k P-Classes, there are 2k – 1
distinct PPH solutions.
13




Contains classes
Each class in the shadow tree is a subgraph
of a P-Class
Merging classes results in larger classes,
classes are never split
Contains tree edges and shadow edges
14
The Algorithm

Process the genotype matrix one row at a
time, starting at the first row, and modify

The genotype matrix only contains entries
of value 0 and 2.
15
Overview of the Algorithm
for One Row

Procedure FirstPath

Procedure SecondPath

Procedure FixTree

Procedure NewEntries
16
OldEntryList

3
OldEntryList : column indices that have
entries of value 2 in this row and also have
entries of value 2 in some previous rows
22200
20022
22202
20020
OldEntryList for row 3:
1, 2, 3, 5
Genotype Matrix
17
Procedures FirstPath and
SecondPath

FirstPath : Construct a first path towards the
root of the shadow tree which passes through
tree edges of as many columns in OldEntryList
as possible

SecondPath : Construct a second path towards
the root of the shadow tree which passes
through tree edges of columns in OldEntryList
and not on the first path
18
First Two Rows
root
Genotype Matrix
1
2
3
22200
20022
22202
20020
OldEntryList for row 3 :
1, 2, 3, 5
1
1
2
3
4
5
4
5
2
3
19
Algorithm – FirstPath
root
OldEntryList: 1, 2, 3, 5
CheckList: 3 , 2
Edges 4 and 5
cannot be on the
same path to the
root in any PPH
solution
1
2
3
4
5
1
4
5
2
3
20
Algorithm – SecondPath
root
OldEntryList: 1, 2, 3, 5
CheckList: 2, 3
1
1
2
3
4
5
4
5
2
3
21
Sites: 1 2 3 4 5
a
22200
b
c
d
1 2
4
5
3
root
20022
22202
20020
1
1
One PPH Solution
Genotype Matrix
3
2
4
5
4
5
2
3
22
root
1
2
4
5
1
4
b,c
2
1 a,d
4 2
3
b,d
3
5
5
3
a,c
Second PPH Solution
23
Implementation – Leaf Count

Leaf count of column i (L[i]):
the number of 2's plus twice
the number of 1's in column i.
a
b
c
d
1 2
3
4
1
0
2
2
0
2
2
0
0
0
0
2

L[i] is the number of leaves
below mutation i, in every
perfect phylogeny for the
genotype matrix.

Along any path to the root in
any PPH solution, the
Leaf
4
successive edges are labeled
Count:
by columns with strictly
increasing leaf counts.
1
2
0
0
3 2 1
24
Time Complexity




Constant number of simple operations on
each edge per row
Each traversal in the shadow tree goes
through O(m) edges.
The algorithm does constant number of
traversals in the shadow tree for each row.
Total time: O(nm)
n, m are the number of rows and
columns in the genotype matrix.
25
Results
Average Running Times (seconds)
Sites (m) Individuals (n) Dataset
DPPH O(nm2)
Our Alg. O(nm)
300
150
30
1.07
0.05
500
250
30
5.72
0.13
1000
500
30
45.85
0.48
2000
1000
10
467.18
1.89
26
Thank you !
http://wwwcsif.cs.ucdavis.edu/~gusfield/lpph/
27
```

47 cards

32 cards

26 cards

32 cards

26 cards