Conference PaperPDF Available

Herramienta computacional para estimar la tasa de migración de flujos genéticos en diferentes poblaciones

Authors:

Abstract and Figures

El flujo genético es la transferencia de alelos de genes de una población a otra, el cual influye en la variabilidad genética de una población y con ello de su evolución, dependiendo si hay mayor o menor flujo genético entre los individuos de las poblaciones. Por tal motivo, es importante, determinar tanto la dirección, como la intensidad del flujo genético entre las poblaciones. Actualmente, existen diversos programas de cómputo gratuitos que permiten calcular el flujo genético entre poblaciones. Uno de ellos y que es ampliamente usado es Migrate, con base en inferencia bayesiana. Sin embargo, este programa no realiza la interpretación de los resultados, por lo que, es necesario realizarlo de manera manual. Por ello, el presente trabajo trata sobre el desarrollo de una herramienta con interfaz gráfica basada en Python para estimar la tasa de migración de flujo genético entre poblaciones, aplicando la prueba t de Student no pareada con varianza desigual. La principal ventaja de esta herramienta es la automatización en la selección y extracción de datos, y en la aplicación de los cálculos estadísticos y con ello poder determinar si el flujo genético entre dos poblaciones es unidireccional o bidireccional. Palabras clave: Flujo genético, Genética poblaciones, Migración, Migrate, Python. 1 Introducción Una población es un grupo local de individuos que pertenece a una especie, además, es una entidad genética abierta, que puede intercambiar genes con otras poblaciones de la misma especie, mientras que la especie es una entidad cerrada, que no puede intercambiar genes con otras entidades. Las poblaciones son dinámicas; pueden crecer y expandirse o disminuir y contraerse mediante cambios en las tasas de nacimiento o mortalidad, o por migración o fusión con otras poblaciones. Las poblaciones raramente son sistemas cerrados. Por lo regular, se produce cierta cantidad de transferencia de genes, lo cual es más probable cuando las poblaciones se encuentran estrechamente relacionadas espacial y genéticamente. Entre las poblaciones adyacentes de una especie el flujo de genes puede ser grande, por lo que es de esperar que las poblaciones contiguas posean una composición génica más semejante que las que están más alejadas geográficamente. Por ello, la migración entre grupos geográficamente aislados es un suceso de gran importancia porque los complejos génicos se alteran y, en general, todas las diferencias genéticas entre las poblaciones se reducen [1]. La eficacia del intercambio de genes depende de la estructura de las dos poblaciones (emigrante y receptora) y, más específicamente, de la cantidad de migración (índice de migración, m) y de la magnitud de la diferencia en frecuencias génicas entre las dos poblaciones [1]. Actualmente, existen diferentes softwares de aplicación que describen la diversidad genética dentro y entre poblaciones [2], entre los más importantes se encuentran: Fstat, Genepop y Mígrate, centrándose en esteúltimo, Migrate [3] estima el tamaño de población efectivo, las tasas de migración pasadas dx.
Content may be subject to copyright.
Herramienta computacional para estimar la tasa
de migraci´on de flujos gen´eticos en diferentes
poblaciones
C. G. Villegas1, R. Mu˜n´ız-Salazar2*, D. L. Flores3
1Departamento de Sistemas y Computaci´on, Instituto Tecnol´ogico de Durango, Durango, M´exico.
2Escuela de Ciencias de la Salud, Universidad Aut´onoma de Baja California, Ensenada, M´exico.
3Facultad de Ingenier´ıa, Arquitectura y Dise˜no, Universidad Aut´onoma de Ba ja California,
Ensenada, M´exico.
*ramusal@uabc.edu.mx
Resumen
El flujo gen´etico es la transferencia de alelos de genes de una poblaci´on a otra, el cual
influye en la variabilidad gen´etica de una poblaci´on y con ello de su evoluci´on, dependiendo
si hay mayor o menor flujo gen´etico entre los individuos de las poblaciones. Por tal motivo,
es importante, determinar tanto la direcci´on, como la intensidad del flujo gen´etico entre las
poblaciones. Actualmente, existen diversos programas de c´omputo gratuitos que permiten
calcular el flujo gen´etico entre poblaciones. Uno de ellos y que es ampliamente usado
es Migrate, con base en inferencia bayesiana. Sin embargo, este programa no realiza la
interpretaci´on de los resultados, por lo que, es necesario realizarlo de manera manual. Por
ello, el presente trabajo trata sobre el desarrollo de una herramienta con interfaz gr´afica
basada en Python para estimar la tasa de migraci´on de flujo gen´etico entre poblaciones,
aplicando la prueba tde Student no pareada con varianza desigual. La principal ventaja
de esta herramienta es la automatizaci´on en la selecci´on y extracci´on de datos, y en la
aplicaci´on de los c´alculos estad´ısticos y con ello poder determinar si el flujo gen´etico entre
dos poblaciones es unidireccional o bidireccional.
Palabras clave: Flujo gen´etico, Gen´etica poblaciones, Migraci´on, Migrate, Python.
1 Introducci´on
Una poblaci´on es un grupo local de individuos que pertenece a una especie, adem´as, es una entidad
gen´etica abierta, que puede intercambiar genes con otras poblaciones de la misma especie, mientras que
la especie es una entidad cerrada, que no puede intercambiar genes con otras entidades. Las poblaciones
son din´amicas; pueden crecer y expandirse o disminuir y contraerse mediante cambios en las tasas de
nacimiento o mortalidad, o por migraci´on o fusi´on con otras poblaciones. Las poblaciones raramente son
sistemas cerrados. Por lo regular, se produce cierta cantidad de transferencia de genes, lo cual es m´as
probable cuando las poblaciones se encuentran estrechamente relacionadas espacial y gen´eticamente.
Entre las poblaciones adyacentes de una especie el flujo de genes puede ser grande, por lo que es de
esperar que las poblaciones contiguas posean una composici´on g´enica m´as semejante que las que est´an
as alejadas geogr´aficamente. Por ello, la migraci´on entre grupos geogr´aficamente aislados es un suceso
de gran importancia porque los complejos g´enicos se alteran y, en general, todas las diferencias gen´eticas
entre las poblaciones se reducen [1].
La eficacia del intercambio de genes depende de la estructura de las dos poblaciones (emigrante
y receptora) y, m´as espec´ıficamente, de la cantidad de migraci´on (´ındice de migraci´on, m) y de la
magnitud de la diferencia en frecuencias g´enicas entre las dos poblaciones [1].
Actualmente, existen diferentes softwares de aplicaci´on que describen la diversidad gen´etica dentro y
entre poblaciones [2], entre los m´as importantes se encuentran: Fstat, Genepop y M´ıgrate, centr´andose
en este ´ultimo, Migrate [3] estima el tama˜no de poblaci´on efectivo, las tasas de migraci´on pasadas
dx.doi.org/10.24254/CNIB.20.55
Herramienta computacional para estimar flujos gen´eticos C. G. Villegas, et al.
entre npoblaciones asumiendo un modelo de matriz de migraci´on con tasas de migraci´on asim´etricas
y diferentes tama˜nos de subpoblaciones, y divergencias o mezclas de poblaciones. Migrate utiliza la
inferencia bayesiana para estimar conjuntamente todos los par´ametros. Adem´as, Migrate corre con
datos de secuencias de DNA con o sin variaci´on de velocidad del sitio, datos de polimorfismo de un
solo nucle´otido (SNP), datos de microsat´elites y electrofor´eticos.
Sin embargo, el programa Migrate no determina si existen diferencias significativas entre poblaciones
y la direcci´on del flujo, raz´on por la cual se propone el desarrollo de esta herramienta. Este trabajo
presenta una herramienta gr´afica para el procesamiento de datos resultantes de los c´alculos realizados
en el software Migrate, determina si existen diferencias significativas en el n´umero de migrantes y la
direcci´on del flujo gen´etico entre poblaciones y el usuario puede seleccionar el nivel de confianza para
realizar el c´alculo. La ventaja principal de esta herramienta gr´afica es el ambiente amigable e intuitivo
para el usuario.
2 Metodolog´ıa
2.1 Conjunto de datos
Se parte de un archivo de salida (outfile) que es generado por Migrate, el cual contiene una tabla con el
umero de migrantes (MLE) por poblaci´on calculados con diferentes percentiles. En la Fig. 1se muestra
un ejemplo de la tabla generada por Migrate, en el que se muestran seis columnas que se describen a
continuaci´on.
Columna 1. Par´ametro. Muestra los valores de T heta para cada npoblaci´on, y posteriormente
muestra el par de poblaci´on analizada. M 21, corresponde al par de la poblaci´on 2 y 1, y as´ı
sucesivamente.
Columnas 2 a 5. Percentiles bajos para cada par´ametro.
Columna 6. MLE. Corresponde al valor de n´umero de migrantes para cada par de poblaci´on.
2.2 Extracci´on de datos
Para extraer solo los datos necesarios del archivo de salida de Migrate, se identifican los renglones
clave dentro de los archivos, los cuales a partir de su ubicaci´on contendr´an la informaci´on necesaria.
Es importante analizar el formato del contenido, ya que es posible encontrar patrones que faciliten la
ubicaci´on de los par´ametros deseados. Dentro de los archivos de salida de Migrate se encuentran cinco
columnas clave:
1. El inicio del total de poblaciones con su respectivo total individual
2. El fin del total de poblaciones
3. Los percentiles bajos: 0.005, 0.025, 0.050 y 0.250
4. El valor de MLE
5. Los percentiles altos: 0.750, 0.950, 0.975 y 0.995
Como se observa en la Fig. 1, la tabla contiene valores de T heta, (T heta 1, T heta 2, . . . ), dichos
valores no son necesarios para el an´alisis, por lo que se deben omitir. Sin embargo, con esta informaci´on,
se puede conocer la cantidad de pares a analizar, en este ejemplo, se tienen 14 pares (T heta 14).
Para conocer la cantidad de pares a analizar (par´ametros), se hace uso del c´alculo de permutaciones,
como se muestra en la ecuaci´on (1).
Pn
r=n!
(nr)! (1)
donde: nes el total de poblaciones y res el par de poblaciones. Para este caso, dado que se esta
trabajando con pares, entonces r= 2.
XLIII Congreso Nacional de Ingenier´ıa Biom´edica, 15 – 17 de octubre 2020
Herramienta computacional para estimar flujos gen´eticos C. G. Villegas, et al.
Fig. 1. Ejemplo de un archivo generado por Migrate
2.3 Procesamiento de datos
Una vez que se extraen los datos del archivo de salida de Migrate, estos son almacenados en estructuras
tipo listas, vectores y matrices de Python [4]. En la Fig. 2se muestra una secci´on del c´odigo donde
observa la forma en la que se obtuvieron los datos para su procesamiento en la interfaz.
El desarrollo de este trabajo fue realizado en Python v.3.8.4 haciendo uso de sus librer´ıas [5].
1. Para creaci´on de interfaz gr´afica, PyQt5
2. Para aplicar prueba tde Student, scipy
3. Para selecci´on, extracci´on y manipulaci´on de datos, Pandas
Es justo aqu´ı donde inicia la automatizaci´on del c´alculo estad´ıstico entre pares de par´ametros o
poblaciones. Por ejemplo, el par´ametro M 21 significa que el flujo gen´etico va de la poblaci´on 2 a la
poblaci´on 1 y por su parte el par´ametro M 12 significa que el flujo gen´etico va de la poblaci´on 1 a la
poblaci´on 2.
Los pares de poblaciones se deben comparar estad´ısticamente por medio de una prueba de tde
Student, ecuaci´on (2), para determinar si existen diferencias significativas en la direcci´on del flujo
gen´etico entre poblaciones. Si hay diferencia significativa, entonces una poblaci´on es la que est´a enviando
mayor n´umero de individuos (migrantes) a la otra poblaci´on. Si no hay diferencia significativa, entonces
el flujo es bidireccional.
tσ/2=µ1µ2
(n11)σ2
1+ (n21)σ2
2
n1+n22r1
n1
+1
n2
(2)
XLIII Congreso Nacional de Ingenier´ıa Biom´edica, 15 – 17 de octubre 2020
Herramienta computacional para estimar flujos gen´eticos C. G. Villegas, et al.
Fig. 2. C´odigo en Python para el procesamiento de los datos obtenidos de Migrate
donde µ1yµ2son las medias de los dos conjuntos de datos muestra, σ1yσ2son las varianzas de
las dos poblaciones y n1yn2son los n´umeros de elementos de cada muestra.
Para llevar a cabo el an´alisis estad´ıstico, se contemplan las hip´otesis, pruebas de decisi´on e inter-
pretaciones que se muestran en la Tabla 1. La Fig. 3muestra gr´aficamente estas pruebas de hip´otesis
y su interpretaci´on. MLE21 representa el n´umero de migrantes de la poblaci´on 2 a la poblaci´on 1,
MLE12 indica el n´umero de migrantes de la poblaci´on 1 a la poblaci´on 2, ttab es el valor del estad´ıstico
tobtenida de tablas estad´ısticas y tcalc es valor del estad´ıstico tobtenido de la ecuaci´on (2).
Tabla 1: Prueba de hip´otesis y su interpretaci´on
Hip´otesis Decisi´on Interpretaci´on
Ho: MLE21 = MLE12 ttab > tcalc > ttab se rechaza HoFlujo gen´etico es unidireccional
HA: MLE21 6= MLE12 ttab < tcalc < ttab se acepta HoFlujo gen´etico es bidireccional
3 Resultados y Discusi´on
La interfaz principal es intuitiva, como se muestra en la Fig. 4, se encuentran cuatro botones que gu´ıan
al usuario a realizar el an´alisis estad´ıstico entre pares de poblaciones de manera sencilla.
Al oprimir el bot´on Open file se abre un directorio de archivos que permite al usuario elegir un
documento con extensi´on .txt, al seleccionar el archivo en la cabecera de la interfaz se muestra por medio
de etiquetas la direcci´on en la que se encuentra el archivo y el n´umero de poblaciones analizadas en
Migrate. Durante el proceso de carga de los datos, se crean tres archivos con extensi´on .csv, el primero
contiene las poblaciones con su respectivo total individual y los restantes contienen los percentiles.
El archivo de poblaciones obtiene el total de las mismas y los archivos con percentiles se unen para
almacenar y mostrar sus datos en una tabla. El bot´on Run muestra la tabla generada en el proceso
XLIII Congreso Nacional de Ingenier´ıa Biom´edica, 15 – 17 de octubre 2020
Herramienta computacional para estimar flujos gen´eticos C. G. Villegas, et al.
Fig. 3. N´umero de migrantes que dona la poblaci´on 1 a la poblaci´on 2 que es receptora (MLE12)
y viceversa (MLE21). Las flechas indican la direcci´on y la intensidad del flujo gen´etico. Las
flechas de mayor tama˜no y con una sola direcci´on indican que una de las dos poblaciones es la
que est´a donando una mayor cantidad de migrantes a la poblaci´on receptora.
Fig. 4. Interfaz principal
anterior.
Para la selecci´on de valores con los que se quiera realizar el an´alisis, en la parte intermedia de la
interfaz se presentan diferentes opciones que representan los percentiles, el usuario solo puede escoger
una de ellas, al escoger, el bot´on Results realiza los c´alculos con los valores de esas columnas, aplica la
prueba tde Student, y muestra los resultados en otra tabla.
El bot´on Export permite al usuario exportar los resultados anteriores a un archivo con extensi´on
.csv, para ser visualizados como tabla, como se observa en la Fig. 5.
XLIII Congreso Nacional de Ingenier´ıa Biom´edica, 15 – 17 de octubre 2020
Herramienta computacional para estimar flujos gen´eticos C. G. Villegas, et al.
Fig. 5. Archivo que se genera con la herramienta computacional desarrollada en donde las
poblaciones se encuentran ordenadas por pares de poblaciones de manera consecutiva y muestra
el tipo de migraci´on entre poblaciones.
4 Conclusiones
En el presente trabajo se mostr´o una herramienta con interfaz gr´afica para estimar la tasa de migraci´on
de flujos gen´eticos en diferentes poblaciones.
Est´a desarrollada en Python y la interfaz es amigable con el usuario ya que el flujo de los elementos
en la interfaz es f´acil de seguir, y es posible usarla sin necesidad de saber programar, sin descargar un
entorno de programaci´on y sin conocer el lenguaje. Como trabajo futuro, se pretende subir la aplicaci´on
a un servidor web, de esta manera ser´a m´as accesible su uso para estudiantes, maestros e investigadores.
Declaraci´on de conflictos de inter´es
Los autores declaran no tener ning´un conflicto de inter´es para este trabajo.
Agradecimientos
Los autores desean agradecer a la Academia Mexicana de Ciencias por haber otorgado una beca a la
estudiante Cinthya-Guadalupe Villegas para su estancia de investigaci´on de verano virtual.
Referencias
[1] A. Templeton, Gene Flow and Subdivided Populations, ch. 6, pp. 155–193. Academic Press, 2019.
[2] T. Garrido-Gardu˜no and E. V´azquez-Dom´ınguez, “M´etodos de an´alisis gen´eticos, espaciales y de
conectividad en gen´etica del paisaje,” Biodivers, vol. 84, no. 3, pp. 1031–1054, 2013.
[3] P. Beerli, MIGRATE: documentation and program. (Version 4.0). Washington: Department of
Scientific Computing, Florida State University, 2016.
XLIII Congreso Nacional de Ingenier´ıa Biom´edica, 15 – 17 de octubre 2020
Herramienta computacional para estimar flujos gen´eticos C. G. Villegas, et al.
[4] M. Summerfield, Rapid GUI Programming with Python and Qt: The Definitive Guide to PyQt
Programming. Prentice Hall, 1st ed., 2006.
[5] P. Virtanen, R. Gommers, T. E. Oliphant, M. Haberland, T. Reddy, D. Cournapeau, and C. SciPy,
“Scipy 1.0: fundamental algorithms for scientific computing in python,” Nat. Methods, vol. 17, no. 3,
pp. 261–272, 2020.
XLIII Congreso Nacional de Ingenier´ıa Biom´edica, 15 – 17 de octubre 2020
ResearchGate has not been able to resolve any citations for this publication.
Article
Full-text available
SciPy is an open-source scientific computing library for the Python programming language. Since its initial release in 2001, SciPy has become a de facto standard for leveraging scientific algorithms in Python, with over 600 unique code contributors, thousands of dependent packages, over 100,000 dependent repositories and millions of downloads per year. In this work, we provide an overview of the capabilities and development practices of SciPy 1.0 and highlight some recent technical developments. This Perspective describes the development and capabilities of SciPy 1.0, an open source scientific computing library for the Python programming language.
Article
Full-text available
La genética del paisaje tiene como objetivo evaluar la interacción de características del paisaje (es decir, montañas, corredores) y variables ambientales como temperatura o humedad con procesos microevolutivos como flujo genético, deriva génica o selección. Para ello, la genética del paisaje se apoya en métodos de análisis de otras disciplinas como genética de poblaciones, ecología del paisaje y estadística espacial, y cuenta además con métodos propios. En este trabajo explicamos qué es la genética del paisaje y nos enfocamos en hacer una integración de las bases teóricas, supuestos, ventajas y limitaciones de los métodos de análisis más frecuentemente utilizados en genética del paisaje, apoyada con diversos ejemplos de estudio de caso. Con base en dicha integración, proponemos que el planteamiento de los análisis en un estudio de genética del paisaje debe seguir 5 etapas, para cada una de las cuales explicamos sus fundamentos, los métodos más adecuados y los programas más utilizados: 1) evaluar los patrones de variación y estructura genética, 2) evaluar los patrones de estructura genética en el espacio, 3) evaluar el flujo genético (conectividad funcional), 4) evaluar la calidad del paisaje (conectividad estructural) y 5) correlacionar los patrones genéticos con las características del paisaje. Finalmente, señalamos las necesidades que consideramos más urgentes en términos de desarrollo de métodos de análisis para la genética del paisaje.
Article
The Insider's Best-Practice Guide to Rapid PyQt 4 GUI DevelopmentWhether you're building GUI prototypes or full-fledged cross-platform GUI applications with native look-and-feel, PyQt 4 is your fastest, easiest, most powerful solution. Qt expert Mark Summerfield has written the definitive best-practice guide to PyQt 4 development.With Rapid GUI Programming with Python and Qt you'll learn how to build efficient GUI applications that run on all major operating systems, including Windows, Mac OS X, Linux, and many versions of Unix, using the same source code for all of them. Summerfield systematically introduces every core GUI development technique: from dialogs and windows to data handling; from events to printing; and more. Through the book's realistic examples you'll discover a completely new PyQt 4-based programming approach, as well as coverage of many new topics, from PyQt 4's rich text engine to advanced model/view and graphics/view programming. Every key concept is illuminated with realistic, downloadable examples-all tested on Windows, Mac OS X, and Linux with Python 2.5, Qt 4.2, and PyQt 4.2, and on Windows and Linux with Qt 4.3 and PyQt 4.3.Coverge includes Python basics for every PyQt developer: data types, data structures, control structures, classes, modules, and more Core PyQt GUI programming techniques: dialogs, main windows, and custom file formats Using Qt Designer to design user interfaces, and to implement and test dialogs, events, the Clipboard, and drag-and-drop Building custom widgets: Widget Style Sheets, composite widgets, subclassing, and more Making the most of Qt 4.2's new graphics/view architecture Connecting to databases, executing SQL queries, and using form and table views Advanced model/view programming: custom views, generic delegates, and more Implementing online help, internationalizing applications, and using PyQt's networking and multithreading facilities