24 de octubre de 2025

Jornadas de Bioinformática JBI2025

Hola, estos días hemos estado en las JBI2015 en Madrid, en la Escuela de Ingenieros Industriales, más de 300 personas. Tras el 1er congreso de la SEBiBC el año pasado teníamos ganas de más. La verdad es que lo pasé muy bien y disfruté de volver a ver a tantos colegas de ruta. Ya sabemos que el siguiente congreso será el 2o de la SEBiBC el 11-13 de noviembre de 2026. 

Por parte de nuestro labo fuimos Joan Sàrria y yo con dos pósters:

Dejo aquí mis notas de las charlas y pósters que pude atender, mezclando inglés y español.

Roser Tormo (Sanger Institute) talks about cell genomics with a focus on the female reproductive system, see bioinfoperl.blogspot.com/2024/10/notas-1er-congreso-SEBiBC.html. Quieren reconstruir el proceso de foliculogénesis en el labo e identificar los principales TFs y enhancers que controlan el ciclo.

Mikel Hernáez (CAM-UNAV) "Uncovering Functional IncRNAs by scRNA-se with ELATUS". Cuenta que pseudoalineamientos son más sensibles que mapeos por alineamiento para cuantificar lncRNAs (kallisto > salmon > STAR > Cell Ranger). Programan ELATUS partiendo de Kallisto, que en modo single-cell descarta los multimapeos, pero tiene más FP que Cell Ranger; artículo: https://doi.org/10.1038/s41467-024-54005-7

Carolina Monzó (I2SysBio-CSIC) "Quality assessment of long read data in multisample lrRNA-seq experiments with SQANTI-reads". Good quality human transcriptome, 73% of known transcripts, 19% novel, with higher depth providing more unknown exon junctions. After tests in several species they still cannot figure the min depth to saturate transcript models. Artículo: https://doi.org/10.1101/gr.280021.124

Daniel López-López (FPS) "The Spanish Polygenic Score (PGS) reference distribution: a resource for personalized medicine". Imputan y asignan fase de variantes en 2.2K muestras. Artículo: https://doi.org/10.1038/s41431-025-01850-9. PGS se están usando en mejora también para calcular breeding values.

