Es lo mismo la Biología Computacional y la Bioinformática?

April 5, 2010

Muchos me han preguntado a lo largo de estos últimos años si existe alguna diferencia fundamental entre la Biología Computacional y la Bioinformática. Son acaso dos nombres para definir una misma disciplina científica? En definitiva ambas disciplinas  usan términos como informática y computacional y de algún modo ambas palabras implican el uso de computadoras aplicadas a la Biología. Creo que es una pregunta válida y para nada trivial. Lo primero que  trato de explicar es que el término computacional no implica necesariamente el uso de computadoras, sino que mas bien computacional implica computo, calculaciones y el uso de técnicas numéricas en el área de la biología. La bioinformática es una disciplina mucho más supeditada a los biológos, de algún modo es menos interdisciplinaria, y si usan ampliamente y sostenidamente la tecnología informática aplicada a contextos biológicos. La Biología Computacional es mucho más interdisciplinaria, o sea posee un profundo conocimiento de matemática y estadistica, programación y aún de la problemática biológica.
La Biología Computacional y  la Bioinformática son básicamente áreas de estudio interdisciplinarias en sus naturalezas, y con una estrecha relación con la Biología, pero hasta haí llega toda similitud. El propósito de este posting es mostrar las diferencias en cuanto a propósito y método de ambas disciplinas, disciplinas que tan a menudo son asumidas como similares, aún por profesionales altamente calificados .  Es importante aclarar  que estas diferencias que voy a citar provienen de mi experiencia vital de estudio y trabajo. He encontrado Biólogos que consideran esencialmente que ambas disciplinas son la misma cosa con diferentes nombres. Supongo que sus experiencias profesionales le hayan hecho arrivar a semejante y errada conclusión. Un elemento que comparten ambas disciplinas científicas, es su papel no protagónico pese a jugar papeles fundamentales en cualquier investigación biológica, los Biólogos tienden a vernos y asumirnos como accesorios extremadamente útiles , profesionales que podemos resolver un amplio rango de problemas, pero no necesariamente en pleno entendimiento de la problemática biológica. Creo que es una apreciación lamentable y que muchos de nosotros hemos sufrido en carne propia. Podemos definir a dichas áreas como sigue:

La biología computacional consiste fundamentalmente en el desarrollo de algoritmos y modelos matemáticos para facilitar el entendimiento de problemas biológicos. La biología computacional es extremadamente multidisciplinaria,  abarca esencialmente fuertes conocimientos de: Matemática,  Química y Bioquímica, Biología Molecular, Programación, Física, Estadísticas entre otras áreas del conocimiento humano.

La Bioinformática es el uso y aplicación de la tecnología de la información y ciencias de la computación al campo de la Biología Molecular. Como dije anteriormente su formación es más estrecha, menos interdisciplinaria, su formación académica básicamente está formada por un fuerte componente de programación en diferentes lenguages, desarrollo y administración de Bases de Datos, conocimientos profundos de Sistemas Operativos como UNIX y Linux , Administración de redes y por supuesto un entendimiento de la problemática biológica. Originalmente la Bioinformática fué usada en la creación y mantenimiento de Bases de Datos para guardar de modo coherente la información biológica proveniente de la llamada Revolución Genómica que originó enormes volumenes de información biológica. Eventualmente su trabajo incorporaría el desarrollo de aplicaciones basadas en internet y el desarrollo de interfases para las databases, donde los biólogos pudieran  recuperar esta información de un modo simple con el uso de la Internet y tambié añadir nueva información .

La Biología Computacional es una disciplina más teórica y mucho más basada en el uso de Matemática y Estadisticas , y creo que entiende en grado mayor los escenarios y procesos biológicos. La Bioinformática es una disciplina mucho más práctica y su propósito es el desarrollo  de soluciones informáticas de diversas clases para biólogos. Ambas disciplinas son indispensables a este punto y hacen posible muchas cosas en la Biología moderna.


Mi error con el Ciclo de Krebs

March 23, 2010

