dobór naturalny w sekwencjach genóteoria neutralna (kimury) ! większość obserwowanych różnic...
TRANSCRIPT
Dobór naturalny w sekwencjach genów
Metody analizy
Mutacje a różnice w sekwencji } Różnice sekwencji między gatunkami } Polimorfizm wewnątrzpopulacyjny } Obserwowane są jako różnice te mutacje, które
utrwaliły się w populacji całkowicie lub częściowo (polimorfizmy wewnątrzpopulacyjne)
Mutacje } Szkodliwe – są szybko eliminowane przez dobór
negatywny (oczyszczający) } Neutralne – nie wpływają na funkcję produktu, nie
podlegają selekcji } Korzystne – są szybko utrwalane w populacji przez
dodatni dobór naturalny
Teoria neutralna (Kimury) } Większość obserwowanych różnic w sekwencjach,
zarówno wewnątrzpopulacyjnych, jak i międzygatunkowych to mutacje neutralne, utrwalane przez dryf genetyczny
} Mutacje niekorzystne są eliminowane i nie obserwujemy ich (modyfikacja – mutacje „prawie neutralne” nie są w pełni eliminowane i mogą się w pewnych warunkach utrwalać)
} Mutacje korzystne są bardzo rzadkie, mają znaczenie ale w analizach ilościowych są pomijalne
} Teoria neutralna jest zbytnim uproszczeniem, podobnie jak ortodoksyjny selekcjonizm
} Mutacje neutralne stanowią większość, ale mutacje podlegające doborowi nie są w większości sekwencji pomijalne
} Niektóre sekwencje ewoluują w sposób bliższy modelowi neutralnemu, w innych wyraźne jest działanie doboru
Zegar molekularny } Jeżeli teoria neutralna jest prawdziwa to tempo
zmian zależy jedynie od działania doboru negatywnego
} Tempo zmian będzie różne dla różnych sekwencji ale takie samo w różnych gałęziach drzewa dla danej sekwencji
Jak szukać śladów działania doboru
} Większość sekwencji genów zmienia się jednostajnie, w tempie wyznaczanym przez eliminację mutacji niekorzystnych – “zegar molekularny”
} Odstępstwa od jednostajnego tempa w określonej gałęzi – dobór specyficzny dla tej gałęzi
Cz!owiek
Szympans
Goryl
Orangutan
Cz!owiek
Szympans
Goryl
Orangutan
Cz!owiek
Szympans
Goryl
Orangutan
Równomierne tempo zmian
Przyspieszone zmiany Spowolnione zmiany
Badanie doboru
} Założenie: mutacje synonimiczne są neutralne, sekwencje porównywane są parami Ka (dN) – liczba mutacji niesynonimicznych na liczbę możliwych miejsc niesynonimicznych
Ks (dS) – liczba mutacji synonimicznych na liczbę możliwych miejsc synonimicznych
Stosunek Ka/Ks (ω) jest miarą działania doboru
ω=1 – ewolucja neutralna ω<1 – dobór negatywny (oczyszczający) ω>1 – dobór pozytywny
Badanie doboru } Wartość ω rzadko przekracza 1 dla całej sekwencji
(wyjątek np. geny MHC) } Średnia wartość ω w porównaniach między
naczelnymi a gryzoniami wynosi 0,2, między człowiekiem a szympansem 0,4
} Odchylenie ω od średniej dla konkretnego genu w konkretnej linii ewolucyjnej może świadczyć o działaniu doboru
} W sekwencji mogą występować obszary o różnej wartości ω, wskazując na działanie doboru na poszczególne regiony a nawet pozycje aminokwasowe w białku
Badanie doboru II } Porównanie zmian synonimicznych i
niesynonimicznych w obrębie populacji danego gatunku i pomiędzy gatunkami.
Test McDonalda-Kreitmana } Stosunek mutacji synonimicznych do
niesynonimicznych w obrębie populacji vs. taki sam stosunek dla różnic między gatunkami
} Jeżeli zmiany są neutralne, wówczas stosunek ten powinien być w obu przypadkach taki sam
Przykład: gen ADH u trzech gatunków Drosophila
synonimiczne niesynonimiczne stosunek
wewnątrzpopulacyjne 42 2 ~0,05
międzygatunkowe 17 7 ~0,41
Wniosek: zmiany niesynonimiczne są szybko utrwalane w specjacji – nie są neutralne
Inne testy } Test HKA (Hudson, Kreitman, Aguadé) –
statystyczna korelacja zmienności wewnątrzpopulacyjnej i międzygatunkowej dla mutacji synonimicznych i niesynonimicznych
} Test Tajimy – porównuje częstość polimorfizmów wewnątrzpopulacyjnych z przewidywaniami teorii neutralnej
} Test Fu & Li – podobny do testu Tajimy, wykorzystuje dane filogenetyczne
Testowanie hipotez } Kryterium wiarygodności } Program PAML (Phylogenetic Analysis by
Maximum Likelihood) – autor Ziheng Yang
} http://abacus.gene.ucl.ac.uk/software/paml.html
Wiarygodność (likelihood) } Wiarygodność=prawdopodobieństwo uzyskania danych przy
założeniach modelu i jego określonych parametrach: P(dane|model)
} Prawdopodobieństwo dotyczy zdarzenia przyszłego przy znanym modelu - np. jeżeli rzucam idealną (symetryczną) monetą, to
prawdopodobieństwo uzyskania orła = 1/2 (dwóch orłów 1/4 itd.)
} Wiarygodność odnosi się do wyjaśnienia zjawiska, które już zaszło - np. jeżeli przy dużej liczbie rzutów monetą uzyskuje 50%
orłów, to najbardziej wiarygodnym modelem jest ten, w którym moneta jest symetryczna
Test ilorazu wiarygodności
} LRT (Likelihood Ratio Test) } Dla porównania dwóch zagnieżdżonych modeli o
różnej liczbie parametrów
} Dla każdego modelu oblicza się wiarygodność (L1, L2)
} Istotność LR określa się porównując z wartością χ2 dla df równego różnicy w liczbie parametrów obu modeli
LR = 2×[ln(L1)−ln(L2)]#
Przykład
#1
Model 0 – wartość ω taka sama w całym drzewie: wiarygodność L0
Model 1 – wartość ω w gałęzi #1 inna, niż w pozostałych gałęziach drzewa: wiarygodność L1
Czy ewolucja w gałęzi #1 jest szybsza?
LR = 2×[ln(L1)−ln(L0)]#
Czy LR większe od χ2 dla df=1?
Pliki programu PAML } Sekwencje: format PHYLIP (np. z Clustal) } Drzewo: format Newick, ew. z zaznaczanymi
gałęziami } plik kontrolny: codeml.ctl
Notacja nawiasowa (Newick) dla drzew
(Macaca,Cerco,(Pongo,(Gorilla,(Homo,Chimp))));
(Macaca,Cerco,(Pongo,(Gorilla,(Homo#1,Chimp))));
(Macaca,Cerco,(Pongo,(Gorilla,(Homo,Chimp))$1));
#1
#1
#1 #1
#1
#1
(Macaca,Cerco,(Pongo,(Gorilla,(Homo#2,Chimp))$1));
#2
#1 #1
#1
#1
seqfile = treefile = outfile = noisy = 9 * 0,1,2,3,9: how much rubbish on the screen verbose = 2 * 1: detailed output, 0: concise output runmode = 0 * 0: user tree; 1: semi-automatic; 2: automatic * 3: StepwiseAddition; (4,5):PerturbationNNI seqtype = 1 * 1:codons; 2:AAs; 3:codons-->AAs CodonFreq = 2 * 0:1/61 each, 1:F1X4, 2:F3X4, 3:codon table clock = 0 * 0: no clock, unrooted tree, 1: clock, rooted tree model = 0 * models for codons: * 0:one, 1:b, 2:2 or more dN/dS ratios for branches NSsites = 0 * dN/dS among sites. 0:no variation, 1:neutral, 2:positive icode = 0 * 0:standard genetic code; 1:mammalian mt; 2-10:see below fix_kappa = 0 * 1: kappa fixed, 0: kappa to be estimated kappa = 2 * initial or fixed kappa fix_omega = 0 * 1: omega or omega_1 fixed, 0: estimate omega = 1 * initial or fixed omega, for codons or codon-transltd AAs fix_alpha = 1 * 0: estimate gamma shape parameter; 1: fix it at alpha alpha = .0 * initial or fixed alpha, 0:infinity (constant rate) Malpha = 0 * different alphas for genes ncatG = 4 * # of categories in the dG or AdG models of rates getSE = 0 * 0: don't want them, 1: want S.E.s of estimates RateAncestor = 1 * (1/0): rates (alpha>0) or ancestral states (alpha=0) fix_blength = 1 * 0: ignore, -1: random, 1: initial, 2: fixed method = 0 * 0: simultaneous; 1: one branch at a time
Modele
} Modele gałęzi (branch models) - czy ω w którejś gałęzi drzewa (lub grupie gałęzi) odbiega od pozostałych gałęzi drzewa
} Modele miejsc (site models) - jakie są klasy miejsc (kodonów) w sekwencji pod względem parametru ω (czy we wszystkich pozycjach tak samo działa dobór)?
} Modele gałęzi i miejsc (branch and site models) - czy w którejś gałęzi drzewa pojawiają się klasy kodonów, na które inaczej działa dobór?
Modele gałęzi } Hipoteza zerowa - ω takie samo we wszystkich
gałęziach drzewa } Hipoteza testowana - istnieją gałęzie o ω innym,
niż w reszcie drzewa } Model swobodny - każda gałąź ma inną wartość ω
} df = różnica liczby parametrów (każda wyróżniona gałąź dodaje 1)
Modele gałęzi
seqfile = treefile = outfile = noisy = 9 * 0,1,2,3,9: how much rubbish on the screenverbose = 2 * 1: detailed output, 0: concise outputrunmode = 0 * 0: user tree; 1: semi-automatic; 2: automatic * 3: StepwiseAddition; (4,5):PerturbationNNI seqtype = 1 * 1:codons; 2:AAs; 3:codons-->AAsCodonFreq = 2 * 0:1/61 each, 1:F1X4, 2:F3X4, 3:codon tableclock = 0 * 0: no clock, unrooted tree, 1: clock, rooted treemodel = 0 * models for codons: * 0:one, 1:b, 2:2 or more dN/dS ratios for branchesNSsites = 0 * dN/dS among sites. 0:no variation, 1:neutral, 2:positiveicode = 0 * 0:standard genetic code; 1:mammalian mt; 2-10:see belowfix_kappa = 0 * 1: kappa fixed, 0: kappa to be estimatedkappa = 2 * initial or fixed kappafix_omega = 0 * 1: omega or omega_1 fixed, 0: estimate omega = 1 * initial or fixed omega, for codons or codon-transltd AAsfix_alpha = 1 * 0: estimate gamma shape parameter; 1: fix it at alphaalpha = .0 * initial or fixed alpha, 0:infinity (constant rate)Malpha = 0 * different alphas for genesncatG = 4 * # of categories in the dG or AdG models of ratesgetSE = 0 * 0: don't want them, 1: want S.E.s of estimatesRateAncestor = 1 * (1/0): rates (alpha>0) or ancestral states (alpha=0)fix_blength = 1 * 0: ignore, -1: random, 1: initial, 2: fixedmethod = 0 * 0: simultaneous; 1: one branch at a time
Modele miejsc } Przeprowadzane przy założeniu stałego ω
we wszystkich gałęziach drzewa } Hipoteza zerowa (M1a): dwie klasy kodonów:
neutralne (ω=1) i selekcjonowane negatywnie (ω<1)
} Hipoteza testowana (M2a): trzy klasy kodonów: neutralne (ω=1), selekcjonowane negatywnie (ω<1) i selekcjonowane pozytywnie (ω>1)
} Są też bardziej złożone modele o innej dystrybucji miejsc
Modele miejsc
seqfile = treefile = outfile = noisy = 9 * 0,1,2,3,9: how much rubbish on the screenverbose = 2 * 1: detailed output, 0: concise outputrunmode = 0 * 0: user tree; 1: semi-automatic; 2: automatic * 3: StepwiseAddition; (4,5):PerturbationNNI seqtype = 1 * 1:codons; 2:AAs; 3:codons-->AAsCodonFreq = 2 * 0:1/61 each, 1:F1X4, 2:F3X4, 3:codon tableclock = 0 * 0: no clock, unrooted tree, 1: clock, rooted treemodel = 0 * models for codons: * 0:one, 1:b, 2:2 or more dN/dS ratios for branchesNSsites = 0 * dN/dS among sites. 0:no variation, 1:neutral, 2:positiveicode = 0 * 0:standard genetic code; 1:mammalian mt; 2-10:see belowfix_kappa = 0 * 1: kappa fixed, 0: kappa to be estimatedkappa = 2 * initial or fixed kappafix_omega = 0 * 1: omega or omega_1 fixed, 0: estimate omega = 1 * initial or fixed omega, for codons or codon-transltd AAsfix_alpha = 1 * 0: estimate gamma shape parameter; 1: fix it at alphaalpha = .0 * initial or fixed alpha, 0:infinity (constant rate)Malpha = 0 * different alphas for genesncatG = 4 * # of categories in the dG or AdG models of ratesgetSE = 0 * 0: don't want them, 1: want S.E.s of estimatesRateAncestor = 1 * (1/0): rates (alpha>0) or ancestral states (alpha=0)fix_blength = 1 * 0: ignore, -1: random, 1: initial, 2: fixedmethod = 0 * 0: simultaneous; 1: one branch at a time
Modele gałęzi i miejsc } Zmienna ω w wyróżnionych gałęziach, w gałęziach
tych pojawia się dodatkowa klasa kodonów o ω>1 } Trzy klasy kodonów neutralne (ω=1),
selekcjonowane negatywnie (ω<1) i selekcjonowane pozytywnie (ω>1)
} Hipoteza zerowa: w trzeciej klasie ω=1 (brak selekcji pozytywnej)
Modele gałęzi i miejsc
seqfile = treefile = outfile = noisy = 9 * 0,1,2,3,9: how much rubbish on the screenverbose = 2 * 1: detailed output, 0: concise outputrunmode = 0 * 0: user tree; 1: semi-automatic; 2: automatic * 3: StepwiseAddition; (4,5):PerturbationNNI seqtype = 1 * 1:codons; 2:AAs; 3:codons-->AAsCodonFreq = 2 * 0:1/61 each, 1:F1X4, 2:F3X4, 3:codon tableclock = 0 * 0: no clock, unrooted tree, 1: clock, rooted treemodel = 2 * models for codons: * 0:one, 1:b, 2:2 or more dN/dS ratios for branchesNSsites = 2 * dN/dS among sites. 0:no variation, 1:neutral, 2:positiveicode = 0 * 0:standard genetic code; 1:mammalian mt; 2-10:see belowfix_kappa = 0 * 1: kappa fixed, 0: kappa to be estimatedkappa = 2 * initial or fixed kappafix_omega = 0 * 1: omega or omega_1 fixed, 0: estimate omega = 1 * initial or fixed omega, for codons or codon-transltd AAsfix_alpha = 1 * 0: estimate gamma shape parameter; 1: fix it at alphaalpha = .0 * initial or fixed alpha, 0:infinity (constant rate)Malpha = 0 * different alphas for genesncatG = 4 * # of categories in the dG or AdG models of ratesgetSE = 0 * 0: don't want them, 1: want S.E.s of estimatesRateAncestor = 1 * (1/0): rates (alpha>0) or ancestral states (alpha=0)fix_blength = 1 * 0: ignore, -1: random, 1: initial, 2: fixedmethod = 0 * 0: simultaneous; 1: one branch at a time