28 de julio de 2017

Tabla de estabilidad de sustituciones de aminoácidos

Hola,
a menudo nos preguntamos qué efecto puede tener un cambio de aminoácido sobre la estabilidad de una proteína. Una pregunta relacionada es si tendrá fenotipo una sustitución no sinónima (missense). De hecho hay toda una colección de herramientas que se han desarrollado para esto (ver por ejemplo el curso de bioinformática estructural). El trabajo reciente de Rocklin et al (2017), donde estudian la estabilidad de miles de miniproteínas (hasta 50aa) sintéticas y unas 500 naturales del PDB, nos proporciona la mejor respuesta hasta la fecha. Aunque es un artículo complejo, en esencia lo que hacen es medir la estabilidad de miles de proteínas expresándolas y exponiéndolas a proteasas en levadura.
De esa manera pueden estimar el efecto que tienen mutaciones individuales dependiendo de su contexto de estructura secundaria, ya sea una alfa-hélice, una lámina beta o un lazo o loop:
Efecto sobre la estabilidad de mutaciones en diferentes contextos estructurales. Los valores negativos, como los de la prolina en general, son desestabilizadores. Adaptada de http://science.sciencemag.org/content/357/6347/168.full.

En la siguiente figura se muestran ejemplos de mutaciones desestabilizadoras en amarillo:

Adaptada de http://science.sciencemag.org/content/357/6347/168.full.

Hasta pronto,
Bruno

4 de julio de 2017

rooting and laddering Newick trees

Buenas,
esta entrada es para compartir un script Perl para enraizar árboles, muchos árboles, de manera automática, y ordenar los nodos por distancia. Pongo el título en inglés para los buscadores.
Rubén Sancho y yo estamos probando el software GRAMPA, que requiere una colección de árboles de genes precalculados en formato Newick, pero además los quiere enraizados y ordenados de manera ascendente. Como son más de mil árboles no lo queríamos hacer uno a uno con FigTree, por poner un ejemplo; queríamos automatizarlo y para ello aprovechamos los módulos Bio::TreeIO y Bio::Phylo. El primero es de Bioperl y ya lo tenía instalado, el segundo lo instalé con: $ sudo cpanm Bio::Phylo

El árbol de ejemplo, contenido en el fichero unrooted.ph, es:

(1_Sbic:0.047,2_Osat:0.068,(((((((((((3_B422:0.007,(((4_Barb:0.000,((5_Bret:0.003,(6_BsyE:0.000,7_BsyE:0.000):0.000):0.000,8_BsyC:0.000):0.000):0.000,9_Bpho:0.002):0.000,(10_BsyC:0.000,11_BsyC:0.000):0.001):0.000):0.008,((12_B422:0.005,13_Bpho:0.005):0.002,14_Barb:0.000):0.005):0.000,((((15_Bdis:0.000,16_Bdis:0.000):0.000,17_Bmex:0.033):0.013,18_Bhyb:0.001):0.014,(19_Bboi:0.021,((20_Bmex:0.017,21_Bsta:0.034):0.012,22_Bsta:0.000):0.003):0.020):0.012):0.002,23_Barb:0.000):0.000,24_Brup:0.012):0.000,25_BsyG:0.000):0.000,(26_Bpin:0.000,27_BsyG:0.000):0.000):0.011,28_Bsta:0.000):0.053,29_BsyG:0.000):0.036,(30_Barb:0.005,(31_Bpho:0.024,(32_BsyC:0.000,33_BsyE:0.000):0.027):0.029):0.000):0.005,34_Bboi:0.030):0.035);

Invocando el script lo enraizamos con el taxón elegido, el outgroup '_Sbic':

$ perl reroot_tree.pl unrooted.ph > rooted.ph

Obtenemos el fichero rooted.ph, que podemos visualizar con FigTree:

Árbol enraizado y con orden creciente de nodos.
Éste es el código de reroot_tree.pl :

 #!/usr/bin/perl -w  
   
 # Re-roots an input Newick tree with a user-defined outgroup and   
 # prints the resulting tree in ascending or descending node order.  
 # Based on https://github.com/phac-nml/snvphyl-tools/blob/master/rearrange_snv_matrix.pl  
   
 use strict;  
 use Bio::TreeIO;  
 use Bio::Phylo::IO;  
 use Bio::Phylo::Forest::Tree;  
    
 my $OUTGROUPSTRING = '_Sbic'; # change as needed  
 my $NODEORDER = 1; # 1:increasing, 0:decreasing  
 my ($outfound,$outnode,$sorted_newick) = (0);  
   
 die "# usage: $0 <tree.newick>\n" if(!$ARGV[0]);  
   
 # read input tree  
 my $input = new Bio::TreeIO(-file=>$ARGV[0],-format=>'newick');  
 my $intree = $input->next_tree();  
   
 # find outgroup taxon  
 for my $node ( $intree->get_nodes() ) {   
  if(defined($node->id()) && $node->id() =~ m/$OUTGROUPSTRING/) {  
   $outnode = $node;   
   $outfound = 1;  
   last;  
  }  
 }  
 if($outfound == 0) {  
  die "# cannot find outgroup $OUTGROUPSTRING in input tree $ARGV[0]\n";  
 }  
   
 # root in outgroup and sort in increasing order  
 $intree->reroot_at_midpoint($outnode);  
   
 # sort nodes in defined order and print  
 my $unsorted_tree = Bio::Phylo::IO->parse(  
  '-string' => $intree->as_text('newick'),  
  '-format' => 'newick'  
 )->first();  
   
 $unsorted_tree->ladderize($NODEORDER);  
   
 $sorted_newick = $unsorted_tree->to_newick();  
 $sorted_newick =~ s/'//g;  
   
 print $sorted_newick;  