Este posting es una historia muy personal sobre mi vida de estudiante de postgrado en Estados Unidos y ciertas ideas inusuales que manejé con respecto a la materia de Bioquímica . El metabolismo es una serie de reacciones químicas que ocurren en las células del cuerpo. El metabolismo transforma la energía potencial de configuración química que contienen los alimentos que ingerimos en energía química facilmente disponible que necesitamos para toda nuestra actividad física, movimiento , crecimiento y actividad nerviosa. El metabolismo es un proceso vital para todas las formas de vida y constituye un elemento fundamental de la definición de vida . Si se detuviese el metabolismo en un ser vivo, la muerte sobreviene inmediatamente. Un ejemplo de cómo funciona el proceso del metabolismo en los seres humanos que por cierto empieza con las plantas y su absorción de luz solar. En primer lugar, las plantas verdes obtienen energía a partir de la luz solar. Las plantas utilizan esa energía y una molécula denominada clorofila (que les proporciona su color verde característico) para fabricar azúcares mediante el agua y el dióxido de carbono. Este proceso se denomina fotosíntesis.Cuando las personas y los animales ingieren plantas (o, si son carnívoros, ingieren carne de animales que se alimentan de plantas), incorporan esa energía (en forma de azúcar), junto con otras sustancias químicas fundamentales para fabricar células. El siguiente paso consiste en descomponer el azúcar a fin de que la energía producida pueda ser distribuida a todas las células del cuerpo, las cuales la utilizarán como combustible.

La respiración celular, también conocida como metabolismo oxidativo es una de las vias fundamentales en que una celula obtiene energia disponible para realizar todas sus actividades. El ciclo de Krebs es una via metabólica que constituye buena parte de la respiración celular, es en otras palabras una serie de reacciones químicas que como consecuencia final genera energia metabolica, el llamado ATP  y Dioxido de Carbono /Agua como subproductos. El ciclo de Krebs (en ocasiones también referido como ciclo del ácido cítrico ) es una serie de reacciones químicas de gran importancia, que forman  parte de la respiración celular en todas las células aerobicas, es decir que utilizan oxígeno. En organismos aeróbicos el ciclo de Krebs es parte de la vía catabólica que realiza la oxidación de hidratos de carbono, ácidos grasos y aminoácidos para producir CO2 y agua, liberando energía en forma utilizable o sea ATP.

No es mi intención explicar o detallar en  modo alguno el ciclo de Kreb, en gran medida no creo ni estar en condiciones para semejante empresa a estas alturas. Entiendo el ciclo de Krebs de modo general pero no recuerdo lo suficiente como para detallar cada unos de los pasos, para presentar cada una de las ecuaciones tendría que retornar al libro, algo que realmente no me apetece a estas alturas.  Solo quiero presentarles una historia personal de mi epoca de estudiante de postgrado o “Graduate School”. Esta historia, es ahora para mi una anecdota divertida digna de contarse, en el momento que ocurrió creanme que de divertida no tuvo un pelo. Esta historia pertenece a las tantas circunstancias que los estudiantes enfrentamos cuando tenemos que priorizar y tomar riesgos debido a  enorme carga académica combinada con tiempo y energía limitadas. Siendo un estudiante de biología computacional no tomé tan en serio el curso de Bioquímica, asumí que un entendimiento básico y sólido de lo general del ciclo era lo suficiente para mi. Creí que era lo suficiente, entender y poder explicar cada paso del ciclo de Krebs pero que no era necesario memorizar cada ecuación bioquímica.  Que si detalles profundos eran necesarios entender en un futuro bastaría con volver a los libros y retomar el tema. Para mi desgracia , profesor Kaprov no compartía mis mismos criterios en torno al enfoque de la asignatura, el asumía con toda razón que los detalles eran tan fundamentales como un sólido entendimiento general. Profeso Kaprov, era mi profesor de Bioquímica, recién llegado de Israel, originalmente de Rusia con un ingles capaz de matar un caballo pequeño en unos pocos minutos. Es importante hacer notar que era un excelente profesor, inteligente en grado superlativo, generoso y con una rara cualidad entre mis profesores, mostraba rasgos elementales de humanidad. Todo esto me condujo a pensar  erroneamente que él pudiera de algún modo ser tolerante y aceptar mi inusual enfoque de la Bioquímica. Gravisimo error que pagaría a su debido momento!

