TD1: Exploration donn ees, MAF, mod'ele de Hardy-Weinberg

La page est créée Christiane Gaillard
 
CONTINUER À LIRE
TD1: Exploration données, MAF, modèle de Hardy-Weinberg
                                     Génétique Statistique - M1
                                                2018-2019

    L’étude Functional SNPs Associated with Muscle Size and Strength (FAMuSS) a été menée pour
identifier les déterminants génétiques de la taille et force des muscles squelettiques avant et après
l’entraı̂nement physique. Un total de n = 1397 étudiants universitaires ont participé à l’étude, et
les données pour 225 SNPs sur plusieurs gènes ont été recueillies. Les étudiants ont entraı̂né leur
bras non dominant pendant 12 semaines. L’objectif primaire de l’étude était d’identifier les gènes
associés à la performance musculaire et en particulier de comprendre les associations entre les SNP
considérés et la variation volumétrique dans muscles, os et graisse sous cutanée, la force musculaire,
la réponse à l’entraı̂nement ainsi que d’autres traits. Les résultats de l’étude sont reportés dans [2] ;
le manuel [1] propose d’analyser ces données à des fins pédagogiques.
Exercice 1 (Chargement données). Nous allons travailler avec un sous-ensemble des données stocké
dans le fichier
FMS_data.txt dont le séparateur est tabulation. Ce fichier est disponible à l’addresse
http://w3.mi.parisdescartes.fr/~vperduca/gen_stat/data/FMS_data.txt.
  1. Charger les données en R en utilisant read.table() avec les paramètres appropriés et les
      stocker dans la variable fms (attention : il faut dire à R de “remplir” les espaces vides corres-
      pondants aux données manquantes “à droite”).
Exercice 2 (Explorations préliminaires).      1. Vérifier que le nombre d’observations est bien n =
     1397.
  2. Trouver le nombre de colonnes et afficher leurs noms. Vérifier que les variables Age, Gen-
     der, Race sont disponibles.
  3. Trouver l’age, le gendre et l’origine ethnique de l’individu FA-1810.
  4. Décrire la distribution de la variable Age : trouver moyenne, variance, médiane et autres
     quartiles. Tracer le boxplot correspondant (attention aux valeurs manquantes).
  5. Combien d’étudiants hommes et femmes y a t-il dans l’étude ? Utiliser les fonctions summary()
     et table().
Exercice 3 (Gènes et SNPs).      1. Dans la base de données considérée, les identifiants des SNPs
     sur le gène actn3 ont tous la forme actn3_x où x est l’indicatif du SNP. Trouver le nombre
     de SNPs sur actn3 et leur noms à l’aide de la fonction substr().
  2. Explorer les informations sur actn3 contenues dans la base de données en ligne NCBI Gene
     http://www.ncbi.nlm.nih.gov/gene.
  3. Explorer les informations sur le SNP rs1815739 contenus dans la base de données en ligne
     NCBI dbSNP
     http://www.ncbi.nlm.nih.gov/snp.

                                                      1
4. Vérifier que FL-1603 est hétérozygote par rapport à rs1815739.
   5. Trouver le génotype des individus IR-2110 - IR2120 (11 individus) par rapport au SNP
      rs1815739.
Exercice 4 (Calul de la MAF). On travaille avec le SNP actn3_rs540874.
  1. Combien de génotypes observe t-on pour ce SNP ? Et quelle est la fréquences des données
     manquantes ?
  2. Par simplicité on fait l’hypothèse que les fréquences génotypiques ne changent pas si on consi-
     dère uniquement les génotypes observés (c’est une hypothèse assez forte : par exemple si un
     génotype est plus difficile à observer par voie expérimentale que les autres, sous cette hypo-
     thèse on sous-estime sa fréquence réelle). Calculer les fréquences génotypiques.
  3. Calculer la fréquence des allèles.
  4. Quel est l’allèle rare pour ce SNP ? Et quelle est la Minor Allele Frequency (MAF) du SNP ?
Exercice 5 (MAF avec package dedié). genetics est un package avec de nombreuses fonctions
pour faire de la génétique statistique.
  1. Installer le package à l’aide de install.packages('genetics') et le charger dans la session
     courante à l’aide de library(genetics).
  2. Créer un objet de type genotype à partir de actn3_rs540874. Consulter l’aide ?genotype si
     nécessaire.
  3. A l’aide de summary() re-trouver les fréquences alléliques de actn3_rs540874. Comparer avec
     les résultats précédemment obtenus.
