1 de diciembre de 2017

Docker image of GET_HOMOLOGUES + GET_PHYLOMARKERS

Dear all,
Pablo Vinuesa and me we have recently built a Docker image of GET_HOMOLOGUES bundled with a new pipeline, meant to be used downstream, called GET_PHYLOMARKERS. This software will be described in detail in a forthcoming publication. The image, and instructions on how to run it, are available at https://hub.docker.com/r/csicunam/get_homologues :



By packing them in a ready-to-use, cross-platform image, users avoid installation glitches, usually related to several extremely useful R packages required by the second pipeline. Please test it and give us feedback if possible,
cheers,
Bruno and Pablo

Note: link to docker hub updated 29Dic2017

8 de noviembre de 2017

Figuras de PowerPoint a 800dpi

Hola,
ayer Rubén necesitaba aumentar la resolución de varias figuras incluídas en un artículo aceptado en la revista New Phytologist, que requiere resoluciones mínimas de 300dpi (ppp) o 800dpi, para fotos o gráficos respectivamente. En este caso se trataba de varios gráficos generados en PowerPoint.

Con el siguiente protocolo de Carlos Cantalapiedra lo lograron:

1- Aumentar el tamaño de las figuras en PowerPoint, al menos el doble de lo que será en la realidad.
2- Guardar figura desde en formato EMP
3- En http://www.zamzar.com pasarla a formato BMP
4- con paint.net abrir el BMP e ir a: Imagen --> cambiar tamaño --> aumentar resolución hasta 800 ppp
5- Guardar como TIFF


Los tamaños de los ficheros aumentan considerablemente, pasando de Kb a Mb,
hasta luego,
Bruno

24 de octubre de 2017

SOAP interface of footprintDB

Hi,
this entry shows how to query footprintDB from a Perl script.
First, make sure you have module SOAP::lite, which you can install with: $ sudo cpan -i SOAP::Lite. The following Perl5 code shows how to make all dna, protein and text queries, obtaining XML output in all cases.
Note that if you register you can query also your private databases (see details in documentation). Also note that protein searches are time consuming, and if you wish to annotate a large number of proteins it is advised that BLASTP searches are done in your own hardware, with the appropriate FASTA files., as explained in a previous post. Cheers, Bruno.



#!/usr/bin/perl -w
use strict;
use SOAP::Lite;

my $footprintDBusername = ''; # type your username if registered
my ($result,$sequence,$sequence_name,$datatype,$keyword) = ('','','','','');
my $server = SOAP::Lite
-> uri('footprintdb')
-> proxy('http://floresta.eead.csic.es/footprintdb/ws.cgi');

## sample protein sequence
$sequence_name = 'test';
$sequence = 'IYNLSRRFAQRGFSPREFRLTMTRGDIGNYLGLTVETISRLLGRFQKSGMLAVKGKYITIEN';

$result = $server->protein_query($sequence_name,$sequence,$footprintDBusername);
unless($result->fault()){
 print $result->result(); 
}else{
 print 'error: ' . join(', ',$result->faultcode(),$result->faultstring());
}

## sample regulatory motif sequence
#$sequence = 'TGTGANNN'; # possible format
#$sequence = "TGTGA\nTGTGG\nTGTAG"; # another format
#transfac format for position weight matrices can be used as heredoc
$sequence= <<EOM;
DE 1a0a_AB
01 1 93 0 2
02 0 96 0 0
03 58 33 3 2
04 8 78 6 4
05 8 5 75 8
06 1 2 47 46
07 1 2 84 9
XX
EOM

$result = $server->DNA_motif_query($sequence_name,$sequence,$footprintDBusername);
unless($result->fault()){
 print $result->result();
}else{
 print 'error: ' . join(', ',$result->faultcode(),$result->faultstring());
}

$keyword = "myb";
$datatype = "site";
$result = $server->text_query($keyword,$datatype,$footprintDBusername);
unless($result->fault()){
 print $result->result();
}else{
 print 'error: ' . join(', ',$result->faultcode(),$result->faultstring());
}

23 de octubre de 2017

BLASTP: diferentes versiones dan diferentes alineamientos de secuencias de baja complejidad



El alineamiento de secuencias repetitivas o regiones de baja complejidad en la version ncbi-blast-2.2.27+ muestra diferentes "Best hits" en los alineamientos comparado con las versiones más recientes de blast como la version ncbi-blast-2.2.30+ y la versión ncbi-blast-2.6.0+ a pesar de mantener los mismos parámetros en ambos casos y la misma base de datos.

