9 de mayo de 2023

Meeting notes: "At the forefront of plant research 2023" (I)

While my colleagues @EEAD-CSIC attended a meeting on cereal breeding at Lleida, today I travelled to Barcelona to learn at the meeting 'At the forefront of plant research 2023'. This is organizaded by CRAG and the chosen venue is the CosmoCaixa up in the hill. I will be sharing my notes here.

Jump to the other days here: II, III

Monday 08 may

Britt Koskella ‘Leveraging the above ground (phyllosphere) microbiome for plant healt’

She talks about her work on phytosphere (aereal part) microbiome on tomato. They have found that tomato seeds contain a relatively conserved microbiome composition. When grown in controlled conditions in the greenhouse, plants seem to have really little bacteria. The seed bacteria can hel control the growth of Pseudomonas syringae.

In field experiments they observe that there is transmission from neighbors (https://pubmed.ncbi.nlm.nih.gov/35022514), in fact it is more important than the actual genotype of the plants.Further experiments show that drought induces a loss of bacterial/mycorr richness, targeting specific taxa. 

 

Teva Vernoux ‘Auxin in development: where to respond, when to respond and how to respond?’

Shows a nice picture of shoot apical meristem to describe the parts where class A ARFs triggered to establish  a spatial pattern. Permissive chromative marks surround the gene bodies; the repressive ones cover mainly the gene body. In protoplasts the observe that there’s a large network of TFs repressing ARFs. Using DAPseq & protoplast data they find that combinations of class A,B,C ARFS bind inverted repeats and direct repeats with spacers 8,13 and 5,15 respectively. Their model is that different tuples ARF,CRE have different roles.

 

Marja Timmermans ‘How to make a flat leaf: Pre-patterns, small RNA morphogens and Turing dynamics’

Describes a n=6 TF/miRNAs network that control how a flat leaf is made, 3 expressed adaxial and 3 abaxial (https://pubmed.ncbi.nlm.nih.gov/35318449). There are also two opposing gradients of miRNAs (https://www.cell.com/developmental-cell/pdfExtended/S1534-5807(17)30816-X) which control the translation of the TFs and control leaf polarity by defining robust developmental boundaries.

She and collabs explored Turing models / cell automata, which combine a short-range + loop and long-range – feedback loop, to create leafs and managed to bring it down to n=3 while maintaining the known n=6 interactions and adding a few new ones. Their best model predicts that AS2 has to be a mobile TF.  She alsi mentions https://www.science.org/doi/10.1126/science.aay5433

 

Keith Slotkin ‘Targeted Transposition in Arabidopsis’

His lab works on target site integration. Context: HR has so low freq is unusable in plants. Homology-Directed Repais has medium precision. Another option is NEEJ, with low precision. For these reasons they are exploring using guided-transposition using the Pong/mPing system, a PIF/Harbinger element from rice, that have 1-order magnitude success rate of targeted integration when shipping with a long linker to full ds-cutting Cas9 genes.

What about precision of insertion? 0-7bp (mostly 1-4) changes at the junctions of insertion sites. Ping transposase is used to excise, Cas9 to cut new destination site. Offsites? Yes, apparently not using Cas9 but the transposase instead, which is still viable. So far mPing can  integrate 430-1563bp cargos. They are currently testing it on soybean. There’s a preprint at https://assets.researchsquare.com/files/rs-2679086/v1_covered.pdf?c=1679325102

 

Angela Hancock ‘Adaptation to novel environments’

Walks us along the use of Arabidopsis thaliana projects on population genomics, first in Europe and more recently in Africa, including Cabo Verde (https://www.arabidopsis.org/servlets/TairObject?type=species_variant&id=98), where the growing season is very short (2-3m). They have studied the island (Santo Antao, Fogo) populations and found out that they represent a single migration from N Africa. CV populations flower rapidly to produce more seed (46% variance from a nonsynon mutation in FRIGIDA, see https://www.nature.com/articles/s41467-022-28800-z).

Plants from volcanic Fogo shows chlorosis in standard pots. Ionome experiments show those line have rebalanced Fe/Mn to adapt to their native soil by harboring two mutated transporters with different affinities, one of them a loss of function (https://www.science.org/doi/10.1126/sciadv.abm9385), the other a tandem duplication. These are nice examples of evolutionary innovations.

 

 Hao Yu ‘RNA modification underlies plant development and stress responses’

There are over 170 chemical modifications to RNA, 3UTR m6A (N-methyladenosin) being the most common in A. thaliana as measured with nanopore direct RNA sequencing. He shows examples of roles of m6A modification during development (seed onset, proliferation of SAM, male meiosis [rice]). In the second part of his talk he focus on the rm1 mutant (disordered protein region) and the role of m6a in drought survival, possibly in the ABA range of action. They find that RM1 recruits m6A mRNA to stress granules.

 

Elena Monte ‘Photosignaling for plant adaptation to environmental challenges’

Two stories: rhythmic responses, cotyledon expansion, two processes regulated by PIF/phytochrome. She talks about the role of PIFs + basal ABA in closing stomate during the night and opening at dawn, a process that depends on blue light intensity. They found KAT1,a s K++ channel in guard cells, responds both to ABA (to close) and PIFs (to open at dawn, ChIP peaks upstream). https://www.biorxiv.org/content/10.1101/2023.01.14.524044v1

25 de abril de 2023

Por qué Perl?

De vez en cuando en este blog toca escribir sobre Perl, uno de los lenguajes que usamos en nuestro trabajo, en mi caso el que más uso la verdad.

Voy a traducir y resumir https://two-wrongs.com/why-perl , porque creo que plasma mi experiencia bastante bien [en negrita mis comentarios]:

"A veces me preguntan porqué uso tanto el Perl. No soy acaso fan de los lenguajes fuertemente tipados? Sí. Pídeme que escriba algo que sepa a ciencia cierta que se convertirá en un gran sistema y elegiré un lenguaje fuertemente tipado sin duda [...]. Pero la mayor parte de lo que escribo nunca se convertirá en un gran sistema. Esto es lo que Perl hace bien:

  1. Está instalado por defecto en todas partes y no necesito ser superusuario para ejecutarlo.
  2. Con mucha disciplina, los scripts Perl pueden escalar hasta construir sistemas grandes y complejos.
  3. Sé que un script Perl que escriba hoy funcionará sin cambios en 10 años, sobre todo si me limito a importar módulos core.
  4. Perl puede reemplazar en la práctica a cualquier lenguaje shell, aunque combina muy bien con bucles bash.
  5. Perl tiene una sintaxis core relativamente pequeña, flexible y extensible. 

Estos requerimientos están ordenados por prioridad, siendo el primero el más importante. Cuando quiero hacer un prototipo rápidamente no quiero que mi primera tarea sea 'Primero instala el ambiente ...'. Como los prototipos suelen usarse más allá de lo que inicialmente pensamos, es importante que sea posible escribir software en ese lenguaje que se pueda mantener y que funcione mientras haya personas interesadas en usarlo.

Perl es único en cuanto a estas condiciones. La siguiente tabla resume otras alternativas que he probado al menos un mes, donde los asteriscos marcan condiciones que se cumplen de manera incompleta:

"
 

En general estoy bastante de acuerdo con esta carta de presentación del lenguaje. Creo que el principal problema de Perl es que su extrema flexibilidad permite escribir programas que pueden ser difíciles de leer por otros, queda en tu mano documentar y estructurar bien el código para que eso no ocurra,

Bruno

 


12 de abril de 2023

beneficios de la evaluación doble ciega por pares

La publicación de resultados en ciencia se hace normalmente por medio de artículos en revistas científicas. El proceso empieza (i) cuando los autores envían un borrador a los editores de una revista, a menudo con una carta de presentación del trabajo. Ésto se hace generalmente en inglés, la lengua franca de la ciencia. A continuación (ii) los editores deciden si el tema y los resultados son potencialmente interesantes para la revista. Si no lo son, el artículo es rechazado sin revisión (desk rejection). En caso contrario (iii), los editores buscarán a varias personas supuestamente expertas en el tema (revisores o pares), que no tengan conflictos de interés con los autores, y les pedirán una evaluación crítica del artículo, algo que puede tardar del orden de semanas. Finalmente, con las evaluaciones (reviews) en la mano, el editor decide (iv) si solicitar modificaciones a los autores, como nuevos experimentos, interpretaciones o ediciones del inglés, rechazar el trabajo o aceptarlo en su primera revisión (nunca me ha pasado).

Difference between open, single blind and double blind
Fuente: https://fourwaves.com/blog/single-double-blind-peer-review

En nuestro campo de la biología computacional y la genómica este proceso normalmente es ciego, es decir, los autores no conocen la identidad de los revisores, pero éstos sí pueden ver las identidades y afiliaciones de los primeros. 

Un estudio iniciado en 2019 y publicado en la revista Functional Ecology  en 2023 aporta datos convincentes para que cambiemos a un sistema doble ciego, donde tampoco los revisores puedan poner nombre a los autores. El estudio hizo un seguimiento a 1837 y 1852 artículos evaluados por el sistema ciego y doble ciego respectivamente y concluye que la evaluación doble ciega:

1) hace que las revisiones sean más exigentes.

2) iguala las evaluaciones de artículos liderados por mujeres, por personas cuya lengua materna no es el inglés o de científicos de países con menores índices de desarrollo humano.

Copio aquí una de las figuras del estudio:

Fuente: https://doi.org/10.1111/1365-2435.14259


Como dicen aquí, harán falta más estudios como este para confirmar los hallazgos, pero son resultados muy importantes que alertan de los sesgos en los que incurrimos al evaluar el trabajo de los demás,

hasta pronto,

Bruno



9 de marzo de 2023

instalación de slurm en servidor multi-core Debian

Hola,

hace un tiempo explicaba aquí cómo montar grid-engine en Debian para gestionar trabajos paralelos en un servidor multicore. Como he tenido algunos problemas he probado slurm, que está activamente desarrollado y documentado. 

 GitHub - SupreethRao99/slurmy: template scripts and notes for using SLURM  on Nvidia DGX GPU cluster

En concreto lo he hecho sobre un servidor Debian 11. Si vienes de otros sistemas, como LSF, tendrás que convertir tus comandos con tablas como ésta. Los pasos que he seguido los he adaptado de aquí:

sudo apt install slurmd slurmctld -y
sudo chmod 777 /etc/slurm

# creo fichero de configuración /etc/slurm/slurm.conf,
# tendrás que adaptar CPUs= y RealMemory= al final ,
# en mi caso he definido "16 nodos"

sudo cat << EOF > /etc/slurm/slurm.conf
# See the slurm.conf man page for more information.
#
ClusterName=localcluster
SlurmctldHost=localhost
MpiDefault=none
ProctrackType=proctrack/linuxproc
ReturnToService=2
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
SlurmdPort=6818
SlurmdSpoolDir=/var/lib/slurm/slurmd
SlurmUser=slurm
StateSaveLocation=/var/lib/slurm/slurmctld
SwitchType=switch/none
TaskPlugin=task/none
#
# TIMERS
InactiveLimit=0
KillWait=30
MinJobAge=300
SlurmctldTimeout=120
SlurmdTimeout=300
Waittime=0
# SCHEDULING
SchedulerType=sched/backfill
SelectType=select/cons_tres
SelectTypeParameters=CR_Core
#
#AccountingStoragePort=
AccountingStorageType=accounting_storage/none
JobCompType=jobcomp/none
JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurm/slurmctld.log
SlurmdDebug=info
SlurmdLogFile=/var/log/slurm/slurmd.log
#
# COMPUTE NODES
NodeName=localhost CPUs=16 RealMemory=200 State=UNKNOWN
PartitionName=LocalQ Nodes=ALL Default=YES MaxTime=INFINITE State=UP
EOF

# iniciamos el gestor
sudo chmod 755 /etc/slurm
sudo systemctl start slurmctld
sudo systemctl start slurmd

# probamos el cluster
sinfo
sbatch --wrap=date
cat slurm-1.out 

PD Para ver las propiedades de tu nuevo "cluster" puedes probar:

scontrol show node

Hasta pronto, 

Bruno