10 de marzo de 2020

Introducción a la ciencia de datos

Hola,
en plena vorágine del coronavirus toca hablar del libro Introduction to Data Science, al que podéis acceder en https://rafalab.github.io/dsbook



El libro lo escriben Rafael Irizarry y más de 20 colaboradores. Rafa fue uno de los fundadores de Bioconductor, por lo que no debería sorprender que su lenguaje preferido para manipular y analizar datos sea R.

El libro se organiza en estas secciones:

El libro se puede descargar en formato PDF o comprar en papel, pero lo más interesante es que todo el texto y el código fuente está disponible en formato R markdown en https://github.com/rafalab/dsbook . De esta manera es posible reproducir todos los análisis del libro dentro de Rstudio.

Rafa está ahora tratando de traducir al español. Puedes ayudar con los términos que se puedan traducir contribuyendo al documento  https://github.com/rafalab/dslibro/blob/master/como-se-dice.md

Termino diciendo que podéis estar al tanto de actualizaciones en la cuenta de twitter https://twitter.com/rafalab

Hasta pronto,
Bruno

24 de febrero de 2020

Pon tu conocimiento de plantas al servicio de UniProt

Hola,
esta mañana escuché a Michele Magrane explicar cómo funciona el proceso de curación de literatura en UniProt, la colección de proteínas más importante del mundo, que desarrollan entre el EBI, PIR y SIB. Por si no lo sabéis, la curación es el proceso por el que personas expertas extraen información y evidencias experimentales de artículos para agregarla de manera trazable a secuencias de proteínas.

Tras explicarnos que el núcleo (SwissProt) apenas pasa del medio millón de secuencias y que la parte automatizada se acerca a los 180 millones, nos dijo que creen que el proceso de curación es escalable, como describen en este artículo, dado que solamente un porcentaje muy pequeño de los artículos que se publican (3%) les sirven para anotar sus proteínas.

En cuanto a los plantas, mencionó que fundamentalmente curan artículos de Arabidopsis thaliana y Oryza sativa, por este orden. 

Felizmente es posible sugerir artículos para proteínas de UniProt, y de esa manera contribuir a su anotación y curación por expertos. Para ello solamente necesitas un identificador ORCID y un artículo publicado que hayas leído y que contribuya a describir la proteína en cuestión. En la figura verás el enlace "Add a publication" arriba a la derecha:

https://www.uniprot.org/uniprot/Q5Y386/protvista

Manos a la obra,
Bruno

6 de febrero de 2020

Valida con Travis tu código en un repositorio GitHub

Hola,
tras escuchar un par de charlas en la London Perl Conference 2019 (vídeos aquí) tenía pendiente agregar una validación por integración continua a uno de nuestros repositorios en GitHub. Opté por Travis, aunque otra buena opción si empiezas de cero es https://about.gitlab.com 
https://travis-ci.org



Para qué sirve esto? Pues para no romper nada en bases de código que ya tienen un cierto tamaño cuando haces cambios a lo largo del tiempo. En mi caso, el repositorio https://github.com/eead-csic-compbio/get_homologues tiene más de 20K líneas de código y acumula actualizaciones (commits) desde noviembre de 2016. Al vincular este repositorio a Travis (https://travis-ci.com/eead-csic-compbio/get_homologues) cada vez que hago un nuevo commit/push se lanza una máquina virtual que hace una batería de tests y me informa si va todo bien o si algo se ha roto.

