11 de agosto de 2026

Barleymap graph release

Barleymap (https://barleymap.eead.csic.es/barleymap), a Web tool for mapping the position of genetic markers along maps of the barley genome, has been updated and now it supports graph searches over the Pan20 barley pangenome. 

The Graph feature has actually been available for a couple months now, but today the preprint describing its development and testing came out at https://www.biorxiv.org/content/10.64898/2026.08.06.741139v1 . I'll paste here the abstract:

"Barley (Hordeum vulgare) is a key cereal crop with exceptional adaptation to diverse  environments. With a large, highly repetitive diploid genome, barley presents challenges for pangenome representation. Starting from the reference genome MorexV3, we describe the construction of a barley graph (Pan20) representing the global diversity of landraces and cultivars captured in the public pangenome V1. For mapping arbitrary sequences, a greedy strategy is proposed that combines GMAP alignment followed by intersection with a Practical Haplotype Graph (PHG). This enables presence-absence variation detection and provides a consistent MorexV3 physical coordinate system across genotypes, enabling comparative analysis and visualization. For imputation of genomic data, the PHG approach relies on k-mer pseudo-alignment against the graph. Benchmarks show that Pan20 can accurately align barley genomic and transcriptomic sequences, including those not present in the Morex reference, revealing that a third of long genomic sequences map on non-reference genomes. Moreover, experiments with Genotyping by Sequencing and low-pass sequencing data indicate that FASTQ files can be efficiently mapped and imputed against the graph, preserving local haplotype context. This flexible and scalable graph framework allows barley researchers to explore genetic diversity beyond a single reference and facilitates analysis of diversity panels at the haplotype level, going beyond SNPs. Documentation and a Docker container are available at https://github.com/eead-csic-compbio/barleygraph. The graph sequence mapping utility was added to the Web application https://barleymap.eead.csic.es ." 

Please give it a go and let us know if it works for you, or not. I am posting this from my summer break, and Joan Sàrria is also away, so we might take a while to respond to issues or comments.

Pan20 summary 

 

Take care, Bruno

31 de julio de 2026

Pruebo minibwa

Seguro que mapeáis lecturas cortas tipo Illumina como parte de vuestra labor. Si es el caso, entonces conoceréis las herramientas ya clásicas bwa-mem y minimap2, de las que hemos hablado antes (1, 2), desarrolladas por el prolífico Heng Li

BWA mem se publicó en 2013 destacando su rendimiento al alinear secuencias en torno a los 100b, como las lecturas cortas. Para ser más preciso, nunca se publicó en una revista al ser rechazado, y a día de hoy su preimpresión supera ya las 14K citas, lo que demuestra su utilidad. En cambio, minimap2 alinea con precisión secuencias mucho más largas, como las lecturas HiFi de Pacbio u ONT, o incluso cromosomas enteros. Se publicó en 2018. Como se puede ver en el panel derecho de la Figura 1, ambos algoritmos comparten ideas y componentes y han servido para inspirar otros como bwa-mem2

 

Imagen
Figura 1. minibwa comparado con otros mapeadores. Fuente: https://x.com/lh3lh3/status/2066917108932329924

El mes pasado el autor liberó minibwa, que en sus propias palabras reemplaza a bwa-mem y soporta de manera nativa datos de tipo BS-seq. Podéis ver los detalles de su validación en arxiv, o en éste otro blog, pero en resumen es un algoritmo nuevo que supero limitaciones de diseño de bwa-mem tomando prestadas ideas de minimap2, que además es varias veces más rápido que el primero produciendo resultados muy similares con lecturas cortas. Además, como se ve en la Figura 1 consume mucha menos RAM. En la Figura 2 se muestra que es también mucho más rápido que Bowtie2, otro mapeador muy popular.

Mapping throughput comparison of MiniBWA, BWA MEM, and Bowtie2
Figura 2. Rendimiento de mapeo de minibwa, bwa-mem y Bowtie2, donce cada punto es un fichero de lecturas cortas de una especie diferente. Fuente: https://andrewcarroll.github.io/2026/06/30/the-best-of-both-worlds-assessing-minibwa.html

 

En mis propias pruebas con cebada (4GB) con las versiones bwa-mem 0.7.16a y minibwa 0.6-r416 he observado además:

  •  El nuevo índice tarda menos en calcularse (minibwa index), supongo que en parte porque se puede paralelizar con varios hilos. Real time: 1633.288 sec; CPU: 2090.351 sec; Peak RSS: 74.990 GB
  • El nuevo índice son solamente dos ficheros (.lb2 y .mbw) que en total pesan más (8.9GB) que el índice antiguo (7G).
  • Si usas parámetros por defecto puedes cambiar fácilmente un programa por el otro en tus scripts.

El código está disponible en https://github.com/lh3/minibwa,

hasta pronto, Bruno


 


 


9 de junio de 2026

Comprime y consulta ficheros FASTA con agc

Hola,  hoy voy a escribir sobre el software AGC (Assembled Genomes Compressor), escrito en C++, que sirve para comprimir ensamblajes genómicos en múltiples ficheros FASTA (un pangenoma) y luego extraer de manera eficiente secuencias de nucleótidos arbitrarias o contigs completos. El artículo que lo describe está en https://doi.org/10.1093/bioinformatics/btad097 y el código en https://github.com/refresh-bio/agc

AGC comprime los ensamblajes/ficheros FASTA en varias etapas usando por defecto k=31:

Principales etapas de la compresión: (a) selección de k-meros distribuidos de manera uniforme en genoma de referencia cada 60Kb, splitters;  (b)  compresión del genoma de referencia tras partirlo en grupos y segmentos; (c y d)  compresión del resto de genomas. Los segmentos flanqueados por los mismos splitters se comprimen juntos; los de referencia con zstd y los demás con LZSS para marcar las diferencias respecto al de referencia correspondiente para comprimir solamente esas partes con zstd. Figura tomada de https://doi.org/10.1093/bioinformatics/btad097

En nuestro caso, probamos AGC con 20 genomas de cebada del pangenoma V2, cada uno de unos 4GB, obteniendo una estructura de datos comprimida de 3.4GB con el siguiente comando:

$ agc create <ref.fa> <genoma2.fa> ... <genoma20.fa> assemblies.agc

# nota: se pueden añadir nuevos genomas más tarde con agc append 

Comprobamos el contenido del archivo comprimido:

$ agc listset assemblies.agc
Akashinriki
B1K-04-12
Barke
Chiba
Du_Li_Huang
GoldenPromise
HOR_10350
HOR_13821
HOR_13942
HOR_21599
HOR_3081
HOR_3365
HOR_7552
HOR_8148
HOR_9043
Hockett
Igri
MorexV3
OUN333
Planet

 

Finalmente, lo más interesante, podemos obtener secuencias de interés por medio de sus coordenadas:

$ agc getctg assemblies.agc chr1H@Barke:1-20 

>chr1H sampleName=Barke:1-20
ATGCTATTAGTCACTAATTT

Toda la documentación y más ejemplos están en https://github.com/refresh-bio/agc, que lo disfrutéis,

Bruno

27 de abril de 2026

Notas de la 3ª asamblea general de la conexiónBCB del CSIC

Hola, comparto aquí mis notas de algunas charlas que escuché en la asamblea de la conexiónBCB los días 21 y 22 de abril en Madrid.
 
Francesc Montardit (Chesco) habló sobre sus progresos en "Genomic footprint of olive 
orchard management on a plant groundcover", todavía sin publicar.
 
mediante redes convolucionales.
 
Pablo Herrera Nieto (CNB-CSIC) está diseñando y evaluando complejos de proteínas: 
 
Fabian Jetzinger (I2SYSBIO) explica su trabajo prepublicado con long reads en torno al 
problema de unir o no diferentes muestras antes de definir isoformas (join, call [more novelty] vs 
call, join [less novelty, more conservative]). Ven diferentes comportamientos con diferentes 
herramientas (IsoQuant, FLAIR) que creen se deben a umbrales relativos a la expresión total 
de un experimento. Recomienda join & call con FLAIR antes de lanzarse a estudiar nuevas 
isoformas raras.
 
Juan Martín Menor de Gaspar (CBGP-INIA) habla de multiomic integration en programas de 
mejora a largo plazo donde se imputan datos perdidos, en concreto missing covariances entre 
indivíduos en base a su pedigrí [covcomb], antes de hacer GS. 
 
Julen Santiago presenta "Development of an LLM and Retrieval Augmented Arch (RAG)-based 
Conversational Assistant for the Conexión BCB Platform" with https://weaviate.io para construir 
un knowledge graph e inmersiones especializadas (S-BioBERT) para calcular distancias. Para 
validar preparan un conjunto de consultas y respuestas correctas. Le preguntan si ha probado 
si el sistema alucina, pidiéndole cosas imposibles, y si está suficientemente protegida la 
privacidad de los datos. 
 
Carlos O Sorzano (CNB) habla de su trabajo con cryoEM y hetSIREN 
 
Isabel Díaz (adjunta VRI) nos recuerda que aprovechemos los correos de programas 
internacionales del CSIC para presionar y conseguir topics en futuras convocatorias. 57% 
tecnológicas (para escalar y llevar al mercado):
 
 
Enrique Bernal Delgado (IACS) habla de la European Open Science Cloud y ciencia abierta. 
Es epidemiólogo y del board of directors de EOSC-A. Pilota la propuesta ES para un nodo 
propio en  EOSC.   
 
Rocío Tuda, oficina del dato del CSIC, SGAI presenta sabio.csic.es , haya, pino, caoba y 
resume la estrategia del dato, que también incluye a https://digital.csic.es
 
Manuel Ferrer (ICP) presenta la conexión microbioma y habla de la brecha entre recursos 
genómicos de microbios y recursos biológicos (muestras, ecosistemas; muy por detrás).
 
Jesús Cerquides presenta https://aihub.csic.es y habla de algunos hitos muy recientes de la IA, 
como el benchmark BioAgent, y la tendencia a pensar que los científicos dejaremos de hacer 
ciencia y pasaremos a supervisarla, apoyándose en experiencias como ésta, donde un sistema
IA envío un abstract a un congreso que fue aceptado.  Resume el impacto que está teniendo 
ya la IA en la biología computacional y la ciencia en general:
 
Le dedica un tiempo a hablar del impacto inmediato del copilotaje en programación:
 
Nos propone una agenda en torno a esto para la conexión BCB:
 

Hasta pronto, Bruno 

 

17 de abril de 2026

Lecturas con SEQ y QUAL de diferente longitud en FASTQ

Hola, si alguna vez te encuentras un mensaje como éste:

[E::sam_parse1] SEQ and QUAL are of different length

Se debe a que el fichero FASTQ en cuestión contiene líneas de secuencia (SEQ) y calidad (QUAL) de diferente longitud, lo cual viola el formato y es posiblemente un error. El siguiente oneliner te sirve para encontrar las secuencias problemáticas:

$ zcat file.fastq.gz | perl -lne 'if($.%4==1){$n=$_}elsif($.%4==2){$l=length($_)}elsif($.%4==0){print $n if(length($_) != $l)}' > lista.errores.txt

Luego puedes eliminar las secuencias del fichero FASTQ como se explica por ejemplo aquí con seqtk, hasta luego,

Bruno 

31 de marzo de 2026

Obtén taxonomías del NCBI desde el terminal

Hola, en una entrada anterior comentaba cómo aprendimos a descargar datos del NCBI desde el terminal, usando el binario datasets, en mi caso para Linux. 

Hoy os cuento cómo se puede utilizar para obtener de manera sencilla la taxonomía completa correspondiente a un taxonID, como los que utiliza la base de datos https://www.ncbi.nlm.nih.gov/taxonomy . Lo explico con un ejemplo, buscando en dicho portal la primera especie que se me ocurre:

  • Deduzco que el taxonID de esta especie es el 56046
  • Invoco el binario datasets con este identificador, obteniendo resultados en formato JSON:
       $ datasets summary taxonomy taxon 56046
 
{"reports": [{"query":["56046"],"taxonomy":{"children":[928733,928732,928731],"classification":{"class":{"id":58019,"name":"Pinopsida"},"domain":{"id":2759,"name":"Eukaryota"},"family":{"id":3318,"name":"Pinaceae"},"genus":{"id":3319,"name":"Abies"},"kingdom":{"id":33090,"name":"Viridiplantae"},"order":{"id":1446380,"name":"Pinales"},"phylum":{"id":35493,"name":"Streptophyta"},"species":{"id":56046,"name":"Abies pinsapo"}},"curator_common_name":"Spanish fir","current_scientific_name":{"authority":"Boiss., 1838","name":"Abies pinsapo"},"current_scientific_name_is_formal":true,"genomic_moltype":"dsDNA","group_name":"seed plants","parents":[1,131567,2759,33090,35493,131221,3193,58023,78536,58024,1437180,58019,3313,2821352,1446380,3318,3319],"rank":"SPECIES","tax_id":56046}}],"total_count": 1}

Cuando nos interesa solamente un taxonID es realmente más cómodo hacerlo en la Web, como se ha explicado. Esta operación tiene más sentido en el terminal cuando queremos hacerlo para toda una lista. Por ejemplo, podemos hacer una búsqueda con BLASTN contra la colección core_nt, obteniendo el taxonID de cada resultado en la columna 13:

$ blastn -query test.fna -db core_nt -outfmt "6 std staxids" -out results.tsv 

Con un comando como el siguiente podemos repetir la llamada a datasets para ese fichero:

$ perl -lane 'foreach $i (split(";",$F[12])){ $t=$see{$i}||`datasets summary taxonomy taxon $i`; printf("%s\t%s\t\%s",$F[0],$i,$t); $see{$i}=$t }' results.tsv

Hasta pronto, Bruno 

 

4 de marzo de 2026

footprintDB March 2026 version

Hi, we just updated the motifs, transcription factors and sites in the database footprintDB
This version adds:
 
1)  Motifs inferred from  protein-DNA complexes at the Protein Data Bank, added to 3d-footprint by 19/08/2025; note the complexes are also used to annotate interface residues  of all transcription factors (TFs).
 
