Herramienta de simulación de evolución de secuencia

Estoy buscando una herramienta para simular la evolución de la secuencia dado un modelo de mutación específico y un modelo de nacimiento-muerte. Conozco herramientas y paquetes como INDELible, Seq-Gen y PhyloSim, pero simulan la evolución a lo largo de árboles filogenéticos. Lo que quiero es dar una secuencia y pedirle a la herramienta que simule la evolución de esta secuencia a través de N generaciones. La salida debería ser un gran grupo de secuencias descendientes. He estado pensando en escribir una herramienta de este tipo yo mismo, pero siempre es mejor buscar algo que ya esté codificado.

Respuestas (1)

Existe un montón de plataformas de simulación de genética de poblaciones hacia adelante y hacia atrás (coalescencia). Aquí hay una lista no exhaustiva. Todos son diferentes y tendrás que revisar su manual para ver cuál se adapta más a tus necesidades.

Lista de programas

Aquí hay una larga lista de tales plataformas . Sin embargo, podría decirse que la lista podría estar un poco desactualizada hoy y muchos de estos softwares podrían ser lentos o abandonados por sus autores.

Softwares más comunes según mi experiencia

Algunos son más conocidos que otros. Personalmente, ya vi usos de las siguientes plataformas en publicaciones: SimCoal, Nemo, Slim y SFS_Code.

SimBit

Eso sí, debo indicar mi propia plataforma de simulación SimBit . Según mi experiencia, SimBit suele ser más rápido que Nemo. Es más lento que SFS_Code y SLim para simulaciones muy pequeñas, pero se vuelve mucho más rápido que SFS_Code y SLim cuando necesita simulaciones con una cantidad de diversidad genética decente.

Punto más importante sobre estos softwares

Debe comparar softwares basados ​​en

  • Disponibilidad del autor para asesorar y aportar novedades
    • ¡No hablaré aquí de mi experiencia personal por respeto a los autores!
  • Uso de velocidad/RAM
    • Creo que SimBit suele ser más rápido (y usa menos RAM) que Nemo. SFS_code y SLim son muy rápidos para simulaciones con baja diversidad genética pero muy lentos para simulaciones con alta diversidad genética.
  • Flexibilidad
    • Nemo, SLim y SimBit son muy flexibles (pero hacen cosas diferentes) pero SFS_code no lo es realmente.
  • Interfaz de usuario
    • Encuentro que el informe de errores de Nemo es bastante pobre. Me gusta el informe de errores de SimBit. La interfaz de SLim es muy agradable (usando eidos) e incluso viene con una GUI (nunca he usado la GUI).
  • Libre de errores
    • Varias personas han encontrado errores importantes en SFS_code (comunicación personal y experiencia).

Comparación ligeramente más detallada entre Nemo, SLim, SFS_code y SimBit

Personalmente, he usado NEMO, SFS_CODE y SLim en el pasado (ahora solo uso SimBit). Así que solo puedo hablar de estos 4 a continuación.

Los cuatro modelos están bien actualizados y mantenidos por sus autores y, por supuesto, todos tienen acceso al código fuente.

SFS_code y SLim son muy rápidos para simulaciones pequeñas. El problema de SFS_code y SLim es que el uso de RAM y el tiempo de ejecución son una función exponencial de la diversidad genética. Esto significa que algunas simulaciones pueden volverse totalmente inmanejables rápidamente. Pero es una gran herramienta si espera poca diversidad genética.

SimBit suele ser más rápido que Nemo, al menos para genomas grandes. Esta diferencia se vuelve particularmente obvia para genomas grandes. Uno podría pensar "Oh, estoy bien si espero unos días más para obtener mis resultados", pero la diferencia de velocidad entre dos softwares también puede ser una diferencia en si tiene que esperar una semana o 20 años para obtener sus resultados, así que haga No descuide la importancia del tiempo de ejecución y el uso de RAM sin estimar sus necesidades.

Nemo es muy flexible cuando se trata del orden de los eventos del ciclo de vida (por ejemplo, la migración antes o después de la selección) y la versión más nueva permite simular una población estructurada por edades. SimBit es muy flexible, muy rápido y permite simular múltiples especies y sus interacciones ecológicas. SFS_code es menos flexible.


Mi única preocupación sobre NEMO es que cada individuo muere después de la reproducción y que no puede haber más de 256 alelos al mismo tiempo.

SFS_code limita la cantidad de alelos a 4. Nemo limita la cantidad de alelos a 256 (pero también puede usar el fenotipo y tener un número flotante en cada locus). SimBit utiliza loci bialélicos, un bloque en el que se cuenta el número de mutaciones (máximo: 256 mutaciones; esto es diferente a 256 alelos por ejemplo) o un número flotante continuo en cada locus para el fenotipo. ¿Realmente necesitas más alelos? ¿Por qué no puedes simplemente usar varios loci para representar una secuencia con múltiples alelos? ¡La biología real solo puede tener 4 alelos en su locus más pequeño! SimBit utiliza un sistema bit por bit. Si necesita, digamos 50,000 alelos, solo necesita solicitar una secuencia de 16 bits (2 bytes) y puede obtener 2 dieciséis = sesenta y cinco , 536 alelos

Si necesita más alelos en un solo bloque (lo que me sorprende un poco a priori), probablemente pueda preguntarle al autor y él podría aceptar ayudarlo si lo convence de que es de interés agregar esta función (podría también esté más dispuesto a ayudar a cambio de la autoría si necesita más apoyo).

Espero que ayude. ¡Buena suerte!

Bueno, muchas gracias. Me ahorraste mucho tiempo.
Aunque no he encontrado una herramienta que se adapte lo suficientemente bien a la tarea, la lista proporciona varios enlaces a paquetes R y C que me ahorrarían una cantidad significativa de esfuerzo necesario para desarrollar uno yo mismo.
No puedo darte más consejos, ya que no sé exactamente lo que estás buscando. Pero puedes simular un montón de cosas con NEMO y obtener los genes de cada individuo después. NEMO no es súper eficiente para simular una cadena real de A, T, C, G (aunque es factible), pero tal vez algo como SFS_code o SimCoal haría el truco. Es posible que desee descargar Nemo (gratis, por supuesto) y ejecutar la simulación de ejemplo que viene con el paquete para tener una mejor idea de lo que hace.
Mi única preocupación sobre NEMO es que cada individuo muere después de la reproducción y que no puede haber más de 256 alelos al mismo tiempo. Las técnicas basadas en coalescencia reconstruyen genealogías, en lugar de inflar el espacio de la secuencia. En mi laboratorio estamos trabajando en la estructura de espacios secuenciales y hemos encontrado varias regiones huecas. Desde el punto de vista matemático, el problema es tan complicado que creemos que es mejor intentar la máxima probabilidad para estimar los posibles parámetros de la evolución de la secuencia bacteriana que podrían haber llevado a estos huecos. De ahí la necesidad de un simulador de evolución de secuencia directa.
@EliKorvigo Releí tu comentario y me di cuenta de que podría no haberlo abordado correctamente. Edité mi respuesta. El comentario tiene ahora 2,5 años. Tengo curiosidad, ¿qué terminaste haciendo?
Lamento mucho haberme perdido por completo tu comentario de Nochevieja. Terminé implementando un modelo de evolución básico paralelo con un tamaño de población (casi) ilimitado en C.