Contrôle continue

Introduction à R-studio

Contexte

Dans cet exercice, on s’interesse à des individus de mouette blanche, Pagophila eburnea. La mouette blanche, ou mouette ivoire, est l’oiseau qui vit le plus au nord.

Très fortement associée à la banquise, la mouette ivoire reste à des latitudes très élevées même en hiver.
Les individus des deux sexes se ressemblent beaucoup, il n’est pas évident d’identifier les mâles et les femelles sur le terrain.

Jeu de données

Dans le cadre d’un programme de recherche sur cette espèce, nous avons collecté des données sur une série d’individus :

  • ID : identifiant unique par individu
  • Year : année d’échantillonnage
  • Status : adulte ou poussin
  • Country : pays d’échantillonnage
  • Molecular_Sexing : sexe obtenu par analyses génétiques.
    • Deux fragments d’ADN amplifiés signifient que l’individu porte les chromosomes Z et W, et est donc une femelle. Un seul fragment signifie que l’individu porte deux chromosomes Z, et est donc un mâle).
  • Skull : longueur totale de la tête (chez un adulte).
  • Gonys : hauteur du bec (chez un adulte).

L’objectif principal de ce jeu de données est d’étudier le sex-ratio des populations. Le sex-ratio est généralement défini comme la proportion d’individus mâles dans une population.

Importation du jeu de données

  1. On choisit le working directory.
setwd("~/projet fin")
  1. On verrifie le wd
getwd()
## [1] "/shared/home/gcampillo/projet fin"
  1. On importe les données et on les stock dans ‘Iv_da’
Iv_da=read.table('Ivory_data.txt',header=TRUE,sep="\t",dec=",")

1. Calculer le sex-ratio global sur l’ensemble du jeu de données. Que pensez-vous de ce résultat ?

On cherche à déterminer le sex-ration sur l’ensemble du jeu de données. Pour se faire, il suffit de diviser le nombre d’invidus mâles par le nombre d’individus femelles.

(length(Iv_da$Molecular_Sexing[Iv_da$Molecular_Sexing=="M"]))/(length(Iv_da$Molecular_Sexing[Iv_da$Molecular_Sexing=="F"]))
## [1] 1.656566

Il y a donc 1.65 mâles pour 1 femelles (c’est à dire presque deux fois plus de mâles que de femelles). Cela montre (si l’échantillon est représentatif) un réel déséquilibre de sexe qui peut être dangereux pour l’espèce qui risquerait de ne pas avoir assez de naissances.

2. Combien le jeu de données contient-il d’individus adultes et juvéniles dans chaque pays échantillonné ?

On procède pays par pays:

  • Russie:
Russie<-Iv_da[Iv_da$Country=="Russia",]
Adu_Rus<-length(Russie[Russie$Status=='adult',1])
Juv_Rus<-length(Russie[Russie$Status=='juvenile',1])
  • Groenland:
Groenland<-Iv_da[Iv_da$Country=="Groenland",]
Adu_Gro<-length(Groenland[Groenland$Status=='adult',1])
Juv_Gro<-length(Groenland[Groenland$Status=='juvenile',1])
  • Norvège:
Norvège<-Iv_da[Iv_da$Country=="Norway",]
Adu_Nor<-length(Norvège[Norvège$Status=='adult',1])
Juv_Nor<-length(Norvège[Norvège$Status=='juvenile',1])

On regroupe le tout pour que ce soit plus lisible:

juvad<-data.frame(Norvège=c(Adu_Nor,Juv_Nor),
                  Russie=c(Adu_Rus,Juv_Rus),
                  Groenland=c(Adu_Gro,Juv_Gro))
rownames(juvad)=c("adultes","juvéniles")
print(juvad)
##           Norvège Russie Groenland
## adultes        57     73        57
## juvéniles       0     80         0

On remarque qu’aucun juvénile n’a été observé en Norvège ou au Groenland. Cependant, on note aussi qu’il y a également moins d’individus étudié dans ces zones géographiques. On peut tout de mettre émettre l’hypothèse que la Russie est le lieu de reproduction des mouettes blanches.

3. Créer un sous-jeu de données ne contenant que les informations pour les femelles.

Femelles<-Iv_da[Iv_da$Molecular_Sexing=="F",]

4. En utilisant la fonction aggregate() appliquée au jeu de données créé à la question précédente, créer un nouveau data frame “summary.F” contenant le nombre de femelles pour chaque combinaison de Country et Status.

