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.