9 de noviembre de 2010

Semana de la Ciencia 2010

Ayer comenzó la Semana de la Ciencia 2010, el mayor evento de comunicación social de la ciencia y la tecnología que se celebra en España, organizada por el Ministerio de Ciencia e Innovación.

Museos, Universidades, centros de investigación, parques tecnológicos o empresas organizan exposiciones, cursos, visitas, talleres, mesas redondas, excursiones o conferencias, acercando al público en general su quehacer diario, tanto sus aspectos más llamativos como los más desconocidos.

En concreto, la Agencia Estatal Consejo Superior de Investigaciones Científicas (CSIC) a la que pertenece nuestro centro de investigación, la Estación Experimental de Aula Dei (EEAD), organiza diversas actividades de divulgación en todo el país durante esta semana que se pueden consultar en su página web: http://www.semanadelaciencia.csic.es/

En concreto, en Aragón, una de las actividades más importantes se realiza en la Delegación del CSIC en Aragón del 2 al 10 de Noviembre.  Participan la Estación Experimental de Aula Dei, Instituto Pirenaico de Ecología, Instituto de Carboquímica, Instituto de Ciencias de Materiales de Aragón, y el Laboratorio de Investigación en Tecnologías de la Combustión. Cada participante dispone de un Stand con capacidad suficiente para preparación de experimentos atractivos, talleres didácticos, exposición de productos vistosos y utilización de demostradores para explicar conceptos de ciencia en los que se basan sus líneas de investigación.

8 de noviembre de 2010

Buscar un elemento en un array de perl

En Perl no tenemos la útil función "in_array()" que posee PHP, por lo cual cuando queremos saber si un array contiene un determinado elemento tenemos que escribir un poquito más de código.

Aunque buscando en google "perl array search element" obtenemos muchas soluciones a este problema, aquí presentaré 2 muy sencillas.

Para saber únicamente si un elemento está o no está en el array:

 # Search an element inside an array and return 1 or 0 if the element is present or not, example: in_array(\@my_array, $element);  
 sub in_array {  
      my ($array,$search_for) = @_;  
      my %items = map {$_ => 1} @$array; # create a hash out of the array values  
      my $exist = (exists($items{$search_for}))?1:0;  
      return $exist;
 }  

Si queremos además poder buscar expresiones regulares en todo el array y
conocer la o las posiciones de los resultados:

 # Search a regular expression inside an array and retrieve the positions of the hits, example: in_array(\@my_array, "/$expression/");  
 sub in_array {  
      my ($array,$search_for) = @_;  
      my @pos;  
      if ($search_for =~ /^\/.+\/$/){  
           $search_for =~ s/^\/|\/$//g;  
           @pos = grep { $_ =~ /$search_for/ } @{$array};  
      } else {  
           @pos = grep { $_ eq $search_for } @{$array};  
      }  
      (scalar @pos)?return (1,\@pos):return (0);  
 }  

Otra opción sería usar el módulo Tie::IxHash que permite crear hashes manteniendo el orden de los elementos y buscar los índices de los mismos:

 # Search a regular expression inside an array and retrieve the positions of the hits, example: in_array(\@my_array, "/$expression/");  
 sub in_array {  
      my ($array,$search_for) = @_;  
      my @pos;  
      if ($search_for =~ /^\/.+\/$/){  
           $search_for =~ s/^\/|\/$//g;  
           @pos = grep { $_ =~ /$search_for/ } @{$array};  
      } else {  
           @pos = grep { $_ eq $search_for } @{$array};  
      }  
      (scalar @pos)?return (1,\@pos):return (0);  
 }  

2 de noviembre de 2010

Formación en Bioinformática en Europa


 
La semana pasada estuvimos en las X Jornadas de Bioinformática, que desde hace ya un par de ediciones aglutinan a la mayoría de grupos de España y Portugal que se dedican a esto. Además de un montón de presentaciones científicas y paneles de pósters,tuvimos una sesión dedicada a discutir opciones de formación en Bioinformática. De entre todo lo que se dijo me gustaría destacar un calendario, mantenido por Pedro Fernandes, del Gulbenkian Training Program in Bioinformatics, donde se irán publicando las eventos de formación que se organicen en Europa. El enlace al calendario es: http://sites.google.com/site/bioinftraining/calendarofevents

Un saludo,
Bruno

22 de octubre de 2010

Alineamiento de perfiles con HHalign

Hola,
hoy discutiré un problema habitual cuando trabajamos con familias de proteínas, el de alinear entre si dos grupos de secuencias previamente alineadas (MSAs=multiple sequence alignments) , como se ilustra en el esquema siguiente:


Dadas las secuencias del grupo 1, que hemos alineado entre si con ayuda de programas como muscle, clustal o MAFFT, y las secuencias del grupo 2, que hemos procesado de manera similar, ahora queremos ver cómo se alinean todas juntas, por ejemplo para inferir diferentes funciones o estructuras.

En el caso trivial sería tan sencillo como poner todas las secuencias en el mismo archivo y hacer un alineamiento múltiple de una vez. Sin embargo, el caso que discutimos aquí es más complicado, el que se da cuando no es sencillo alinear una secuencia del grupo 1 con otra del 2, porque han divergido bastante. Entonces podemos probar a convertir el alineamiento MSA1 a un perfil y a alinearlo contra el perfil correspondiente a MSA2, como si fuera un alineamiento pareado. Podemos incorporar, además de la información evolutiva capturada en cada perfil, información de estructura secundaria para ayudar a guiar el alineamiento.

