9.29.2005

Mi primer codigo en Python



14 años han pasado desde mi primer computador, tambien han pasado 14 desde que empeze a escribir codigo. Llevo escribiendo codigo en C/C++ unos 13 años, lo cual me convierte en un programador c-native. Siempre he pensado que eso es un error, siempre he pensado que estar polarizado en una única linea de pensamiento esta completamente mal. Por esto hace 2 años me di a la tarea de aprender LISP, no ha sido facil(y tampoco le he dedicado suficiente tiempo) para mi manejar ambos tipos de programacion y mas aun utilizar tecnicas avanzadas en ambos estilos.

En esta linea de ideas, hoy termine mi primer programa en Python, lo considero mi Hello World. Aun cuando carece de OOP considero que es una excelente aproximacion a Python. Sigo pensando muy c-like (aun cuando Python no sea propiamente LISP) y me tropeze varias veces escribiendo el pedazo de codigo que ahora posteo.

Esencialmente el codigo toma cualquier archivo de la base de datos de proteinas PDB y calcula la diferencia espacial entre atomos de carbon-alpha, tambien calcula el promedio y la desviacion estandar. Esta, como la mayoria de mi codigo, orientado a ser utilizado en linea de comando.

Lo proximo que pienso hacer es implementar algunas clases y familiarizarme mas con los loops. Tambien pienso implementar algunas funciones en C/C++ por fuera de python para mejorar el rendimiento de algunas partes del codigo o simplemente por jugar, tambien lo hacemos en C, no? escribimos pedazos de codigo en assembler para ver cuanto mejora el rendimiento, es el mismo patron ;).

Para referencia futura: Python Challenge.

|

9.25.2005


Post de otoño



Homo liber nulla de res minus de morte cogitat;et ejus sapientia non
mortis sed vitae meditatio est.
Spinoza's Ethics, Pt IV, Prop. 67

(There is nothing over which a free man ponders less than death; his widom
is, to meditate not on death but on life.)


Das Sein ist ewig; denn Gesetze Bewahren die lebend'gen Schatze, Aus
welchen sich das All geschmuckt.
Goethe

(Being is eternal; for laws there are to conserver the treasures of life
on which the Universe draws for beauty.)

|

9.21.2005

Poker y Pony en Trieste






Sin comentarios ...

|

9.18.2005

Del rompimiento espontaneo de simetria al desdoblamiento espontaneo de proteinas.



A lo largo de mi vida siempre he citado y recordado las palabras de A. Camus en su popular LE MYTHE DE SISYPHE: "Il n'y a qu'un problème philosophique vraiment sérieux : c'est le suicide."(No hay más que un problema filosófico verdaderamente serio: el suicidio). Soy un convencido que tratar de encontrar el sentido de la vida (la muerte, el suicidio) a traves de las experiencias diarias es tan dificil como tratar de leer un periodico a traves del fondo de una botella. En lugar de esto la mayoria recurrimos a otros medios, en mi caso particular he llegado a las ciencias de la vida.




En el estudio del universo natural es interesante ver como este (nuestros limites racionales?) tienden a llegar a puntos similares en multiples escalas. Ultimamente he quedado sorprendido de la fisica envuelta en las ciencias de la vida y particularmente de todos los fenomenos tan similares en diferentes areas.



Mi encuentro con los eventos espontaneos no es muy lejano, recuerdo haber visto en un capitulo de los expedientes X hablar de la combustion espontanea, algo poco cientifico pero demasiado tentador para hacer chistes. En la academia realmente lo primero 'espontaneo' que encontre fue la emision espontanea de fotones. Me sorprendio ver la creacion de fotones por el decaimiento de un atomo en un estado exitado, simplemente parecia magia, sin embargo, no era algo tan exotico y por asi decirlo deliberado como lo que vendria despues. El año siguiente me tope con el famoso rompimiento espontaneo de simetria(ver enlace) en particulas elementales (o fisica de altas energias). Este rompimiento muetra una predileccion del universo por un estado, fuerza al universo a tomar una decision. Esta decision logra dar masa a todas las particulas fundamentales y por ende a todo lo que conocemos (salvo la masa electromagnetica).




Pero el capricho de la naturaleza no solo trabaja a escalas atomicas o subatomicas (nucleares), el capricho de la naturaleza trabaja a la escala de los bloques constituyentes de la vida. La eleccion de un aminoacido L sobre su isomero optico R para construir los pilares fundamentales de la vida, las proteinas, es una clara muestra que el universo tomo una decision. Aun mas intrigante que esta eleccion, es el desdoblamiento espontaneo de proteinas. Proceso mediante el cual cadenas inertes de aminoacidos se transforman en los pilares fundamentales de la vida: las proteinas.



