viernes, 20 de abril de 2012

Sistema caótico: Evolución humana

¿Qué es un Sistema Caótico?
Podemos decir que en términos simples, la teoría del caos nos dice que un sistema dinámico cuya naturaleza es determinista, (como lo hemos visto en clases anteriores, que se tiene un numero finito de estados y depende solamente del estado inicial), pero en este caso no es predecible en la naturaleza.

Aplicado en el mundo real, tenemos diversos sistemas que son caóticos ya que son demasiado sensibles a las condiciones iniciales, por ejemplo podemos decir el clima en la ciudad, el mercado económico de un país, reacciones químicas, etc, lo que hace que es difícil de controlar y predecir.

Bifurcación y atractores extraños
 Algunas de las caracteristicas importantes del estudio de sistemas caóticos es que existen diferentes fenómentos, tales como los atractores extraños, el cual las trayectorias cercas convergen y es extraño ya que exhibe sensibilidad respecto a las condiciones iniciales.

Atractor de lorenz


Algunas veces, otros sistemas tienen un proceso que hace otros dos atractores, llamado bifurcación


Diagrama de una bifurcación total

Durante algunos dias he estado investigando acerca de como realizar una metodología para proponer la hipótesis de que la evolución humana tiene aspectos que se comportan como sistemas caóticos, partiendo de la idea que la teoría del caos se puede considerar para muchos científicos modernos como pilar en la ciencia, este estudia el comportamiento de sistemas dinámicos, que pueden ser muy sensibles al momento de tener ciertas condiciones iniciales, por ejemplo, uno de los efectos que se conoce sobre esta teoria es el efecto mariposa. La teoría del caos viene a aplicarse en diferentes ciencias como las matemáticas, biología, computación, meteorología, etc...
 
La evolución humana.
Considero que la evolución humana puede considerarse un sistema caótico por diversas circustancias, entre las cuales por ejemplo tenemos el ADN, el cual, desde el punto de vista de las ciencias de la computación lo podemos considerar como una cadena de caracteres de cuatro letras, las cuales son C = Citosina, A = adenina, T = timina, G = guanina, en donde la combinación de triatas, o sea de tres letras cada una, grupos que forman las bases nitrogenadas, que a su vez forman aminoacidos, para que el conjunto de x cantidad de aminoácidos forme las proteinas, fundamentales para el ser humano, entonces, cada organismo humano, tiene un ADN con información que se relaciona con nuestra historia evolutiva antigua y reciente, por lo que considero que estudiando los cambios y mutaciónes en las secuencias del ADN, podriamos decir que poodemos tener un sistema caótico, entonces es común que entre los humanos tengamos alteraciones o cambios en la información genética.

Entonces tenemos algunos puntos relevantes en donde considero que el caós esta presente en la evolución.
  • Nuestro sistema biológico, de cualquier organismo, incluyendonos a nosotros, son sistemas dinámicas.
  • Cualquier proceso evolutivo interviene en el ADN.
  • Podemos decir que los organismos tienen sensibilidad al inicio de condiciones, cuando se crea un nuevo organismo.
  • Poblaciones tienen presión de selección, esto es por ejemplo si hay mucho sol en una ciudad, algunos elementos de la población se adaptan, por ejemplo con un color de piel más oscuro.

Representando el cáos en el ADN

Existen cadenas de ADN muy largas, de las cuales se han hecho investigaciones, estas se pueden representar de una manera gráfica, podemos convertir estas cadenas en imagenes similares utilizando la teoria del caos, a pesar de que tenemos cadenas que tienen muchos genes y regiones no codificadas, este tipo de imagenes que se generan, son utilizadas para identificar especies. 

Para este caso, seleccioné una bacteria, la Helicobacter pylori, la cual según wikipedia
Helicobacter pylori es una bacteria que infecta la mucosa del epitelio gástrico humano. Muchas úlceras y algunos tipos de gastritis se deben a infecciones por H. pylori.
Para poder consultar su ADN, existen páginas de bancos de datos para obtener la secuencia, para este caso ingresé a la página de National Center for Biotechnology, en la parte de genbank [aquí] se pueden buscar los reportes.

Estos fueron los reportes que calculé.