2) New plant data at EEADannot, with TFs assigned to Plant-TFClass families (see repo).
The current contents include:

 

The footprintDB motifs have also been synced with RSAT (see repo), see you soon,
Bruno

 

18 de febrero de 2026

IV Jornada de Bioinformática en Aragón

Hola, el 13 de febrero la USJ organizó otro año más la Jornada de Bioinformática en Aragón, esta vez al mando de Paula Esquivias. Esta vez fuimos varias personas del grupo, entre ellos Rubén Sancho, que dió la charla plenaria con la que cerró el evento. Aquí van mis notas.

  

En sus estudios de múltiples taxones de plantas, el grupo de Aureliano Bombarely  ha encontrado que https://github.com/xjtu-omics/ANNEVO es un anotador genómico de novo, de esos que mapea secuencias de proteína conocidas sobre genomas sin anotar, que generaliza bien con proteínas de hasta 80M años de distancia dentro de Brassicáceas, pero en cambio falla en helechos. Un anotador basado en evidencias como BRAKER3 va mejor en este caso.

Continuando trabajos como https://doi.org/10.1093/molbev/msaf148, están usando FANTASIA en plantas, subiendo el % de proteínas con algún término GO asignado del 80% al 99% en Arabidopsis thaliana. Explica ejemplos de alucinación porque la versión actual de FANTASIA siempre te asigna algún GO.

