L3 BOE

Biologie Evolutive

     

Liste des cours et versions :


Jusqu'à nouvel avis, tous les cours et les TD se feront en distanciel. Les liens seront mis à jour sur eCampus au fur et à mesure.


Histoire de l'idée d'évolution 29-12-2020

     Pour compléter le cours, le texte de la sixième édition De l'origine des espèces. Il s'agit de la dernière édition publiée du vivant de Darwin. Elle diffère par plusieurs points de la première édition.

     Darwin C (1906 - original publication 1876) De l’origine des espèces. Schleicher Frères, Paris, France

Introduction à la biologie Evolutive 10-01-2021

     Pour compléter le cours:

     Casane D, Laurenti P (2013) Why coelacanths are not 'living fossils': a review of molecular and morphological data. Bioessays 35: 332-338 doi 10.1002/bies.201200145


Reconstruction de phylogénies 30-12-2020

     Un article en français qui est un peu ancien mais était une bonne synthèse:

     Lopez P, Casane D, Philippe H (2002) Phylogénie et évolution moléculaires. médecine/sciences 18: 1146-1154 doi 10.1051/medsci/200218111146


Histoire de l'homologie 10-01-2021

Espèce et spéciation 10-01-2021

Biogéographie 19-04-2016

Evolution de l'autopode 29-03-2011

Oiseaux et dinosaures 26-01-2010


Compter le temps 02-10-2020


Énoncés des TD 2020-2021


      TD 4: Pourquoi les hommes sont plus grands que les femmes ?

          Lien pour charger le film à visionner avant le TD 4

     Au fur et à mesure du visionnage du film, notez toutes les hypothèses testées

     et comment elles sont réfutées ou non.


     TD 6: Déchiffrer les mystères de la vie

          Lien pour charger le film à visionner avant le TD 6

Un article qui peut vous servir à répondre à certaines critiques décrites dans le film:

Casane D, Laurenti P (2014) Syllogomanie moléculaire : l’ADN non codant enrichit le jeu des possibles. Médecine & Science 30: 1177-1183

     Au cours du visionnage du film, notez tous les faits et hypothèses qui

     pourraient remettre en cause l'évolution selon les personnes interviewées.

     Sur la base de vos connaissances, quelles réponses pouvez-vous apporter ?


Pensez à télécharger les vidéos dès maintenant car j'ai peur que le serveur du labo ne soit surchargé si tout le monde les télécharge au dernier moment.


     TD 5: La coévolution

     Pour répondre aux premières questions, vous pouvez vous aider de ce cours

     de L1:

     Cours de L1 sur les grands principes de l'écologie


Code R permettant de modéliser la résistance à la TTX chez la couleuvre et la production de TTX chez les tritons

Pas d'erreur dans l'exécution du code...

Bien sûr, il s'agit d'un modèle extrèmement simple qui est loin de représenter tout ce que l'on connait de l'évolution de ces caractères. Il est bon de se rappeler de cet aphorisme de Georges Box:

All models are wrong but some are useful

In Box, G. E. P. (1979), "Robustness in the strategy of scientific model building", in Launer, R. L.; Wilkinson, G. N. (eds.), Robustness in Statistics, Academic Press, pp. 201–236.


Pour l'utiliser, il faut installer R (https://cran.r-project.org) et pour que ce soit un peu plus simple à utiliser, vous pouvez aussi installer RStudio Desktop qui est une IDE (integrated development environment) pour R (https://rstudio.com/products/rstudio/).

Lancez Rstudio, et ouvrez une page pour un nouveau script R. Copiez le code suivant et vous pouvez alors l'exécuter (ctrl+A et ctrl+R sur Windows et cmd+A et cmd+R sur MacOSX).


# Fonction qui permet d'afficher deux histogrammes superposés avec des légendes

