Tuesday, 25 September 2018

Información genética básica de microsatélites utilizando diveRsity (+ Hardy-Weinberg)

En el día de hoy vamos a aprender a calcular algunos parámetros genéticos básicos (heterocigosis observada, esperada, equilibrio de Hardy-Weinberg, número de alelos, y riqueza alélica) de distintas poblaciones en función de microsatélites (marcadores moleculares codominantes). Para este ejemplo, vamos a tomar los datos publicados por Sun et al. 2013. Estos datos constan de 19 poblaciones asiáticas (n=916 individuos) de Homo sapiens, a las cuales se les realizó genotipificación en función de 10 loci (10 microsatélites).

Lo primero que debemos hacer es convertir la matriz suplementaria en formato Genepop (esto lo pueden hacer en Excel). Es importante mencionar que el formato Genepop se clasifica en dos tipos de acuerdo con el número de caracteres (dos o tres) que se emplean para definir un alelo. En este ejemplo, los alelos están definidos por tres caracteres. Por ejemplo:

                          Locus_1
Individuo 1      282283    (alelos 282 y 283).

El formato de Genepop de 3 caracteres sigue esta estructura:

Análisis de microsatélites de Homo sapiens #en la primera fila añaden el título de su trabajo o alguna anotación en particular#
Locus_1 #En estas filas definen los loci (recordemos que los datos de Sun et al. 2013 tienen 10 loci)#
Locus_2
Locus_3
Pop #Al colocar Pop en una fila, estamos definiendo la población#
Springfield_1 , 123123 456456 789789 #Cada columna de valores representa un loci, los loci están ordenados de la misma manera en cómo los ordenador arriba#
Springifield_2 , 122120 455456 798790 #Recuerden que 123123 significa que el individuo Springifield_1 tiene dos alelos 123 en el Locus_1#
Springfield_3 ,  123122 450459 799766 #Ojo, es importante colocar una coma después de cada individuo, para así delimitarlos de los alelos#
Pop
Fargo_1 , 122120 444450 780799
Fargo_2 , 123129 444459 781766
Fargo_3 , 120121 450459 799786
Pop
Albuquerque_1 , 125128 450455 781789
Albuquerque_2 , 123128 459484 792788
Albuquerque_3 , 128129 458457 799786

Ya, ya, sin tanta carreta, el formato debe quedar así:

Análisis de microsatélites de Homo sapiens
Locus_1
Locus_2
Locus_3
Pop
Springfield_1 , 123123 456456 789789
Springfield_2 , 122120 455456 798790
Springfield_3 ,  123122 450459 799766
Pop
Fargo_1 , 122120 444450 780799
Fargo_2 , 123129 444459 781766
Fargo_3 , 120121 450459 799786
Pop
Albuquerque_1 , 125128 450455 781789
Albuquerque_2 , 123128 459484 792788
Albuquerque_3 , 128129 458457 799786

El archivo lo deben guardar en formato ".txt". Acá pueden descargar el archivo formato Genepop que yo generé a partir de la matriz suplementaria (si alguien detecta algún error, por favor, informen).

Ahora que tenemos nuestro archivo en formato Genepop, pues a lo que vinimos:

Abrimos R, instalamos (en caso de que no lo tengan) y abrimos el paquete diveRsity

install.packages("diveRsity")
library(diveRsity)

#Abrimos el archivo y lo analizamos de una vez con la función divBasic#

divBasic(infile = NULL, outfile = NULL, gp = 3, bootstraps = NULL, HWEexact = FALSE, mcRep = 2000)

#Primero entendamos un poco la función con sus argumentos... #
#en el argumento infile, especificamos entre comillas el nombre del archivo de entrada Genepop#
#en el argumento outfile le estamos indicando a la función que nos exporte los resultados con un nombre determinado; el archivo de salida está en formato ".txt"#
#en el argumento gp, estamos especificando que los alelos están definidos por 3 caracteres#
#si argumento HWEexact es TRUE o T, la función realizará el análisis de equilibrio de Hardy-Weinberg para cada locus en cada una de las poblaciones, si no quieren hacer EHW coloquen F o FALSE#
#con el argumento bootstraps podemos definir el número de iteraciones#

divBasic("erre.txt", outfile = "resultados.txt", gp=3, bootstraps= 1000, HWEexact = TRUE)

Enter y chao es que te digo... :D

En nuestro directorio de trabajo se creará una carpeta con el nombre que especificamos en la función outfile ; una vez adentro encontraremos el archivo en formato ".txt" . Lo abren, y obtendrán sus jugosos resultados.

Mis documentos -> resultados-[diveRsity] -> [divBasic].txt

Les deberá aparecer algo como esto: (sólo saqué los resultados de una población)

Dai(Dehong

L1       L2 L3 L4           L5  L6 L7 L8 L9           L10 Overall

N          48              48              47             48             48             48             48             48              48            48     47.9
A          15               6               11             10              5              10              8                7               12            10       94
%         75              50            61.11        45.45        41.67        52.63        61.54  53.85         63.16       71.43   57.58
Ar       12.5           5.47 9.62          8.59          4.99          9.49          6.51           6.55         10.26         9.18    8.32
Ho        0.9           0.77            0.6            0.77          0.65          0.92          0.71           0.73           0.81         0.77    0.76
He        0.89  0.71 0.76          0.72          0.72           0.86         0.75            0.79           0.83         0.76    0.78
HWE   0.366          0              0.686         1              0.882          1             0.031          0.838         0.612       0.79    0.137

N: número de individuos evaluados por locus
A: Número de alelos observados por locus
%: Porcentaje de alelos totales observados por locus
Ar: Riqueza alélica por locus
Ho: Heterocigosis observada por locus
He: Heterocigosis esperada por locus
HWE: p-valores obtenidos del análisis de Hardy-Weinberg (recorderis: si el p-value < 0.05 (significancia estándar), indica que la hipótesis nula (los locus/poblaciones se encuentran en equilibrio Hardy-Weinberg) se rechaza, y se acepta que no están en equilibrio.


Espero esta mini-guía les sea de utilidad. Estoy abierto a cualquier sugerencia. Saludos.

No comments:

Post a Comment

Test de Mantel en R

Actualización 1 (17/12/2018): -Se explicó otro camino para graficar utilizando ggplot2 Actualización 2 (18/12/2018) - Se añadió el valor...