Ahora, para realizar el programa, el cual hice en python, me basé en el libro en uno de los libros de Biomedial Informatics en Python de Jones and Bartlett Series [aquí], utilizando un algoritmo de chaos game para obtener una representación gráfica del ADN y creando matrices para ir contando para colorear puntos.

#!/usr/bin/python
from numpy import arange, array, take, ravel, zeros, transpose
import copy
import Image

#Crea las combinaciones posibles para contar las proteinas simuladas
#base = son las bases nitrogenadas
#A = adenina, G = guanina, C = citosina y T = timina
#Iteraciones, en este caso 8, resultado matriz de 256x256
def combinaciones(base, iter = 8):
    
    #Hacemos la matriz inicial con bases
    a = array([[base[0],base[1]],[base[2],base[3]]]) 
    
    #iteraciones para incrementar matriz
    for n in range(iter-1):
        N = len(a)
        agran = arange(2*N)/2
        b = zeros((2*N, 2*N), 'S8')
        
 #Incrementa la matriz x 4 replicas
        for i in range(N):
            b[2*i] = take(a[i], agran)
            b[2*i+1] = take(a[i], agran)
        
        #Agregamos la letra apropiada
        for i in range(2*N):
            for j in range(2*N):
                k, l = i%2, j%2
                m = k*2+l
                b[i, j] = base[m] + b[i, j]

        a = copy.copy(b)
    return b

#Abro la base del la secuencia de genoma.
def LeerADN(nombre):
    fp = file(nombre)
    datos = fp.read()
    fp.close()
    return datos

#Dibuja en una imagen de 8-bit pixeles en blanco y negro
def dibuja(datos):
    mg = Image.new('L', transpose(datos).shape) #Imagen de 8-bit pixeles en blanco y negro
    mn = datos.min()
    a = datos - mn
    mx = a.max()
    a = a*256./mx
    mg.putdata(ravel(a))
    return mg

#De la base del genoma, solamente agarra la secuencia de ADN.
def SepararADN(datos):
    origen = datos.find('ORIGIN')
    inicio = datos.find('1', origen)
    final = datos.find('//', origen)
    a = datos[inicio:final].split('\n')
    adn = ''
    for i in a:
        spl = i.split()
        adn += ''.join(spl[1:])
    return adn

#Cuenta cuantas veces se repite la cadena en base a las diferentes formas
#que tenemos en la matriz que generamos.
#Devuelve una matriz que puede ser dibujada
def contar(matriz, adn):
    N = len(matriz)
    ctr = zeros((N,N), int)
    for i in range(N):
        if i%50==0:
            print i
        for j in range(N):
            ctr[i, j] = adn.count(matriz[i, j])
    return ctr

#Llamo a todos los metodos
def main():
    datos = LeerADN('Helicobacter_pylori_HUP-B14.gb.txt')
    adn = SepararADN(datos)
    matriz = combinaciones('gatc')
    cuenta = contar(matriz, adn)
    dibuja(cuenta).save('Helico-1.gif')

main()

En donde genero las siguientes imagenes de los 3 diferentes imágenes.




Entonces, considero que podemos relacionar por medio de un sistema dinámico a la representación gráfica del ADN, obteniendo resultados con información del ADN, teniendo como información conjunta u homogenia, abria que estudiar el comportamiento con más informaciones de la cadena de ADN, pero pienso que las propiedades de los genomas, luego de miles de años de evolución teniendo mutaciones, genes que se codifican y genes que no se codifican, podemos concluir que son el resultado de un sistema caótico.

Bibliografía
Genomic signature, Deschavanne [Aquí]
Python for Bioinformatics (Jones and Bartlett Series in Biomedial Informatics). [Aquí]
Genbank de National Center for Biotechnology information [Aquí]
Ecuaciones Diferenciales y problemas con valores en la frontera, Edwards y Penny [Aquí]
Fractal seed, Chaos Theory [Aquí]
Diapositivas de curso "Caos y sistemas complejos" Universidad de Zaragoza [Aquí]

1 comentario:

  1. Tanto que te estresaste :) Salió bien. Le pudieras haber metido también aspectos de autómatas celulares caóticas para cosas que ocurren a nivel celular. O algo como esto: http://www.marcoruggiero.org/pdf/Aneuploidy%20and%20cancer.pdf
    Te pongo los 5 y 5.

    ResponderEliminar