hist_both <- function(tritons.synthese, couleuvres.resistance, maxx=100, maxy=100, iteration="") {

  hist(couleuvres.resistance, xlim=c(0, maxx), ylim=c(0, maxy), breaks = seq(from=0, to=100, by=2),

       col=rgb(red = 0.5, green = 0.5, blue = 0.5, alpha = 0.5),

       xlab="Quantité de TTX", ylab="Nombre", main=iteration)

  par(new=TRUE)

  hist(tritons.synthese, xlim=c(0, maxx), ylim=c(0, maxy), breaks = seq(from=0, to=100, by=2),

       col=rgb(red = 0., green = 0., blue = 0.6, alpha = 0.5), xlab="", ylab="", axes = FALSE, main="")

  legend(x="topleft", legend=c("Synthèse TTX chez le triton", "Résistance TTX chez la couleuvre"),

         col=c(rgb(red = 0., green = 0., blue = 0.6, alpha = 0.5),

               rgb(red = 0.5, green = 0.5, blue = 0.5, alpha = 0.5)), pch=15, bty="n")

}


taille.population.couleuvre <- 100

taille.population.triton <- 100

Nombre.iterations <- 100


# Population initiale tirée dans une loi normale de moyenne 20 pour la résistance et 40 pour la synthèse

couleuvres.resistance <- rnorm(taille.population.couleuvre, mean=20, sd=3)

tritons.synthese <- rnorm(taille.population.triton, mean=40, sd=3)


# Je fais tourner le modèle sur Nombre.iterations itérations

for (iteration in 1:Nombre.iterations) {

  

  hist_both(tritons.synthese, couleuvres.resistance, maxy=40, iteration=as.character(iteration))

  

  # Rencontre des couleuvres et des tritons

  rencontres <- floor(min(taille.population.couleuvre, taille.population.triton)/2)

  couleuvres <- sample(1:taille.population.couleuvre, rencontres, replace = FALSE)

  tritons <- sample(1:taille.population.triton, rencontres, replace = FALSE)

  

# Je regarde qui meurt, couleuvre ou triton

  mort.couleuvre <- ifelse(couleuvres.resistance[couleuvres] < tritons.synthese[tritons], TRUE, FALSE)

  mort.triton <- !mort.couleuvre

  

# Je les fais mourir

  if (any(mort.couleuvre)) couleuvres.resistance[couleuvres[mort.couleuvre]] <- NA

  if (any(mort.triton)) tritons.synthese[tritons[mort.triton]] <- NA

  

  couleuvres.resistance <- na.omit(couleuvres.resistance)

  tritons.synthese <- na.omit(tritons.synthese)

  

  # S'il y a eu des morts chez les couleuvres, je fais de la reproduction

  if (length(couleuvres.resistance) < taille.population.couleuvre) {

    # Reproduction non-sexuée

    nouvelles.couleuvres <- sample(couleuvres.resistance, taille.population.couleuvre-length(couleuvres.resistance), replace = TRUE)

    # Mutation

    nouvelles.couleuvres <- rnorm(taille.population.couleuvre-length(couleuvres.resistance), nouvelles.couleuvres, sd=3)

    couleuvres.resistance <- c(couleuvres.resistance, nouvelles.couleuvres)

    # J'élimine les valeurs aberrantes

    couleuvres.resistance <- ifelse(couleuvres.resistance < 0, 0, couleuvres.resistance)

    couleuvres.resistance <- ifelse(couleuvres.resistance > 100, 100, couleuvres.resistance)

  }

  

  # S'il y a eu des morts chez les tritons, je fais de la reproduction

  if (length(tritons.synthese) < taille.population.triton) {

    # Reproduction non-sexuée

    nouveaux.tritons <- sample(tritons.synthese, taille.population.triton-length(tritons.synthese), replace = TRUE)

    # Mutation

    nouveaux.tritons <- rnorm(taille.population.triton-length(tritons.synthese), nouveaux.tritons, sd=3)

    tritons.synthese <- c(tritons.synthese, nouveaux.tritons)

    # J'élimine les valeurs aberrantes

    tritons.synthese <- ifelse(tritons.synthese < 0, 0, tritons.synthese)

    tritons.synthese <- ifelse(tritons.synthese > 100, 100, tritons.synthese)

  }

  

  Sys.sleep(0.5)

}





Sujets de 2018-2019:

1ère session

2ème session