Jacob Fernández Isa en su póster usa aritmética de kmeros (https://github.com/refresh-bio/KMC) para definir marcadores centroméricos y detectar recombinación en polen. 

Graciela Uria, (IIS-FJD, UAM) Dissecting the functional landscape of rare diseases.  They identify new pathogenic variants which are validated by segregation analysis on pacient pedigree data.

Raquel Blanco Martinez-Illescas (IRB) "Sex and smoking influence the clonal structure of the normal human bladder". Charla preciosa, que le valdría el premio a mejor presentación, donde mostraba cómo descubrió 4 genes que explican porqué los hombres y fumadores tienen más prevalencia de cáncer de vejiga. Se trata en realidad de selección natural a nivel de tejido, y de genes que evolucionan más rápido. El artículo es https://pubmed.ncbi.nlm.nih.gov/41062697

Tim Hubbard. Charla larga, resume su perspectiva de cómo las cosas están cambiando en bioinformática con el ejemplo de los servicios de ELIXIR (visibility, robustness, ease of use) y cómo ahora, además de datos generados en la investigación tenemos cada vez acceso a datos que se obtienen de manera rutinaria en el día a día.

 

 

Pablo Villoslada-Blanco (CNIO) "Virome Shifts in Pancreatic Ductal Adenocarcinoma: New Insights from Untargeted Metagenomics". In phaeces and saliva 5% reads are viruses, with 98% being phages that target particular bacteria taxa (lore specific than antibiotics). So far only DNA sequenced, not RNA.

Alberto Pascual García (CNB-CSIC) "Novel computational tools for high-throughput design and analysis of microbial consortia". Diapos con beamer latex. Tratan de modelar el metabolismo de comunidades bacterianas definiendo gremios. Hacen reacciones con bacterias en vez de enzimas. Las comunidades son mejores que cepas a la hora de expandir nichos. La idea es diseñar comunidades. Faltan experimentos y modelos metabolicos con estequiometria, transportadores no anotados. Código: https://github.com/sirno/misosoup. Artículo más reciente: https://doi.org/10.1038/s41467-025-57591-2

Adrián López-García, (CBGP UPM, INIA-CSIC) "Beyond taxonomy: global patterns of gene family abundances reveal functional ecological drivers in soil microbiomes". Prueban deep homolog clustering (de A Rodríguez del Río)  para asignar funciones a ORFs. Usan datos de un estudio previo. Encuentran muchas familias de genes sin anotar que se asocian a características del suelo (humedad, acidez y mat org).

Daniel Rico (CABIMER) "Evolutionary analysis of gene ages across TADs associates chromatin topology with whole-genome duplications". Looking at vertebrates mostly, discovered TADs encompass genes of similar age. Gene age is measured using WGDs. Old TADs are more expressed, essential and stable across tissues. Artículo: https://doi.org/10.1016/j.celrep.2024.113895

Coral del Val (UGR) "Gene expression networks regulated by human personality". Found core regulatory module in brain, with 3 mammal miRNAs, that are associated to personality. They use blood RNAseq data intersected with brain atlas. Encuentran indicios de molecular condensates como en orgánulos. They work with sets if personality, with genetics explaining over 60%. 

Sonia Tarazona (UPV) "MORE interpretable multi-omic regulatory networks to characterise phenotypes". Produce resultados fáciles de interpretar, usan análisis multivariante interpretable, no AI. El algoritmo PLS es el más equiilibrado en simulación, puedes poner o no datos previos (vínculos de regulación conocidos, pero eso de momento significa que posibles interacciones desconocidas no se descubrirán). Usan expresión génica como target value, el resto de ómics para modelarla. Encuentran hubs y global regulators. Sus datos son vectores de números y datos categóricos.
https://doi.org/10.1093/bib/bbaf270 y https://www.biorxiv.org/content/10.1101/421834v3

 

Andreia Salvador (UMinho) presenta "MOSCA 2.0: A bioinformatics framework for metagenomics, metatranscriptomics and metaproteomics data analysis and visualization" y de paso https://github.com/iquasere/KEGGCharter , muy descargadas en bioconda.

Cedric Notredame  (CRG) da una conferencia sobre "Feeding Hungry AI with Evolution-Augmented Data: Alignments, Phylogenies, and Next Gen Pipelines". En realidad habla de dos cosas: i) agregar información evolutiva (y estructural) mejora los alineamientos múltiples de secuencias (MSA). Da como ejemplo los resultados de Alphafold > ESMfold y luego muestra cómo los algoritmos de MSA escalan mal y se atragantan con los volúmenes de secuencia actuales, razón por la que en colaboración con colegas polacos han desarrollado https://github.com/refresh-bio/FAMSA. Muestra también varios ejemplos de cómo conocer la estructura 3D de las proteínas ayuda estimar con más precisión las distancias entre ellas (filogenias) dado que la estructura está más conservada y tarda más en saturar que las secuencias, definiendo la twilight zone. Menciona muy de pasada que en trabajo con MSA ahora están usando embeddings (inmersiones en español), mejores que la identidad de secuencia para predecir proteínas que reconocen moléculas de ARN. Más en general, habla con mucho entusiasmo de cómo la IA ha convertido los datos en aditivos de manera que todos los que vayamos generando mejorarán las predicciones futuros y pone como ejemplo central AlphaFold. Desde ahora ya podemos decir que necesitamos más datos de verdad, porque se ha demostrado en este y otros problemas que grandes cantidades de datos permiten resolver problemas irresolubles. Finalmente, habla un buen rato de cómo para calcular grandes volúmenes de datos en su labo inventaron https://www.nextflow.io, que se ha acabdo convirtiendo en el entorno de producción de instituciones como Sanger o el EBI por asegurar reproducibilidad. Ahora es el editor jefe de https://academic.oup.com/journals/pages/nar_genomics_and_bioinformatics e invita a que enviemos artículos sobre protocolos reproducibles. Le preguntan si creen, como T Hubbard, si abandonaremos la línea de comando para hacer programación gráfica; contesta con alusiones a Access, donde era imposible hacer dos veces lo mismo con tantos clicks, y termina diciendo que para obtener procedimientos reproducibles seguiremos usando comando en texto. 

 

Hasta pronto!



 

30 de septiembre de 2025

big book of R

Esta entrada transcribe literalmente un post de Rosana Ferrero:

"Si eres de los que guardan todos los posts sobre libros de R “para leerlos algún día” 📌, aquí va un recurso que seguramente se convertirá en tu favorito: "The Big Book of R", creado por Óscar Baruffa.

📚 Esta colección comenzó en 2020 con unos 100 libros y hoy ya reúne más de 400 títulos gratuitos y de código abierto sobre R. Un solo marcador que concentra todo ese conocimiento en un lugar.

