-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathManual.Rmd
366 lines (241 loc) · 13.5 KB
/
Manual.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
---
title: "Análisis de microsatélites"
output:
github_document:
toc: true
toc_depth: 3
pandoc_args: --webtex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Diversidad genética
### Arlequin
```{r input Arlequin, echo=FALSE}
cat(readLines('C:/Users/sofia/OneDrive/Escritorio/Moleculab2/archivos_entrada/arle_div.csv', n= 30), sep = '\n')
```
Partes del archivo de entrada de Arlequin:
1. Descripción de los datos (las más importantes se mencionan a continuación):
a. Título del proyecto
b. Número de poblaciones
c. Tipo de datos (haplotípicos o genotípicos)
d. Tipo de datos (microsatélites, secuencias, etc)
e. Caracter de separación entre loci
f. Caracter para datos faltantes
2. Datos organizados por "población"
a. Nombre de la población
b. Número de individuos
c. Datos:
- La primera columna contiene la etiqueta de cada individuo
- La segunda la frecuencia del genotipo
- Las columnas siguientes contienen los datos por cada locus
<p align="center">
<img width="600" src="imagenes/Arlequin_div/01.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Arlequin_div/02.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Arlequin_div/03.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Arlequin_div/04.jpg">
</p>
En la página 117 del manual de Arlequín viene una descripción de los diferentes índices obtenidos de la opción de índices de diversidad molecular:
*Standard diversity indices*
1. **Gene diversity**
2. **Expected heterozygosity per locus**
3. **Number of usable loci**
4. **Number of polymorphic sites (S)**
5. **Allelic range (R)**
6. **Garza-Williamson index (G-W)**
*Molecular indices*
1. **Mean number of pairwise differences (π)**
2. **Nucleotide diversity or average gene diversity over L loci**
[Descripciones del manual](pdf/Arlequin_diversidad.pdf)
## Estructura genética
### Arlequin
Una forma de evaluar la estructura genética es a través de un análisis de varianza molecular (AMOVA). El objetivo de este análisis es poner a prueba una hipótesis de estructra. Como resultado se obtiene el porcentaje de variación que hay dentro de las poblaciones, entre las poblaciones y entre grupos de poblaciones.
[Excoffier, 1992](pdf/excoffier_1992.pdf) Artículo donde se describe el método.
<p align="center">
<img width="600" src="imagenes/Arlequin_str/01.jpg">
</p>
### STRUCTURE
Descripción general del manual de STRUCRURE:
*The program structure implements a model-based clustering method for inferring population structure using genotype data consisting of unlinked markers. Applications of the method include demonstrating the presence of population structure, identifying distinct genetic populations, assigning individuals to populations, and identifying migrants and admixed individuals*
*Briefly, we assume a model in which there are K populations (where K may be unknown), each of which is characterized by a set of allele frequencies at each locus. Individuals in the sample are assigned (probabilistically) to populations, or jointly to two or more populations if their genotypes indicate that they are admixed. It is assumed that within populations, the loci are at Hardy-Weinberg equilibrium, and linkage equilibrium. Loosely speaking, individuals are assigned to populations in such a way as to achieve this.*
```{r echo=FALSE}
cat(readLines('C:/Users/sofia/OneDrive/Escritorio/Moleculab2/archivos_entrada/cp_str.csv', n= 5), sep = '\n')
```
De manera general el archivo de entrada se compone de una matriz que almacena la información de los individuos en las filas y la información de los loci en las columnas.
**Filas**: La primera fila tiene los nombres de los loci. El resto de las filas corresponde a los individuos.
**Columnas**: La primera columna corresponde a la etiqueta que identifica cada individuo. La segunda los sitios de muestreo de donde vienen los individuos. La tercera sirve para indicar si se quieren usar los sitios de muestreo como estructura de la cual parte el análisis.
Pasos para el análisis:
1. Abrir un nuevo proyecto y definir sus características.
<p align="center">
<img width="600" src="imagenes/Structure/01.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Structure/02.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Structure/03.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Structure/04.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Structure/05.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Structure/06.jpg">
</p>
2. Definir parámetros del análisis. Dependiendo del objetivo y de los datos que se tengan se pueden escojer distintos parámetros. Algunas desiciones importantes:
- *Largo de la corrida*
El objetivo de STRUCTURE es estimar el coeficiente de ancestría de cada individuo dados ciertos parámetros que nosotros damos al modelo: los genotipos, el número de grupos genéticos (K) y la distribución de las frecuencias alélicas en cada locus y en cada población. Esta última se obtiene de muestrear de manera independiente una cierta distribución. En teoría deberíamos poder encontrar una distribución de frecuencias tales que las poblaciones estén en equilibrio Hardy-Weinberg y en equilibrio de ligamiento. En general el cálculo de la probabilidad de los coeficientes de ancestría dados los parámetros no se puede resolver. Sin embargo, se puede estimar si exploramos diferentes opciones de los parámetros y calculamos su probabilidad. Por esta razón es que tenemos que asegurarnos de que la corrida es lo suficientemente larga como para que explore muchas opciones.
Otro parámetro que tenemos que decidir además del largo total de la corrida es el largo del periodo de "descarte" (Burn in). Este periodo se refiere al número de cálculos que no vamos a utilizar antes de empezar a registrar los resultados. Se utiliza para descartar el posible efecto que la configuración inicial puede tener sobre el resultado final.
<p align="center">
<img width="600" src="imagenes/Structure/08.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Structure/09.jpg">
</p>
- *Tipo de modelo de ancestría*:
a. **Sin mezcla (no admixture):** En este modelo los individuos de asignan de manera discreta a una u otra población. Se parte de una probabilidad inicial para cada población es de 1/K. El resultado reporta la probabilidad posterior de que el individuo pertenenezca a la población a la que fue asignado.
b. **Con mezcla (admixture):** Los individuos pueden tener ancestría mezclada. Se modela diciendo que el individuo "i" heredó una fracción de su genoma de ancestros de la población "k".
<p align="center">
<img width="600" src="imagenes/Structure/10.jpg">
</p>
- *Modelos de frecuencias alélicas*
a. **No correlacionadas:** Asume que las frecuencias alélicas en las poblaciones son independientes.
b. **Correlacionadas:** Supone que las frecuencias alélicas de distintas poblaciones serán muy similares (puede ser por migración o por ancestría compartida).
<p align="center">
<img width="600" src="imagenes/Structure/11.jpg">
</p>
- *Uso de información a priori*
a. **LOCPRIOR models**: Usar los sitios de muestreo como información a priori para ayudar en el proceso de agrupamiento. Esta opción se puede considerar cuando la estructura es muy débil.
b. **USEPOPINFO model**: utiliza los sitios de muestreo para buscar migrantes o híbridos. También se puede usar para determinar a priori la ancestría de algunos individuos y ayudar en el proceso de agrupamiento.
<p align="center">
<img width="600" src="imagenes/Structure/12.jpg">
</p>
3. Programar el número de repeticiones.
<p align="center">
<img width="600" src="imagenes/Structure/13.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Structure/14.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Structure/15.jpg">
</p>
La típica forma gráfica de representar los resultados es una gráfica de barras. De lo general a lo particular, el número de colores en la gráfica corresponde al número de grupos genéticos (K) que nosotros indicamos. La gráfica está dividida por líneas negras que representan los sitios de muestreo. Por último, cada línea de color representa a un individuo, el o los colores que tiene asignados muestran la proporción de su genoma que proviene de cada grupo genético.
<p align="center">
<img width="600" src="imagenes/Structure/16.jpg">
</p>
En el resúmen de todas las corridas que hicimos podemos ver la comparación de la probabilidad del genotipo dado el grupo genético. De manera informal se sugiere que el valor más chico es el que corresponde a la mejor elección de K. Sin embargo, esta es una desición que se debe hacer con cuidado y teniendo en cuenta el contexto biológico de lo que se esté analizando.
<p align="center">
<img width="600" src="imagenes/Structure/17.jpg">
</p>
Más información de cómo se usa Structure [Manual](pdf/Structure_man.pdf)
Artículo de descripción del método [Pritchard et al., 2000](pdf/structure_prichart.pdf)
## STRUCTURE HARVESTER
Un método más formal para seleccionar la k adecuada es el de Evanno y se puede calcular a través de la herramienta de (http://taylor0.biology.ucla.edu/structureHarvester/)
El primer paso es el de comprimir la carpeta de resultados de Structure (.zip).
<p align="center">
<img width="600" src="imagenes/Structure_Harvester/01.jpg">
</p>
Posteriormente se carga en la página que calculará los resultados.
<p align="center">
<img width="600" src="imagenes/Structure_Harvester/02.jpg">
</p>
La idea de este método es que con el estadístico arrojado por structure Ln P(D) no es fácil reconocer qué K es la óptima. A través de una serie de derivadas se puede tener un mejor criterio de elección.
<p align="center">
<img width="600" src="imagenes/Structure_Harvester/evanno.jpg">
</p>
[Evanno et al., 2005](pdf/Evanno.pdf) Artículo en el que se propone el método.
## SPAGeDi
El programa Spagedi lo vamos a utilizar para inferir si hay estructura filogeográfica, es decir, si hay una distribución no uniforme de los alelos en el espacio en la que además los alelos más similares se encuentren geográficamente juntos. Esto se hace comparando dos índices de diferenciación (Nst y Gst).
$N_{ST}$
Se obtiene a partir de buscar la diferencia entre la diversidad total y la que está dentro de cada población, dividida por la diversidad total.
$$\frac{v_{T}-v_{S}}{v_{T}}$$
$$N_{ST}=\frac{\sum_{i,j}\pi_{ij}C_{ij}}{v_{T}}$$
La diferencia entre $G_{ST}$ y $N_{ST}$ es que $N_{ST}$ toma en cuenta las diferencias entre los haplotipos ($\pi$), mientras que $G_{ST}$ solo toma en cuenta las frecuencias.
<p align="center">
<img width="300" src="imagenes/Spagedi/pons_petit.jpg">
</p>
```{r spagedi, echo=FALSE, warning=FALSE, message=FALSE}
library(reader)
cat(readLines('C:/Users/sofia/OneDrive/Escritorio/Moleculab2/archivos_entrada/spagediPop.txt', n= 5), sep = '\n')
cat(n.readLines('C:/Users/sofia/OneDrive/Escritorio/Moleculab2/archivos_entrada/spagediPop.txt', n= 7, skip= 225), sep = '\n')
```
El archivo de entrada se compone de:
- un encabezado en el que se especifica el número de individuos, el número de poblaciones, número de coordenadas espaciales (columnas), numero de loci, número de dígitos por locus y ploidía.
- un número de intervalos de distancia
- encabezados de columnas (individuo, categoría, haplotipo)
- una lista con todos los individuos en la primera columna, el sitio de muestreo al que pertenecen y el haplotipo que tiene cada uno. El final de la lista se especifica con "END"
- una matriz de distancias entre haplotipos.
<p align="center">
<img width="600" src="imagenes/Spagedi/01.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/02.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/03.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/04.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/05.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/06.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/07.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/08.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/09.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/10.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/11.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Spagedi/12.jpg">
</p>
## Network
Por último vamos a crear una red de haplotipos que va a calcular las relaciones entre los mismos. El archivo de entrada en este programa se puede hacer de manual o en formato .rdf
<p align="center">
<img width="600" src="imagenes/Network/01.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Network/02.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Network/04.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Network/05.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Network/06.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Network/07.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Network/08.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Network/09.jpg">
</p>
<p align="center">
<img width="600" src="imagenes/Network/10.jpg">
</p>