Es sencillo, debes seguir estos pasos:

  1. Vincular tu repositorio GitHub en https://travis-ci.com con el mismo usuario que usas en GitHub.
  2. Agrega al repositorio un fichero .travis.yml con instrucciones para que Travis sepa como instalar correctamente el código del repositorio y sus dependencias. Puedes comprobar mi ejemplo .travis.yml , adecuado para un proyecto en Perl. Verás que las dependencias de Perl están en el fichero cpanfile. Hay documentación para otrs lenguajes, por ejemplo python .
  3. En tu repositorio preparar una batería de tests o pruebas para comprobar que todo funciona cómo esperas. Por defecto Travis hace $ make test, por tanto lo más fácil es crear un fichero Makefile con un objetivo test incluído. Ejemplo: Makefile
  4.  En el fichero markdwon README.md de tu repositorio puedes agregar la siguiente línea, adaptada a tu proyecto, para tener el certificado actualizado de que el repositorio pasa los tests en su estado actual:
    [![Build Status](https://travis-ci.com/eead-csic-compbio/get_homologues.svg?branch=master)](https://travis-ci.com/eead-csic-compbio/get_homologues)
Hasta pronto, Bruno

5 de febrero de 2020

Recursos y presentaciones del NCBI en PAG2020

Hola,
para empezar el año la gente genómica a menudo se cita en una de las conferencias más importantes del año, PAG . Allí se juntan los consorcios que producen los genomas último modelo de animales y plantas, las empresas que fabrican los instrumentos y reactivos, y los grupos que desarrollan los algoritmos y herramientas que lo sostienen todo, como el EBI o el NCBI.

Precisamente de éstos últimos hablo hoy, para compartir con vosotros los recursos y presentaciones que este año hicieron en PAG, entre los que destacaría:
https://github.com/NCBI-Hackathons/TheHumanPangenome

Que aproveche y hasta pronto,
Bruno

8 de enero de 2020

Submit gene with unknown intron to GenBank

Hola de nuevo,
el 31 de diciembre conseguí finalmente enviar a GenBank unas secuencias parciales de genes de cebada utilizadas por mi colega Ana Casas en un estudio. Éste es un paso necesario para publicar en casi cualquier revista seria, pero además es la manera de asegurar que tus secuencias van a ser útiles para otras personas en el futuro.

Antes de que se me olvidé comparto aquí como lo hice, teniendo en cuenta que uno de los genes tiene un intrón de longitud desconocida y se secuenció en dos amplicones que abarcan respectivamete los exones 1-9 y 10-14:
 

    Para poder archivar una secuencia así en GenBank utilice tbl2asn en varios pasos:
    1.  Obtención de una plantilla .sbt con https://submit.ncbi.nlm.nih.gov/genbank/template/submission . El fichero resultante especifica los autores y otros metadatos, y lo puedes usar para distintas secuencias. 
    2. Confección de un fichero FASTA con extensión .fsa (unk_intron_gene.fsa) que contenga las secuencias de ambos amplicones separadas por un tramo de 100 Ns. Para facilitar el siguiente paso intrones y exones deben ir en mayúsculas y minúsculas, respectivamente, como en este fragmento que comprende los exones 8, 9 y 10:
      ...TGTCAGatactatgcaattgccacaccaagtgctacacaaagattgctttttggtct
      TGTCAGatactatgcaattgccacaccaagtgctacacaaagattgctttttggtcttct
      tgaagcaccaccatcatgggctccagatgcacttgatgcagcagttcagcttgttgaact
      ccttcgggcagctgaagattatgctactggcatgcggGTATGACATACTGCATGCTGGCT
      GTTGTTTCAGTCCTGTTAGTTGTGATGCCTCACGATACAAAATTTCCATATTCGTATGTT
      TTGGGTGTGCATGTTTATTAATCTTGGTAACTTTAAATTCCTGTTCAGcttccaaaaaat
      tggttgcatcttcatttcttgcgtgcgattggaactgcaatgtctatgagggctggtatt
      gctgccgatacagctgctgcgttgctttttcgcatactatcccaaccaacgttgcttttt
      cctccactaaggcatgctgaaggagttgaagtgcaacatgaaccactgggtggctatgta
      tcatcatacaaaagacagGTATGCAGTAGTTTCTGCATCTAGTTAATTTTTCATTATCTG
      TTCTTCTTTAGTAAAGACTCAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
      NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
      NNGGATCCATGTTTTAGTCTTCTTGGTTTTACTGATTGTTGCCTTATGTCTGCATGACTA
      ATTTACCTGCTTGCACTTTGAACTATTCACAGctggaagttcctgcatctgaaaccacaa
      ttgatgccactgcacaaggcattgcttccttgctgtgtgctcatggtcctgatgttgagt
      ggagaatatgtaccatctgggaagctgcctatggtttgttacctctgaattcatcagcag
      ttgatttgcccgaaatcgttgtagctgctccgcttcagccacctactttgtcatggagcc
      tatacttgccactgttgaaagtattcgagtatctacctcgtggaagtccatctgaagcat
      gccttatgagaatatttgtggcaacagttgaagctatactcagaagaactttcccttcgg
      aaacctctgaatcatctaaaagaccaagaagtcaatccaagaaccttgctgttgctgaac
      tccgtacaatgatacattcactctttgttgaatcatgtgcttcaatgaaccttgcttccc
      ggttgttgtttgttgtattaactgtttgcgtcagtcatcaagctttgccagggggcagca
      aaagaccaacgggtagtgaaaaccattcttctgaggaggccactgaggacccaagattaa
      ccaatggaagaaataaggtcaagaagaaacaagggcctgttggtacatttgactcgtatg
      tgctggctgctgtttgtgccttatcttgtgagcttcagctgttccctatcctttgcaaga
      gtgcaacaaactcaaaagtaaaagactctataaagatcctgaagcctggaaaaaacaatg
      ggatcagtaatgagctacagaatagcattagctcagcaattctccatactcgtagaattc
      ttggcatcctggaagctcttttctccttgaagccatcatcagttggtacctcctggaact
      atagttcaaatgagatagttgcagcggctatggttgccgctcatgtttctgagttatttc
      gccggtcgaggccatgcctaaatgcactatcttcactgaagcgatgtaagtgggatgctg
      agatttctaccagggcatcatccctttaccatttgatcgatttgcatggtaaaactgtgt
      cctccatcgtgaacaaagctgagcctctagaagctcacctgacttttacatcagtaaaga
      gagatggtcaacaacacattgaggaaaacagcaccagctcatcgggtaatggcaacttgg
      aaaagaagaatgcttcagcctcacacatgaaaaatggtttttcaagaccactcttgaaat
      gctcagaagaggctaggcgaaatggtaatgttgcaagtacatccgggaaagttcctgcaa
      ctttacaggctgaagcatctgatttggctaacttccttaccatggatagaaatgggggtt
      atcgaggctctcagactctcctaagttctgttatctcagaaaaacaggaattatgcttct
      ctgttgtctcattgctctggcataagcttattgcatctcctgaaacgcagatgtctgcag
      aaagtacatcagctcatcaaggttggagaaagGTA...
       
    3. Obtención de las coordenadas de los exones con ayuda del siguiente script Perl que usa variables especiales de expresiones regulares:
      perl -lne 'if(/^>/){} else{ while(/[a-z]+/g){ printf("%d\t%d\n",$-[0]+1,$+[0])} }' unk_intron_gene.fsa
       
    4. Prepara y completa un fichero .tbl (feature table) por gen. Verás que los campos van separados por tabuladores. Si es un gen parcial deberás indicarlo usando ">" en las coordenadas de inicio y fin, tal como se explica en https://www.ncbi.nlm.nih.gov/Sequin/table.html . Para el gen ejemplo yo obtuve el siguiente .tbl:
      >Feature HvGI Table1
      <1    >7751 gene
          gene HvGI
      1383 1469 mRNA
      1564 1641
      1738 1792
      1881 2023
      2120 2376
      2811 2869
      3079 3319
      3390 3540
      3672 3881
      4821 6320
      6420 6488
      6636 6854
      7014 7106
      7195 7500
      1383 1469 CDS
      1564 1641
      1738 1792
      1881 2023
      2120 2376
      2811 2869
      3079 3319
      3390 3540
      3672 3881
      4821 6320
      6420 6488
      6636 6854
      7014 7106
      7195 7500
          product HvGI
      
    5. Guarda en una carpeta propia los ficheros .fsa y .tbl, un par por gen, por ejemplo genes/
    6. Descarga del binario tbl2asn adecuado para tu sistema operativo desde ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/converters/by_program/tbl2asn
    7. Haz el binario ejecutable si fuera necesario 
    8. Haz la conversión, por ejemplo en Linux:
      linux.tbl2asn -t template.sbt -p genes/ -V vb -a r10u
       
    9. Comprueba errores (errorsummary.val) y corrige los respectivos ficheros .tbl y vuelve al paso 8.
    10. Envía los ficheros .sqn resultantes por medio de http://www.ncbi.nlm.nih.gov/LargeDirSubs/dir_submit.cgi
       
    Hasta pronto,
    Bruno