Ejemplo de query: proteína de la familia PE de Mycobacterium tuberculosis asociada con virulencia y caracterizada por presentar regiones de baja complejidad.

>UT08
MSLVIATPQLLATAALDLASIGSQVSAANAAAAMPTTEVVAAAADEVSAAIAGLFGAHARQYQALSVQVAAFHEQFVQALTAAAGRYASTEAA

VERSLLGAVNAPTEALLGRPLIGNGADGTAPGQPGAAGGLLFGNGGNGAAGGFGQTGGSGGAAGLIGNGGNGGAGGTGAAGGAGGNG
GWLWGNGGNGGVGGTSVAAGIGGAGGNGGNAGLFGHGGAGGTGGAGLAGANGVNPTPGPAASTGDSPADVSGIGDQTGGDGGTGGH
GTAGTPTGGTGGDGATATAGSGKATGGAGGDGGTAAAGGGGGNGGDGGVAQGDIASAFGGDGGNGSDGVAAGSGGGSGGAGGGAFVHI
ATATSTGGSGGFGGNGAASAASGADGGAGGAGGNGGAGGLLFGDGGNGGAGGAGGIGGDGATGGPGGSGGNAGIARFDSPDPEAEPDV
VGGKGGDGGKGGSGLGVGGAGGLLFGNGGNGGNAGAGGDGGAGVAGGVGGNGGGGGTATFHEDPVAGVWAVGGVGGDGGSGGSSLG
VGGVGGAGGVGGKGGASGMLIGNGGNGGSGGVGGAGGVGGAGGDGGNGGSGGNASTFGDENSIGGAGGTGGNGGNGANGGNGGAG
GIAGGAGGSGGFLSGAAGVSGADGIGGAGGAGGAGGAGGSGGEAGAGGLTNGPGSPGVSGTEGMAGAPG


Versión ncbi-blast-2.2.27+:
Empleando los parametros por defecto para enmascarar las secuencias de baja complejidad:

Linea de ejecución:

~ncbi-blast-2.2.27+/bin/blastp -query UT08.fasta -db UT105.fa -outfmt 7 -max_target_seqs 5 -seg yes -soft_masking true

Alineamiento:

Fields: query id, subject id, % identity, alignment length, mismatches, gap opens, q. start, q. end, s. start, s. end, evalue, bit score
# 5 hits found

UT08    BNAKEEDD_03025    65.12    129    42    1    1    126    1    129    4e-45     167
UT08    BNAKEEDD_02663    72.80    125    31    1    1    122    1    125    2e-43     166
UT08    BNAKEEDD_01601    61.48    122    40    1    1    115    1    122    8e-36     141
UT08    BNAKEEDD_02274    63.89    144    49    3    1    141    1    144    5e-34     130
UT08    BNAKEEDD_00693    64.75    122    41    2    1    121    1    121    4e-33     134


Versión ncbi-blast-2.2.30+

 Linea de ejecución:

~ncbi-blast-2.2.30+/bin/blastp -query UT08.fasta -db UT105.fa -outfmt 7 -max_target_seqs 5 -seg yes -soft_masking true


Alineamiento:
Fields: query id, subject id, % identity, alignment length, mismatches, gap opens, q. start, q. end, s. start, s. end, evalue, bit score
# 5 hits found
UT08    BNAKEEDD_02661    98.27    694    0    1    1    682    1    694    0.0     1116

UT08    BNAKEEDD_03025    65.12    129    42    1    1    126    1    129    4e-45      167
UT08    BNAKEEDD_02663    74.82    139    32    1    1    136    1    139    1e-40      157
UT08    BNAKEEDD_01601    61.48    122    40    1    1    115    1    122    8e-36      141
UT08    BNAKEEDD_02274    63.89    144    49    3    1    141    1    144    5e-34      130



Versión ncbi-blast-2.6.0+

 Linea de ejecución:

~ncbi-blast-2.6.0+/bin/blastp -query UT08.fasta -db UT105.fa -outfmt 7 -max_target_seqs 5 -seg yes -soft_masking true


Alineamiento:

Fields: query id, subject id, % identity, alignment length, mismatches, gap opens, q. start, q. end, s. start, s. end, evalue, bit score
# 5 hits found
UT08    BNAKEEDD_02661    98.271    694    0    1    1    682    1    694    0.0    1116
UT08   BNAKEEDD_03025    65.116    129    42    1    1    126    1    129    3.79e-45    167
UT08    BNAKEEDD_02663    74.820    139    32    1    1    136    1    139    1.34e-40    157
UT08    BNAKEEDD_01601    61.475    122    40    1    1    115    1    122    7.24e-36    141
UT08    BNAKEEDD_02274    63.889    144    49    3    1    141    1    144    1.85e-34    130
 

 

Al realizar el alineamiento de la proteína query UT08 con la versión de blast 2.2.30 o 2.6.0 toma como segundo mejor hit el alineamiento que es el hit número uno para la versión 2.2.27. Sin embargo, al realizar la busqueda, para el alineamiento de UT08 usando en la versión 2.2.27 no fue posible identificar el hit número uno (BNAKEEDD_02661) de las versiónes 2.2.30 o 2.6.0 en los primeros 20 hits, siendo las que tuvieron el mayor procentaje de identidad (98.27%), mejor evalue y bit score para estas dos ultimas versiones.

Lo anterior indica que el alineamiento de secuencias en regiones de baja complejidad fue optimizado a partir de la versión ncbi-blast-2.2.30+ (ver Bug fixed https://www.ncbi.nlm.nih.gov/books/NBK131777/) .  Esta es una de las varias razónes que dan importancia a realizar periodicamente las actualizaciónes a las versiones más recientes de software para análisis de datos biológicos como Blast, sobre todo para corregir los posibles errores que traen las antiguas versiones, como en este caso paticular asociado a los alineamientos en secuencias repetitivas o de baja complejidad.








6 de octubre de 2017

formato PDBx/mmCIF del Protein Data Bank

Hola,
aunque el formato PDB sea probablemente todavía el estándar de facto para intercambiar información de macromoléculas biológicas, se ha quedado pequeño para representar grandes complejos moleculares y por esa razón desde 2014 el formato oficial del Protein Data Bank es el PDBx/mmCIF. Hay además otro formato en liza, el PDBML, pero tiene la desventaja de ocupar mucho más espacio.

Complejo proteína-ADN 1LFU, tomado de http://www.rcsb.org/pdb/explore/explore.do?structureId=1lfu

Repasemos cómo pasan a ser los campos ATOM de un fichero PDB, los más relevantes. Veamos el siguiente ejemplo en el vetusto formato PDB, tomado de la estructura 1LFU, con columnas de ancho fijo:

ATOM      1  O5'  DA C 100      31.258  -2.296  76.212  1.00 81.62           O  
ATOM      2  C5'  DA C 100      29.867  -2.121  76.367  1.00 69.89           C  
ATOM      3  C4'  DA C 100      28.980  -3.049  77.172  1.00 67.21           C  
ATOM      4  O4'  DA C 100      29.376  -3.145  78.557  1.00 64.58           O  
ATOM      5  C3'  DA C 100      27.626  -2.376  77.196  1.00 64.41           C  
ATOM      6  O3'  DA C 100      26.569  -3.309  77.165  1.00 66.18           O  
ATOM      7  C2'  DA C 100      27.647  -1.527  78.451  1.00 63.85           C  
ATOM      8  C1'  DA C 100      28.739  -2.123  79.322  1.00 56.01           C  
ATOM      9  N9   DA C 100      29.771  -1.142  79.635  1.00 49.13           N  
ATOM     10  C8   DA C 100      30.533  -0.428  78.740  1.00 48.58           C  
ATOM     11  N7   DA C 100      31.429   0.348  79.306  1.00 43.14           N  
ATOM     12  C5   DA C 100      31.218   0.141  80.664  1.00 40.35           C  
ATOM     13  C6   DA C 100      31.837   0.679  81.794  1.00 42.42           C  
ATOM     14  N6   DA C 100      32.826   1.571  81.750  1.00 48.24           N  
ATOM     15  N1   DA C 100      31.393   0.262  82.998  1.00 42.81           N  
ATOM     16  C2   DA C 100      30.397  -0.626  83.046  1.00 45.83           C  
ATOM     17  N3   DA C 100      29.734  -1.195  82.054  1.00 41.14           N  
ATOM     18  C4   DA C 100      30.197  -0.765  80.875  1.00 41.62           C  
ATOM     19  P    DG C 101      25.116  -2.785  76.764  1.00 78.33           P  
ATOM     20  OP1  DG C 101      24.278  -3.977  76.501  1.00 74.57           O

En formato PDBx/mmCIF esto mismo se expresa así, con columnas separadas con espacios en blanco y cabeceras auto-explicativas, incluyendo una para la carga:
loop_
_atom_site.group_PDB 
_atom_site.id 
_atom_site.type_symbol 
_atom_site.label_atom_id 
_atom_site.label_alt_id 
_atom_site.label_comp_id 
_atom_site.label_asym_id 
_atom_site.label_entity_id 
_atom_site.label_seq_id 
_atom_site.pdbx_PDB_ins_code 
_atom_site.Cartn_x 
_atom_site.Cartn_y 
_atom_site.Cartn_z 
_atom_site.occupancy 
_atom_site.B_iso_or_equiv 
_atom_site.pdbx_formal_charge 
_atom_site.auth_seq_id 
_atom_site.auth_comp_id 
_atom_site.auth_asym_id 
_atom_site.auth_atom_id 
_atom_site.pdbx_PDB_model_num 
ATOM   1    O  "O5'" . DA  A 1 1  ? 31.258 -2.296 76.212  1.00 81.62  ? 100 DA  C "O5'" 1 
ATOM   2    C  "C5'" . DA  A 1 1  ? 29.867 -2.121 76.367  1.00 69.89  ? 100 DA  C "C5'" 1 
ATOM   3    C  "C4'" . DA  A 1 1  ? 28.980 -3.049 77.172  1.00 67.21  ? 100 DA  C "C4'" 1 
ATOM   4    O  "O4'" . DA  A 1 1  ? 29.376 -3.145 78.557  1.00 64.58  ? 100 DA  C "O4'" 1 
ATOM   5    C  "C3'" . DA  A 1 1  ? 27.626 -2.376 77.196  1.00 64.41  ? 100 DA  C "C3'" 1 
ATOM   6    O  "O3'" . DA  A 1 1  ? 26.569 -3.309 77.165  1.00 66.18  ? 100 DA  C "O3'" 1 
ATOM   7    C  "C2'" . DA  A 1 1  ? 27.647 -1.527 78.451  1.00 63.85  ? 100 DA  C "C2'" 1 
ATOM   8    C  "C1'" . DA  A 1 1  ? 28.739 -2.123 79.322  1.00 56.01  ? 100 DA  C "C1'" 1 
ATOM   9    N  N9    . DA  A 1 1  ? 29.771 -1.142 79.635  1.00 49.13  ? 100 DA  C N9    1 
ATOM   10   C  C8    . DA  A 1 1  ? 30.533 -0.428 78.740  1.00 48.58  ? 100 DA  C C8    1 
ATOM   11   N  N7    . DA  A 1 1  ? 31.429 0.348  79.306  1.00 43.14  ? 100 DA  C N7    1 
ATOM   12   C  C5    . DA  A 1 1  ? 31.218 0.141  80.664  1.00 40.35  ? 100 DA  C C5    1 
ATOM   13   C  C6    . DA  A 1 1  ? 31.837 0.679  81.794  1.00 42.42  ? 100 DA  C C6    1 
ATOM   14   N  N6    . DA  A 1 1  ? 32.826 1.571  81.750  1.00 48.24  ? 100 DA  C N6    1 
ATOM   15   N  N1    . DA  A 1 1  ? 31.393 0.262  82.998  1.00 42.81  ? 100 DA  C N1    1 
ATOM   16   C  C2    . DA  A 1 1  ? 30.397 -0.626 83.046  1.00 45.83  ? 100 DA  C C2    1 
ATOM   17   N  N3    . DA  A 1 1  ? 29.734 -1.195 82.054  1.00 41.14  ? 100 DA  C N3    1 
ATOM   18   C  C4    . DA  A 1 1  ? 30.197 -0.765 80.875  1.00 41.62  ? 100 DA  C C4    1 
ATOM   19   P  P     . DG  A 1 2  ? 25.116 -2.785 76.764  1.00 78.33  ? 101 DG  C P     1 
ATOM   20   O  OP1   . DG  A 1 2  ? 24.278 -3.977 76.501  1.00 74.57  ? 101 DG  C OP1   1
La diferencia más notable, además de que las columnas no son de ancho fijo, es que cada átomo tiene ahora nuevas etiquetas (label) identificativas, además de las asignadas originalmente por los autores. En el ejemplo, la desoxiadenina 100 para a llevar el número 1. Otra diferencia notable es que en estructuras de NMR, como este caso, el número de modelo se indica también para cada átomo (entity_id).

Hasta luego,
Bruno