La prueba final constituía en 30 temas, jamas olvidaré este detalle. Tenía que escojer uno de los temas con el uso de una especie de loteria. Yo decidí tomar el riesgo de no memorizar las ecuaciones del ciclo de Kreb, solo memorizé las ecuaciones básicas y era capaz de explicar lo que yo consideraba “la esencia, lo fundamental y definitorio” de este proceso. En definitiva las probabilidades eran bajisimas de que me tocara el Ciclo de Krebs como tópico a presentar y en adición podía cambiar el tópico una vez si no me gustaba. Para mi desgracia y asombro el  tópico que me tocó fué el ciclo de Krebs, yo rapidamente lo cambié para otro tema en el cual obtuve la mejor de las calificaciones. Victoria!!!  No tan simple, el profesor me dijo que tenia 48 horas para retornar y presentarle el Ciclo de Krebs en todas sus minucias y detalles so pena de darme una B en el curso aún cuando había obtenido una A por mi presentación del otro tópico, en su opinión todo el mundo que tomara el curso de Bioquímica debía ser capaz de reproducir el ciclo en todos sus mínimos detalles debido a su importancia. Le traté de presentar mi enfoque, en el cual uno debe entender lo general y fundamental y no memorizar las ecuaciones, su respuesta fué lapidaria y para mi asombro en un casi perfecto inglés, “si quieres saber lo general y fundamental de la Bioquímica cambie su carrera para filosofía o historia de la ciencia “. Lo demás es predecible, tuve que memorizar todas las ecuaciones del Ciclo de Krebs y nunca, nunca he podido olvidar este incidente pero si casi todas las ecuaciones del ciclo a esta altura de mi vida. Esto no significa que no entienda el ciclo, entiendo lo general y fundamental, y aún soy capaz de interpretar cada una de las ecuaciones del ciclo.

El nombre del profesor ha sido cambiado por razones obvias.


mea maxima culpa

February 18, 2010


Este es un pequeñisimo posting. Su razón proviene de una experiencia muy desagradable y nueva para mi. Lamento haberme envuelto en un debate que no me pertenece, lamento haber visitado al blog http://cnho.wordpress.com. Lamento haber descendido a discusiones irracionales y vicerales que no se corresponden de modo alguno a mis principios, intereses y naturaleza racional.  La culpa solo está en mi porque no fuí inteligente. Este es un sitio mantenido por 5 personas, que se autodescriben dedicados a combatir la religión, pseudociencia, creencia en DIOS y  supersticiones de diferentes clases. Fui provocado por un miembro de ellos en mi blog y fui lo suficientemente torpe de visitar este sitio e involucrarme en discusiones de la mas absurda y variada naturaleza. En uno de los artículos del blog personas que pensaban como yo estaban categorizadas de un modo jocoso como animales , yo fuí lo suficientemente torpe como para involucrarme en discusiones con el autor cuando la mas elemental inteligencia indicaba abandonar el sitio inmediatamente. Toda torpeza tiene su precio, yo todavía estoy pagando el mio, anoche recibí un correo que puedo describir como provocador o sumamente extraño no de un miembro del blog, pero si de uno de sus lectores mas fieles e incondicionales que recibió un mensaje mio por parte de uno de los autores del blog 4 semanas después que fué mandado!!!!!! . Nunca más he visitado este sitio ni pretendo visitarlo, ni molestar de modo alguno, esperaría lo mismo de estas personas con respecto a mi pequeño blog ,es importante hacer notar que no poseo evidencia a que este punto esten visitando mi blog o molestando de modo alguno de modo directo,  en definitiva corren un sitio muy exitoso con medio millon de hits hasta la fecha ,visitado por un inmenso nombre de personas religiosas y de otras clases de ideologías. Uno de sus autores es responsable por la provocación de anoche, no lo nombraré para no seguir escalando la situación. En definitiva es tiempo de poner a dormir esta ridicula situación.


Los iconoclastas y los íconos

January 13, 2010

