http://www2.unil.ch/cbg/api.php?action=feedcontributions&user=Anonymous&feedformat=atomCBG - User contributions [en]2024-03-29T07:07:31ZUser contributionsMediaWiki 1.31.12http://www2.unil.ch/cbg/index.php?title=EddiMckinzie551&diff=3343EddiMckinzie5512012-08-20T18:55:18Z<p>Anonymous: </p>
<hr />
<div>A [http://worldclocksite.com world clock] is a power tool used to indicate , keep, and co-ordinate time. The http://worldclocksite.com is derived ultimately (via Dutch, Northern French, and Medieval Latin) from the Celtic words clagan and clocca meaning "bell". A silent instrument missing such a mechanism has traditionally been known as a timepiece. In general usage today a "clock" refers to any device for evaluating and displaying the [http://worldclocksite.com/time-zones/ time zones]. Watches and other timepieces that can be carried on one's somebody are often distinguished from clocks.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3149Evolution of polymorphism in plants2012-06-05T22:54:49Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
----<br />
<br />
'''Travail séparé: estimation des paramètres les plus vraisemblables pour le modèle Ornstein-Uhlenbeck (OU) '''<br />
:Le but de ce travail était d'implémenter l'algoritme donné dans l'appendice de l'article de Butler et King. Cet algoritme permet de calculer <br />
le paramètre alpha le plus vraisemblable pour un arbre phylogénique et des traits quantitatifs donnés. Cette partie est écrite en français pour faciliter la lecture, comme la déscription du programme est peut-ètre compliquée par moments. <br />
<br />
'''Etudiants:'''<br />
:Georg Hoffmann<br />
<br />
'''Introduction:Le modèle Ornstein-Uhlenbeck (OU) '''<br />
<br />
:Pour simuler l'évolution d'un trait quantitatif, le modèle OU tient compte à la fois de la sélection, qui tend à faire évoluer le trait vers un optimum<br />
et d'une composante aléatoire, qui représente la dérive.<br />
<br />
<br />
[[File:ou.jpg]]<br />
<br />
<br />
<br />
pour faire une simulation avec ce modèle, il faut déterminer quelles sont les forces de sélection et de dérive, données par alpha et sigma,<br />
ainci que la valeur de l'optimum, donné ici par béta. Ces paramètres dépendent de l'arbre phylogénique et des valeurs des traits quantitatifs<br />
qu'on utilise. <br />
<br />
[[File:ArbreOU.jpg]]<br />
<br />
<br />
Sur cet arbre on peut voir un exemple de modèle OU avec deux optimums. les traits des espèces 1 et 2 sont soumis à un nouveau régime sélectif, caractérisé par un nouvel optimum après la spéciation des espèces 1 et 2.<br />
Dans ce modèle, les optimums peuvent uniquement changer lors d'une spéciation et les paramètres alpha et sigma sont les mèmes pour tout l'arbre.<br />
<br />
Le modèle pour lequel j'ai essayé d'estimer les paramètres, est la forme la plus simple du modèle OU, il n'y a qu'un optimum sélectif pour tout l'arbre.<br />
<br />
''''L'optimisation''''<br />
<br />
La vraisemblance du modèle est donnée par l'équation (1)<br />
nous utiliserons u=-2log(L) pour déterminer le maximum de L, qui est le minimum de u.<br />
<br />
[[File:formulesou.jpg]]<br />
<br />
les équations (3) et (4) donnent les valeurs de sigma et theta qui annulent les dérivées partielles de u, une condition pour avoir un minimum.<br />
En utilisant ces valeurs de sigma et theta, on obtient (5), une manière d'écrire u qui ne dépend que de alpha. <br />
<br />
c'est cette fonction u (5) qui sera minimisée pour trouver la valeur de alpha la plus vraisemblable. <br />
---- <br />
<br />
'''L'arbre phylogénique avec dendropy:'''<br />
<br />
[[File:ArbreOUnodes.jpg]]<br />
<br />
:dendropy représente l'arbre avec une série d'embranchements (nodes) qui correspondent à la racine,<br />
aux espèces actuelles et aux embranchements internes.<br />
Chaque node a un age, un nom (label) et un node parent (sauf la raçine). <br />
<br />
<br />
<br />
tree1 = Tree(stream=open("dated_tree2.tre"), schema="newick") <br />
tree1.calc_node_ages(check_prec="TRUE")<br />
<br />
<br />
<br />
ici on charge l'arbre, et on assigne les ages aux nodes.<br />
<br />
Il y a juste un petit problème: les ages sont inversés (l'age de la raçine est le plus grand, alors qu'il doit ètre 0) <br />
Pour y remédier on détermine l'age le plus élevé, et on lui soustrait l'age du node pour trouver quel age <br />
il aurait en comptant dans le sens inverse.<br />
<br />
<br />
first=0 <br />
for nd in tree1.age_order_node_iter(descending=True): <br />
if(first==0): <br />
T=nd.age*time <br />
first=1 <br />
rootlabel=nd.label <br />
<br />
----<br />
<br />
'''la Weight Matrix:'''<br />
<br />
La Weight Matrix “W“ est calculée de la manière suivante:<br />
<br />
[[File:W.jpg]]<br />
<br />
la première colonne de la weight matrix comporte une seule valeur pour toutes les espèces:<br />
exp(-a*T), on peut donc la remplir simplement en connaissant le nombre d'espèces actuelles dans l'arbre.<br />
Ceci correspond à la colonne i0 dans la formule.<br />
<br />
somme=0 <br />
w_prov=[] <br />
W=[] <br />
for p in range(0, nombre_especes): <br />
w_prov.append(exp(-a*T)) <br />
<br />
<br />
On peut ensuite passer à l' autre colonne de la matrice avec la seconde équation. <br />
L'élément béta dans la formule vient d'une matrice contenant, pour chaque branche, et chaque espèce,<br />
1 si la branche est sur le chemin évolutif de l'espèce et 0 sinon, en fait cet élément dit qu'on doit <br />
seulement prendre les branches parentes de chaque espèce pour lesquelles on a l'optimum évolutif dont on calcule la colonne.<br />
<br />
Pour calculer la deuxième colonne de la matrice (il y en a une par optimum sélectif +1),<br />
on a besoin d'avoir les ages des embranchements qui se trouvent sur le chemin évolutif d'une espèce, de la racine jusqu'à l'espèce actuelle. En effet, pour calculer chaque élément de la somme il faut la valeur<br />
t(y)(à gauche dans la soustraction), qui correspond à l'age du bout droit de la branche et la valeur <br />
t(y-1) qui correspond à l'age au bout gauche , pour chaque branche traversée dans l'histoire de l'espèce.<br />
<br />
D'après la formule, On calcule la somme de l'époque 1 à l'époque actuelle, dans ce code, on fait l'inverse, ce qui ne change rien pour une somme.<br />
<br />
On commence par prendre le node correspondant à la première espèce actuelle, puis on parcourt l'arbre<br />
en allant d'ancètre en ancètre jusqu'à la racine. À chaque fois on calcule la portion correspondante de la somme. La boucle s'arrète quand on atteint la racine de l'arbre, on a alors calculé une valeur de la colonne. On recommence pour les autres espèces actuelles. <br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
while(nd.parent_node!=None): <br />
t2=(T-nd.age) <br />
t1=(T-nd.parent_node.age) <br />
somme=somme+exp(-a*T)*((exp(a*t2*time)-exp(a*t1*time))) <br />
nd=nd.parent_node <br />
w_prov.append(somme) <br />
somme=0 <br />
<br />
<br />
Dans le modèle simple traité ici, on peut remarquer que la somme vaut toujours :<br />
<br />
exp(-a*T)* (exp(a*T)-exp(a*t0))<br />
<br />
oû T est le temps actuel (final) et t0 le temps 0, à la racine.<br />
Ceci vient du fait que toutes les sommes intermédiaires s'annulent. Il faudrait un second optimum <br />
pour que certaines branches ne sient pas traversées dans le calcul, et qu'on aie une valeur différente.<br />
J'ai utilisé cette propriété pour verifier cette partie du code, les résultats étaient identiques.<br />
<br />
<br />
<br />
W=matrix(w_prov) <br />
W.resize([2,nombre_especes]) <br />
return W.getT() <br />
<br />
cette dernière partie était nécessaire pour éviter des erreurs avec l'optimisateur.<br />
<br />
----<br />
<br />
Le second élément qu'il faut calculer pour trouver la vraisemblance du modèle avec un alpha donné<br />
est la matrice de variance-covariance V, dont les éléments sont donnés par:<br />
<br />
<br />
[[File:V.jpg]]<br />
<br />
<br />
<br />
<br />
T est le temps à la fin du processus évolutif et sij est l'age du dernier ancètre commun des espèces<br />
i et j.<br />
<br />
Heureusement il existe une méthode dans dendropy, qui permet de trouver l'ancètre commun<br />
de deux espèces :mrca (pour most recent common ancestor). Il suffit alors de prendre l'age de ce node <br />
pour calculer sij.<br />
<br />
def create_VM(tree1,T,a): <br />
vt=[] <br />
for nd in tree1.leaf_iter(): <br />
for nd2 in tree1.leaf_iter(): <br />
age_mrca=T-tree1.mrca(taxon_labels=[nd.label,nd2.label]).age*time <br />
vt.append((exp(-2.*a*(T-age_mrca ))*(1.-exp(-2.*a*age_mrca)) /(2.*a)) ) <br />
#vt.reverse() <br />
v=matrix(vt) <br />
v.resize([nombre_especes,nombre_especes]) <br />
<br />
return v<br />
<br />
il faut encore noter que l'ordre “leaf_iter” est toujours le mème pour un arbre donné.<br />
Pour que les éléments soient à leur place dans les calculs, les valeurs du trait quantitatif sont mises <br />
dans le mème ordre plus loin dans le programme.<br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
for p in range(0,len(liste_traits)): <br />
if (nd.label==liste_traits[p][0]): <br />
x2.append(float(liste_traits[p][1])) <br />
x.append(x2) <br />
x2=[] <br />
<br />
<br />
<br />
Une fois qu'on a W et V, le reste des calculs est façile à implémenter:<br />
<br />
[[File:sigma.jpg]]<br />
<br />
sigma=(1./nombre_especes)* (matrix(x)-WM*o).getT() *VM.getI() *(matrix(x)- WM*o)<br />
<br />
theta=(WM.getT()*VM.getI()*WM )* WM.getT()*VM.getI()*x<br />
<br />
les méthodes getT() et getI() de numpy permettent de calculer directement les transposées et inverses <br />
des matrices W et V. <br />
<br />
finalement on a tous les éléments pour calculer la fonction U, qui atteint son minimum quand la vraisemblance du paramètre alpha est maximale d'après les données.<br />
<br />
[[File:U.jpg]]<br />
<br />
U=nombre_especes*(1+log(2.*pi*sigma))+log(linalg.det(VM))<br />
<br />
<br />
On donne alors la fonction U à un optimisateur, pour trouver la valeur de alpha qui minimise U. <br />
<br />
<br />
fmin_l_bfgs_b(u, x0=[1], fprime=None, args=arg,approx_grad=True,bounds=mybounds)<br />
<br />
''''Résultats et conclusion''''<br />
<br />
<br />
Mon code ne donne pas les mêmes résultats que les packtages "ouch" et "geiger" disponibles pour R.<br />
<br />
Les deux packtages donnaient aussi des valeurs différentes pour les paramètres, ce qui est déja rapporté sur quelques forums de discussion<br />
en ligne sur le sujet. Comme les codes source de ces packtages étaient difficiles à lire, je n'ai pas cherché à trouver une différence <br />
d'implémentation qui explique les résultats obtenus.<br />
<br />
Il est probable que l'optimisateur ne trouve pas le minimum dans mon code, par manque de précision. En effet l'optimisateur trouve <br />
seulement un point oû une aproximation du gradient est presque nulle. Avec un manque de précision on peut trouver le minimum au mauvais endroit.<br />
<br />
Je suppose que le problème est là, car un calcul à la main de W et V, avec un arbre minimal, n'avait pas montré d'erreurs et qu'une erreur <br />
est peu probable pour le calcul de sigma et theta.<br />
<br />
En conclusion,<br />
bien que ce travail n'aie pas atteint l'objectif de déterminer correctement les paramètres qui maximisent la vraisemblance,<br />
il illustre bien les difficultés qui peuvent se présenter pour faire des simulations avec des modèles complexes et les problèmes<br />
qui peuvent survenir à cause de la précision de calcul limitée des ordinateurs.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3148Evolution of polymorphism in plants2012-06-05T20:44:38Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
----<br />
<br />
'''Travail séparé: estimation des paramètres les plus vraisemblables pour le modèle Ornstein-Uhlenbeck (OU) '''<br />
:Le but de ce travail était d'implémenter l'algoritme donné dans l'appendice de l'article de Butler et King. Cet algoritme permet de calculer <br />
le paramètre alpha le plus vraisemblable pour un arbre phylogénique et des traits quantitatifs donnés. Cette partie est écrite en français pour faciliter la lecture, comme la déscription du programme est peut-ètre compliquée par moments. <br />
<br />
'''Etudiants:'''<br />
:Georg Hoffmann<br />
<br />
'''Introduction:Le modèle Ornstein-Uhlenbeck (OU) '''<br />
<br />
:Pour simuler l'évolution d'un trait quantitatif, le modèle OU tient compte à la fois de la sélection, qui tend à faire évoluer le trait vers un optimum<br />
et d'une composante aléatoire, qui représente la dérive.<br />
<br />
<br />
[[File:ou.jpg]]<br />
<br />
<br />
<br />
pour faire une simulation avec ce modèle, il faut déterminer quelles sont les forces de sélection et de dérive, données par alpha et sigma,<br />
ainci que la valeur de l'optimum, donné ici par béta. Ces paramètres dépendent de l'arbre phylogénique et des valeurs des traits quantitatifs<br />
qu'on utilise. <br />
<br />
[[File:ArbreOU.jpg]]<br />
<br />
<br />
Sur cet arbre on peut voir un exemple de modèle OU avec deux optimums. les traits des espèces 1 et 2 sont soumis à un nouveau régime sélectif, caractérisé par un nouvel optimum après la spéciation des espèces 1 et 2.<br />
Dans ce modèle, les optimums peuvent uniquement changer lors d'une spéciation et les paramètres alpha et sigma sont les mèmes pour tout l'arbre.<br />
<br />
Le modèle pour lequel j'ai essayé d'estimer les paramètres, est la forme la plus simple du modèle OU, il n'y a qu'un optimum sélectif pour tout l'arbre.<br />
<br />
<br />
<br />
---- <br />
<br />
'''L'arbre phylogénique avec dendropy:'''<br />
<br />
[[File:ArbreOUnodes.jpg]]<br />
<br />
:dendropy représente l'arbre avec une série d'embranchements (nodes) qui correspondent à la racine,<br />
aux espèces actuelles et aux embranchements internes.<br />
Chaque node a un age, un nom (label) et un node parent (sauf la raçine). <br />
<br />
<br />
<br />
tree1 = Tree(stream=open("dated_tree2.tre"), schema="newick") <br />
tree1.calc_node_ages(check_prec="TRUE")<br />
<br />
<br />
<br />
ici on charge l'arbre, et on assigne les ages aux nodes.<br />
<br />
Il y a juste un petit problème: les ages sont inversés (l'age de la raçine est le plus grand, alors qu'il doit ètre 0) <br />
Pour y remédier on détermine l'age le plus élevé, et on lui soustrait l'age du node pour trouver quel age <br />
il aurait en comptant dans le sens inverse.<br />
<br />
<br />
first=0 <br />
for nd in tree1.age_order_node_iter(descending=True): <br />
if(first==0): <br />
T=nd.age*time <br />
first=1 <br />
rootlabel=nd.label <br />
<br />
----<br />
<br />
'''la Weight Matrix:'''<br />
<br />
La Weight Matrix “W“ est calculée de la manière suivante:<br />
<br />
[[File:W.jpg]]<br />
<br />
la première colonne de la weight matrix comporte une seule valeur pour toutes les espèces:<br />
exp(-a*T), on peut donc la remplir simplement en connaissant le nombre d'espèces actuelles dans l'arbre.<br />
Ceci correspond à la colonne i0 dans la formule.<br />
<br />
somme=0 <br />
w_prov=[] <br />
W=[] <br />
for p in range(0, nombre_especes): <br />
w_prov.append(exp(-a*T)) <br />
<br />
<br />
On peut ensuite passer à l' autre colonne de la matrice avec la seconde équation. <br />
L'élément béta dans la formule vient d'une matrice contenant, pour chaque branche, et chaque espèce,<br />
1 si la branche est sur le chemin évolutif de l'espèce et 0 sinon, en fait cet élément dit qu'on doit <br />
seulement prendre les branches parentes de chaque espèce pour lesquelles on a l'optimum évolutif dont on calcule la colonne.<br />
<br />
Pour calculer la deuxième colonne de la matrice (il y en a une par optimum sélectif +1),<br />
on a besoin d'avoir les ages des embranchements qui se trouvent sur le chemin évolutif d'une espèce, de la racine jusqu'à l'espèce actuelle. En effet, pour calculer chaque élément de la somme il faut la valeur<br />
t(y)(à gauche dans la soustraction), qui correspond à l'age du bout droit de la branche et la valeur <br />
t(y-1) qui correspond à l'age au bout gauche , pour chaque branche traversée dans l'histoire de l'espèce.<br />
<br />
D'après la formule, On calcule la somme de l'époque 1 à l'époque actuelle, dans ce code, on fait l'inverse, ce qui ne change rien pour une somme.<br />
<br />
On commence par prendre le node correspondant à la première espèce actuelle, puis on parcourt l'arbre<br />
en allant d'ancètre en ancètre jusqu'à la racine. À chaque fois on calcule la portion correspondante de la somme. La boucle s'arrète quand on atteint la racine de l'arbre, on a alors calculé une valeur de la colonne. On recommence pour les autres espèces actuelles. <br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
while(nd.parent_node!=None): <br />
t2=(T-nd.age) <br />
t1=(T-nd.parent_node.age) <br />
somme=somme+exp(-a*T)*((exp(a*t2*time)-exp(a*t1*time))) <br />
nd=nd.parent_node <br />
w_prov.append(somme) <br />
somme=0 <br />
<br />
<br />
Dans le modèle simple traité ici, on peut remarquer que la somme vaut toujours :<br />
<br />
exp(-a*T)* (exp(a*T)-exp(a*t0))<br />
<br />
oû T est le temps actuel (final) et t0 le temps 0, à la racine.<br />
Ceci vient du fait que toutes les sommes intermédiaires s'annulent. Il faudrait un second optimum <br />
pour que certaines branches ne sient pas traversées dans le calcul, et qu'on aie une valeur différente.<br />
J'ai utilisé cette propriété pour verifier cette partie du code, les résultats étaient identiques.<br />
<br />
<br />
<br />
W=matrix(w_prov) <br />
W.resize([2,nombre_especes]) <br />
return W.getT() <br />
<br />
cette dernière partie était nécessaire pour éviter des erreurs avec l'optimisateur.<br />
<br />
----<br />
<br />
Le second élément qu'il faut calculer pour trouver la vraisemblance du modèle avec un alpha donné<br />
est la matrice de variance-covariance V, dont les éléments sont donnés par:<br />
<br />
<br />
[[File:V.jpg]]<br />
<br />
<br />
<br />
<br />
T est le temps à la fin du processus évolutif et sij est l'age du dernier ancètre commun des espèces<br />
i et j.<br />
<br />
Heureusement il existe une méthode dans dendropy, qui permet de trouver l'ancètre commun<br />
de deux espèces :mrca (pour most recent common ancestor). Il suffit alors de prendre l'age de ce node <br />
pour calculer sij.<br />
<br />
def create_VM(tree1,T,a): <br />
vt=[] <br />
for nd in tree1.leaf_iter(): <br />
for nd2 in tree1.leaf_iter(): <br />
age_mrca=T-tree1.mrca(taxon_labels=[nd.label,nd2.label]).age*time <br />
vt.append((exp(-2.*a*(T-age_mrca ))*(1.-exp(-2.*a*age_mrca)) /(2.*a)) ) <br />
#vt.reverse() <br />
v=matrix(vt) <br />
v.resize([nombre_especes,nombre_especes]) <br />
<br />
return v<br />
<br />
il faut encore noter que l'ordre “leaf_iter” est toujours le mème pour un arbre donné.<br />
Pour que les éléments soient à leur place dans les calculs, les valeurs du trait quantitatif sont mises <br />
dans le mème ordre plus loin dans le programme.<br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
for p in range(0,len(liste_traits)): <br />
if (nd.label==liste_traits[p][0]): <br />
x2.append(float(liste_traits[p][1])) <br />
x.append(x2) <br />
x2=[] <br />
<br />
<br />
<br />
Une fois qu'on a W et V, le reste des calculs est façile à implémenter:<br />
<br />
[[File:sigma.jpg]]<br />
<br />
sigma=(1./nombre_especes)* (matrix(x)-WM*o).getT() *VM.getI() *(matrix(x)- WM*o)<br />
<br />
theta=(WM.getT()*VM.getI()*WM )* WM.getT()*VM.getI()*x<br />
<br />
les méthodes getT() et getI() de numpy permettent de calculer directement les transposées et inverses <br />
des matrices W et V. <br />
<br />
finalement on a tous les éléments pour calculer la fonction U, qui atteint son minimum quand la vraisemblance du paramètre alpha est maximale d'après les données.<br />
<br />
[[File:U.jpg]]<br />
<br />
U=nombre_especes*(1+log(2.*pi*sigma))+log(linalg.det(VM))<br />
<br />
<br />
On donne alors la fonction U à un optimisateur, pour trouver la valeur de alpha qui minimise U. <br />
<br />
<br />
fmin_l_bfgs_b(u, x0=[1], fprime=None, args=arg,approx_grad=True,bounds=mybounds)<br />
<br />
''''Résultats et conclusion''''<br />
<br />
<br />
Mon code ne donne pas les mêmes résultats que les packtages "ouch" et "geiger" disponibles pour R.<br />
<br />
Les deux packtages donnaient aussi des valeurs différentes pour les paramètres, ce qui est déja rapporté sur quelques forums de discussion<br />
en ligne sur le sujet. Comme les codes source de ces packtages étaient difficiles à lire, je n'ai pas cherché à trouver une différence <br />
d'implémentation qui explique les résultats obtenus.<br />
<br />
Il est probable que l'optimisateur ne trouve pas le minimum dans mon code, par manque de précision. En effet l'optimisateur trouve <br />
seulement un point oû une aproximation du gradient est presque nulle. Avec un manque de précision on peut trouver le minimum au mauvais endroit.<br />
<br />
Je suppose que le problème est là, car un calcul à la main de W et V, avec un arbre minimal, n'avait pas montré d'erreurs et qu'une erreur <br />
est peu probable pour le calcul de sigma et theta.<br />
<br />
En conclusion,<br />
bien que ce travail n'aie pas atteint l'objectif de déterminer correctement les paramètres qui maximisent la vraisemblance,<br />
il illustre bien les difficultés qui peuvent se présenter pour faire des simulations avec des modèles complexes et les problèmes<br />
qui peuvent survenir à cause de la précision de calcul limitée des ordinateurs.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3147Evolution of polymorphism in plants2012-06-05T20:39:52Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
----<br />
<br />
'''Travail séparé: estimation des paramètres les plus vraisemblables pour le modèle Ornstein-Uhlenbeck (OU) '''<br />
:Le but de ce travail était d'implémenter l'algoritme donné dans l'appendice de l'article de Butler et King. Cet algoritme permet de calculer <br />
le paramètre alpha le plus vraisemblable pour un arbre phylogénique et des traits quantitatifs donnés. Cette partie est écrite en français pour faciliter la lecture, comme la déscription du programme est peut-ètre compliquée par moments. <br />
<br />
'''Etudiants:'''<br />
:Georg Hoffmann<br />
<br />
'''Introduction:Le modèle Ornstein-Uhlenbeck (OU) '''<br />
<br />
:Pour simuler l'évolution d'un trait quantitatif, le modèle OU tient compte à la fois de la sélection, qui tend à faire évoluer le trait vers un optimum<br />
et d'une composante aléatoire, qui représente la dérive.<br />
<br />
<br />
[[File:ou.jpg]]<br />
<br />
<br />
<br />
pour faire une simulation avec ce modèle, il faut déterminer quelles sont les forces de sélection et de dérive, données par alpha et sigma,<br />
ainci que la valeur de l'optimum, donné ici par béta. Ces paramètres dépendent de l'arbre phylogénique et des valeurs des traits quantitatifs<br />
qu'on utilise. <br />
<br />
[[File:ArbreOU.jpg]]<br />
<br />
<br />
Sur cet arbre on peut voir un exemple de modèle OU avec deux optimums. les traits des espèces 1 et 2 sont soumis à un nouveau régime sélectif, caractérisé par un nouvel optimum après la spéciation des espèces 1 et 2.<br />
Dans ce modèle, les optimums peuvent uniquement changer lors d'une spéciation et les paramètres alpha et sigma sont les mèmes pour tout l'arbre.<br />
<br />
Le modèle pour lequel j'ai essayé d'estimer les paramètres, est la forme la plus simple du modèle OU, il n'y a qu'un optimum sélectif pour tout l'arbre.<br />
Ce modèle simple a été choisi dans cette dernière version du programme car deux packtages de R qui permettent de calculer les paramètres que nous cherchons: Geiger et Ouch, donnaient des valeurs de a différentes, entre eux et par rapport au programme que j'ai écrit.<br />
<br />
On peut trouver des discussions sur internet qui parlent de cette différence entre les deux packtages.<br />
<br />
<br />
<br />
---- <br />
<br />
'''L'arbre phylogénique avec dendropy:'''<br />
<br />
[[File:ArbreOUnodes.jpg]]<br />
<br />
:dendropy représente l'arbre avec une série d'embranchements (nodes) qui correspondent à la racine,<br />
aux espèces actuelles et aux embranchements internes.<br />
Chaque node a un age, un nom (label) et un node parent (sauf la raçine). Dendropy permet de parcourir les nodes dans différents ordres .<br />
<br />
<br />
<br />
<br />
tree1 = Tree(stream=open("dated_tree2.tre"), schema="newick") <br />
tree1.calc_node_ages(check_prec="TRUE")<br />
<br />
<br />
<br />
ici on charge l'arbre, et on assigne les ages aux nodes.<br />
<br />
Il y a juste un petit problème: les ages sont inversés (l'age de la raçine est le plus grand, alors qu'il doit ètre 0) <br />
Pour y remédier on détermine l'age le plus élevé, et on lui soustrait l'age du node pour trouver quel age <br />
il aurait en comptant dans le sens inverse.<br />
<br />
<br />
first=0 <br />
for nd in tree1.age_order_node_iter(descending=True): <br />
if(first==0): <br />
T=nd.age*time <br />
first=1 <br />
rootlabel=nd.label <br />
<br />
----<br />
<br />
'''la Weight Matrix:'''<br />
<br />
La Weight Matrix “W“ est calculée de la manière suivante:<br />
<br />
[[File:W.jpg]]<br />
<br />
la première colonne de la weight matrix comporte une seule valeur pour toutes les espèces:<br />
exp(-a*T), on peut donc la remplir simplement en connaissant le nombre d'espèces actuelles dans l'arbre.<br />
Ceci correspond à la colonne i0 dans la formule.<br />
<br />
somme=0 <br />
w_prov=[] <br />
W=[] <br />
for p in range(0, nombre_especes): <br />
w_prov.append(exp(-a*T)) <br />
<br />
<br />
On peut ensuite passer à l' autre colonne de la matrice avec la seconde équation. <br />
L'élément béta dans la formule vient d'une matrice contenant, pour chaque branche, et chaque espèce,<br />
1 si la branche est sur le chemin évolutif de l'espèce et 0 sinon, en fait cet élément dit qu'on doit <br />
seulement prendre les branches parentes de chaque espèce pour lesquelles on a l'optimum évolutif dont on calcule la colonne.<br />
<br />
Pour calculer la deuxième colonne de la matrice (il y en a une par optimum sélectif +1),<br />
on a besoin d'avoir les ages des embranchements qui se trouvent sur le chemin évolutif d'une espèce, de la racine jusqu'à l'espèce actuelle. En effet, pour calculer chaque élément de la somme il faut la valeur<br />
t(y)(à gauche dans la soustraction), qui correspond à l'age du bout droit de la branche et la valeur <br />
t(y-1) qui correspond à l'age au bout gauche , pour chaque branche traversée dans l'histoire de l'espèce.<br />
<br />
D'après la formule, On calcule la somme de l'époque 1 à l'époque actuelle, dans ce code, on fait l'inverse, ce qui ne change rien pour une somme.<br />
<br />
On commence par prendre le node correspondant à la première espèce actuelle, puis on parcourt l'arbre<br />
en allant d'ancètre en ancètre jusqu'à la racine. À chaque fois on calcule la portion correspondante de la somme. La boucle s'arrète quand on atteint la racine de l'arbre, on a alors calculé une valeur de la colonne. On recommence pour les autres espèces actuelles. <br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
while(nd.parent_node!=None): <br />
t2=(T-nd.age) <br />
t1=(T-nd.parent_node.age) <br />
somme=somme+exp(-a*T)*((exp(a*t2*time)-exp(a*t1*time))) <br />
nd=nd.parent_node <br />
w_prov.append(somme) <br />
somme=0 <br />
<br />
<br />
Dans le modèle simple traité ici, on peut remarquer que la somme vaut toujours :<br />
<br />
exp(-a*T)* (exp(a*T)-exp(a*t0))<br />
<br />
oû T est le temps actuel (final) et t0 le temps 0, à la racine.<br />
Ceci vient du fait que toutes les sommes intermédiaires s'annulent. Il faudrait un second optimum <br />
pour que certaines branches ne sient pas traversées dans le calcul, et qu'on aie une valeur différente.<br />
J'ai utilisé cette propriété pour verifier cette partie du code, les résultats étaient identiques.<br />
<br />
<br />
<br />
W=matrix(w_prov) <br />
W.resize([2,nombre_especes]) <br />
return W.getT() <br />
<br />
cette dernière partie était nécessaire pour éviter des erreurs avec l'optimisateur.<br />
<br />
----<br />
<br />
Le second élément qu'il faut calculer pour trouver la vraisemblance du modèle avec un alpha donné<br />
est la matrice de variance-covariance V, dont les éléments sont donnés par:<br />
<br />
<br />
[[File:V.jpg]]<br />
<br />
<br />
<br />
<br />
T est le temps à la fin du processus évolutif et sij est l'age du dernier ancètre commun des espèces<br />
i et j.<br />
<br />
Heureusement il existe une méthode dans dendropy, qui permet de trouver l'ancètre commun<br />
de deux espèces :mrca (pour most recent common ancestor). Il suffit alors de prendre l'age de ce node <br />
pour calculer sij.<br />
<br />
def create_VM(tree1,T,a): <br />
vt=[] <br />
for nd in tree1.leaf_iter(): <br />
for nd2 in tree1.leaf_iter(): <br />
age_mrca=T-tree1.mrca(taxon_labels=[nd.label,nd2.label]).age*time <br />
vt.append((exp(-2.*a*(T-age_mrca ))*(1.-exp(-2.*a*age_mrca)) /(2.*a)) ) <br />
#vt.reverse() <br />
v=matrix(vt) <br />
v.resize([nombre_especes,nombre_especes]) <br />
<br />
return v<br />
<br />
il faut encore noter que l'ordre “leaf_iter” est toujours le mème pour un arbre donné.<br />
Pour que les éléments soient à leur place dans les calculs, les valeurs du trait quantitatif sont mises <br />
dans le mème ordre plus loin dans le programme.<br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
for p in range(0,len(liste_traits)): <br />
if (nd.label==liste_traits[p][0]): <br />
x2.append(float(liste_traits[p][1])) <br />
x.append(x2) <br />
x2=[] <br />
<br />
<br />
<br />
Une fois qu'on a W et V, le reste des calculs est façile à implémenter:<br />
<br />
[[File:sigma.jpg]]<br />
<br />
sigma=(1./nombre_especes)* (matrix(x)-WM*o).getT() *VM.getI() *(matrix(x)- WM*o)<br />
<br />
theta=(WM.getT()*VM.getI()*WM )* WM.getT()*VM.getI()*x<br />
<br />
les méthodes getT() et getI() de numpy permettent de calculer directement les transposées et inverses <br />
des matrices W et V. <br />
<br />
finalement on a tous les éléments pour calculer la fonction U, qui atteint son minimum quand la vraisemblance du paramètre alpha est maximale d'après les données.<br />
<br />
[[File:U.jpg]]<br />
<br />
U=nombre_especes*(1+log(2.*pi*sigma))+log(linalg.det(VM))<br />
<br />
<br />
On donne alors la fonction U à un optimisateur, pour trouver la valeur de alpha qui minimise U. <br />
<br />
<br />
fmin_l_bfgs_b(u, x0=[1], fprime=None, args=arg,approx_grad=True,bounds=mybounds)<br />
<br />
''''Résultats et conclusion''''<br />
<br />
<br />
Mon code ne donne pas les mêmes résultats que les packtages "ouch" et "geiger" disponibles pour R.<br />
<br />
Les deux packtages donnaient aussi des valeurs différentes pour les paramètres, ce qui est déja rapporté sur quelques forums de discussion<br />
en ligne sur le sujet. Comme les codes source de ces packtages étaient difficiles à lire, je n'ai pas cherché à trouver une différence <br />
d'implémentation qui explique les résultats obtenus.<br />
<br />
Il est probable que l'optimisateur ne trouve pas le minimum dans mon code, par manque de précision. En effet l'optimisateur trouve <br />
seulement un point oû une aproximation du gradient est presque nulle. Avec un manque de précision on peut trouver le minimum au mauvais endroit.<br />
<br />
Je suppose que le problème est là, car un calcul à la main de W et V, avec un arbre minimal, n'avait pas montré d'erreurs et qu'une erreur <br />
est peu probable pour le calcul de sigma et theta.<br />
<br />
En conclusion,<br />
bien que ce travail n'aie pas atteint l'objectif de déterminer correctement les paramètres qui maximisent la vraisemblance,<br />
il illustre bien les difficultés qui peuvent se présenter pour faire des simulations avec des modèles complexes et les problèmes<br />
qui peuvent survenir à cause de la précision de calcul limitée des ordinateurs.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:Formulesou.jpg&diff=3146File:Formulesou.jpg2012-06-05T19:13:51Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3145Evolution of polymorphism in plants2012-06-05T18:22:27Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
----<br />
<br />
'''Travail séparé: estimation des paramètres les plus vraisemblables pour le modèle Ornstein-Uhlenbeck (OU) '''<br />
:Le but de ce travail était d'implémenter l'algoritme donné dans l'appendice de l'article de Butler et King. Cet algoritme permet de calculer <br />
le paramètre alpha le plus vraisemblable pour un arbre phylogénique et des traits quantitatifs donnés. Cette partie est écrite en français pour faciliter la lecture, comme la déscription du programme est peut-ètre compliquée par moments. <br />
<br />
'''Etudiants:'''<br />
:Georg Hoffmann<br />
<br />
'''Introduction:Le modèle Ornstein-Uhlenbeck (OU) '''<br />
<br />
:Pour simuler l'évolution d'un trait quantitatif, le modèle OU tient compte à la fois de la sélection, qui tend à faire évoluer le trait vers un optimum<br />
et d'une composante aléatoire, qui représente la dérive.<br />
<br />
<br />
[[File:ou.jpg]]<br />
<br />
<br />
<br />
pour faire une simulation avec ce modèle, il faut déterminer quelles sont les forces de sélection et de dérive, données par alpha et sigma,<br />
ainci que la valeur de l'optimum, donné ici par béta. Ces paramètres dépendent de l'arbre phylogénique et des valeurs des traits quantitatifs<br />
qu'on utilise. <br />
<br />
[[File:ArbreOU.jpg]]<br />
<br />
<br />
Sur cet arbre on peut voir un exemple de modèle OU avec deux optimums. les traits des espèces 1 et 2 sont soumis à un nouveau régime sélectif, caractérisé par un nouvel optimum après la spéciation des espèces 1 et 2.<br />
Dans ce modèle, les optimums peuvent uniquement changer lors d'une spéciation et les paramètres alpha et sigma sont les mèmes pour tout l'arbre.<br />
<br />
Le modèle pour lequel j'ai essayé d'estimer les paramètres, est la forme la plus simple du modèle OU, il n'y a qu'un optimum sélectif pour tout l'arbre.<br />
Ce modèle simple a été choisi dans cette dernière version du programme car deux packtages de R qui permettent de calculer les paramètres que nous cherchons: Geiger et Ouch, donnaient des valeurs de a différentes, entre eux et par rapport au programme que j'ai écrit.<br />
<br />
On peut trouver des discussions sur internet qui parlent de cette différence entre les deux packtages.<br />
<br />
<br />
<br />
---- <br />
<br />
'''L'arbre phylogénique avec dendropy:'''<br />
<br />
[[File:ArbreOUnodes.jpg]]<br />
<br />
:dendropy représente l'arbre avec une série d'embranchements (nodes) qui correspondent à la racine,<br />
aux espèces actuelles et aux embranchements internes.<br />
Chaque node a un age, un nom (label) et un node parent (sauf la raçine). Dendropy permet de parcourir les nodes dans différents ordres .<br />
<br />
<br />
<br />
<br />
tree1 = Tree(stream=open("dated_tree2.tre"), schema="newick") <br />
tree1.calc_node_ages(check_prec="TRUE")<br />
<br />
<br />
<br />
ici on charge l'arbre, et on assigne les ages aux nodes.<br />
<br />
Il y a juste un petit problème: les ages sont inversés (l'age de la raçine est le plus grand, alors qu'il doit ètre 0) <br />
Pour y remédier on détermine l'age le plus élevé, et on lui soustrait l'age du node pour trouver quel age <br />
il aurait en comptant dans le sens inverse.<br />
<br />
<br />
first=0 <br />
for nd in tree1.age_order_node_iter(descending=True): <br />
if(first==0): <br />
T=nd.age*time <br />
first=1 <br />
rootlabel=nd.label <br />
<br />
----<br />
<br />
'''la Weight Matrix:'''<br />
<br />
La Weight Matrix “W“ est calculée de la manière suivante:<br />
<br />
[[File:W.jpg]]<br />
<br />
la première colonne de la weight matrix comporte une seule valeur pour toutes les espèces:<br />
exp(-a*T), on peut donc la remplir simplement en connaissant le nombre d'espèces actuelles dans l'arbre.<br />
Ceci correspond à la colonne i0 dans la formule.<br />
<br />
somme=0 <br />
w_prov=[] <br />
W=[] <br />
for p in range(0, nombre_especes): <br />
w_prov.append(exp(-a*T)) <br />
<br />
<br />
On peut ensuite passer à l' autre colonne de la matrice avec la seconde équation. <br />
L'élément béta dans la formule vient d'une matrice contenant, pour chaque branche, et chaque espèce,<br />
1 si la branche est sur le chemin évolutif de l'espèce et 0 sinon, en fait cet élément dit qu'on doit <br />
seulement prendre les branches parentes de chaque espèce pour lesquelles on a l'optimum évolutif dont on calcule la colonne.<br />
<br />
Pour calculer la deuxième colonne de la matrice (il y en a une par optimum sélectif +1),<br />
on a besoin d'avoir les ages des embranchements qui se trouvent sur le chemin évolutif d'une espèce, de la racine jusqu'à l'espèce actuelle. En effet, pour calculer chaque élément de la somme il faut la valeur<br />
t(y)(à gauche dans la soustraction), qui correspond à l'age du bout droit de la branche et la valeur <br />
t(y-1) qui correspond à l'age au bout gauche , pour chaque branche traversée dans l'histoire de l'espèce.<br />
<br />
D'après la formule, On calcule la somme de l'époque 1 à l'époque actuelle, dans ce code, on fait l'inverse, ce qui ne change rien pour une somme.<br />
<br />
On commence par prendre le node correspondant à la première espèce actuelle, puis on parcourt l'arbre<br />
en allant d'ancètre en ancètre jusqu'à la racine. À chaque fois on calcule la portion correspondante de la somme. La boucle s'arrète quand on atteint la racine de l'arbre, on a alors calculé une valeur de la colonne. On recommence pour les autres espèces actuelles. <br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
while(nd.parent_node!=None): <br />
t2=(T-nd.age) <br />
t1=(T-nd.parent_node.age) <br />
somme=somme+exp(-a*T)*((exp(a*t2*time)-exp(a*t1*time))) <br />
nd=nd.parent_node <br />
w_prov.append(somme) <br />
somme=0 <br />
<br />
<br />
Dans le modèle simple traité ici, on peut remarquer que la somme vaut toujours :<br />
<br />
exp(-a*T)* (exp(a*T)-exp(a*t0))<br />
<br />
oû T est le temps actuel (final) et t0 le temps 0, à la racine.<br />
Ceci vient du fait que toutes les sommes intermédiaires s'annulent. Il faudrait un second optimum <br />
pour que certaines branches ne sient pas traversées dans le calcul, et qu'on aie une valeur différente.<br />
J'ai utilisé cette propriété pour verifier cette partie du code, les résultats étaient identiques.<br />
<br />
<br />
<br />
W=matrix(w_prov) <br />
W.resize([2,nombre_especes]) <br />
return W.getT() <br />
<br />
cette dernière partie était nécessaire pour éviter des erreurs avec l'optimisateur.<br />
<br />
----<br />
<br />
Le second élément qu'il faut calculer pour trouver la vraisemblance du modèle avec un alpha donné<br />
est la matrice de variance-covariance V, dont les éléments sont donnés par:<br />
<br />
<br />
[[File:V.jpg]]<br />
<br />
<br />
<br />
<br />
T est le temps à la fin du processus évolutif et sij est l'age du dernier ancètre commun des espèces<br />
i et j.<br />
<br />
Heureusement il existe une méthode dans dendropy, qui permet de trouver l'ancètre commun<br />
de deux espèces :mrca (pour most recent common ancestor). Il suffit alors de prendre l'age de ce node <br />
pour calculer sij.<br />
<br />
def create_VM(tree1,T,a): <br />
vt=[] <br />
for nd in tree1.leaf_iter(): <br />
for nd2 in tree1.leaf_iter(): <br />
age_mrca=T-tree1.mrca(taxon_labels=[nd.label,nd2.label]).age*time <br />
vt.append((exp(-2.*a*(T-age_mrca ))*(1.-exp(-2.*a*age_mrca)) /(2.*a)) ) <br />
#vt.reverse() <br />
v=matrix(vt) <br />
v.resize([nombre_especes,nombre_especes]) <br />
<br />
return v<br />
<br />
il faut encore noter que l'ordre “leaf_iter” est toujours le mème pour un arbre donné.<br />
Pour que les éléments soient à leur place dans les calculs, les valeurs du trait quantitatif sont mises <br />
dans le mème ordre plus loin dans le programme.<br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
for p in range(0,len(liste_traits)): <br />
if (nd.label==liste_traits[p][0]): <br />
x2.append(float(liste_traits[p][1])) <br />
x.append(x2) <br />
x2=[] <br />
<br />
<br />
<br />
Une fois qu'on a W et V, le reste des calculs est façile à implémenter:<br />
<br />
[[File:sigma.jpg]]<br />
<br />
sigma=(1./nombre_especes)* (matrix(x)-WM*o).getT() *VM.getI() *(matrix(x)- WM*o)<br />
<br />
theta=(WM.getT()*VM.getI()*WM )* WM.getT()*VM.getI()*x<br />
<br />
les méthodes getT() et getI() de numpy permettent de calculer directement les transposées et inverses <br />
des matrices W et V. <br />
<br />
finalement on a tous les éléments pour calculer la fonction U, qui atteint son minimum quand la vraisemblance du paramètre alpha est maximale d'après les données.<br />
<br />
[[File:U.jpg]]<br />
<br />
U=nombre_especes*(1+log(2.*pi*sigma))+log(linalg.det(VM))<br />
<br />
<br />
On donne alors la fonction U à un optimisateur, pour trouver la valeur de alpha qui minimise U. <br />
<br />
<br />
fmin_l_bfgs_b(u, x0=[1], fprime=None, args=arg,approx_grad=True,bounds=mybounds)<br />
<br />
Le problème du code se situe probablement ici, lors de l'optimisation,<br />
étant donné qu'un calcul à la main, avec un arbre minimal à 4 espèces n'a pas montré d'erreurs <br />
pour les matrices W et V.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:ArbreOUnodes.jpg&diff=3144File:ArbreOUnodes.jpg2012-06-05T18:07:56Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:ArbreOU.jpg&diff=3143File:ArbreOU.jpg2012-06-05T17:53:37Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3142Evolution of polymorphism in plants2012-06-05T17:44:30Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
----<br />
<br />
'''Travail séparé: estimation des paramètres les plus vraisemblables pour le modèle Ornstein-Uhlenbeck (OU) '''<br />
:Le but de ce travail était d'implémenter l'algoritme donné dans l'appendice de l'article de Butler et King. Cet algoritme permet de calculer <br />
le paramètre alpha le plus vraisemblable pour un arbre phylogénique et des traits quantitatifs donnés. Cette partie est écrite en français pour faciliter la lecture, comme la déscription du programme est peut-ètre compliquée par moments. <br />
<br />
'''Etudiants:'''<br />
:Georg Hoffmann<br />
<br />
'''Le modèle Ornstein-Uhlenbeck (OU) '''<br />
<br />
:Pour simuler l'évolution d'un trait quantitatif, le modèle OU tient compte à la fois de la sélection, qui tend à faire évoluer le trait vers un optimum<br />
et d'une composante aléatoire, qui représente la dérive.<br />
<br />
<br />
[[File:ou.jpg]]<br />
<br />
<br />
<br />
pour faire une simulation avec ce modèle, il faut déterminer quelles sont les forces de sélection et de dérive, données par alpha et sigma,<br />
ainci que la valeur de l'optimum, theta. <br />
<br />
<br />
<br />
'''notes sur le modèle:'''<br />
:Il existe deux packtages de R qui permettent de calculer les paramètres que nous cherchons: Geiger et Ouch. Ces deux packtages donnaient <br />
des valeurs de a différentes, entre eux et par rapport au programme que j'ai écrit. <br />
On peut trouver des discussions sur internet qui parlent de cette différence entre les deux packtages, ce n'est donc pas nouveau.<br />
La différence pourrait venir du fait que le packtage ouch change l'échelle de temps de l'arbre, ce qui change la valeur de alpha qui maximise la vraissemblance, mais ce n'est pas le sujet de ce travail.<br />
<br />
<br />
<br />
Le modèle pour lequel j'ai essayé d'estimer les paramètres, est la forme la plus simple du modèle OU, il n'y a qu'un optimum sélectif pour tout l'arbre.Normalement, avec le modèle OU, on peut spécifier plusieurs optimums pour différentes branches de l'arbre.<br />
Ce modèle simple a été choisi dans cette dernière version du programme, pour trouver ce qui cause les résultats différents des packtages de R. <br />
<br />
<br />
---- <br />
<br />
'''L'arbre phylogénique avec dendropy:'''<br />
<br />
<br />
:dendropy représente l'arbre avec une série d'embranchements (nodes) qui correspondent à la racine,<br />
aux espèces actuelles et aux embranchements internes.<br />
Chaque node a un age, un nom (label) et un node parent (sauf la raçine). Dendropy permet de parcourir les nodes dans différents ordres .<br />
<br />
<br />
<br />
<br />
tree1 = Tree(stream=open("dated_tree2.tre"), schema="newick") <br />
tree1.calc_node_ages(check_prec="TRUE")<br />
<br />
<br />
<br />
ici on charge l'arbre, et on assigne les ages aux nodes.<br />
<br />
Il y a juste un petit problème: les ages sont inversés (l'age de la raçine est le plus grand, alors qu'il doit ètre 0) <br />
Pour y remédier on détermine l'age le plus élevé, et on lui soustrait l'age du node pour trouver quel age <br />
il aurait en comptant dans le sens inverse.<br />
<br />
<br />
first=0 <br />
for nd in tree1.age_order_node_iter(descending=True): <br />
if(first==0): <br />
T=nd.age*time <br />
first=1 <br />
rootlabel=nd.label <br />
<br />
----<br />
<br />
'''la Weight Matrix:'''<br />
<br />
La Weight Matrix “W“ est calculée de la manière suivante:<br />
<br />
[[File:W.jpg]]<br />
<br />
la première colonne de la weight matrix comporte une seule valeur pour toutes les espèces:<br />
exp(-a*T), on peut donc la remplir simplement en connaissant le nombre d'espèces actuelles dans l'arbre.<br />
Ceci correspond à la colonne i0 dans la formule.<br />
<br />
somme=0 <br />
w_prov=[] <br />
W=[] <br />
for p in range(0, nombre_especes): <br />
w_prov.append(exp(-a*T)) <br />
<br />
<br />
On peut ensuite passer à l' autre colonne de la matrice avec la seconde équation. <br />
L'élément béta dans la formule vient d'une matrice contenant, pour chaque branche, et chaque espèce,<br />
1 si la branche est sur le chemin évolutif de l'espèce et 0 sinon, en fait cet élément dit qu'on doit <br />
seulement prendre les branches parentes de chaque espèce pour lesquelles on a l'optimum évolutif dont on calcule la colonne.<br />
<br />
Pour calculer la deuxième colonne de la matrice (il y en a une par optimum sélectif +1),<br />
on a besoin d'avoir les ages des embranchements qui se trouvent sur le chemin évolutif d'une espèce, de la racine jusqu'à l'espèce actuelle. En effet, pour calculer chaque élément de la somme il faut la valeur<br />
t(y)(à gauche dans la soustraction), qui correspond à l'age du bout droit de la branche et la valeur <br />
t(y-1) qui correspond à l'age au bout gauche , pour chaque branche traversée dans l'histoire de l'espèce.<br />
<br />
D'après la formule, On calcule la somme de l'époque 1 à l'époque actuelle, dans ce code, on fait l'inverse, ce qui ne change rien pour une somme.<br />
<br />
On commence par prendre le node correspondant à la première espèce actuelle, puis on parcourt l'arbre<br />
en allant d'ancètre en ancètre jusqu'à la racine. À chaque fois on calcule la portion correspondante de la somme. La boucle s'arrète quand on atteint la racine de l'arbre, on a alors calculé une valeur de la colonne. On recommence pour les autres espèces actuelles. <br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
while(nd.parent_node!=None): <br />
t2=(T-nd.age) <br />
t1=(T-nd.parent_node.age) <br />
somme=somme+exp(-a*T)*((exp(a*t2*time)-exp(a*t1*time))) <br />
nd=nd.parent_node <br />
w_prov.append(somme) <br />
somme=0 <br />
<br />
<br />
Dans le modèle simple traité ici, on peut remarquer que la somme vaut toujours :<br />
<br />
exp(-a*T)* (exp(a*T)-exp(a*t0))<br />
<br />
oû T est le temps actuel (final) et t0 le temps 0, à la racine.<br />
Ceci vient du fait que toutes les sommes intermédiaires s'annulent. Il faudrait un second optimum <br />
pour que certaines branches ne sient pas traversées dans le calcul, et qu'on aie une valeur différente.<br />
J'ai utilisé cette propriété pour verifier cette partie du code, les résultats étaient identiques.<br />
<br />
<br />
<br />
W=matrix(w_prov) <br />
W.resize([2,nombre_especes]) <br />
return W.getT() <br />
<br />
cette dernière partie était nécessaire pour éviter des erreurs avec l'optimisateur.<br />
<br />
----<br />
<br />
Le second élément qu'il faut calculer pour trouver la vraisemblance du modèle avec un alpha donné<br />
est la matrice de variance-covariance V, dont les éléments sont donnés par:<br />
<br />
<br />
[[File:V.jpg]]<br />
<br />
<br />
<br />
<br />
T est le temps à la fin du processus évolutif et sij est l'age du dernier ancètre commun des espèces<br />
i et j.<br />
<br />
Heureusement il existe une méthode dans dendropy, qui permet de trouver l'ancètre commun<br />
de deux espèces :mrca (pour most recent common ancestor). Il suffit alors de prendre l'age de ce node <br />
pour calculer sij.<br />
<br />
def create_VM(tree1,T,a): <br />
vt=[] <br />
for nd in tree1.leaf_iter(): <br />
for nd2 in tree1.leaf_iter(): <br />
age_mrca=T-tree1.mrca(taxon_labels=[nd.label,nd2.label]).age*time <br />
vt.append((exp(-2.*a*(T-age_mrca ))*(1.-exp(-2.*a*age_mrca)) /(2.*a)) ) <br />
#vt.reverse() <br />
v=matrix(vt) <br />
v.resize([nombre_especes,nombre_especes]) <br />
<br />
return v<br />
<br />
il faut encore noter que l'ordre “leaf_iter” est toujours le mème pour un arbre donné.<br />
Pour que les éléments soient à leur place dans les calculs, les valeurs du trait quantitatif sont mises <br />
dans le mème ordre plus loin dans le programme.<br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
for p in range(0,len(liste_traits)): <br />
if (nd.label==liste_traits[p][0]): <br />
x2.append(float(liste_traits[p][1])) <br />
x.append(x2) <br />
x2=[] <br />
<br />
<br />
<br />
Une fois qu'on a W et V, le reste des calculs est façile à implémenter:<br />
<br />
[[File:sigma.jpg]]<br />
<br />
sigma=(1./nombre_especes)* (matrix(x)-WM*o).getT() *VM.getI() *(matrix(x)- WM*o)<br />
<br />
theta=(WM.getT()*VM.getI()*WM )* WM.getT()*VM.getI()*x<br />
<br />
les méthodes getT() et getI() de numpy permettent de calculer directement les transposées et inverses <br />
des matrices W et V. <br />
<br />
finalement on a tous les éléments pour calculer la fonction U, qui atteint son minimum quand la vraisemblance du paramètre alpha est maximale d'après les données.<br />
<br />
[[File:U.jpg]]<br />
<br />
U=nombre_especes*(1+log(2.*pi*sigma))+log(linalg.det(VM))<br />
<br />
<br />
On donne alors la fonction U à un optimisateur, pour trouver la valeur de alpha qui minimise U. <br />
<br />
<br />
fmin_l_bfgs_b(u, x0=[1], fprime=None, args=arg,approx_grad=True,bounds=mybounds)<br />
<br />
Le problème du code se situe probablement ici, lors de l'optimisation,<br />
étant donné qu'un calcul à la main, avec un arbre minimal à 4 espèces n'a pas montré d'erreurs <br />
pour les matrices W et V.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:Ou.jpg&diff=3141File:Ou.jpg2012-06-05T17:41:39Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:U.jpg&diff=3140File:U.jpg2012-06-05T16:43:43Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:Sigma.jpg&diff=3139File:Sigma.jpg2012-06-05T16:43:32Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:V.jpg&diff=3138File:V.jpg2012-06-05T16:42:25Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:W.jpg&diff=3137File:W.jpg2012-06-05T16:41:11Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3136Evolution of polymorphism in plants2012-06-05T16:38:15Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
'''Separate work on the estimation of the parameters to implement the Ornstein-Uhlenbeck mode'''<br />
:in this work, the goal was to implement the optimization algoritm described in the appendix of Butler and King's just cited paper.<br />
This work was done with the same Supervisors and background as the work on brownian motion just described.<br />
<br />
'''Students:'''<br />
:Georg Hoffmann<br />
<br />
'''notes on the model:'''<br />
:The model for which i tried to find the parameters, is the simplest form of the Ornstein Uhlenbeck model: the model where at all points <br />
of they evolution, the ancesters had all the same selective optimum. In Butler and King's paper, many different models are tried:<br />
Brownian motion and OU with up to X optimums. In theyr experiment the model with one selective optimum had the worst results in term <br />
of X from all.<br />
Actually, in a first implementation it was possible to choose multiple optimums, but as the code did not give the expected results, it was<br />
rewriten without this option to make it simpler and try to find the error.<br />
<br />
<br />
<br />
<br />
'''Explanation of the implementation'''<br />
:This code failed to give results in accordance with the R packtages Geiger an Ouch, which also showed different results between themselves.<br />
It may be that the data does not allow to get the right results, as only a small number of trees, mostly variations on one tree have been tested.<br />
There are some discussions one can read on the internet about those packtages giving different results, so it does not seem to be something<br />
new.<br />
<br />
<br />
<br />
'''L'arbre phylogénique avec dendropy:'''<br />
<br />
<br />
:dendropy représente l'arbre avec une série d'embranchements (nodes) qui correspondent à la racine,<br />
aux espèces actuelles et aux embranchements internes.<br />
Chaque node a un age, un nom (label) et un node parent (sauf la raçine). Dendropy permet de parcourir les nodes dans différents ordres .<br />
<br />
<br />
<br />
<br />
tree1 = Tree(stream=open("dated_tree2.tre"), schema="newick") <br />
tree1.calc_node_ages(check_prec="TRUE")<br />
<br />
<br />
<br />
ici on charge l'arbre, et on assigne les ages aux nodes.<br />
<br />
Il y a juste un petit problème: les ages sont inversés (l'age de la raçine est le plus grand, alors qu'il doit ètre 0) <br />
Pour y remédier on détermine l'age le plus élevé, et on lui soustrait l'age du node pour trouver quel age <br />
il aurait en comptant dans le sens inverse.<br />
<br />
<br />
first=0 <br />
for nd in tree1.age_order_node_iter(descending=True): <br />
if(first==0): <br />
T=nd.age*time <br />
first=1 <br />
rootlabel=nd.label <br />
<br />
<br />
<br />
'''la Weight Matrix:'''<br />
<br />
La Weight Matrix “W“ est calculée de la manière suivante:<br />
<br />
[[File:Example.jpg]]<br />
<br />
la première colonne de la weight matrix comporte une seule valeur pour toutes les espèces:<br />
exp(-a*T), on peut donc la remplir simplement en connaissant le nombre d'espèces actuelles dans l'arbre.<br />
Ceci correspond à la colonne i0 dans la formule.<br />
<br />
somme=0 <br />
w_prov=[] <br />
W=[] <br />
for p in range(0, nombre_especes): <br />
w_prov.append(exp(-a*T)) <br />
<br />
<br />
On peut ensuite passer à l' autre colonne de la matrice avec la seconde équation. <br />
L'élément béta dans la formule vient d'une matrice contenant, pour chaque branche, et chaque espèce,<br />
1 si la branche est sur le chemin évolutif de l'espèce et 0 sinon, en fait cet élément dit qu'on doit <br />
seulement prendre les branches parentes de chaque espèce pour lesquelles on a l'optimum évolutif dont on calcule la colonne.<br />
<br />
Pour calculer la deuxième colonne de la matrice (il y en a une par optimum sélectif +1),<br />
on a besoin d'avoir les ages des embranchements qui se trouvent sur le chemin évolutif d'une espèce, de la racine jusqu'à l'espèce actuelle. En effet, pour calculer chaque élément de la somme il faut la valeur<br />
t(y)(à gauche dans la soustraction), qui correspond à l'age du bout droit de la branche et la valeur <br />
t(y-1) qui correspond à l'age au bout gauche , pour chaque branche traversée dans l'histoire de l'espèce.<br />
<br />
D'après la formule, On calcule la somme de l'époque 1 à l'époque actuelle, dans ce code, on fait l'inverse, ce qui ne change rien pour une somme.<br />
<br />
On commence par prendre le node correspondant à la première espèce actuelle, puis on parcourt l'arbre<br />
en allant d'ancètre en ancètre jusqu'à la racine. À chaque fois on calcule la portion correspondante de la somme. La boucle s'arrète quand on atteint la racine de l'arbre, on a alors calculé une valeur de la colonne. On recommence pour les autres espèces actuelles. <br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
while(nd.parent_node!=None): <br />
t2=(T-nd.age) <br />
t1=(T-nd.parent_node.age) <br />
somme=somme+exp(-a*T)*((exp(a*t2*time)-exp(a*t1*time))) <br />
nd=nd.parent_node <br />
w_prov.append(somme) <br />
somme=0 <br />
<br />
<br />
Dans le modèle simple traité ici, on peut remarquer que la somme vaut toujours :<br />
<br />
exp(-a*T)* (exp(a*T)-exp(a*t0))<br />
<br />
oû T est le temps actuel (final) et t0 le temps 0, à la racine.<br />
Ceci vient du fait que toutes les sommes intermédiaires s'annulent. Il faudrait un second optimum <br />
pour que certaines branches ne sient pas traversées dans le calcul, et qu'on aie une valeur différente.<br />
J'ai utilisé cette propriété pour verifier cette partie du code, les résultats étaient identiques.<br />
<br />
<br />
<br />
W=matrix(w_prov) <br />
W.resize([2,nombre_especes]) <br />
return W.getT() <br />
<br />
cette dernière partie était nécessaire pour éviter des erreurs avec l'optimisateur.<br />
<br />
<br />
<br />
Le second élément qu'il faut calculer pour trouver la vraisemblance du modèle avec un alpha donné<br />
est la matrice de variance-covariance V, dont les éléments sont donnés par:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
T est le temps à la fin du processus évolutif et sij est l'age du dernier ancètre commun des espèces<br />
i et j.<br />
<br />
Heureusement il existe une méthode dans dendropy, qui permet de trouver l'ancètre commun<br />
de deux espèces :mrca (pour most recent common ancestor). Il suffit alors de prendre l'age de ce node <br />
pour calculer sij.<br />
<br />
def create_VM(tree1,T,a): <br />
vt=[] <br />
for nd in tree1.leaf_iter(): <br />
for nd2 in tree1.leaf_iter(): <br />
age_mrca=T-tree1.mrca(taxon_labels=[nd.label,nd2.label]).age*time <br />
vt.append((exp(-2.*a*(T-age_mrca ))*(1.-exp(-2.*a*age_mrca)) /(2.*a)) ) <br />
#vt.reverse() <br />
v=matrix(vt) <br />
v.resize([nombre_especes,nombre_especes]) <br />
<br />
return v<br />
<br />
il faut encore noter que l'ordre “leaf_iter” est toujours le mème pour un arbre donné.<br />
Pour que les éléments soient à leur place dans les calculs, les valeurs du trait quantitatif sont mises <br />
dans le mème ordre plus loin dans le programme.<br />
<br />
<br />
for nd in tree1.leaf_iter(): <br />
for p in range(0,len(liste_traits)): <br />
if (nd.label==liste_traits[p][0]): <br />
x2.append(float(liste_traits[p][1])) <br />
x.append(x2) <br />
x2=[] <br />
<br />
<br />
<br />
Une fois qu'on a W et V, le reste des calculs est façile à implémenter:<br />
<br />
sigma=(1./nombre_especes)* (matrix(x)-WM*o).getT() *VM.getI() *(matrix(x)- WM*o)<br />
<br />
theta=(WM.getT()*VM.getI()*WM )* WM.getT()*VM.getI()*x<br />
<br />
les méthodes getT() et getI() de numpy permettent de calculer directement les transposées et inverses <br />
des matrices W et V. <br />
<br />
finalement on a tous les éléments pour calculer la fonction U, qui atteint son minimum quand la vraisemblance du paramètre alpha est maximale d'après les données.<br />
<br />
<br />
U=nombre_especes*(1+log(2.*pi*sigma))+log(linalg.det(VM))<br />
<br />
<br />
On donne alors la fonction U à un optimisateur, pour trouver la valeur de alpha qui minimise U. <br />
<br />
<br />
fmin_l_bfgs_b(u, x0=[1], fprime=None, args=arg,approx_grad=True,bounds=mybounds)<br />
<br />
Le problème du code se situe probablement ici, lors de l'optimisation,<br />
étant donné qu'un calcul à la main, avec un arbre minimal à 4 espèces n'a pas montré d'erreurs <br />
pour les matrices W et V.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3135Evolution of polymorphism in plants2012-06-05T16:29:43Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
'''Separate work on the estimation of the parameters to implement the Ornstein-Uhlenbeck mode'''<br />
:in this work, the goal was to implement the optimization algoritm described in the appendix of Butler and King's just cited paper.<br />
This work was done with the same Supervisors and background as the work on brownian motion just described.<br />
<br />
'''Students:'''<br />
:Georg Hoffmann<br />
<br />
'''notes on the model:'''<br />
:The model for which i tried to find the parameters, is the simplest form of the Ornstein Uhlenbeck model: the model where at all points <br />
of they evolution, the ancesters had all the same selective optimum. In Butler and King's paper, many different models are tried:<br />
Brownian motion and OU with up to X optimums. In theyr experiment the model with one selective optimum had the worst results in term <br />
of X from all.<br />
Actually, in a first implementation it was possible to choose multiple optimums, but as the code did not give the expected results, it was<br />
rewriten without this option to make it simpler and try to find the error.<br />
<br />
<br />
<br />
<br />
'''Explanation of the implementation'''<br />
:This code failed to give results in accordance with the R packtages Geiger an Ouch, which also showed different results between themselves.<br />
It may be that the data does not allow to get the right results, as only a small number of trees, mostly variations on one tree have been tested.<br />
There are some discussions one can read on the internet about those packtages giving different results, so it does not seem to be something<br />
new.<br />
<br />
<br />
<br />
'''L'arbre phylogénique avec dendropy:'''<br />
<br />
<br />
:dendropy représente l'arbre avec une série d'embranchements (nodes) qui correspondent à la racine,<br />
aux espèces actuelles et aux embranchements internes.<br />
Chaque node a un age, un nom (label) et un node parent (sauf la raçine). Dendropy permet de parcourir les nodes dans différents ordres .<br />
<br />
<br />
----<br />
<br />
tree1 = Tree(stream=open("dated_tree2.tre"), schema="newick") <br />
tree1.calc_node_ages(check_prec="TRUE")<br />
<br />
----<br />
<br />
ici on charge l'arbre, et on assigne les ages aux nodes.<br />
<br />
Il y a juste un petit problème: les ages sont inversés (l'age de la raçine est le plus grand, alors qu'il doit ètre 0) <br />
Pour y remédier on détermine l'age le plus élevé, et on lui soustrait l'age du node pour trouver quel age <br />
il aurait en comptant dans le sens inverse.<br />
<br />
----<br />
first=0 <br />
for nd in tree1.age_order_node_iter(descending=True): <br />
if(first==0): <br />
T=nd.age*time <br />
first=1 <br />
rootlabel=nd.label <br />
----<br />
<br />
<br />
'''la Weight Matrix:'''<br />
<br />
La Weight Matrix “W“ est calculéede la manière suivante:<br />
<br />
<br />
la première colonne de la weight matrix comporte une seule valeur pour toutes les espèces:<br />
exp(-a*T), on peut donc la remplir simplement en connaissant le nombre d'espèces actuelles dans l'arbre. Ceci correspond à la colonne i0 dans la formule.<br />
---- <br />
somme=0 <br />
w_prov=[] <br />
W=[] <br />
for p in range(0, nombre_especes): <br />
w_prov.append(exp(-a*T)) <br />
----<br />
<br />
On peut ensuite passer à l' autre colonne de la matrice avec la seconde équation. <br />
L'élément béta dans la formule vient d'une matrice contenant, pour chaque branche, et chaque espèce,<br />
1 si la branche est sur le chemin évolutif de l'espèce et 0 sinon, en fait cet élément dit qu'on doit <br />
seulement prendre les branches parentes de chaque espèce pour lesquelles on a l'optimum évolutif dont on calcule la colonne.<br />
<br />
Pour calculer la deuxième colonne de la matrice (il y en a une par optimum sélectif +1),<br />
on a besoin d'avoir les ages des embranchements qui se trouvent sur le chemin évolutif d'une espèce, de la racine jusqu'à l'espèce actuelle. En effet, pour calculer chaque élément de la somme il faut la valeur<br />
t(y)(à gauche dans la soustraction), qui correspond à l'age du bout droit de la branche et la valeur <br />
t(y-1) qui correspond à l'age au bout gauche , pour chaque branche traversée dans l'histoire de l'espèce.<br />
<br />
D'après la formule, On calcule la somme de l'époque 1 à l'époque actuelle, dans ce code, on fait l'inverse, ce qui ne change rien pour une somme.<br />
<br />
On commence par prendre le node correspondant à la première espèce actuelle, puis on parcourt l'arbre<br />
en allant d'ancètre en ancètre jusqu'à la racine. À chaque fois on calcule la portion correspondante de la somme. La boucle s'arrète quand on atteint la racine de l'arbre, on a alors calculé une valeur de la colonne. On recommence pour les autres espèces actuelles. <br />
<br />
----<br />
for nd in tree1.leaf_iter(): <br />
while(nd.parent_node!=None): <br />
t2=(T-nd.age) <br />
t1=(T-nd.parent_node.age) <br />
somme=somme+exp(-a*T)*((exp(a*t2*time)-exp(a*t1*time))) <br />
nd=nd.parent_node <br />
w_prov.append(somme) <br />
somme=0 <br />
----<br />
<br />
Dans le modèle simple traité ici, on peut remarquer que la somme vaut toujours :<br />
<br />
exp(-a*T)* (exp(a*T)-exp(a*t0))<br />
<br />
oû T est le temps actuel (final) et t0 le temps 0, à la racine.<br />
Ceci vient du fait que toutes les sommes intermédiaires s'annulent. Il faudrait un second optimum <br />
pour que certaines branches ne sient pas traversées dans le calcul, et qu'on aie une valeur différente.<br />
J'ai utilisé cette propriété pour verifier cette partie du code, les résultats étaient identiques.<br />
<br />
<br />
----<br />
W=matrix(w_prov) <br />
W.resize([2,nombre_especes]) <br />
return W.getT() <br />
----<br />
cette dernière partie était nécessaire pour éviter des erreurs avec l'optimisateur.<br />
<br />
<br />
<br />
Le second élément qu'il faut calculer pour trouver la vraisemblance du modèle avec un alpha donné<br />
est la matrice de variance-covariance V, dont les éléments sont donnés par:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
T est le temps à la fin du processus évolutif et sij est l'age du dernier ancètre commun des espèces<br />
i et j.<br />
<br />
Heureusement il existe une méthode dans dendropy, qui permet de trouver l'ancètre commun<br />
de deux espèces :mrca (pour most recent common ancestor). Il suffit alors de prendre l'age de ce node <br />
pour calculer sij.<br />
----<br />
def create_VM(tree1,T,a): <br />
vt=[] <br />
for nd in tree1.leaf_iter(): <br />
for nd2 in tree1.leaf_iter(): <br />
age_mrca=T-tree1.mrca(taxon_labels=[nd.label,nd2.label]).age*time <br />
vt.append((exp(-2.*a*(T-age_mrca ))*(1.-exp(-2.*a*age_mrca)) /(2.*a)) ) <br />
#vt.reverse() <br />
v=matrix(vt) <br />
v.resize([nombre_especes,nombre_especes]) <br />
<br />
return v<br />
----<br />
il faut encore noter que l'ordre “leaf_iter” est toujours le mème pour un arbre donné.<br />
Pour que les éléments soient à leur place dans les calculs, les valeurs du trait quantitatif sont mises <br />
dans le mème ordre plus loin dans le programme.<br />
<br />
----<br />
for nd in tree1.leaf_iter(): <br />
for p in range(0,len(liste_traits)): <br />
if (nd.label==liste_traits[p][0]): <br />
x2.append(float(liste_traits[p][1])) <br />
x.append(x2) <br />
x2=[] <br />
<br />
----<br />
<br />
<br />
<br />
<br />
<br />
Une fois qu'on a W et V, le reste des calculs est façile à implémenter:<br />
<br />
sigma=(1./nombre_especes)* (matrix(x)-WM*o).getT() *VM.getI() *(matrix(x)- WM*o)<br />
<br />
theta=(WM.getT()*VM.getI()*WM )* WM.getT()*VM.getI()*x<br />
<br />
les méthodes getT() et getI() de numpy permettent de calculer directement les transposées et inverses <br />
des matrices W et V. <br />
<br />
finalement on a tous les éléments pour calculer la fonction U, qui atteint son minimum quand la vraisemblance du paramètre alpha est maximale d'après les données.<br />
<br />
----<br />
U=nombre_especes*(1+log(2.*pi*sigma))+log(linalg.det(VM))<br />
----<br />
<br />
On donne alors la fonction U à un optimisateur, pour trouver la valeur de alpha qui minimise U. <br />
<br />
----<br />
fmin_l_bfgs_b(u, x0=[1], fprime=None, args=arg,approx_grad=True,bounds=mybounds)<br />
----<br />
Le problème du code se situe probablement ici, lors de l'optimisation,<br />
étant donné qu'un calcul à la main, avec un arbre minimal à 4 espèces n'a pas montré d'erreurs <br />
pour les matrices W et V.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3134Evolution of polymorphism in plants2012-06-05T16:16:45Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
'''Separate work on the estimation of the parameters to implement the Ornstein-Uhlenbeck mode'''<br />
:in this work, the goal was to implement the optimization algoritm described in the appendix of Butler and King's just cited paper.<br />
This work was done with the same Supervisors and background as the work on brownian motion just described.<br />
<br />
'''Students:'''<br />
:Georg Hoffmann<br />
<br />
'''notes on the model:'''<br />
:The model for which i tried to find the parameters, is the simplest form of the Ornstein Uhlenbeck model: the model where at all points <br />
of they evolution, the ancesters had all the same selective optimum. In Butler and King's paper, many different models are tried:<br />
Brownian motion and OU with up to X optimums. In theyr experiment the model with one selective optimum had the worst results in term <br />
of X from all.<br />
Actually, in a first implementation it was possible to choose multiple optimums, but as the code did not give the expected results, it was<br />
rewriten without this option to make it simpler and try to find the error.<br />
<br />
<br />
<br />
<br />
'''Explanation of the implementation'''<br />
:This code failed to give results in accordance with the R packtages Geiger an Ouch, which also showed different results between themselves.<br />
It may be that the data does not allow to get the right results, as only a small number of trees, mostly variations on one tree have been tested.<br />
There are some discussions one can read on the internet about those packtages giving different results, so it does not seem to be something<br />
new.<br />
<br />
<br />
<br />
'''L'arbre phylogénique avec dendropy:'''<br />
<br />
<br />
:dendropy représente l'arbre avec une série d'embranchements (nodes) qui correspondent à la racine,<br />
aux espèces actuelles et aux embranchements internes.<br />
Chaque node a un age, un nom (label) et un node parent (sauf la raçine). Dendropy permet de parcourir les nodes dans différents ordres .</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Evolution_of_polymorphism_in_plants&diff=3133Evolution of polymorphism in plants2012-06-05T14:16:48Z<p>Anonymous: </p>
<hr />
<div>'''Evolution of polymorphism in plants''' <br />
----<br />
'''Background:''' <br />
:Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based stochastic models. Therefore, the key challenge today is to develop and test algorithms which can adequately describe evolution of phenotypes.<br />
'''Goal:'''<br />
:The goal of this project is to develop MCMC optimization of Ornstein-Uhlenbeck process with group-specific variance and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection in a group of plants<br />
'''Mathematical tools:''' <br />
:Statistics (stochastic models and MCMC) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
'''Biological or Medical aspects:''' <br />
:This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
'''Supervisors:''' <br />
:Anna Kostikova & Nicolas Salamin<br />
'''Students:'''<br />
:Rémy Morier-Genoud<br />
'''Presentation on Brownian Motion:'''<br />
:[[Media:Slides_BrownianMotion.pptx]]<br />
'''Implementation of Brownian Motion in ''Python'': Code & Input examples:'''<br />
:[[Media:Polymorphism.zip]], [[Media:dated_tree.zip]], [[Media:frogs_bio10.zip]]<br />
'''Report: Project Summary & Code explanations'''<br />
:[[Media:Report_BrownianMotion.pdf]] [[Media:Report_Hoffman.pdf]] <br />
'''References:'''<br />
:A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2012"]]<br />
<br />
'''Separate work on the estimation of the parameters to implement the Ornstein-Uhlenbeck mode'''<br />
:in this work, the goal was to implement the optimization algoritm described in the appendix of Butler and King's just cited paper.<br />
This work was done with the same Supervisors and background as the work on brownian motion just described.<br />
<br />
'''Students:'''<br />
:Georg Hoffmann<br />
<br />
'''notes on the model:'''<br />
:The model for which i tried to find the parameters, is the simplest form of the Ornstein Uhlenbeck model: the model where at all points <br />
of they evolution, the ancesters had all the same selective optimum. In Butler and King's paper, many different models are tried:<br />
Brownian motion and OU with up to X optimums. In theyr experiment the model with one selective optimum had the worst results in term <br />
of X from all.<br />
Actually, in a first implementation it was possible to choose multiple optimums, but as the code did not give the expected results, it was<br />
rewriten without this option to make it simpler and try to find the error.<br />
<br />
<br />
<br />
<br />
'''Explanation of the implementation'''<br />
:This code failed to give results in accordance with the R packtages Geiger an Ouch, which also showed different results between themselves.<br />
It may be that the data does not allow to get the right results, as only a small number of trees, mostly variations on one tree have been tested.<br />
There are some discussions one can read on the internet about those packtages giving different results, so it does not seem to be something<br />
new.<br />
<br />
<br />
It seems like the problem with this code lies in the optimization.<br />
In this section we will look at how the code works, wich tests have been done and how some properties described in the reference paper could be verified .<br />
At the same time we will see the algoritm that was implemented. For this, we will follow the order of the algoritm and look at the portions of <br />
code that implement the different parts.</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2316Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-27T22:56:00Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''':<br />
[[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
[http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
Final presentation [[http://www2.unil.ch/cbg/index.php?title=File:Presentation_finale.pdf]]<br />
<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation (please go on the following website to find a free full copy) http://www.cshperspectives.com/content/1/3/a001255.full<br />
<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Uncovering_modes_of_evolution:_testing_for_selection_versus_genetic_drift_in_species_diversification&diff=2315Uncovering modes of evolution: testing for selection versus genetic drift in species diversification2011-05-27T10:06:53Z<p>Anonymous: </p>
<hr />
<div>'''Background''': Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based of complex evolutionary models. Therefore, the key challenge now is to develop and test the models which can adequately describe evolution. <br />
<br />
'''Goal''': The goal of this project is to develop likelihood optimization of Ornstein-Uhlenbeck process in R and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection of ''Amolops'' frogs<br />
<br />
'''Mathematical tools''': Statistics (stochastic models) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
<br />
'''Biological or Medical aspects''': This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
<br />
BM formula: [[File:BM formule.pdf]] <br />
OU formula: [[file: ou.script.pdf]]<br />
<br />
'''Supervisors''': [[User:Anna|Anna Kostikova]] & [[User:Nicolas|Nicolas Salamin]]<br />
<br />
'''Students''': Berto Polerà, 3rd years of bachelor in biology. <br />
<br />
'''Presentation''': <br />
<br />
'''References''':<br />
<biblio><br />
#M A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
</biblio><br />
<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2011"]]]</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:Ou.script.pdf&diff=2314File:Ou.script.pdf2011-05-27T09:55:57Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:Ou.script.pdf&diff=2313File:Ou.script.pdf2011-05-27T09:54:17Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:Ou.script.pdf&diff=2312File:Ou.script.pdf2011-05-27T09:51:10Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2308Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:52:01Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''':<br />
[[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
[http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
Final presentation [[http://www2.unil.ch/cbg/index.php?title=File:Presentation_finale.pdf]]<br />
<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2307Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:50:59Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''':<br />
[[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
[http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
[[http://www2.unil.ch/cbg/index.php?title=File:Presentation_finale.pdf]]<br />
<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2306Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:49:47Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''':<br />
[[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
[http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
[[Media: http://www2.unil.ch/cbg/index.php?title=File:Presentation_finale.pdf]]<br />
<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2305Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:48:17Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''':<br />
[[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
[http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
[[Media:http://www2.unil.ch/cbg/images/0/09/Presentation_finale.pdf]]<br />
<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2304Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:46:00Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''':<br />
[[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
[http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
[[Media:http://www2.unil.ch/cbg/index.php?title=File:Presentation_finale.pdf]]<br />
<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:Presentation_finale.pdf&diff=2303File:Presentation finale.pdf2011-05-26T23:44:04Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2302Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:31:23Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''':<br />
[[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
[http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2301Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:30:31Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''':<br />
[[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
[http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2300Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:27:39Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''': [http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2299Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:22:05Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''': [http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our midterm presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[MorphGradForm<br />
http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2298Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:21:14Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''': [http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our midterm presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation [[http://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2297Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:20:06Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''': [http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogen distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our midterm presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogen gradient formation <br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:Paper_MorphogenGradientFormation_intro_Wartlick.pdf&diff=2296File:Paper MorphogenGradientFormation intro Wartlick.pdf2011-05-26T23:19:50Z<p>Anonymous: </p>
<hr />
<div>This paper describes the morphogen gradient formation</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2295Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:16:54Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''': [http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha.<br />
<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand.<br />
<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogene distribution.<br />
<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
<br />
Please feel free to look at our midterm presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogene gradient formation <br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2294Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-26T23:16:08Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''': [http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
'''Activities''':<br />
<br />
We started to learn how to use Matlab with other groups after having had a brief intro into the topic by Sascha<br />
Aitana reminded us the basic principles of differential equations and how to resolve them by hand<br />
We then moved into using Mathematica to solve analytically the equations describing our diffusion/reaction model of morphogene distribution<br />
After this, we switched to Matlab to resolve numerically these equations and be able to run some simulations to test the effect of clones (ie modified cells with different diffusion and degradation coefficients).<br />
Please feel free to look at our midterm presentations for more detail and ask us questions at our @unil.ch email addresses.<br />
<br />
<br />
'''Material''':<br />
Article describing the morphogene gradient formation <br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Uncovering_modes_of_evolution:_testing_for_selection_versus_genetic_drift_in_species_diversification&diff=2273Uncovering modes of evolution: testing for selection versus genetic drift in species diversification2011-05-22T12:57:04Z<p>Anonymous: </p>
<hr />
<div>'''Background''': Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based of complex evolutionary models. Therefore, the key challenge now is to develop and test the models which can adequately describe evolution. <br />
<br />
'''Goal''': The goal of this project is to develop likelihood optimization of Ornstein-Uhlenbeck process in R and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection of ''Amolops'' frogs<br />
<br />
'''Mathematical tools''': Statistics (stochastic models) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
<br />
'''Biological or Medical aspects''': This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
<br />
BM formula: [[File:BM formule.pdf]] <br />
<br />
'''Supervisors''': [[User:Anna|Anna Kostikova]] & [[User:Nicolas|Nicolas Salamin]]<br />
<br />
'''Students''': Berto Polerà, 3rd years of bachelor in biology. <br />
<br />
'''Presentation''': <br />
<br />
'''References''':<br />
<biblio><br />
#M A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
</biblio><br />
<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2011"]]]</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=File:BM_formule.pdf&diff=2272File:BM formule.pdf2011-05-22T12:55:57Z<p>Anonymous: </p>
<hr />
<div></div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Uncovering_modes_of_evolution:_testing_for_selection_versus_genetic_drift_in_species_diversification&diff=2271Uncovering modes of evolution: testing for selection versus genetic drift in species diversification2011-05-22T12:54:33Z<p>Anonymous: </p>
<hr />
<div>'''Background''': Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based of complex evolutionary models. Therefore, the key challenge now is to develop and test the models which can adequately describe evolution. <br />
<br />
'''Goal''': The goal of this project is to develop likelihood optimization of Ornstein-Uhlenbeck process in R and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection of ''Amolops'' frogs<br />
<br />
'''Mathematical tools''': Statistics (stochastic models) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
<br />
'''Biological or Medical aspects''': This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
BM formula: [[File:BM formule.pdf]] <br />
<br />
'''Supervisors''': [[User:Anna|Anna Kostikova]] & [[User:Nicolas|Nicolas Salamin]]<br />
<br />
'''Students''': Berto Polerà, 3rd years of bachelor in biology. <br />
<br />
'''Presentation''': <br />
<br />
'''References''':<br />
<biblio><br />
#M A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
</biblio><br />
<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2011"]]]</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Uncovering_modes_of_evolution:_testing_for_selection_versus_genetic_drift_in_species_diversification&diff=2270Uncovering modes of evolution: testing for selection versus genetic drift in species diversification2011-05-22T12:51:24Z<p>Anonymous: </p>
<hr />
<div>'''Background''': Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based of complex evolutionary models. Therefore, the key challenge now is to develop and test the models which can adequately describe evolution. <br />
<br />
'''Goal''': The goal of this project is to develop likelihood optimization of Ornstein-Uhlenbeck process in R and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection of ''Amolops'' frogs<br />
<br />
'''Mathematical tools''': Statistics (stochastic models) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
<br />
'''Biological or Medical aspects''': This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other.<br />
BM formula: [[File:BM formule.odt]] <br />
<br />
'''Supervisors''': [[User:Anna|Anna Kostikova]] & [[User:Nicolas|Nicolas Salamin]]<br />
<br />
'''Students''': Berto Polerà, 3rd years of bachelor in biology. <br />
<br />
'''Presentation''': <br />
<br />
'''References''':<br />
<biblio><br />
#M A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
</biblio><br />
<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2011"]]]</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Microarray_data_analysis_of_the_shade_avoidance_in_plants&diff=2269Microarray data analysis of the shade avoidance in plants2011-05-22T12:30:14Z<p>Anonymous: </p>
<hr />
<div>'''Background''': When young plant seedling are in the shade, they will tend to elongate in order to rise above neighboring plants that may be shading it. This is part of the "Shade Avoidance Response" which provides the plant with a competitive advantage. <br />
<br />
'''Goal''': The Fankhauser lab at CIG (UNIL) has microarray expression data of plants grown in a shaded or unshaded environments, for various shade avoidance mutants. The goal of this project is to analyse this data and compare the results to similar publicly available data recenty reported in the scientific literature. <br />
<br />
'''Mathematical tools''': Statistics. The students will learn the basics of microarray data analysis using the R software.<br />
<br />
'''Biological or Medical aspects''': The regulation of the shade avoidance response in Arabidopsis thaliana. <br />
<br />
'''Supervisor''': [[User:Micha|Micha Hersch]]<br />
<br />
'''Students''': Alain Reymond, Patrice Descombes & Marie-Aude Tschopp <br />
<br />
'''Presentation''': <br />
<br />
'''References''':<br />
<biblio><br />
#lorrain09 pmid=19619162<br />
#quai pmid=19920208<br />
</biblio><br />
<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2011"]]]</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Microarray_data_analysis_of_the_shade_avoidance_in_plants&diff=2268Microarray data analysis of the shade avoidance in plants2011-05-22T12:15:36Z<p>Anonymous: </p>
<hr />
<div>'''Background''': When young plant seedling are in the shade, they will tend to elongate in order to rise above neighboring plants that may be shading it. This is part of the "Shade Avoidance Response" which provides the plant with a competitive advantage. <br />
<br />
'''Goal''': The Fankhauser lab at CIG (UNIL) has microarray expression data of plants grown in a shaded or unshaded environments, for various shade avoidance mutants. The goal of this project is to analyse this data and compare the results to similar publicly available data recenty reported in the scientific literature. <br />
<br />
'''Mathematical tools''': Statistics. The students will learn the basics of microarray data analysis using the R software.<br />
<br />
'''Biological or Medical aspects''': The regulation of the shade avoidance response in Arabidopsis thaliana. <br />
<br />
'''Supervisor''': [[User:Micha|Micha Hersch]]<br />
<br />
'''Students''': Alain Raymond, Patrice Descombes & Marie-Aude Tschopp <br />
<br />
'''Presentation''': <br />
<br />
'''References''':<br />
<biblio><br />
#lorrain09 pmid=19619162<br />
#quai pmid=19920208<br />
</biblio><br />
<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2011"]]]</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Uncovering_modes_of_evolution:_testing_for_selection_versus_genetic_drift_in_species_diversification&diff=2267Uncovering modes of evolution: testing for selection versus genetic drift in species diversification2011-05-22T12:12:10Z<p>Anonymous: </p>
<hr />
<div>'''Background''': Understanding modes of species evolution is the major questions to the current evolutionary biology. As more DNA data become available, an increasing number of researchers is now switching to phylogeny-based of complex evolutionary models. Therefore, the key challenge now is to develop and test the models which can adequately describe evolution. <br />
<br />
'''Goal''': The goal of this project is to develop likelihood optimization of Ornstein-Uhlenbeck process in R and then use it in phylogenetic comparative analysis to test for signal of directional/divergent selection of ''Amolops'' frogs<br />
<br />
'''Mathematical tools''': Statistics (stochastic models) and programming. The students will learn how to use R to implement stochastic models and develop optimization procedures of the model parameters<br />
<br />
'''Biological or Medical aspects''': This kind of analysis allow to estimate the most probable way of evolution, and permit to answer a lot of question like phenotypic evolution, comparative analysis between species and more other. <br />
<br />
'''Supervisors''': [[User:Anna|Anna Kostikova]] & [[User:Nicolas|Nicolas Salamin]]<br />
<br />
'''Students''': Berto Polerà, 3rd years of bachelor in biology. <br />
<br />
'''Presentation''': <br />
<br />
'''References''':<br />
<biblio><br />
#M A Butler, A A King 2004 "Phylogenetic comparative analysis: A modeling approach for adaptive evolution" American Naturalist: 164(6): 683-695<br />
</biblio><br />
<br />
Back to [[UNIL BSc course: "Solving Biological Problems that require Math 2011"]]]</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2266Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-13T06:52:02Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
'''Presentation''': [http://dl.dropbox.com/u/5753407/midterm_presentation.pdf midterm presentation]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2265Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-13T06:44:25Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
''' Presentation''': [[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
<br />
'''Activities''':<br />
<br />
Midterm presentation: [[File:Example.jpg]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2264Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-12T14:13:48Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
''' Presentation''': [[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
<br />
'''Activities''':<br />
<br />
Midterm presentation: [[Media:midterm presentation__vf.pdf ]] [[Media:midterm presentation__vf.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2263Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-12T14:11:02Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
''' Presentation''': [[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
<br />
'''Activities''':<br />
<br />
Midterm presentation: [[Media:midterm presentation__vf.pdf ]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymoushttp://www2.unil.ch/cbg/index.php?title=Morphogen%C3%A8se:_mod%C3%A9lisation_de_la_formation_de_gradients_de_diffusion&diff=2262Morphogenèse: modélisation de la formation de gradients de diffusion2011-05-12T14:04:24Z<p>Anonymous: </p>
<hr />
<div>== Description ==<br />
<br />
'''Background''': La différentiation cellulaire et structuration dans les tissus sont engendrées par des informations graduées qui sont perçues par les cellules (formation de gradients de concentration de molécules appelées morphogènes).<br />
<br />
'''Goals''': <br />
<br />
(1) Etudier et comprendre comment se forme un gradient de diffusion (en prenant comme example Decapentaplegic (Dpp), qui participe à la structuration des ailes dans les Drosophiles). <br />
<br />
(2) Etudier comment des modification génétiques dans un groupe de cellules (appelé clone) affecte la formation du gradient de diffusion.<br />
<br />
'''Mathematical tools''': <br />
<br />
(1) Apprendre à résoudre mathématiquement l'équation différentielle ordinaire qui décrit la formation du gradient de diffusion. <br />
<br />
(2) Apprendre les notions de base du logiciel Mathematica, utile pour la résolution mathématique du problème. <br />
<br />
(3) Apprendre les notions de base du logiciel matlab, utile pour la résolution numérique du problème.<br />
<br />
'''Supervisor''': [[User:Sascha|Sascha Dalessi]]<br />
<br />
'''Students''': Basilio Giangreco , Amandine Bovay, Kevin Richards<br />
<br />
''' Presentation''': [[Media:PresCoursSascha20011ModelDiffusion.pdf]]<br />
<br />
----<br />
(Project in [[Course: "Solving Biological Problems that require Math"]])<br />
----</div>Anonymous