16 de mayo de 2022

Cómo portar tu software a bioconda, ejemplo paso a paso con GET_HOMOLOGUES

Hola,

hace poco logramos portar el software GET_HOMOLOGUES a la plataforma bioconda (ver artículo), el canal especializado en bioinformática del gestor de paquetes conda. En esta entrada voy a resumir cómo lo hicimos por si sirve de ayuda a otros programadores desprevenidos. La documentación en línea que he consultado por el camino incluye estos enlaces, me pareció que estaba todo mejor documentado en conda, el proyecto principal, que en bioconda:


Los pasos que seguí fueron:

  1. Análisis de dependencias del software GET_HOMOLOGUES. Como ya lo teníamos en GitHub, Travis y Dockerhub lo teníamos bastante claro, pero aun así tuvimos que explorar las recetas ya existentes en bioconda (https://github.com/bioconda/bioconda-recipes/tree/master/recipes) para aprovechar los binarios disponibles. Tras esta tarea descubrimos que las recetas blast, hmmer, diamond, mcl y phylip resolvían casi todas nuestras necesidades, pero faltaba el software COGtriangles, necesario para ejecutar $ get_homologues.pl -G
  2. Por recomendación de mi colega Borja Latorre, y siguiendo la filosofía de bioconda, lo lógico era crear una nueva receta independiente para esta dependencia, así que eso decidimos hacer.
  3. Hacer un fork del repositorio bioconda (https://github.com/bioconda/bioconda-recipes) con tu usuario de GitHub
  4. Clonar localmente el nuevo repositorio
  5. $ cd bioconda-recipes/recipes
  6. Crea una nueva rama como se explica en la documentación y selecciónala
  7. $ mkdir cogtriangles
  8. Los siguientes pasos consistieron en preparar la receta cogtriangles, lo cual implicó editar dos ficheros de texto con ayuda de la documentación y cotilleando otras recetas en el repositorio:
    1.  meta.yaml : define los metadatos de la receta, incluyendo el origen del código fuente, su suma SHA256 para comprobar que la descarga es correcta, su licencia y publicaciones, las dependencias para construir esta receta (las recetas make, el compilador de C++ y perl) y, lo más importante, la batería de tests para comprobar que la receta funciona. 
    2.  build.sh : define cómo se construye el paquete, colocando los binarios compilados de COGtriangles en la carpeta $PREFIX/bin 
  9. $ cd .. && mkdir get_homologues && cd get_homologues
  10. Edito dos ficheros similares para esta segunda receta:
    1. meta.yaml
      1. en la sección build puedes declarar variables de ambiente
      2. verás que la sección requirements->run importa la receta cogtriangles 
      3. los tests se ejecutan invocando directamente dos comandos sin indicar un camino/path
    2. build.sh : copia a la carpeta $PREFIX/bin los scripts y dependencias de GET_HOMOLOGUES para que los tests funcionen tanto en local como en modo mulled test (mira el punto 11). 
    3. $ cd ../..
  11. Tras instalar minicondaDocker deberás configurar los canales de bioconda (gracias José María! Si ya tenías conda instalado igual no los necesitáis; una alternativa a conda es mamba)
    1. $ conda config --add channels defaults 
    2. $ conda config --add channels bioconda 
    3. $ conda config --add channels conda-forge 
    4. $ conda create -c base -n bioconda 
    5. $ conda install -c bioconda bioconda-utils
  12. Ahora prueba las nuevas recetas en tu máquina local
    1. $ conda activate bioconda
    2. $ bioconda-utils lint --packages get_homologues
    3. $ bioconda-utils build --docker --mulled-test --packages get_homologues
  13. Si hay problemas de permisos de escritura en Docker puedes resolverlos con
    1. $ sudo chmod 666 /var/run/docker.sock
  14. Si te aparence un error como FileNotFoundError: [Errno 2] No such file or directory: 'miniconda3/envs/bioconda/conda-bld/conda_build_config_0_-e_conda_build_config.yaml' puedes resolverlo con (gracias José María!):
    1. $ mkdir ~/miniconda3/envs/bioconda/conda-bld
  15. Si los paquetes de las respectivas recetas se construyen correctamente es momento de 
    1. Registrar todos los cambios con git add, git commit, git push 
    2. Abrir un Pull Request (PR) y documentar tus recetas. Puedes ver por ejemplo el nuestro en  https://github.com/bioconda/bioconda-recipes/pull/34595 . Cada cambio que hagas, por ejemplo por nuevos git push, lanza de manera automática los tests que definiste en tus metadatos.  
    3. Escribir en https://gitter.im/bioconda/lobby para pedir por favor que alguien revise el PR, y  si todo va bien, una tu rama al repositorio oficial
  16. Prueba a instalar el paquete desde la nube, posiblemente desde otra máquina, con algo como 
    1. $ conda activate bioconda
    2. $ conda create -n get_homologues -c conda-forge -c bioconda get_homologues
    3. $ conda activate get_homologues 
Espero que esta explicación os ayude,
un saludo,
Bruno











28 de abril de 2022

Gabriela y la dinámica molecular

Hola,

esta mañana leía sobre el descubrimiento de que una mutación en el gen TLR7 es suficiente para causar lupus eritematoso sistémico (LES), una enfermedad autoinmune. La mutación es la sustitución Y264H, deletérea según los programas SIFT y CADD (ver otras opciones aquí), de la que es portadora Gabriela, una chica madrileña. 

El artículo completo está en https://doi.org/10.1038/s41586-022-04642-z , yo quería simplemente destacar parte de la primera figura:

Adaptada del original en https://doi.org/10.1038/s41586-022-04642-z

En el alineamiento múltiple de arriba se puede ver que la tirosina Y264 está muy conservada en animales, y por eso SIFT le asigna una puntuación de 0.12 al cambio por histidina (otras dos mutaciones no sinónimas tienen puntuaciones de 0.05 y 0). 

El panel del medio muestra la unión del ligando guanosina al receptor silvestre TLR7 (Y264) y el de abajo con el receptor mutado, donde se ve que se libera volumen que ocupan varias moléculas de agua, aumentando a la vez la afinidad por la guanosina.

Este análisis fue posible por la disponibilidad de tres estructuras de la proteína ortóloga en Maccaca mulata en el PDB (6IF55GMF y 5GMH), que fueron usadas como punto de partida para hacer varias simulaciones de dinámica molecular que se describen con detalle (3 páginas) en el material suplementario,

hasta pronto,

Bruno

12 de abril de 2022

3D-footprint April 2022 version

Hi,

3D-footprint, our database for the structural analysis of protein-DNA complexes, has been up and running since 2010 (see https://doi.org/10.1093/nar/gkp781). Due to a hardware failure it had been last updated in 2021. Finally we found the time to bring the system up to speed again, now in a Debian environment, and will be releasing new protein-DNA complexes from the PDB quarterly. We will also add the new content to footprintDB.

 

What's new?

 That's all for today,

Bruno