Este posting es nuevamente en torno a una palabra inusual y a su origen. En realidad es solo un pretexto para escribir algo, les brindo una palabra “rara” , su historia y procedencia. El problema real es que no he  tenido el tiempo suficiente para terminar el posting en el que estoy trabajando sobre el escándalo del reactome array que por cierto ya ha adquirido matices de las más ridículas telenovelas mejicanas. Les presento la palabra iconoclasta, si ya sé, suena bien rara, pero más raro es su origen. En esta ocasión, no tengo recuerdo alguno de cuando leí o escuché por primera vez esta palabra, pero irónicamente si recuerdo al cantautor Silvio Rodriguez definirse en una ocasión como iconoclasta para mi asombro. Nada, cosas de la nueva trova, cosas de mis tiempos en la Habana. Tradicionalmente hemos asociado la palabra iconoclasta a la persona que piensa independientemente aún cuando esto presupone ir en contra del consenso de la multitud. De algún modo un iconoclasta se opone a todo lo establecido y aceptado por la sociedad, sea en forma de  ideologías o instituciones. Entre los rasgos que definen un iconoclasta deben estar presentes un alto nivel de excepticismo , pensamiento crítico e independiente, disidencia y radicalismo. Degraciadamente muchos de mis conocidos creen que la palabra iconoclasta es sinónimo de nihilista. Nada más ajeno a la verdad, el ser nihilista implica la certeza de que la vida no tiene significado, ni propósito o valor intrinseco de alguna clase. Es la peor palabra o estado existencial al que se puede llegar y lo digo por experiencia propia porque me he visto en tales sitios. El ser iconoclasta no tiene connotación negativa alguna, siempre y cuando el rechazo a lo establecido venga de la mano con la propuesta de alternativas viables que permita construir un mundo mejor. Desgraciadamente el rechazo, de por si solo no basta para mejorar las cosas. De vuelta al origen de la palabra, esta proviene de las luchas religiosas entre los diferentes patriarcados cristianos en Bizancio y en general,  el Imperio Romano de Oriente. El uso de imagenes en las iglesias en los primeros siglos del cristianismo fué un tema candente, muchos cristianos lo consideraban equivalente al pecado de idolatría y temían con razón que esta práctica desvirtuaba el espíritu original del cristianismo . Algunos de estos cristianos pasaron del rechazo pasivo a la acción y pronto muchas imagenes comenzaron a ser destruidas en los templos. Los cristianos que destruían imagenes en las iglesias fueron llamados iconoclastas.

Los primeros iconoclastas fueron los miembros de la Iglesia de Oriente en los siglos VIII y IX de nuestra era, quienes se opusieron vehementemente al uso y a la veneración de imágenes religiosas. En algunos casos, los cristianos ortodoxos llegaron a destruir los iconos de sus rivales católicos.La palabra iconoclasta proviene del bajo latín de esa época; era un cultismo formado por las palabras griegas eikon ‘íconoo icono’ y el verbo klaein ‘romper’, ‘destruir’
Sin embargo, los iconoclastas acabaron derrotados en la Iglesia de Oriente, cuando el Concilio de Nicea consagró el uso de imágenes, que las autoridades religiosas de esa época consideraron útiles para la instrucción de las grandes masas analfabetas.


El bizantinismo y Bizancio

January 10, 2010

 

En ocasiones he usado el término “discusión bizantina” , aún recuerdo la primera ocasión en que escuché la palabra bizantinismo, estaba en una Iglesia de visita y un sacerdote colombiano que dirigía un grupo de estudios bíblicos lo usó para terminar una apasionada discusión que parecía no acabar entre algunos miembros del grupo. Un amigo mio en uno de sus habituales correos electrónicos me ha preguntado de donde he sacado semejante palabra y que significado posee. Lo primero que salta a la vista de esta palabra es que está directamente relacionada al nombre de la antigua ciudad de Bizancio. Lo segundo que viene a nuestra mente, es que aparentemente no toda discusión en Bizancio era bizantina. Un elemento adicional a tomar en cuenta, es que en la Habana yo había presenciado una discusión bizantina y no precisamente entre bizantinos sino entre habaneros de pura cepa. Para aquella época a la que me refiero, en la Habana, no había internet , ni método rápido de obtener información, asi que no tuve mas opciones que cuando la sesión de estudio terminó que preguntarle al sacerdote por el significado de semejante término, el padre no estaba en su mejor momento, el solo me respondió que una discusión bizantina era la clase de discusión larga, inútil y que consume el tiempo sin resultado positivo alguno. El padre estaba en lo cierto, me dijo lo fundamental de una discusión bizantina. Es la clase de discusión que en buen cubano ” no se llega a nada” y que trás largas horas de argumentación emocional más que racional “seguimos en las mismas”. Mas tarde, este mismo sacerdote me explicaría que el término proviene de las arduas, interminables y en ocasiones violentas disputas religiosas en materia doctrinal que ocurrieron en Bizancio en los primeros siglos de la cristiandad. Entre estos temas estaban el sexo de los angeles , la naturaleza de Cristo , si los angeles eran hermafroditas, cuantos angeles poblaban los cielos , o sea toda una infinidad de preguntas sin respuestas segura. La pregunta que me vino a la mente es por qué en Bizancio y no en Roma? Por qué Bizantinismo y no Romanismo? Es qué en Roma eran más racionales y en Bizancio prevalecía la irracionalidad como estilo de vida?. Alguna razón fundamental e histórica debería existir,en definitiva ambas ciudades fueron protagonistas de la definición dogmática del cristianismo y una de ellas pasaría a la historia como bizantina y la otra de algún modo no sería reconocida por esta clase de argumentaciones incansables y absurdas. Esta pregunta me acompañaría sin respuesta por algún tiempo hasta que leí un libro sobre la historia de los primeros siglos de la Iglesia . La solución resultaría ser tan simple, para la época el patriarca de Roma constituía la última fuente de autoridad en materia doctrinal y de ese modo existía “una última palabra” para diferir cualquier discusión, existía una sola Iglesia con una suprema autoridad bien definida. Las cosas eran muy diferentes en Bizancio, no existía una autoridad central religiosa, cada obispo era equivalente en autoridad doctrinal a otro obispo, la Iglesia se dividió en patriarcados que se disputaban la primacía, estos patriarcas en ocasiones diferían en materias doctrinales, lo que propició todo un clima de discusiones irracionales, interminables y esteriles. Así de simple, al no tener los bizantinos una autoridad central en materia doctrinal esto los llevaría a siglos de inútiles y en ocasiones ridículas discusiones. Este posting originalmente fué un correo electrónico de unos meses atrás, respuesta a mi amigo, pero decidí publicarlo en mi blog. Por supuesto algunos cambios formales fueron introducidos al contenido del correo para su publicación pero el contenido esencialmente es el mismo. Parece que Bizancio era tierra fértil para crear palabras inusuales, hay otras en mi arsenal que nunca uso en mis conversaciones habituales que eventualmente presentaré.


