5 votos

Distribuciones de ajuste, bondad de ajuste, valor de p. ¿Es posible hacer esto con Scipy (Python)?

INTRODUCCIÓN: soy un bioinformatician. En mi análisis que realizo en todos los genes humanos (alrededor de 20 000) la búsqueda de un corto en particular motivo de secuencia para comprobar cómo muchas veces este motivo se produce en cada gen.

Los Genes son "escrita" en una secuencia lineal de cuatro letras (a,T,G,C). Por ejemplo: CGTAGGGGGTTTAC... Este es el alfabeto de cuatro letras del código genético, que es como el lenguaje secreto de cada célula, es cómo el ADN almacena la información.

Sospecho que la frecuencia de repetations de un corto en particular motivo de la secuencia (AGTGGAC) en algunos genes son cruciales en un determinado proceso bioquímico de la célula. Ya que el motivo en sí mismo es muy corto, es difícil con las herramientas computacionales para distinguir entre los verdaderos funcional ejemplos en los genes y los que se parecen por casualidad. Para evitar este problema puedo obtener secuencias de todos los genes y se concatenan en una sola cadena y revueltos. La longitud de cada uno de los genes originales se almacenan. A continuación, para cada uno de los originales longitudes de secuencia, una secuencia aleatoria fue construido en varias ocasiones escoger Una o T o G o C al azar a partir de la concatenación de secuencia y transferirlo a la reproducción de secuencia aleatoria. De esta manera, el conjunto resultante de aleatorizado secuencias tiene la misma longitud de distribución, así como la a,T,G,C composición. Luego busco el motivo en estos aleatorio de secuencias. Yo permormed este procedimiento 1000 veces y promediar los resultados.

  • 15000 genes que no contienen un motivo dado
  • 5000 genes que contienen 1 y el motivo
  • 3000 genes que contienen 2 motivos
  • 1000 genes que contienen 3 motivos
  • ...
  • 1 de genes que contienen 6 motivos

Así que incluso después de 1000 veces la aleatorización de la verdadera código genético, no hay genes que tienen más de 6 motivos. Pero en el verdadero código genético, hay un par de genes que contienen más de 20 repeticiones del motivo, que sugieren que estos repetición puede ser funcional y es raro encontrarlos en tal abundancia por pura casualidad.

PROBLEMA: me gustaría saber la probabilidad de encontrar un gen con digamos 20 ocurrencias de el motivo en mi distribución. Quiero saber la probabilidad de encontrar un gen por casualidad. Me gustaría implementar esto en Python, pero no sé cómo.

Puedo hacer un análisis de este tipo en Python?

Cualquier ayuda se agradece.

2voto

christy Puntos 51

Estoy seguro de que usted puede este código en Python y es probable que existan varios paquetes que va a realizar la codificación más fácil. No sé que me entienden el verdadero computacional del problema que de la cara, aunque. Tal vez si se incluye un fragmento de código que muestra cómo se están haciendo los 1.000 iteración de la aleatorización él haría cosas más concretas para alguien como yo, que carecen de la genética de fondo.

La primera cosa que viene a la mente, aunque es un Monte Carlo de muestreo de su distribución. Por ejemplo, el uso de la random_integers() función en numpy para seleccionar al azar un motivo fuera de su lista de motivos. Añadir 1 a un contador si su longitud es igual a 20, de lo contrario, no cuenta. Hacer esto miles de veces y su estimación de Prob(motif_length = 20) es contador / simulation_length.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X