Un saludo,
Bruno

21 de junio de 2017

Leyendo FASTQ con CPAN

Buenas,
hace un par de años describía en otra entrada cómo leer de manera eficiente ficheros FASTQ con ayuda de kseq.h. Para ello definí una clase C++ que llamábamos desde Perl5 con Inline::CPP. La entrada de hoy es para contar que se puede hacer lo mismo instalando el módulo Bio::DB::HTS::Kseq desde CPAN, previa instalación en tu sistema de la librería htslib:

$ git clone https://github.com/samtools/htslib.git
$ cd htslib
$ make 
$ sudo make install
$ cd ..
$ sudo cpanm Bio::DB::HTS::Kseq

Ahora podemos escribir código como éste para probarlo:

use strict;
use Bio::DB::HTS::Kseq;

my ($length,$header,$sequence,$quality);

my $kseq = Bio::DB::HTS::Kseq->new("sample18MB.fq.gz");
my $iter = $kseq->iterator();
while(my $r = $iter->next_seq()) {

  ($header,$sequence,$quality) = ($r->name,$r->seq,$r->qual);
  print ">$header\n$sequence\n$quality\n";
}

En mis pruebas con un fichero FASTQ comprimido de 18MB, este código es un 20% más lento que la versión Inline::CPP,
hasta luego,
Bruno

16 de junio de 2017

Actualización de Perl en bioinformática

Buenas,
solamente quería comentar que el ya vetusto curso de Perl en bioinformático ha cambiado un poco de cara y ha sido revisado para traerlo al 2017, con algunas referencias a Perl6 y nuevos one-liners, que es lo que usaremos de este material en el máster de biotecnología cuantitativa de la Universidad de Zaragoza a partir del curso que viene.

Lo podéis encontrar en: https://eead-csic-compbio.github.io/perl_bioinformatica

Portada de un libro de one-liners, tomada de http://www.catonmat.net/blog/perl-one-liners-explained-part-one

Buen finde,
Bruno

11 de mayo de 2017

Jornada de agrigenómica 2017

Hola,
hoy he estado por la mañana en la 1ª jornada de agrigenómica organizada por QUAES en la UPV, en Valencia. Los 6 ponentes que hemos participado hemos hablado sobre las distintas aplicaciones de las tecnologías genómicas y de secuenciación en la mejora de cultivos. Éstas son mis notas.

Iraida Amaya nos habló de sus proyectos en torno a la mejora de caracteres en la fresa, usando marcadores SNP obtenidos con chips y por genotipado por secuenciación que clasifican por subgenoma. Estos proyectos tienen, además de genómica, metabolómica para el seguimiento de los 20 compuestos volátiles más importantes para el aroma de la fresa. Como hitos destaca la obtención de dos marcadores PCR para genotipar con un 91% de precisión fresas con aroma aceptable, así como su trabajo en curso para caracterizar por agroinfiltración FvMYB10 como regulador del color rojo de la fresa, y del color blanco de sus mutantes, que portan un cambio de marco de lectura. Para ello usaron la metodología QTLseq propuesta por Takagi, 2013.

Guillermo Marco, bioinformático de Sistemas Genómicos, nos dió un curso abreviado sobre diseño y análisis de experimentos de RNAseq, apoyándose en la revisión de Conesa, 2016. Como en un trabajo reciente nuestro (Cantalapiedra, 2017),  recomienda siempre validar las muestras por PCA para descartar réplicas y probar diferentes tuberías de análisis y estrategias de ensamblaje para elegir la más adecuada en cada caso. Su mensaje general es que el diseño del experimento RNAseq determina su éxito.

Patricia Pascual, directora de I+D de Agrícola El Bosque SL, nos presentó el diseño de su incipiente programa de mejora en mora y lo justificó como estrategia empresarial.

David Calvache, del INIA, nos habló sobre el uso de marcadores moleculares en los exámenes técnicos de nuevas variedades desde el punto de vista de la propiedad intelectual (título de obtención) y las licencias de producción y comercialización (registro de variedades). El exámen técnico permite comprobar la distinción, homogeneidad y estabilidad de una variedad candidata. Discute el uso de marcadores molecular para determinar caracteres y la idea de distancia mínima respecto a variedades existentes. Esta distancia puede ser fenotípica y/o molecular, en base a una batería de marcadores. Explica, si lo entiendo bien, que la distinción de variedades esencialmente derivadas la hace la justicia ordinaria apoyándose en distancias moleculares y pedigrís.

Esther Esteban, de la oficina española de variedades vegetales,nos recuerda los retos para la agricultura del futuro, en torno a la seguridad alimentaria, la sostenibilidad, la adaptación al cambio climático, las enfermedades emergentes, los estreses abióticos o las mejoras nutricionales. Explica las diferencias de normativa entre Europa y otros países sobre las nuevas tecnologías de mejora, incluyendo cisgénesis, transgénesis o las ZFN. Cita el trabajo de Lusser, 2011. Desde entonces han surgido nuevas tecnologías como la biología sintética y la edición mediante CRISPR/Cas9. Hace una reflexión sobre las políticas en torno a la biotecnología en Europa frente al resto del mundo.

Yo hablé sobre genómica de plantas y la aplicación de las herramientas de ultrasecuenciación en la mejora de cebada, apoyándonos en la colección nuclear de cebadas españolas, y usando ejemplos de trabajos recientes nuestros [ get_homologues-est , oídio , RNAseq en sequía , adaptación climática ] y figuras de la estupenda revisión de  Bevan, 2017.

Un saludo,
Bruno