summary.F<-aggregate(Molecular_Sexing~Country+Status,data= Femelles, FUN=length)

5. Renommer (par ex. “nb.F”) la colonne du tableau obtenu en question 4 qui contient le nombre de femelles.

colnames(summary.F)=c("Country","Status","nb.F")
print(summary.F)
##     Country   Status nb.F
## 1 Groenland    adult   13
## 2    Norway    adult   17
## 3    Russia    adult   27
## 4    Russia juvenile   42

6. Répéter les questions 3 à 4, cette fois-ci pour les mâles uniquement, puis fusionner les tableaux “summary.F” et “summary.M” ainsi obtenus, pour générer un tableau “summary”.

  • On créer un sous jeu contenant uniquement les informations pour les males:
Males<-Iv_da[Iv_da$Molecular_Sexing=="M",]
  • On créer un data.frame summary.M contenant le nombre de males pour chaque combinaison Country Status
summary.M<-aggregate(Molecular_Sexing~Country+Status,data= Males, FUN=length)
  • On renomme la dernière colonne
colnames(summary.M)=c("Country","Status","nb.M")
  • On génère un tableau summary en utilisant la fonction ‘merge’
summary<-merge(summary.F,summary.M)
print(summary)
##     Country   Status nb.F nb.M
## 1 Groenland    adult   13   43
## 2    Norway    adult   17   40
## 3    Russia    adult   27   43
## 4    Russia juvenile   42   38

7. Ajouter au dernier tableau obtenu (“summary”) une colonne contenant le sex-ratio (proportion de mâles) pour chaque combinaison de Country et Status, et proposer une interprétation de ce résultat.

summary$sexratio<-summary$nb.M/summary$nb.F
print (summary)
##     Country   Status nb.F nb.M  sexratio
## 1 Groenland    adult   13   43 3.3076923
## 2    Norway    adult   17   40 2.3529412
## 3    Russia    adult   27   43 1.5925926
## 4    Russia juvenile   42   38 0.9047619

On remarque une très grande proportion de mâles au Groenland (plus de 3 mâles pour 1 femelle) et en Norvège (plus de 2 mâles pour 1 femelle). En Russie, les adultes connaissent eux aussi une différence entre la population femelle et la population mâle. Celle-ci est cependant moins drastique (1.5 mâles pour 1 femelle), et sera bientôt aténuée étant donnée que chez les juvéniles, il y a moins d’un mâle pour une femelle. On peut imaginer que la Russie est le lieu de reproduction des mouettes blanches et habrite probablement la plupart des femelles.

8. Créer un nouveau tableau “groenland” qui ne contienne que les données du Groenland, pays pour lequel nous disposons de mesures de la taille de la tête et de la hauteur du bec des oiseaux adultes capturés.