El mea culpa del gobierno de Inglaterra

December 19, 2009

Algunos conocen que Alan Turing es uno de los padres de la criptografía moderna. Normalmente su nombre aparece asociado de modo único a esta área del conocimiento humano, en realidad su genio fué mucho más versátil y su genialidad trasciende esa área específica del conocimiento humano. Durante los años de la segunda guerra mundial fué el único hombre capaz de descifrar los códigos de la máquina enigma, eso habla mucho de él dado que los nazis consideraban esta máquina y los códigos que generaban casi indecifrables. Innumerables vidas aliadas fueron salvadas como consecuencia del trabajo de Turing. Es por esta razón que Turing es uno de los pocos científicos que es parte de la cultura popular, aparece en un sinnúmero de películas y libros, comúnmente representado como un genio impredecible, afectado en sus maneras, de naturaleza mercurial y en general reducido al común estereotipo reservado a los científicos. Alan Turing es  junto a Juan Von Newman considerado con razón uno de los padres de la informática moderna. Yo personalmente lo recuerdo por su algoritmo de la máquina universal de Turin. Es asombroso de que fuera quizás uno de los primeros sino el primer hombre en prever que en unos años la biología sería computacional y no más una ciencia descriptiva, algunos van más lejos considerandolo uno de los padres de la biología computacional. Lo que  yo desconocía es que Alan Turing era homosexual, lo cual de por si no es “big deal” para mí, pero aparentemente si constituia gran problema para otros en posiciones prominentes en la Inglaterra de los años 50 del siglo pasado. En Inglaterra existían severas leyes contra la homosexualidad , pero también en otros países existían leyes similares y normalmente estas leyes casi nunca eran enforzadas. Por razones que escapan a mi entendimiento, un héroe como Alan Turing, porque Turing sin lugar a duda tiene la rara dualidad genio-héroe fue procesado por homosexual, enfrentando unas leyes sin lugar a dudas medievales. En un giro asombroso y macabro de eventos un héroe como Alan Turing fue castrado químicamente para disminuir sus “insaciables deseos sexuales”, en mi opinión algo mostruoso y que le condujo al suicidio años después. Verguenza sobre los que tomaron esta infame decisión, creo que la genialidad de por si sola no debe proveerte un tratamiento especial, pero Turin no era solo un genio homosexual ,era un héroe reconocido que mereció un tratamiento más digno. Este año, Gordon Brown, primer ministro del Reino Unido, en un comunicado declaró sus disculpas en nombre del gobierno por el tratamiento que  Alan Turing recibió como consecuencia de su homosexualidad .  En mi opinión, muy tarde y muy conveniente esta disculpa. En muchas ocasiones me pregunto la razón por la cual no fué castrado químicamente cuando trabajaba descifrando códigos nazis . Como bien dicen los americanos “timing is everything”.