Exercice 6 (Strates et fréquences alléliques). On continue à travailler avec le SNP actn3_rs540874.
  1. Calculer la MAF du SNP pour les femmes et les hommes dans l’étude.
  2. Quels sont les groupes ethniques des étudiants recrutés pour l’étude ? Trouver la taille de
     chaque sous-échantillon correspondant. Vérifier qu’il n’y a pas de génotype pour le seul Indien
     d’Amérique dans l’étude.
  3. Calculer la MAF pour les sous-échantillons Hispanic et Asian. Comparer avec le résultat
     obtenu pour la population entière.
  4. Quelle est la démarche statistique correcte pour tirer des conclusions sur les sous-populations
     à partir des sous-échantillons observés dans l’étude ? Par example, vérifier si la fréquence de
     l’allèle G dans les sous-populations Hispanic et Asian est differente.
Exercice 7 (Proportions de Hardy-Weinberg). On continue à travailler avec le SNP actn3_rs540874.
  1. Trouver les fréquences génotypiques sous le modèle de HW.
  2. Pour tout génotype, trouver le nombre attendu d’observations avec ce génotype sous le modèle
     de HW.
  3. Tester le modèle de Hardy-Weinberg avec le test d’indépendance du χ2 .
  4. Tester le modèle de Hardy-Weinberg avec le test d’indépendance du χ2 à l’aide de la fonction
     HWE.chisq() du package genetics.
  5. Tester le modèle de Hardy-Weinberg dans chaque groupe ethnique. Comparer avec le résultat
     obtenu pour la population entière et commenter au vu du cours.

                                                    2
Références
[1] A. S. Foulkes. Applied statistical genetics with R. Springer, 2009.
[2] P. D. Thompson, N. Moyna, R. Seip, T. Price, P. Clarkson, T. Angelopoulos, P. Gordon, L. Pes-
    catello, P. Visich, R. Zoeller, et al. Functional polymorphisms associated with human muscle
    size and strength. Medicine and Science in Sports and Exercise., 36(7) :1132–1139, 2004.

                                                  3
Solution.
>   #####Exercice 1
>   fmsURL    fms    #####
>
>   #####Exercice 2
>   dim(fms)
>   names(fms)
>   c('Age','Gender','Race') %in% names(fms)
>   which(fms$id=='FA-1810')
>   fms$Age[which(fms$id=='FA-1810')]
>   fms$Age[fms$id=='FA-1810']
>   fms$Gender[fms$id=='FA-1810']
>   fms$Race[fms$id=='FA-1810']
>   mean(fms$Age); mean(fms$Age, na.rm=TRUE)
>   var(fms$Age, na.rm=TRUE)
>   median(fms$Age, na.rm=TRUE)
>   summary(fms$Age)
>   boxplot(fms$Age)
>   summary(fms$Gender)
>   table(fms$Gender)
>   #####
>
>   #####Exercice 3
>   attach(fms)
>   actn3    actn3_rs1815739[id == 'FL-1603']
>   ids    actn3_rs1815739[id %in% ids]
>   #####
>
>   #####Exercice 4
>   (GenoCount    #table(actn3_rs540874)
>   181/length(id)
>   NumbObs    #NumbObs    GenoFreq    FreqA    FreqG    #####
>
>   #####Exercice 5
>   #install.packages('genetics')
>   library(genetics)

                                          4
>   Geno    summary(Geno)
>   #####
>
>   #####Exercice 6
>   summary(Geno[Gender=='Male'])
>   summary(Geno[Gender=='Female'])
>   class(Race); table(Race)
>   actn3_rs540874[which(Race == 'Am Indian')]
>   actn3_rs540874[Race == 'Am Indian'] #toujours préférer which()
>   summary(Geno[Race=='Hispanic'])
>   summary(Geno[Race=='Asian'])
>   #Pour tester si la freq de G chez Hispanic et Asian est la m^ eme on fait un test de
>   #Student de comparaison des proportions. Pour utiliser t.test() on construit
>   #deux vecteur numériques avec autant de 1 que de G et autant de 0 que de A.
>   #L'ordre ne compte pas!
>   Count_G_His=c(rep(1,45),rep(0,53)) #G set to 1, A set to 0
>   Count_G_As=c(rep(1,107),rep(0,81))
>   t.test(Count_G_His, Count_G_As)
>   #De façon equivalente, on peut calculer explicitement la statistique de test
>   #et la pvaleur:
>   F_H=0.46; n_H=2*49
>   F_As=0.57; n_As= 2*94
>   se=sqrt( F_H*(1-F_H)/n_H + F_As*(1-F_As)/n_As )
>   Stat=(F_H-F_As)/se
>   pvalue=2*(pnorm(Stat,lower.tail=T)); pvalue
>   #####
>
>   #####Exercice 7
>   FreqAA=FreqA^2; names(FreqAA)='AA'; FreqAA
>   FreqGG=FreqG^2; names(FreqGG)='GG'; FreqGG
>   FreqAG=2*FreqA*FreqG; names(FreqAG)='AG'; FreqAG
>   as.vector(FreqAA+FreqAG+FreqGG)
>   ExpCount
Vous pouvez aussi lire