🔗 [The Big Book of R](https://www.bigbookofr.com)

Quizás este sea el último post sobre libros de R que necesites guardar"

29 de agosto de 2025

Superficie mundial de familias de cultivos 2011-2021

Hola, traduzco aquí parte del texto original.
 
Los cereales de la familia de las gramíneas (Poaceae) dominan, con trigo, maiz y arroz ocupando cerca de 200Mha cada uno.
 
El total de superficie dedicada a la agricultura es de cinco mil millones de ha (38% del suelo del planeta, de los que cuales un tercio son tierras de cultivo y dos tercios se dedican a la ganadería. Un 10% de las tierras de cultivo lo ocupan frutales, palma y cacao. Un 2% de las tierras se dedican a la agricultura orgánica.


19 de agosto de 2025

footprintDB release 19082025

Our https://footprintdb.eead.csic.es server has been updated, marking the 19082025 release. These are the most recent developments:

  • New plant DNA motifs and transcription factors (TFs) curated from the literature have been added to EEADannot
  • New protein-DNA complexes from https://3dfootprint.eead.csic.es have been added and used to annotate residue interfaces of all TFs.
  • The updated data can be downloaded at https://footprintdb.eead.csic.es/download
  • A new REST service has been set up to support amino acid sequence queries. It uses https://metacpan.org/pod/Mojolicious::Lite and can be queried with curl as follows, returning predicted DNA motifs in TRANSFAC format: 
  • curl -X POST -H "Content-Type: application/json" -d '{"q1":"MVAKVKRDGEVLVAAATGDSEEQDDLVLPGFRFHPTDEELVTFYLRRKVARKPLSMEIIKEMDIYKHDPWDLPKASTVGGEKEWYFFCLRGRKYRNSIRPNRVTGSGFWKATGIDRPIYPAAAGESVGLKKSLVYYRGSAGKGAKTDWMMHEFRLPPAASSPSTQEAVEVWTICRIFKRNIAYKKRQPAGSNAPPPPLAESSSNTGSFESGGGGDDGEYMNCLPVPVPATAAVVPRQQHRIGSMLNGGGVTASGSSFFREVGVHGQQFQGHWLNRFAAPEIERKPQLLGSSAMTIAFHQNDQTAATNECYKDGHWDEIARFMEVNDPTVLYDCRYA","q2":"IYNLSRRFAQRGFSPREFRLTMTRGDIGNYLGLTVETISRLLGRFQKSGMLAVKGKYITIEN"}' http://footprintdb.eead.csic.es:8080/protein 
These updates have also been propagated to the RSAT::Plants instance at http://plants.rsat.eu and https://github.com/rsa-tools/motif_databases/tree/master/footprintDB

Take care, Bruno

23 de julio de 2025

Protocolo reproducible de ddRAD-seq + GWAS

Hola, una tarea frecuente en mejora de plantas es obtener secuencias genómicas de un panel de individuos, por ejemplo variedades de melocotonero o de cebada, para mapear zonas del genoma asociadas a caracteres de interés (GWAS). 

Una manera efectiva de hacerlo es secuenciar solamente una fracción del genoma, una que maximice la información obtenida, para reducir costes. Najla Ksouri, una joven investigadora de nuestro campus, acaba de publicar un protocolo para esta tarea. En este caso se basa en la metodología ddRAD-seq, que secuencia fragmentos de ADN obtenidos tras digerir ADN nuclear con una pareja de enzimas de restricción elegidas para representar todo el genoma y minimizar las regiones repetidas.  

El protocolo está disponible en https://github.com/najlaksouri/GWAS-Workflow y comprende las siguientes etapas, que a su vez requieren de scripts en el repositorio: 

El protocolo usa como ejemplo datos de melocotonero, publicados en https://doi.org/10.1186/s13007-025-01415-3, pero en principio se puede aplicar a otras especies diploides sin modificaciones. 

La siguiente figura muestra un ejemplo de picos significativos obtenidos por GWAS en varios cromosomas, en este caso para fecha de cosecha:

 

Ejemplo de picos de GWAS (A), bloque ligado (B), carácter asociado (C) y genes candidato (D), tomado de https://doi.org/10.1186/s13007-025-01415-3

Un saludo

16 de julio de 2025

líneas distintas entre ficheros con grep

Si usas el terminal de linux sabrás de la utilidad de grep para encontrar de manera eficiente cadenas de caracteres o expresiones regulares en ficheros. Si no, tienes ejemplos por ejemplo en nuestro material. En mi caso, aunque usuario habitual, me he tropezado en diferentes ocasiones con el siguiente problema: dame todas las líneas del ficheroA no encontradas en ficheroB. Encontré la mejor solución aquí.

Image of a comic. To read the full HTML alt text, click "read the transcript".
Opciones frecuentes de grep, https://wizardzines.com/comics/grep

Explico el problema con un ejemplo común en bioinformática. Imagina un fichero con secuencias (ficheroA.fasta) y otro con resultados de análisis de esas secuencias (ficheroB.tsv). Ahora quieres averiguar qué secuencias de A no están presentes en B, por ejemplo para repetir el análisis o arreglar errores en el código.

El ficheroA contiene las siguientes líneas:

>100007_TR35452-c0_g1_i1
CAATTTACGCCTATCGTTATCCATTTCTA...

>10000_TR33868-c0_g1_i1
GGGGGACCTACTCAAATCCCCATCTCCC...

>10001_TR436-c0_g1_i1
GTTTCCAACCGGATGTTGAAACAGACAA...

El ficheroB en cambio puede ser un formato  TSV, por ejemplo:

#metadatos, nombres de columnas, etc
100007_TR35452-c0_g1_i1 chr5H   540009332       540009636
1000_TR868-c0_g2  chr4H   340992292       340995709
...

Resuelvo el problema en dos comandos en el terminal:

1) extraigo de A únicamente los nombres de las secuencias:

$ perl -lne 'if(/>(\S+)/){print $1}' ficheroA.fasta > ficheroA.nombres

2.i) busco las secuencias reportadas en B para luego 2.ii) buscar las secuencias de A que no están en B:

$ grep -Fo -f ficheroA.nombres ficheroB.tsv | grep -vFf - ficheroA.nombres

 

Un saludo

15 de mayo de 2025

Descarga datasets del NCBI desde el terminal

Hola, hace unos días necesitaba obtener todas las secuencias de genes de pimiento (Capsicum annuum) de la colección 'gene' del NCBI (que tan mal lo está pasando en 2025). Para ello abrí el navegador y obtuve una lista de 48K identificadores (gene-id) en https://www.ncbi.nlm.nih.gov/gene?term=capsicum%20annuum%5BOrganism%5D

Descargué el fichero y lo hice no redundante de esta manera:

$ head -3 gene_result.txt | cut -f 1-6
tax_id Org_name GeneID CurrentID Status Symbol
4072 Capsicum annuum 107859632 0 live LOC107859632
4072 Capsicum annuum 107868427 0 live LOC107868427 
$ cut -f 3 gene_result.txt | sort -u | grep -v Gene > pimiento.geneids.txt

Descubrí que obtener la lista de genes es fácil, pero no tanto sus secuencias. Por ejemplo no lo logré con https://www.ncbi.nlm.nih.gov/sites/batchentrez , me daba secuencias que no eran de pimiento, supongo que por esperar otro tipo de identificadores. Entonces pedí ayuda en https://support.nlm.nih.gov/support/create-case y tras unos días de espera me dirigieron amablemente a la documentación de la herramienta datasets del NCBI, y me compartieron la siguiente figura:


Me descargué el binario datasets para linux de https://www.ncbi.nlm.nih.gov/datasets/docs/v2/command-line-tools/download-and-install y lo utilicé de esta manera:

$ chmod +x datasets
# probamos primero con un gen de ejemplo 
$ ./datasets download gene gene-id 20217883 --include gene,protein
Collecting 1 gene record [================================] 100% 1/1
Downloading: ncbi_dataset.zip 3.24kB valid data package
Validating package files [================================] 100% 5/5
$ unzip ncbi_dataset.zip
Archive: ncbi_dataset.zip
inflating: README.md
inflating: ncbi_dataset/data/gene.fna
inflating: ncbi_dataset/data/data_report.jsonl
inflating: ncbi_dataset/data/dataset_catalog.json
inflating: md5sum.txt
$ head ncbi_dataset/data/gene.fna
>NC_024624.1:447314-449261 rrn18 [organism=Capsicum annuum] [GeneID=20217883] [chromosome=MT]
ATCATAGTCAAAAGAAGAGTTTGATCCTGGCTCAGAAGGAACGCTAGCTATATGCTTAACACATGCAAGT
CGAACGTTGTTTTCGGGGAGCTGGGCAGAAGGAAAAGAGGCTCCTAGCTAAAGGTAGCTTGTCTCGCCCA
GGAGGTGAGAAGAGTTGAGAACAAAGTGGCGAACGGGTGCGTAACGCGTGGGAATCTGCCGAACAGTTCG
GGCCAAATCCTGAAGAAAGCTAAAAAGCGCTGTTTGATGAGCCTGCGTAGTATTAGGTAGTTGGTCAGGT
AAAGGCTGACCAAGCCAATGATGCTTAGCTGGTCTTTTCGGATGATCAGCCACACTGGGACTGAGACACG
GCCCGGACTCCCACGGGGGGCAGCAGTGGGGAATCTTGGACAATGGGCGAAAGCCCGATCCAGCAATATC
GCGTGAGTGAAGAAGGGCAATGCCGCTTGTAAAGCTCTTTCGTCGAGTGCGCGATCATGACAGGACTCGA
GGAAGAAGCCCCGGCTAACTCCGTGCCAGCAGCCGCGGTAAGACGGGGGGGGCAAGTGTTCTTCGGAATG
ACTGGGCGTAAAGGGCACGTAGGCGGTGAATCGGGTTGAAAGTGAAAGCCGCCAAAAACTGGCGGAATGC
 