“Aunque Turing fue condenado según las leyes vigentes en la época y no podemos hacer retroceder el reloj, el tratamiento que recibió fue por supuesto absolutamente injusto. Alan y los otros miles de homosexuales que fueron condenados, lo fueron bajo leyes homofóbicas y fueron tratados de manera terrible.En nombre del gobierno británico y en el de todos los que vivimos en libertad gracias al trabajo de Alan, me siento orgulloso de decir: Lo sentimos,  merecías algo mucho mejor.”
Gordon Brown, Primer ministro del Reino Unido
10 de septiembre del 2009


Directorio CGI-bin

December 17, 2009

No pude ser lo suficientemente explicito, traté de ser simple en mi posting referente a CGI, sabía desde el principio mismo que me enfrentaba a un grupo de lectores con bajo nivel de conocimiento informático pero si extremadamente inteligentes e inquisitivos, la clase de lectores que siempre retornan con otra pregunta.No, no, los scripts de CGI no corren como aplicaciones independientes en cualquier directorio como cualquier otra clase de aplicación. No se pueden  “poner” en cualquier directorio, no eso no es posible o al menos recomendable. Recuerden que estos scripts de CGI guardan una estrecha relación con el servidor web y otras aplicaciones.Es importante hacer notar que como CGI recursos  hay archivos tipo script y también archivos compilados.Supongamos que usamos un sistemas de bases de datos como Microsoft SQL Server y un servidor de web como Microsoft IIS. Supongamos nuevamente que tenemos un script que extrae información de la base de dato , crea “on the fly” una página dinámica de html con la data  y que el servidor de web la entregue a la aplicación cliente ( básicamente un navegador de internet tal como Firefox). Como expliqué anteriormente la duda que he recibido es muy simple y consiste en qué sitio debemos poner el script para que realize su función apropiadamente, bueno el script debe ser puesto en un subdirectorio  del servidor web llamado CGI-bin,  la parte bin del nombre de este directorio alude al  hecho de que los scripts o programas van a ser ejecutados o invocados en este directorio. Es muy importante entender que este directorio va a poseer permisos especiales otorgados por el administrador del servidor que permite que los programas se ejecuten y realizen su función. Manteniendo los programas en este directorio específico CGI-bin en vez de permitir que puedan estar en múltiples sitios mantiene la seguridad del servidor, en definitiva estamos hablando de programas ejecutandose y realizando múltiples funciones. Esto es asi, hasta donde conozco personalmente con mi limitada experiencia pero no descarto que estos programas puedan ser puesto en otros sitios, y hacer referencias a ellos desde un archivo en el subdirectorio CGI-bin, uso de wrapping,  o cualquier otra clase de ardid informático que yo ignore. Por ahora solo les puedo exponer que el enfoque “clásico” es poner los archivos ejecutables de CGI en el subdirectorio CGI-bin, quizás en algunos comentarios  aparezcan soluciones muchos más sofisticadas e ingeniosas, unos cuantos de mis lectores son verdaderos expertos en informática. Para mi, la informática es un medio para alcanzar un propósito, básicamente una herramienta más en mi arsenal,  no una meta en si. Pero se muy bien, que algunos de estos lectores pueden proveer explicaciones y alternativas muy ingeniosas , asi que sigan los comentarios, si hay alguno a este posting.


Una simple definición de CGI

December 15, 2009