Todo esto es sencillo de realizar con el paquete de programas HHsearch, que podemos descargar de ftp://toolkit.lmb.uni-muenchen.de/HHsearch.

Los pasos a seguir son 3:

1) Obtener archivos FASTA de MSA1.faa (30 secuencias) y MSA2.faa (35 secuencias). Para mayor precisión en el alineamiento es recomendable añadir en ambos archivos una predicción de estructura secundaria, en el formato de PSIPRED. Por ejemplo, el contenido de MSA1.faa comenzaría con las siguientes líneas:
>aa_pred
MVVSIGVFDGVHI--GHQKVL...
>ss_pred
CEEEEECCCCEEH--HHHHHH...
>ss_conf
8888617775007--889999...
>seq1 (y todas las 29 siguintes a continuación)
MVVSIGVFDGVHI--GHQKVL...
2) Convertir MSA1.faa y MSA2.faa en perfiles de Markov (MSA1.hhm y MSA2.hhm), con el ejecutable hhmake:

$ ~/soft/HHsearch/hhmake -i MSA1.faa -seq 30
$ ~/soft/HHsearch/hhmake -i MSA2.faa -seq 35


3) Alinear MSA1 contra MSA2, ya sea de manera global o local:

$ ~/soft/HHsearch/hhalign -i MSA1.hhm -t MSA2.hhm -glob -seq 65 -ofas globalMSA.faa

La salida obtenida es algo como:
REMARK: in -mac -global mode -mact is forced to 0
Query file is in HHM format
Read in HMM seq1 with 467 match states and effective number of sequences = 3.1
Query file is in HHM format
Read in HMM seq31 with 576 match states and effective number of sequences = 1.8
Using maximum accuracy (MAC) alignment algorithm ...
Printing alignments in FASTA format to globalMSA.faa 
Aligned seq1 with seq31: Score = 218.04   P-value = 1     
Done
Un ejemplo de aplicación real de esta técnica de alineamiento lo tenéis en el artículo http://www.biomedcentral.com/1471-2148/10/311 .

15 de octubre de 2010

Cómo crear un blog de laboratorio

Hoy en día todo laboratorio que se precie tiene que tener una presencia mínima en internet. Eso supone tener una página web donde se puedan consultar los datos de contacto, líneas de investigación, proyectos, publicaciones, ofertas de trabajo, etc. referentes al laboratorio. Toda esta información será una buena carta de presentación para otros investigadores que busquen colaboraciones, estudiantes y doctores que quieran entrar en el laboratorio, y toda aquella gente que esté interesada en los temas que se investigan en el laboratorio. Por ejemplo, ésta es nuestra web: http://www.eead.csic.es/compbio/

 La información de una página web de laboratorio es más o menos estática, esto es, no cambian sus contenidos frecuentemente, normalmente sólo se actualiza 2 o 3 veces al año. Sin embargo la actual tendencia de Web 2.0 hace que la gente busque en internet información cada vez más actualizada, dinámica y cambiante. Por ello un Blog de Laboratorio puede servirnos para ampliar la información de nuestra página web de una forma más flexible, personal y frecuente. A continuación se darán unas pautas y consejos para ayudar a cualquier investigador que quiera crear su propio blog o un blog para su laboratorio.

¿Por qué crear un Blog?
Un blog nos permitirá publicar de forma rápida y sencilla contenidos en internet. De esta forma mejorará la visibilidad de nuestras investigaciones en Google. Además, el vocabulario que se suele usar en los blogs es más directo y sencillo, con lo cual se amplía también el rango de gente a la que le pueda interesar lo que publiquemos.

¿Cómo y dónde crear un Blog?
Actualmente existen dos grandes plataformas gratuitas para crear un blog en internet: Blogger y Wordpress. Las dos son muy buenas opciones, y decidirse por una u otra a veces es cuestión de gustos, este artículo os puede ayudar a decidir: http://entretecnologia.blogspot.com/2010/04/blogger-y-wordpress-como-elegir.html En mi humilde opinión, Blogger es más sencillo y Wordpress es más completo y personalizable, así que para un laboratorio puede servirnos muy bien la primera opción.
 
¿Qué escribir en el Blog?
No tiene sentido crear un Blog para el laboratorio y escribir en él cosas de política, así que mi recomendación es que sea un blog con temática cercana a la de las investigaciones del laboratorio. No por ello han de ser contenidos técnicos y complicados, si no no los leería nadie. Y tampoco hay que ser muy estrictos en respetar siempre la temática del blog y de vez en cuando se puede uno permitirse el lujo de hablar de algo diferente, como por ejemplo este post. Un buen consejo es escribir párrafos cortos y poner de vez en cuando alguna imagen.

¿Cada cuánto debo escribir en el Blog?
No hay ninguna obligación de escribir todos los días en el blog, pero sí que sería conveniente publicar algo todas las semanas, o al menos un artículo todos los meses. Cuanto más cosas escribamos y más interesantes sean, más gente nos leerá y conseguiremos nuestro objetivo de informar y dar a conocer nuestro laboratorio.

¿Y si leo este artículo y creo un Blog?
Si es así publica un comentario en este post con el título, temática y dirección de tu Blog de Laboratorio, así empezarás a darlo a conocer...


Espero que algún investigador se anime después de leer esto, y empiecen los comentarios :D