Estado actual 1 Abril 2008
Posted by formulacionmagistral in Concurso.add a comment
Tengo el blog muy abandonado, pero nada que ver con el desarrollo, vamos a ver por donde empiezo….
Primero, he avanzado bastante en la compatibilidad con moléculas díscolas que no cumplen con el formato V2000 de MDL (mira que es secillo, pero ni caso), con lo que la librería ya no rompe con los segfaults que me tenían bastante bloqueado. Además también en conseguido que, según valgrind, haya 0 bloques de memoria en uso al terminar el programa (ufff lo que me ha costado).
Segundo, he reformado algo las utilidades de consola. En el primer planteamiento del proyecto, se requería que tuviera una interfaz simple gráfica para realizar operaciones sencillas y unas utilidades de línea de comando, muy simples, que hicieran cada una tareas pequeñas de una manera rápida y flexibles.
Pues bien, esto a quedado de la siguiente forma:
(primero las buenas noticias)
- Fingerindex. Esto es nuevo. Se encarga de leer las moleculas del fichero SD (texto plano separado con $$$$\n), calcular el fingerprint de cada molécula, registrar el comienzo y tamaño de cada una de ellas y meterlo en una base de datos con SQLite3 (más eficaz que un formato propio en texto y menos complicado que una base de datos relacional grande: perfecto).
- Fingerbase. Compara indices de fingerprints con una molécula candidata o target e indica el coeficiente de similitud. Actualmente solo calcula Tanimoto. Falta por integrar los plugins de coeficientes y los criterios de selección.
- Fingerextract. Este extrae la molécula del SD que se pida. No se basa en el índice de momento por lo que es algo lento en ficheros grandes (cientos de miles de moléculas).
Todo esto bien, pero ¿qué puede hacer este sistema?
Un ejemplo, el subset 8 de mi set de experimentación (obtenido de ligand.info, ahora parece caido), que corresponde con la base de datos de Asinex Ltd. de 348.276 moléculas, en mi PC (Athlon 64 X2 y 2Gb RAM) se indexa (calculo de hash y posiciones en fichero) en 13 minutos (12:55) sin pasar del 62% de uso de un CPU.
No es muy impresionante, pero las busquedas, sin embargo, hasta lo que he probado, si mejoran con el sistema.
Buscar análogos estructurales del ciprofloxacino en el índice anterior se resuelve en 1,579 segundos con varias decenas de hits por encima del 90% (impressive
)
Ahora las malas noticias.
- Es poco probable que pueda, a corto plazo, implementar la GUI en GTK+, ya que, aunque es simple la interfaz, es un infierno hacer GUIs en C sin Glade ni cosas por el estilo….:P
Por último recordar que voy colgando mis informes sobre los resultados de rendimiento y funcionamiento del fingerprint y las aplicaciones en general en la sección de documentos de la forja.
Si os animais a probar algo las utilidades decir que usa las autotools pero que esta un poco patas arriba todo, pero que compila bien y funciona medianamente bien (primero hay que compilar con su configure; make libmol y libsdf, luego fingerbase y el resto no estan en el makefile de momento)
Avanzando – Con FreeCFire a más 22 Febrero 2008
Posted by formulacionmagistral in Concurso.add a comment
Pfff…como empiezo. Hace la tira de tiempo que no escribo nada. Bueno, pues lo primero es que se acabo la beca Erasmus (todo tiene su final) pero por lo menos también se han acabado los exámenes con lo que ya me he puesto otra vez a currar en el proyecto.
He subido al Subversion lo más nuevo que tengo. A saber:
- Las librerias libmol y libsdf para leer ficheros de intercambio de bases de datos de moléculas.
- El programa fingerbase que de momento prueba las librerías y permite hacer búsquedas en bases de datos pequeñas.
- Rudimentario sistema de plugins. Le falta bastante.
Esta algo pobre de documentación pero cuando controle por fin el doxygen y lo integre con lo que tengo de automake-autoconf mejorará algo.
Sin subir también tengo algo para utilizar SQLite3 en el almacenamiento de los fingerprints calculados. A modo de indice molecular o algo por el estilo.
Aunque he completado algo la implementación del fingerprint que diseñe con los enlaces entre 3 átomos y parte de un detector molecular de quinolonas, aún me falta el detector de anillos sin el cual no se puede detectar la mayor parte de moléculas ni finalizar el fingerprint.
He visto con las pruebas que he realizado (se pueden descargar de la sección de documentos de la forja por cierto) que se obtienen resultados muy prometedores con base de datos de sintéticos (tanto en antivirales tipo aciclovir como en antibacterianos tipo fluoroquinolonas) pero ya tengo unas 6Gb de moléculas naturales de varios fabricantes así que cuando arregle el fantasma de lack que hace que no pueda pasar de las 3000 moléculas podré probarlo a lo grande
Bueno, creo que eso es todo…ahh y por supuesto la foto, que, como no tengo nuevas de Londres (que se puedan poner en la web
) la sustituyo por…..un diagrama de aplicación!!!
Fingerprints 28 Noviembre 2007
Posted by formulacionmagistral in Concurso.3 comments
Esta noche estoy motivado asi que aqui va otro post pendiente!!!!
He hablado mucho ultimamente de fingerprints. Que si fingerprints esto que si fingerprints aquello, que mira que guay soy que hablo en ingles…
Pero no he dicho ni una palabra de lo que son. Si, mea culpa. Bueno pues ahora toca que explique que leches es esto:
Primero, son una gran idea. Si, lo son. Muchas veces he pensado yo como se puede hacer lo que hacen de una manera rápida y nunca se me ha ocurrido algo parecido. De todas formas no es que yo sea una lumbrera….
Estos fingerprints (huellas dactilares) sirven para buscar moleculas parecidas entre miles de moleculas diferentes. Son unas cadenas de 0 y 1 (bits?), en las que cada una de las cifras representa una característica de la molécula. Ejemplo al canto, tengo una molécula como…no se, el ibuprofeno mismo, es lo que se llama un AINE (Antiinflamatorio no esteroideo) y mas concretamente un arilpropionico (Derivado del benceno con un sustituyente de 3 carbonos con grupo ácido), bueno, esto que he dicho en chino significa que tiene un grupo ácido (COOH), que es algo especial (vamos, no todas las moléculas lo tienen) así que si en mi fingerprint yo hubiera dicho la primera cifra significa presencia del grupo ácido carboxilico, entonces mi molecula tendria un 1, y las demas un 0. Ale, ya estan diferenciadas.
La idea es esa pero con muchas más cosas, de hecho, he puesto mi definición en la forja, pero es preliminar todavía.
Una vez que tienes el fingerprint de todas las moléculas que quieres comparar debes..no se…compararlas? Pues eso es lo más fácil y en lo que hay más soluciones todavía, la más común es el coeficiente de Tanimoto (si hombre, primo hermano de Miyagui) que es lo siguiente:
Suponemos tres moleculas:
Dificil, eh? A ver, que es eso de que se parece mas? en que sentido? depende de para que, no?
Para el investigador la más parecida es la que sea estructuralmente relacionada porque asume que puede tener actividad farmacológica parecida (mucho asumir…). Asi que, ¿cómo le dices a tu ordenador que compare tropecientasmil moléculas para que cuando subas de la cafeteria (si subes. ¡Como me gusta investigar!
te diga aqui tienes lo que te interesa? Pues con fingerprints por ejemplo.
Caso de antes, un fingerprint inventado que es:
0. Presencia de Oxígeno
1. Presencia de nitrógeno
2. Presencia de benceno
3. Presencia de enlace C=O
4. Presencia de enlaces C=C
Vale, pues los resultado serian los siguientes:
Molécula 1: 10111
Molécula 2: 11111
Molécula 3: 00101
Ahora hay que compararlos según Tanimoto el cálculo es:
a=Bits activados en ambos.
b=Bits activados en un compuesto
c=Bits activados en el otro compuesto
a/(c+b-a) —> Numero de 0 al 1 *100 -> Porcentaje de similaritud entre los compuesto. Voila!!
1vs1: 100% (ejem…)
1vs2: 80% (no esta mal)
1vs3: 50% (uhmm, muy bajo)
Ala que rollo!!!
Bueno pues para compensar metere otra fotica de por aquí (Mi pulgar aplastando el O2 Arena desde Canary Wharf)
Saludos desde Isle of the dogs!!!
No soy tan vago 28 Noviembre 2007
Posted by formulacionmagistral in Concurso.add a comment
Bueno, a lo mejor si lo soy, pero tengo muchas cosas que hacer (y visitar) y sobre todo tengo que echarle muchas horas para terminar mi investigación de los aceites esenciales asi que de momento no es mi principal objetivo. (ya le dare caña después)
Aqui va un resumen de lo que he hecho hasta ahora, la documentación que he escrito y algunas cosas muy interesantes que me he encontrado para entender mejor el estado actual de la búsqueda de compuestos asistida por ordenador ya los colgare en la forja (cuando la tenga puesta jeje):
1. He terminado la fase de documentación sobre las soluciones que estan disponibles y el estado actual de esta ciencia (gracias Google Scholar y sobre todo que haría sin ti Scirus!)
2. He escrito parte de la librería para manipular ficheros SD tanto planos como comprimidos (vaya con el API de zlib, no me lo conocia yo…q potencia!
).
3. He escrito parte de la librería para manipular el formato molecular MOL y parte de mi implementación inicial de fingerprints.
4. He hecho algunas pruebas para ver si mi fingerprint (preliminar, solo con átomos, enlaces y peso molecular) funcionaba decentemente y parece que funciona muy bien los resultados demuestran un funcionamiento particularmente acertado. (Entre 4009 moléculas del ChemBank encontró unos 15 parecidos en más de un 90% al aciclovir y TODOS eran “(*)antivirales de bases de palo”(TM)(C) como el aciclovir…juas).
5. Estoy ahora con el detector de anillos (uno muy muy simple) y luego comenzaré con el detector molcular. En principio planeo implementar los más significativos (derivado de ciclopentanoperhidrofenantreno, azucares, aminoácidos, alcaloides, varios terpenos) y luego ampliaré la definición del fingerprint.
6. Tengo muchos documentos pero no se si puedo publicarlos porque son de revistas científicas asi que estarán muy restringidos de todas formas algo de trapicheo se podra hacer…
Y nada más ya ire poniendo cosas en la forja, asi que el que le interese pues que mire algo…
Saludos desde Oxford….pero que cultiBado me estoy volviendo.
(*). Me refiero a antivirales de base nitrogenada con azucar roto o sucedaneo: ganciclovir, aciclovir, etc…
Presentación 16 Noviembre 2007
Posted by formulacionmagistral in Concurso.4 comments
Bueno, pues lo primero es presentarse a uno y al proyecto asi que:
Yo
Me llamo Alvaro Cortes y soy estudiante de 4º de Farmacia en la Universidad Complutense de Madrid pero ahora mismo estoy de Erasmus investigador (juas) en Londres
Proyecto
El proyecto este surgio como una idea de mi tutor en la investigacion (José, un saludo!) que quería hacer justo lo contrario de lo que hace todo el mundo: buscar moleculas naturales en vez de sintéticos (Viva la farmacognosia!). Y así me dije, bueno, pues es una buena idea, sobre todo porque la gente de zonas como pocos posibles pueden usar el vegetal. Asi que miré un poco lo que había ya hecho y encontre software de Daylight(TM) que hace un poco esto y aparte OpenBabel (openbabel.sf.net – Opensource). Aún asi o no era gratis o no era específico de moléculas naturales y sobre todo que estaba escrito en C++ (puff), entonces me dije presentalo al concurso e introduce nuevos conceptos y sobre todo: ESCRIBELO EN C!!!
Contada la historieta ahora los detalles técnicos aburridos:
Voy a escribir un sistema de filtrado de bases de datos de moléculas basado totalmente en plugins que permiten aplicar técnicas de busqueda ya conocidas (fingerprints, busqueda farmacoforos) o nuevas por venir sin estar diseñado para ello. El proyecto utilizará los formatos estandares para intercambio de informacion química a gran escala (no, SMILES, no) MOL y SD de DayLight(TM) que utilizan tablas de conexión para expresar la molécula. Se proveera de dos librerias basicas para manipulacion de moleculas y prevision de propiedades básicas (Ej: Rule of Five de Lipinski, MlogP, indices de complejidad, etc…), pero sobre todo permitirá una busqueda personalizada y sencilla con filtros y coeficientes que elija el usuario, y lo mas importante, orientado a moléculas naturales (terpenos y derivados fenolicos de aceites esenciales, alcaloides, etc…). Todo con una interfaz gráfica, pero sin perder la opción de utilizar comandos para procesos batch.
Resumiendo:
ÚTIL, que sirva para investigar.
Escrito en C (rapido, rapido).
Orientado a moléculas naturales.
Expandible facilmente por filtros/plugins.
Fácil uso (Suitable for human scientifics).
Bueno, pues esto solo es el principio, ya ire contando.