Este posting es dedicado a los muchos que me han preguntado en sus correos que es CGI, se muy bien que muchos de mis lectores no son entendidos en conceptos de informática, creo que merecen alguna explicación básica, trataré de introducir del modo más simple el concepto, ya veremos si con esto basta. CGI es un importante componente tecnológico de la internet ,fundamentalmente de la experiencia asociada al World Wide Web que permite a una aplicación cliente (navegadores de internet tales como Firefox o IE) solicitar datos de un programa ejecutado en un servidor web (Web Sever tal como Apache o IIS). Un programa CGI, que generalmente adopta la forma de script, básicamente son programas que se ejecutan en el lado del web server y pueden proporcionar acceso a una serie de servicios y aplicaciones del lado del server. Entre estos servicios y aplicaciones podemos citar base de datos, utilidades de búsqueda, etc. Estos scripts son generalmentes escritos en lenguajes como como PERL y C++. En pocas palabras CGI consiste en programas que “corren” en el lado del web server y proveen al usuario con páginas dinámicas o sea el html es generado de manera dinámica como resultado de la ejecución de estos programas.En un script CGI, el servidor web pasa las solicitudes del cliente a un programa externo tal como una base de datos. El “output” de dicho programa genera una página html “on the fly” o sea de modo dinámico que es enviada al cliente en lugar de la página estática tradicional.
A continuación les presento un simple ejemplo de CGI script escrito en PERL que crea una página html, que nos muestra en el browser la expresión “Hola mundo”, el html de esta página ha sido creado de modo dinámico en el servidor.

#!/usr/local/bin/perl

print (“Content-type: text/html\n\n”);
print (“<HTML>”);
print (“<HEAD>”);
print (“<TITLE>”);
print (“Hola mundo”);
print (“</TITLE>”);
print (“</HEAD>”);
print (“<BODY>”);
print (“<H2>Hola mundo</H2>”);
print (“</BODY>”);
print (“</HTML>”);

 Fuentes usadas: La Enciclopedia libre Wikipedia


CGI scripts y el nuevo enfoque de mi blog

December 13, 2009

Originalmente mi blog tenia un propósito mucho más definido y limitado que en estos últimos meses:  la presentación de materiales bioinformáticos y biológicos computacionales pero con el paso del tiempo este propósito original ha sido alterado, no sé si para bien del blog o no. En sus primeras semanas de existencia  algunos amigos, de buena fe, calificaron mi blog de autoblog, en el sentido que solo yo sentiría interés en leerlo y de algún modo estaban en lo cierto.En definitiva quien quiere leer solo sobre biología computacional? Imaginen mi frustación. Este dilema originó una crisis en torno al contenido del blog, en definitiva uno hace un blog con la intención de que otros al menos lean tus postings y solo una opción viable vino a mi mente. Comenzé de modo deliberado a “salpicar” mi blog con algunos que otros temas variados y en mi opinión interesantes. Aparentemente esta “solución” trabajó, me he sentido feliz con los resultados en términos de tráfico e interacción pero lo lamentable es que el propósito original de mi blog de algún modo se ha perdido.  He comenzado a incluir postings de temas disímiles, en ocasiones que introducen conceptos variados y he asumido que son entendibles por una mayoría de mis lectores. Quizás lo mejor para mi blog consiste en esta solución de compromiso, incluir contenido variado no científico y también artículos científicos. Una consecuencia de esta nueva política en torno a contenido, es la inmensa cantidad de preguntas que estoy recibiendo vía correo electrónico, no me molesta para nada, me hace sentir que puedo ayudar. La inmensa mayoría las respondo con un reply, de modo privado, pero hay otras preguntas que creo que su respuestas ameritan un posting. Les diré que he respondido alrededor de 50 correos en torno al ADN mitocondrial , nuclear y de los cloroplastos, todos estos correos provenian de estudiantes angustiados y el hecho de poderlos ayudar en sus retos académicos me ha suministrado la mayor de las satisfacciones. Yo me ví en situaciones similares por culpa de profesores pomposos y pretenciosos ayudados por libros innecesariamente crípticos. Una estudiante entendió plenamente la esencia del método heurítico en mi blog, no lo había logrado pese a muchas lecturas académicas y el concurso de un inepto Profesor, inclusive lo nombró, me lo hizo saber y sentí que ese posting en particular había cumplido un propósito, me sentí bien, no pude evitarlo. El posting exponía conceptos simples de un modo aún más simple y soportado por ejemplos de la vida real. Yo también, en ocasiones, fui victimizado en la universidad y obtuve mi epifanía en la internet.

