Kamil Slowikowski
2024-04-22
Table des matières
Ici, nous partageons un seul fichier afnd.tsv (5,99 Mo) au format délimité par des tabulations avec toutes les fréquences alléliques pour 8 gènes HLA, 18 gènes KIR, 2 gènes MIC et 29 gènes de cytokines de la base de données Allele Frequency Net (AFND).
Le script allelefrequencies.py télécharge automatiquement les fréquences alléliques à partir du site Web.
Qu'est-ce que la base de données Allele Frequency Net ?
L'Allele Frequency Net Database (AFND) est une base de données publique qui contient des informations sur la fréquence de plusieurs gènes immunitaires tels que les antigènes des leucocytes humains (HLA), les récepteurs de type immunoglobuline des cellules tueuses (KIR), le complexe majeur d'histocompatibilité de classe I lié à la chaîne (MIC). ) et un certain nombre de polymorphismes génétiques des cytokines.
Le fichier afnd.tsv ressemble à ceci :
d <- fread( " afnd.tsv " )
head( d )
## group gene allele population indivs_over_n alleles_over_2n n
## 1: hla A A*01:01 Argentina Rosario Toba 15.1 0.0760 86
## 2: hla A A*01:01 Armenia combined Regions 0.1250 100
## 3: hla A A*01:01 Australia Cape York Peninsula Aborigine 0.0530 103
## 4: hla A A*01:01 Australia Groote Eylandt Aborigine 0.0270 75
## 5: hla A A*01:01 Australia New South Wales Caucasian 0.1870 134
## 6: hla A A*01:01 Australia Yuendumu Aborigine 0.0080 191
Définitions :
alleles_over_2n
(Allèles / 2n) Fréquence de l'allèle : nombre total de copies de l'allèle dans l'échantillon de population au format trois décimaux.
indivs_over_n
(100 * Individus / n) Pourcentage d'individus qui possèdent l'allèle ou le gène.
n
(Individus) Nombre d'individus échantillonnés dans la population.
Voici quelques exemples de la façon dont nous pouvons utiliser R pour analyser ces données.
Affichez les populations les plus grandes et les plus petites disponibles dans les données :
d % > %
mutate( n = parse_number( n )) % > %
select( population , n ) % > %
unique() % > %
arrange( - n )
## population n
## 1: Germany DKMS - German donors 3456066
## 2: USA NMDP European Caucasian 1242890
## 3: USA NMDP African American pop 2 416581
## 4: USA NMDP Mexican or Chicano 261235
## 5: USA NMDP South Asian Indian 185391
## ---
## 1489: Cameroon Sawa 13
## 1490: Paraguay/Argentina Ache NA-DHS_24 (G) 13
## 1491: Malaysia Orang Kanaq Cytokine 11
## 1492: Cameroon Baka Pygmy 10
## 1493: Paraguay/Argentina Guarani NA-DHS_23 (G) 10
Comptez le nombre d'allèles pour chaque gène :
d % > %
count( group , gene , allele ) % > %
count( group , gene ) % > %
arrange( - n ) % > %
head( 15 )
## group gene n
## 1: hla B 1979
## 2: hla A 1394
## 3: hla C 1209
## 4: hla DRB1 954
## 5: hla DPB1 384
## 6: hla DQB1 351
## 7: kir 3DL1 90
## 8: mic MICA 69
## 9: kir 3DL3 67
## 10: kir 2DL1 52
## 11: kir 2DL4 35
## 12: mic MICB 34
## 13: hla DQA1 30
## 14: kir 3DL2 30
## 15: kir 2DL5B 24
Additionnez les fréquences alléliques pour chaque gène dans chaque population. Cela nous permet de voir quelles populations ont un ensemble de fréquences alléliques qui totalisent 100 % :
d % > %
mutate( alleles_over_2n = parse_number( alleles_over_2n )) % > %
filter( alleles_over_2n > 0 ) % > %
group_by( group , gene , population ) % > %
summarize( sum = sum( alleles_over_2n )) % > %
count( sum == 1 )
## `summarise()` has grouped output by 'group', 'gene'. You can override using the `.groups` argument.
## # A tibble: 44 × 4
## # Groups: group, gene [28]
## group gene `sum == 1` n
##
## 1 hla A FALSE 420
## 2 hla A TRUE 18
## 3 hla B FALSE 513
## 4 hla B TRUE 19
## 5 hla C FALSE 323
## 6 hla C TRUE 19
## 7 hla DPA1 FALSE 54
## 8 hla DPA1 TRUE 6
## 9 hla DPB1 FALSE 207
## 10 hla DPB1 TRUE 39
## # ℹ 34 more rows
Tracez la fréquence d'un allèle spécifique dans des populations de plus de 1 000 individus échantillonnés :
my_allele <- " DQB1*02:01 "
my_d <- d % > % filter( allele == my_allele ) % > %
mutate(
n = parse_number( n ),
alleles_over_2n = parse_number( alleles_over_2n )
) % > %
filter( n > 1000 ) % > %
arrange( - alleles_over_2n )
ggplot( my_d ) +
aes( x = alleles_over_2n , y = reorder( population , alleles_over_2n )) +
scale_y_discrete( position = " right " ) +
geom_colh() +
labs(
x = " Allele Frequency (Alleles / 2N) " ,
y = NULL ,
title = glue( " Frequency of {my_allele} across populations " ),
caption = " Data from AFND http://allelefrequencies.net "
)
Si vous utilisez ces données, veuillez citer le dernier manuscrit sur la base de données Allele Frequency Net :
@ARTICLE{Gonzalez-Galarza2020,
title = "{Allele frequency net database (AFND) 2020 update: gold-standard
data classification, open access genotype data and new query
tools}",
author = "Gonzalez-Galarza, Faviel F and McCabe, Antony and Santos, Eduardo
J Melo Dos and Jones, James and Takeshita, Louise and
Ortega-Rivera, Nestor D and Cid-Pavon, Glenda M Del and
Ramsbottom, Kerry and Ghattaoraya, Gurpreet and Alfirevic, Ana
and Middleton, Derek and Jones, Andrew R",
journal = "Nucleic acids research",
volume = 48,
number = "D1",
pages = "D783--D788",
month = jan,
year = 2020,
language = "en",
issn = "0305-1048, 1362-4962",
pmid = "31722398",
doi = "10.1093/nar/gkz1029",
pmc = "PMC7145554"
}
Voici toutes les ressources que j’ai pu trouver et qui contiennent des informations sur les fréquences des allèles HLA dans différentes populations.
https://github.com/Vaccitech/HLAfreq/
Les auteurs fournissent des fichiers xlsx sur ce site :
Mais les informations sur la fréquence sont regroupées en catégories :
Il existe un outil appelé HLA-Net qui permet de visualiser les données CIWD.
http://tools.iedb.org/population/download
Sur la page Outils IEDB, nous pouvons trouver un outil appelé Population Coverage . Les auteurs ont téléchargé les informations sur la fréquence HLA depuis l’AFND et les ont enregistrées dans un fichier pickle Python.
https://www.ncbi.nlm.nih.gov/gv/mhc
La base de données et le site Web dbMHC semblent être interrompus. Mais une archive des anciens fichiers est toujours disponible via FTP.
https://bioinformatics.bethematchclinical.org/hla-resources/haplotype-frequencies/high-resolution-hla-alleles-and-haplotypes-in-the-us-population/
Merci à David A. Wells pour le partage de scrapeAF, qui m'a inspiré à travailler sur ce projet.