Ondrej Mottl 🌿💻📈🌍⏳
banner
ondrejmottl.bsky.social
Ondrej Mottl 🌿💻📈🌍⏳
@ondrejmottl.bsky.social

Assistant Professor at the Department of Botany🌿 , Charles University.
Head of Laboratory of Quantitative Ecology (bit.ly/CUNI_QuantitativeEcology)
with a main focus on #communityecology 🏞️, #palaeoecology 🕰️, and interest in #datascience 💻. .. more

Environmental science 30%
Biology 28%
Pinned
1/🧵 Paper out! 🎉🌿🔒
VegVault is now published in Nature Scientific Data: a global database linking palaeo + modern vegetation with traits + climate/soil drivers.
🌐website: bit.ly/VegVault
📜paper: doi.org/10.1038/s415...

#VegVault #Ecology #Paleoecology #Vegetation #FunctionalTraits

Reposted by Ondřej Mottl

📢 Postdoc opening in avian biogeography & macroecology (Olomouc, CZ)
Vladimír Remeš (excellent scientist and mentor) is hiring a postdoc to study bird diversity across biomes, linking species pools, traits, climate & history using big data, fieldwork, and modelling.
🔗 pracuj.upol.cz/nc/zprava/cl...

That was the next thing I have done. My application for accessing HPC has just been accepted😉 In CZ, we have #MetaCentrum - a cluster of more than 35000 (!) CPUs...that should do the trick

I am having issue fitting some large #JSDM with #RStats due to the fact my PC does not enough #RAM (2*32GB DDR5). I thought I will just buy 2 more (have the slots for it)...check the prices... nevermind...

I have just finished my course on reproducibility in science (#CUNI-SPROuT) but there are some cool ideas to try in the next run👇

Have you tried radian?

Is it a good one? I was checking it out earlier and was to sure if to dive in (as it seems to be still in alpha/beta).
"Ten simple rules for teaching data science": arxiv.org/abs/2602.02874

A new preprint by @minecr.bsky.social and myself. We'd love any feedback!
Ten simple rules for teaching data science
Teaching data science presents unique challenges and opportunities that cannot be fully addressed by simply borrowing pedagogical strategies from its parent disciplines of statistics and computer scie...
arxiv.org

The more I do teach #RStats, the more I think it is a blessing and a course at the same time.
One of my favorite parts of R is that there are many paths to the same result. A simple task can be written with a for loop, the apply family, purrr, vectorized base R, or even Rcpp. The real skill isn’t memorizing syntax—it’s knowing when to choose each option. #RStats

Reposted by Ondřej Mottl

One of my favorite parts of R is that there are many paths to the same result. A simple task can be written with a for loop, the apply family, purrr, vectorized base R, or even Rcpp. The real skill isn’t memorizing syntax—it’s knowing when to choose each option. #RStats

I am always amazed by the amount of useful tools that R can provide. Truly a multipurpose programming language!
#RStats
Took me way too long to realize that its super easy to just merge pdfs in R rather than fussing with Adobe #rstats

library(pdftools)
pdf_combine(
input = c("file1.pdf", "file2.pdf"),
output = "merged.pdf"
)

Reposted by Ondřej Mottl

Took me way too long to realize that its super easy to just merge pdfs in R rather than fussing with Adobe #rstats

library(pdftools)
pdf_combine(
input = c("file1.pdf", "file2.pdf"),
output = "merged.pdf"
)

This is such a cool idea! I am sorting custom functions into folders but this allows me to do it in env as well!
👏👏👏
I genuinely had no idea #rstats technically has a module system.

my_module <- new.env()
source("helpers.R", local = my_module)

my_module$add(1, 2)

Reposted by Ondřej Mottl

I genuinely had no idea #rstats technically has a module system.

my_module <- new.env()
source("helpers.R", local = my_module)

my_module$add(1, 2)

Reposted by Ondřej Mottl

Me, explaining my R script with Base R, data.table and tidyverse code. #rstats

This is huge!
#gllvm can now handle multiple response types at the same time (different data types for different species; presence-absence and counts, or counts and overdispersed counts, counts and biomass, ..., for example), thanks to a massive coding exercise by Jenni Niku!

Reposted by Ondřej Mottl

#gllvm can now handle multiple response types at the same time (different data types for different species; presence-absence and counts, or counts and overdispersed counts, counts and biomass, ..., for example), thanks to a massive coding exercise by Jenni Niku!

🤯🤯🤯
But sometimes that's not an option. For example, if the plot was created through a function in another package that you can't easily edit. Instead, we can update values stored in the plot object. (Another reason to save your ggplot2 charts as variables instead of just printing the output!)

Reposted by Ondřej Mottl

But sometimes that's not an option. For example, if the plot was created through a function in another package that you can't easily edit. Instead, we can update values stored in the plot object. (Another reason to save your ggplot2 charts as variables instead of just printing the output!)

?
```{r}
purrr::map2(.x=list(data1, data2), .y=c("table 1", "table 2"), .f= ~ tinytable::tt(.x, cap= .y))
```
I would assume that this will make 2 tables with headings

Maybe it is an overkill. What about just purrr::map into some tinytable::tt()? There is argument 'cap' for header

Metaprogramming? Make a function (purrr::map) to produce the r chunk directly into quarto doc
stackoverflow.com/a/69538439
Create RMarkdown headers and code chunks in purrr
The following .Rmd is what I think should produce what I'm looking for: --- title: &quot;Untitled&quot; date: &quot;10/9/2021&quot; output: html_document --- ```{r setup, include=FALSE} knitr::
stackoverflow.com

Thanks for the note! The soil data is only available for contemporary data. Nevertheless, we thought that it is still worth incorporating.

My experience is that the transition from ECR to leadership role is scary. The sudden freedom and lack of guidance can be overwhelming. What helped me is to surround yourself with similar-minded people and continue doing collaborative work on each other's projects.

I am interested in how that might have happened. You store stuff only locally? No remote in your git setup?

10/🧵 Join us!

🔗 Explore the project: bit.ly/VegVault
🐛 Report bugs, suggest features, or let’s collaborate!

Open for feedback & ideas! 💡
a penguin is wrapped in a blanket with the words let 's work together above it
ALT: a penguin is wrapped in a blanket with the words let 's work together above it
media.tenor.com

9/🧵 Huge thanks to my amazing co-authors 🙌
🤝 Franka Gaiser
🤝 Irena Šímová @isimova.bsky.social
🤝 Suzette G. A. Flantua @suzetteflantua.bsky.social
#DreamTeam
Teamwork GIF
ALT: Teamwork GIF
media.tenor.com

8/🧵 Meet {vaultkeepr} 🔑🧙‍♂️
Your R interface to VegVault:
✅ no SQL
✅ filter by space/time/taxa/traits
✅ extract data and the citations you must include

#Rstats

🔗 ondrejmottl.github.io/VegVault/web...

7/🧵 Example vibes ✨
From tracking Picea across North America since the LGM to trait-based reconstructions (e.g. plant height) — the website includes worked examples you can copy/paste & adapt.

🔗 ondrejmottl.github.io/VegVault/web...

6/🧵 Abiotic linking 🌦️🪨

VegVault connects records to a spatio-temporal grid of climate/soil “gridpoints” — so you can pull drivers without painful raster wrangling.

🔗 ondrejmottl.github.io/VegVault/web...

5/🧵 Scale check 🤯🌍
480k datasets, >13M samples, >100k taxa + millions of trait values — spanning space and millennia. This is what “macro-ecology across time” should feel like 😎

🔗 ondrejmottl.github.io/VegVault/web...

#Global #Palaeobiology