# ahora con gene-ids del fichero que preparamos antes, tarda, ncbi_dataset.zip > 100MB
$ ./datasets download gene gene-id --inputfile pimiento.geneids.txt --include gene,protein
$ unzip ncbi_dataset.zip 
Archive: ncbi_dataset.zip
inflating: README.md
inflating: ncbi_dataset/data/gene.fna
inflating: ncbi_dataset/data/protein.faa
inflating: ncbi_dataset/data/data_report.jsonl
inflating: ncbi_dataset/data/dataset_catalog.json
inflating: md5sum.txt
 
$ head ncbi_dataset/data/gene.fna
>NW_025826840.1:c5280-2277 LOC124890618 [organism=Capsicum annuum] [GeneID=124890618] [chromosome=Un]
GGAGGTACTTAAAGCATGACTTTTAAAAGTTTGCATAGGGCAAGAAGCAGGAGTGTGACTAAACTGATTT
TTCTTTCTGGTTTTAAGCATGATGCTATTCCTCAGCGTCCTCAAAATGAGCAAATTGAAAAGCTCAAGAA
GTTCAAGGCTGTGTTGGAACGCATTCTGATTTTCTTGCAGCTCAATAAGCATGACATTCAGCTTACTCAC
AAGGAGAAGTTGTGTTCGGTTGAGAGGCACATAGGTTTCTTTCTTAGCAAGCCTACTTCTCCTCCTCTGC
AGGGGCAACTTCCTCAGTCTTCCATGCAGCTTCAGCAACCACAATCACTTGATGTTCAAACTAATCCACC
GATGCAACCTCAACTTCATCAGGCACTATCTTCGCAGGTACGTCATCAACATTTTAATCCACTATTATCA
TTTCTGGAGGCAATTCTACCAATTGTATGGTGCATCATGCTGGATTTACTAAATTTTGATACTATAAAAG
GTCTCTTGACAAACAGCTAGCCAAATGTGTCAGTCGTCATTGAAAGTTCTGCTACCGTTTAGTTTCTTTT
TCTCCAATGTCTTTTGTTACACTTGTTTTGTATATTACTATATTGTTGGCTCTTTTTCTTTCTTTTGATC
$ head ncbi_dataset/data/protein.faa 
>XP_047258369.1 LOC124890618 [organism=Capsicum annuum] [GeneID=124890618]
MTFKSLHRARSRSVTKLIFLSGFKHDAIPQRPQNEQIEKLKKFKAVLERILIFLQLNKHDIQLTHKEKLC
SVERHIGFFLSKPTSPPLQGQLPQSSMQLQQPQSLDVQTNPPMQPQLHQALSSQAQSTGALQTATLDSDS
TSQTGNADGADWQEELYQEIKTMREKNLPELNALYQKIASKVQQHDAIPQRPQNEQIEKLKMFKAVLERI
LIFLQVNKHDIQLTHKEKLCSVERHIGFFLSKPTSPPLQGQLPQSSMQLQQPQSLDVQTNPPMQPQLHQA
LSSQAQSTGALQTATLDSDSTSQTGNADGADWQEELYQEIKTMRDKNLPELNA
>XP_047259376.1 LOC124891834 [organism=Capsicum annuum] [GeneID=124891834]
MTSNITESLNSILRDEREYPVASIFNSIAPRFGEIFRKRYAEVDNSKTTFIPVAETILRENMTKGDKLYV
NNINESTNEFTVLGYGRSAKVNLSRQPCSCRKYDLVKLPCAYTMAALHLKHGDEYGTSIYKNPFQIYSKE
SYLLAYLEPICAAPLESEWSVAREYLEIQVLPPDVDPKHGRRKVKHVKGVLEPSRYKKRNKCSKCKRLGH

Hay muchas otras maneras de utilizarlo y ejemplos en https://www.ncbi.nlm.nih.gov/datasets/docs/v2/how-tos

Hasta pronto, Bruno