Groenland<-Iv_da[Iv_da$Country=="Groenland",]
print(Groenland)
##        ID Year Status   Country Molecular_Sexing  Skull Gonys
## 1  300_VV 2018  adult Groenland                M 100.00 11.40
## 2  005_CC 2018  adult Groenland                M  99.60 12.25
## 3  018_FI 2018  adult Groenland                M  99.30 11.60
## 4  019_FJ 2018  adult Groenland                   99.70 11.75
## 5  020_FL 2018  adult Groenland                F  94.90 10.90
## 6  405_VO 2018  adult Groenland                M  98.90 12.20
## 7  164_CZ 2018  adult Groenland                M 101.25 12.60
## 8  021_FM 2018  adult Groenland                M  98.20 12.30
## 9  419_TH 2018  adult Groenland                M  95.40 12.40
## 10 195_VR 2018  adult Groenland                F  90.90 10.80
## 11 022_FN 2018  adult Groenland                F  90.80 10.90
## 12 840_AN 2019  adult Groenland                M  99.15 11.90
## 13 023_FS 2019  adult Groenland                M  92.80 12.90
## 14 833_UZ 2019  adult Groenland                M 100.20 12.40
## 15 024_FW 2019  adult Groenland                M 102.50 13.00
## 16 025_FX 2019  adult Groenland                M  99.20 12.00
## 17 841_UW 2019  adult Groenland                M  96.80 13.30
## 18 026_FY 2019  adult Groenland                M  99.60 12.40
## 19 417_TC 2019  adult Groenland                M  98.80 12.10
## 20 839_VG 2019  adult Groenland                M  97.80 12.40
## 21 027_WA 2019  adult Groenland                M  92.20 12.10
## 22 028_WB 2019  adult Groenland                M  94.90 12.10
## 23 029_WC 2019  adult Groenland                M 100.00 11.60
## 24 030_WD 2019  adult Groenland                M  95.90 11.10
## 25 031_WE 2019  adult Groenland                M 109.00 12.00
## 26 806_ZK 2019  adult Groenland                F  92.70 10.30
## 27 169_ZD 2019  adult Groenland                M  96.20 12.40
## 28 032_WF 2022  adult Groenland                M  98.70 12.10
## 29 001_UB 2022  adult Groenland                F  89.00 10.90
## 30 033_WG 2022  adult Groenland                M  92.40 11.80
## 31 035_WJ 2022  adult Groenland                M  95.80 11.90
## 32 034_WL 2022  adult Groenland                M 104.80 13.60
## 33 036_WK 2022  adult Groenland                M  98.10 11.70
## 34 196_XX 2022  adult Groenland                M 105.80 12.60
## 35 419_WI 2022  adult Groenland                M  95.90 12.30
## 36 037_WR 2022  adult Groenland                M  98.10 12.80
## 37 420_XR 2022  adult Groenland                M 100.80 12.80
## 38 038_WT 2022  adult Groenland                M  93.80 12.20
## 39 039_WU 2022  adult Groenland                M 100.00 10.80
## 40 117_AT 2022  adult Groenland                M  99.80 12.50
## 41 042_AW 2022  adult Groenland                F  89.90 11.20
## 42 040_WV 2022  adult Groenland                F  92.40 10.40
## 43 041_WY 2022  adult Groenland                M  94.80 11.90
## 44   <NA> 2022  adult Groenland                M 102.00 12.60
## 45 044_BH 2022  adult Groenland                M  94.90 11.40
## 46 043_BP 2022  adult Groenland                M  95.40 11.80
## 47 409_BS 2022  adult Groenland                M  99.40 11.90
## 48 045_BL 2022  adult Groenland                F  86.90 10.90
## 49 046_BK 2022  adult Groenland                M  98.40 10.40
## 50 047_CA 2023  adult Groenland                F  90.30 11.30
## 51 048_CB 2023  adult Groenland                F  87.90 11.40
## 52 049_CC 2023  adult Groenland                F  90.30 10.40
## 53 613_AP 2023  adult Groenland                M  96.60 11.60
## 54 336_CD 2023  adult Groenland                M  98.10 11.60
## 55 337_CE 2023  adult Groenland                F  92.60 10.25
## 56 834_UU 2023  adult Groenland                F  90.60 11.00
## 57 426_CF 2023  adult Groenland                M  95.60 11.30

9. Nous avons montré précédemment (Yannic et al., 2016) qu’une fonction discriminante basée sur la taille de la tête (s) et la hauteur du bec (g) permet de sexer 95% des individus. La valeur D = -32.101 + 0.171s + 1.411g est négative chez la plupart des femelles, et positive chez la plupart des mâles. Écrire une fonction permettant de réaliser ce calcul automatiquement à partir des valeurs de s et g.

D<-function(s,g){
  s<-as.numeric(s)
  g<-as.numeric(g)
  D<--32.101+0.171*s+1.411*g
  return(D)}

10. Créer une nouvelle colonne dans le jeu de données “groenland” (produit en question 8) qui contienne la valeur de D obtenue à partir de votre fonction créée en question 9.

On utilise la fonction apply:

Groenland$val_D<-apply(Groenland,1,function(row) D(row['Skull'],row['Gonys']))

11. Créer une nouvelle colonne “Morphological_sexing” dans le jeu de données “groenland” qui doit contenir le sexe des individus déduit de la valeur de D obtenue pour chacun d’entre eux.

On utilise la fonction ifelse qui applique le deuxième paramètre si la condition du paramètre 1 est remplie, le troisième sinon.

Groenland$Morphological_Sexing<-ifelse(Groenland$val_D>0,"M","F")

12. Dans combien de cas le sexage moléculaire contredit-il le sexage morphologique pour les individus qui ont pu être sexés par les deux méthodes ?

On enlève les cas où l’individu n’aurait pas pu être sexé par les deux méthodes.

sum(Groenland$Molecular_Sexing != Groenland$Morphological_Sexing)-sum(Groenland$Morphological_Sexing=="")-sum(Groenland$Molecular_Sexing=="")
## [1] 2