En un artículo anterior hice referencia a que el lenguaje de programación PERL es usado ampliamente para crear CGI scripts para aplicaciones web. Muchos de mis lectores proveniendo de diversos backgrounds quieren saber en palabras simples y planas que es un CGI script. Desde muy temprano he sabido lo difícil que es explicar términos técnicos de modo efectivo y en pocas palabras a personas que no poseen un bagaje técnico. Esta meta constituye un verdadero reto para mí, algunos de mis lectores se mueven en la interfase con la tecnología, ya veremos que puedo hacer. Trataré de presentar de modo simple, facil de entender y correcto en que consiste un CGI script. Estoy trabajando en esto desde la madrugada, por lo pronto les digo que CGI script es la clase de script que permite interactividad en las páginas web. Las páginas web regulares que sirven un servidor de web a un browser son de naturaleza estática, los scripts de CGI le añaden el elemento dinámico e interactivo al cual los usuarios de la internet estamos tan habituados. Por lo pronto solo es necesario entender que los servidores web pueden proveernos con 2 clase de páginas : estáticas y dinámicas-interactivas y que los CGI scripts pueden ser programados en otros lenguajes de programación, no solo en PERL. Este es un reto dificil para mi, para ser honesto nunca he escrito un CGI script en PERL ni en C++ , pero si he usado otras herramientas para crear aplicaciones webs. Pretendo que la explicación sea pequeña, genérica y transmita la idea de una forma no técnica y comprensible, solo quiero transmitir una idea general, también mostraré alguna que otra pieza de codigo que encontré en un libro. El posting sobre Bioperl si ha resultado un behemot , algo bien difícil de desarrollar y exponer, por lo pronto está casi terminado pero no me siento muy satisfecho con él.


CPAN modulos, PPM y PERL

December 10, 2009

Todos sabemos; los que un punto u otro hemos escrito un programa, desde el más trivial hasta el más complejo de ellos,desde los más experimentados programadores hasta los menos, que no hay punto en “reinventing the wheel” cuando podemos usar un código ya bien desarrollado por otros. Esta máxima aplica a cualquier lenguaje de programación y de alguna manera es un principio metodológico en el área de desarrollo de software. PERL no escapa a esta máxima, existen repositorios que contienen codigos muy bien probados y reusables tales como CPAN. CPAN no es más que el “Comprehensive Perl Archive Network”, básicamente constituye un repositorio de miles, casi 20000 modulos escritos en PERL y su documentación asociada. Puede ser accedido en http://www.cpan.org y en sus cientos de “server mirrors”. No importa lo que se esté haciendo en PERL siempre es una buena idea “to check” primero CPAN, quizás alguien ya escribió algún codigo que resuelva tu problema, quizás no y entonces a escribir. Pero no todo  es tan simple, hay una serie de limitantes con los modulos de CPAN, siendo la primera que estos modulos han de ser bajados, instalados, no siempre con los mejores resultados, en ocasiones la documentación deja mucho que desear  y otro problema es que la mayoria de estos modulos han sido desarrollados y compilados para la plataforma UNIX. Para Windows , se están desarrollando cada vez más modulos para integrar en programas de PERL, si está usando ActiveState, PPM es una herramienta específica en Windows para acceder, obtener e installar los modulos de CPAN. También para MacPerl hay modulos y herramientas para descargarlos e instalarlos, personalmente nunca los he usado o visto esta herramienta, pero se que existen. Siempre he usado ActiveState, para la plataforma windows, no puedo decir que mi experiencia en PERL es extraordinaria, ha sido limitada a tareas académicas pero mi experiencia con los modulos no la puedo describir como algo satisfactoria. Algunos de estos modulos tenían que ser compilados, otros simplemente no trabajaban, en otros la documentacion era críptica como un jeroglífico egipcio, pero algunos si trabajaron a la perfección y ese es un buen momento a recordar. En mi próximo posting introduciré Bioperl que no es más que un repositorio de modulos escritos en PERL, modulos de naturaleza bioinformática que han jugado un papel vital en el desarrollo de software bioinformáticos de toda clase. Básicamente Bioperl provee un grupo de clases bioinformáticas que constituye un magnífico “framework” para realizar biología computacional. En una nota menos técnica y algo más personal, aún recuerdo , cuando en “Graduate School”, se me fue asignado la tarea de introducir Bioperl a un grupo de experimentados programadores en PERL, conocía algo de Bioperl pero muchisimo menos de PERL, para ser exacto digamos que casi nada conocía, tuve que introducir los modulos de Bioperl casi sin ningun conocimiento de PERL, definitivamente un recuerdo nada grato. Dos libros, unos cuantos dias y la mejor intención para evitar un ridículo, no bastaron para prepararme para el seminario. A cambio sobreviví para contarlo. En el próximo posting introduciré detalladamente a Bioperl.


Follow

Get every new post delivered to your Inbox.