Frente a todo esto surgen muchas preguntas: porque existen tantas cosas en el universo espontaneas? son realmente espontaneas? porque se desdoblan las proteinas espontaneamente? porque le gusta a la naturaleza mostrarsenos de esta manera tan misteriosa e intrigante y sobre todo repetirse a si misma en multiples escalas? Podemos dar alguna razon a Camus conociendo los pilares de la vida?



Por ahora seguire yendo a dormir sabiendo que las preguntas siguen abiertas, que las respuestas quizas algun dia las tengamos, si es que existen, si es que no son infinitas o nulas. Hoy ni siquiera es cierto si podre despertar y vivir otro dia o si quizas un caprichoso universo quiera darme una muerte espontanea ... como todas, como a él le gusta.

|

9.11.2005




Analisis de Datos en Fisica Biologica



Durante casi 2 años me dedique a la física de altas energís, trabajando en experimentos que corren durante largos periodos de tiempo (2-3 años) y con resultados y modelos muy complicados. En fisica biologica, ahora trabajo con experimentos que no toman mas de unas cuantas horas. Sin embargo los resultados son igualmente complicados y los modelos continuan siendo complejos. El analisis de datos, sin embargo, ha resultado muy similar y supongo se deriva de la naturaleza de los experimentos, modelos y simulaciones. Sin embargo he querido poner en este post algunos resultados interesantes del analisis de datos en fisica biologica.



Partiendo de una simulacion en dinamica molecular, para la alquimia de la molecula: F1-ATPase. Obtenemos resultados como el PMF (Potential Mean Force) y la diferencia de energia libre. Sin entrar en detalle en la parte de la simulacion procedere a describir un poco y de manera muy general el analisis de datos que realizamos.



WHAM (Weighted Histogram Analysis Method)



Debido a la naturaleza de la simulacion, la energia del sistema se compone de una parte perturbativa y de una parte dada por el potencial de umbrella. La parte perturbativa se introduce mediante multiplicadores de Lagrange en el hamiltoniano e introduce una oscilacion al sistema para observarlo en sus diferentes estados.
El potencial de Umbrella se introduce como una funcion de las coordenas atomicas de la estructura y ayuda a obtener un mejor muestreo en regiones desfavorables. Como el potencial de Umbrella no tiene ningun significado fisico el metodo compensa su presencia.



Para tratar de omitir la fisica/biologia del asunto y centrarnos en el problema del analisis de datos dire que el problema se asemeja a unir un conjunto de histogramas que representa cada uno de los estados intermedios que existen en la transicion de la proteina de un estado A a un estado B. Esto es como hacer analisis foto por foto de la trayectorias que siguen los atomos de las moleculas y despues reconstruir un video. Para esto, de la simulacion se obtienen un conjunto de N ventanas que representan cada uno de los estados intermedios del sistema donde cada ventana contiene M valores del potencial de umbrella.


En fisica de altas energias, hasta donde yo trabaje, nunca se hace necesario unir varios histogramas, esto le da un grado extra de dificultad al analisis biologico. Sin embargo el manejo estadistico de informacion hasta este punto sigue siendo esencialmente el mismo, tanto que para lo que sigue lo implementamos todo en la plataforma ROOT de CERN. Para unir el conjunto de histogramas se hace necesario 'ponderar' los valores de los histogramas, tal y como se hace al calcular un promedio ponderado.



El primer problema que surge al iniciar con WHAM desde cero es pensar que este metodo requiere calcular los histogramas para cada ventana. Esto es esencialmente falso, dado que WHAM por si mismo es un metodo que construye los histogramas sobre el conjunto de datos completo, utilizando un ponderado de Boltzman para generar un unico histograma.



El segundo problema que surge con WHAM es el calculo del termino exponencial que da cuenta del potencial de umbrella para cada coordenada atomica de la transicion. Este termino tiene 5 subindices en el paper original. Pero estos indices estan en una ecuacion general de la cual uno debe tener cuidado debido a que esta ecuacion esta construida teniendo en mente una simulacion para la perturbacion y otra para el potencial de umbrella.



Finalmente WHAM es un metodo increiblemente costoso en terminos de consumo de memoria y uso del procesador. Los resultados que hemos obtenido con WHAM han sido muy buenos y pronto en un proximo post explicare un poco mas al respecto en terminos de la fisica y la biologia del problema.



Este primer acercamiento al analisis de datos en biologia me ha mostrado cuanto puedo aprender en este nuevo campo y cuanto de lo que he hecho me ha servido. Este trabajo lo hicimos en 1 semana y hemos podido dominar el metodo, estamos trabajando en proponer un metodo que consuma menos recursos y que quizas sea mas efectivo que el propuesto por Kumar et al. (J. Comput. Chem 13(1992)1011). Espero seguir aprovechando las ideas y herramientos que traigo de mi background y poder contribuir al campo al que ahora hago parte. Ya para cerrar quiero agregar que me encanta este nuevo campo en el que he entrado y el analisis de datos es solo la puerta de entrada a lo que viene ... no puedo esperar para empezar a construir modelos !!!

|