Le sexage moléculaire contredit le sexage morphologique 2 fois.

13. Faire une représentation graphique (nuage de points) des valeurs de Gonys et Skull, en utilisant une symbologie permettant de visualiser facilement les mâles et les femelles et également les individus présentant un sexage morphologique et un sexage moléculaire contradictoires.

plot(Groenland$Skull~Groenland$Gonys,data=Groenland,
     xlim=c(10,15),
     ylim=c(85,110),
     xlab='Gonys',
     ylab='Skull',
     main="Sexage morphologique des Pagophila eburnea échantillonnées au Groenland",
     family="serif",
     font.main=2,
     font.sub=3,
     font.lab=4,
     sub="En fonction de la longueur de la tête et de la hauteur du bec",
     cex.lab=1,
     cex.axis=1,
     cex.main=2,
     las=1,
     pch=21,
     bty="n",
     col=ifelse(Morphological_Sexing=="M","blue","pink4"),
     bg=ifelse(Morphological_Sexing=="M","cyan","lightpink"))
points(Groenland$Skull[Groenland$Contradiction=="TRUE"]~Groenland$Gonys[Groenland$Contradiction=="TRUE"],
       col="green3",
       pch=15)
legend(14,115,
       c("Mâles","Femelles","Contradictions"),
       pch=c(21,21,15),
       col=c("blue","pink4","green3"),
       pt.bg=c("cyan","lightpink"),
       bty="n",
       cex=0.9,
       y.intersp=0.2,
       x.intersp=0.5)

14. Quelle est la valeur de D pour les individus dont le sexage moléculaire et le sexage morphologique donnent des résultats contradictoires ?

Groenland$val_D[Groenland$Contradiction=="TRUE"]
## numeric(0)

Les valeurs pour lesquels les résultats sont contradictoires sont: -0.04 et -0.6002.

15. D’après l’ensemble des résultats obtenus, que pensez-vous des cas de sexage contradictoire ? Est-ce que ces observations remettent en question les résultats de sex-ratio obtenus précédemment ?

Tout d’abord, on peut observer que les deux cas de sexages contradictoire observés considèrerait 2 femelles de plus et 2 mâles de moins que lors de nos premiers résultats. C’est ce qui nous pousse à remettre en question nos constatations précédente. Mais ces sexage contradictoires remettent-ils en question nos résultats?

J’ai d’abord souhaiter comprendre d’où pouvait venir un mauvais sexage:

  • On a d’abord les erreurs de mesure ou d’identification tant bien pour le sexage morphologique que pour le sexage moléculaire:
    • La méthode du sexage morphologique est, comme dit précédemment basée sur la taille de la tête et la hauteur du bec. Elle peut donc être imprécise, de par la variabilité individuelle ou les erreurs humaines (c’est pas évident de tenir un oiseau sauvage).
    • Bien que généralement plus précise, l’analyse génétique peut aussi présenter des erreurs, soit par contamination des échantillons, soit par des erreurs techniques.
  • Mais il faut également prendre en compte la variabilité naturelle :
    • Les oiseaux peuvent présenter des caractéristiques morphologiques atypiques dues à des facteurs environnementaux, nutritionnels, ou génétiques, rendant ainsi le sexage morphologique moins fiable.

Les contradictions observées pourraient avoir un impact sur les résultats de sex-ratio si un nombre significatif d’individus présentait des résultats contradictoires. Il faudrait alors réévaluer les résultats de sex-ratio en prenant en compte ces cas.
Cependant, dans notre cas, les cas de contradiction représentent une petite proportion du total (environ 3.5%), ils n’affectent donc pas, à mon sens, de manière significative le sex-ratio global.

Enfin, les observations de sexage contradictoire prouvent que, bien que chaque méthode de sexage ait ses avantages, et semble très fiable (95% pour le sexage morphologique et 99% pour le sexage moléculaire), aucune n’est infaillible. Je pense donc que pour avoir une estimation précise du sex-ratio, il faudrait combiner les deux méthodes et examiner de près les cas de contradiction. Cela permettrait d’identifier et de corriger les sources d’erreur potentielles et de renforcer la confiance dans les résultats obtenus.

D’après les résultats, les cas de sexage contradictoire n’invalident pas complètement les résultats de sex-ratio, mais ils soulignent l’importance d’avoir une approche critique et de vérifier rigoureusement les données utilisée.