Menciona al final un estudio del efecto de los transposones en la domesticación del arroz (https://doi.org/10.1016/j.xplc.2021.100270) que usa https://github.com/yanhaidong1/TEmarker.

En la mesa redonda de mujeres en bioinformática, Fátima Al-Shahrour, Rebeca Sanz-Pamplona, mi compañera Inmaculada YruelaAna Conesa nos entretuvieron contando detalles de sus trayectorias personales en la ciencia y lo que habían disfrutado haciendo formación y divulgación de sus trabajos por todos los rincones del mundo. Terminaron recordando a los más jóvenes la necesidad de poner la pregunta científica antes que los métodos.

 

Antes del café conocimos algunas empresas e instituciones locales como biamics.es (sede en Zaragoza), ita.es (da soporte a empresas,  4 ramas, la más cercana es tech digital con 80 personas) u origen.bio/origen-genetics (genomas personales para personalizar salud y nutrición).

En la mesa one health,  Luis Mata, Enrique Navarro,  Sarah Delacour y Laura Espina hablaron de los problemas a los que se enfrentan empresas y administraciones a la hora de compartir y gestionar datos de investigación en un marco de confianza. Las empresas tienen derecho a los datos públicos, pero son reacias a hacer públicos según qué datos porque les pueden causar daños de imagen pública, deben anoninimizarse. 

La jornada terminó con la charla magistral de Rubén Sancho, actualmente postdoc en nuestro departamento, titulada "Herramientas bioinformáticas aplicadas a estudios evolutivos y mejora genética en plantas", donde resumió más de 10 años de trabajo descifrando las relaciones evolutivas entre especies del genéro Brachypodium (modelo para cereales) y sus firmas transcripcionales en estrés hídrico, mostrando al final trabajos más recientes en cebada. Entre las herramientas que desarrolló explicó con cierto detalle chloroplast_assembly_protocol (ya superado por otras herramientas), phyloSD y AlloSHP. La siguiente figura, tomada de la charla de Rubén, muestra las tripas de AlloSHP (10.1186/s13007-025-01458-6) y cómo partiendo de mapeos de lecturas en genomas de diploides podemos llegar a SHPs, Single Homeologous Polymorphisms, que permiten estudiar la evolución de subgenomas en especies poliploides:  

Los artículos los podéis encontrar en scholar.


19 de enero de 2026

adiós a Peer Bork

Hola, igual esta semana habéis leído por ahí que nos dejaba Peer Bork, que era actualmente unos de los directores interinos del EMBL. Yo me enteré por una nota de prensa, de la que saqué la foto que pego más abajo. En las redes podéis leer testimonios de sus colegas, como en este hilo. Sí vale la pena recordar que fue uno de los integrantes del famoso grupo de Chris Sander en el EMBL, por el que pasaron muchos pioneros de la biología computacional, como por ejemplo Alfonso Valencia.

Yo no le conocí personalmente, pero le escuché en alguna conferencia y sobre todo me encontré con regularidad con artículos y recursos importantes que producía su grupo y que han sido muy importantes para la comunidad. Enumero aquí algunos de ellos por si no los conocíais, podéis ver la lista completa de publicaciones en scholar:

Portait photo of Peer Bork.
https://www.embl.org/news/embl-announcements/in-remembrance-of-peer-bork

 

Descansa en paz, y un abrazo a los heridas y familias del descarrilamiento 😢

8 de enero de 2026

NCBI Blast 2.17.0+ es más rápido y acepta FASTAs comprimidos

ola de nuevo.

Siguiendo con la serie de entradas sobre BLAST en este blog, hoy os comento que mientras actualizaba el código de https://github.com/eead-csic-compbio/get_homologues he descubierto que había una versión de NCBI Blast, la 2.17.0+, publicada el pasado verano. 

Revisando la lista de cambios respecto a la versión anterior me llamaron la atención estos dos:

  1. makeblastdb supports compressed in gzip, bzip2, and zstd formats
  2. Improved search speed of blastp with -task blastp-fast

La primera resuelve un problema que me ha afectado muchas veces, y evita que tengas que descomprimir un fichero FASTA de gran tamaño antes de indexar un conjunto de secuencias, una operación que a veces tarda mucho tiempo.

La segunda, que en realidad se estrenó en la versión 2.2.30+, permite acelerar las búsquedas con blastp, blastx y tblastn. Según los autores, acelera las búsquedas contra la colección no redundante de proteínas (nr) un 20%, siendo 2-3x más rápido con colecciones más pequeñas como swissprot o pdbaa. Para blastp y blastx se pierde un 3% de sensibilidad.

Hice una prueba rápida en mi máquina:

time ncbi-blast-2.17.0+/bin/blastp -task blastp-fast -query fnr.faa \
	-db sprot.fasta -outfmt 6 > f

real    0m1.113s
user    0m0.713s
sys    0m0.028s

time ncbi-blast-2.17.0+/bin/blastp -task blastp -query fnr.faa \
	-db sprot.fasta -outfmt 6 > s

real    0m3.945s
user    0m2.925s
sys    0m0.040s

wc -l s f
  113 s
   32 f

diff <(head -30 s) <(head -30 f)

Observo que los primeros 30 resultados son idénticos en ambas búsquedas, y que la estrategia -task blastp en este caso es mucho más sensible, produciendo 81 alineamientos más, todos ellos cortos y con identidades bajas. Si no necesitas estos últimos -task blastp-fastp es para ti.

Hasta pronto,

Bruno

7 de enero de 2026

Parecidos ocultos entre proteínas revelados por inmersión

Hola de nuevo, y feliz año. En la primera entrada del año quería compartir una reseña que me he encontrado en https://doi.org/10.1073/pnas.2524802122 y que me ha recordado que en las JBI2025 me perdí la charla de Ana Rojas, donde creo que habló de este tema. Se resume en la siguiente figura:

A three-panel figure shows protein language model embeddings, site-by-site approach, and sequence and embedding space.
Detección de convergencia molecular usando inmersiones de modelos de lenguaje proteico, tomada de https://doi.org/10.1073/pnas.2524802122.

En el diagrama se explica cómo un modelo de lenguaje proteico (PLM), entrenado en grandes conjuntos de secuencias de aminoácidos para predecir letras enmascaradas, permiten calcular inmersiones o embeddings para cada posición de una secuencia. Éstos son vectores multidimensionales que capturan información sobre la evolución de cada posición de la secuencia y que finalmente se pueden usar para calcular distancias o similitudes entre proteínas. Lo interesante es que permiten ir más allá que los métodos convenciones de construcción de perfiles, como PSI-BLAST o HMMER, puesto que pueden encontrar huellas de convergencia indetectables por éstos (homólogos de murciélago y ballena en la figura, hay más ejemplos en artículo completo).

NOTA: sobre la traducción de embedding por parte de un matemático (Carlos Castro): "Es una inmersión. Se usa para representar un conjunto que puede verse como parte de otro. Se dice que hay una inmersión del conjunto pequeño en el grande.".

19 de diciembre de 2025

A new edition of the bioinformatics unit at the Master's in Plant Genetics, Genomics and Breeding

Hi, in this last post of the year I would like to share that this week we have been training in bioinformatics with a group of 23 students enrolled at the International Master in Plant Genetics, Genomics and Breeding, organized by CIHEAM Zaragoza, as we do every two years in Zaragoza. This time the students hail from Lebanon, Morocco, Canada, Tunisia, Ghana, Senegal, Egypt, Algeria, Turkiye, Chile and Spain.

We had a great cast of local and international experts (Rubén Sancho, Ricardo Ramírez-González, Aleena Mushtaq, Tatiana Gurbich and Germana Baldi), and the support of Joaquín Balduque.

 

You can check the teaching materials we used at https://eead-csic-compbio.github.io/bioinformatics

I take this chance to wish you a good break and a happy new year,

Bruno

PS If you're thinking about presents, how about the PanOryza paper, 5 years in the making? https://genome.cshlp.org/content/early/2025/12/11/gr.280790.125

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