Software
Tools we build and maintain for the community
CoDa Stereo
CoDa Stereo is an open-source Shiny application that brings the Aitchison geometry to the daily workflow of stereological and histomorphometric studies — fields where measurements are naturally compositional (proportions of tissue types, cell-line fractions, organelle volume densities) and therefore must be analysed with the appropriate log-ratio methods rather than off-the-shelf parametric tools.
The app implements the full PPDAC cycle (Problem → Plan → Data → Analysis → Conclusion) so that students and collaborators without a strong statistical background can move from a raw spreadsheet to a defensible permutational MANOVA with diagnostics, pairwise post-hoc tests, and publication-ready plots — all in the browser.
Features
| Module | Capabilities |
|---|---|
| Data upload | CSV and Excel (.xlsx/.xls) with sheet selector; smart parts selector that auto-excludes ID columns |
| Data inspection | Zero/NA heatmap (observed zero vs. structural zero vs. missing); naniar::vis_miss plot; counts per part |
| Zero handling | Three methods via zCompositions (CZM, multRepl, lrEM); NA handling via listwise deletion or geometric-mean imputation |
| Compositional analysis | Manual ternary plot (pure ggplot2, no ggtern dependency); amalgamation of D > 3 parts into 3 groups; clr-PCA biplot via FactoMineR + factoextra |
| Statistical modelling | Factorial permutational MANOVA via RRPP::lm.rrpp; pairwise post-hoc via RRPP::pairwise; residual diagnostics; formula preview before fitting |
| Downloads | Ternary and biplot as PDF; imputed data as CSV; ANOVA and pairwise tables as CSV |
Why CoDa Stereo
Stereological datasets are routinely analysed as if cell-fraction or tissue-fraction percentages were independent variables — they’re not. The unit-sum constraint induces spurious correlations and false significance in standard MANOVA. CoDa Stereo handles the geometry correctly throughout, without requiring users to write log-ratio transforms by hand.
Use it now (no install)
The recommended way to use CoDa Stereo is to open it directly in your browser — the app is hosted on Posit Connect Cloud (free tier), so there’s nothing to install:
019dde61-4363-e3fa-b788-13ddfa456c0b.share.connect.posit.cloud
Run locally (optional)
If you’d rather run the app on your own machine — useful for sensitive data, offline work, or customisation — install from GitHub:
# install.packages("devtools")
devtools::install_github("diogoprov/CoDaStereo")
CoDaStereo::run_app()See the README for full deployment notes (including how to re-deploy to your own Posit Connect Cloud account).
Citation
CoDa Stereo was developed as supplementary material for:
Provete, D.B., Severgnini, M.R., Fernandes, C.E., Franco-Belussi, L. (2026). A practical guide to compositional data analysis in tissue stereology and blood cell profile. Physiological Reports (in review). Preprint on Research Square.
The companion paper covers the methodological rationale, simulations comparing CoDa with naïve approaches, and worked examples.
A CITATION.cff and BibTeX snippets are available on the repository.
The INPI registration records authorship and the date the source code existed in a given form — it is the Brazilian equivalent of a software copyright deposit, and it does not restrict use. The app is released under the MIT licence: you may use, modify and redistribute it, including commercially, provided the copyright notice is kept.
Issues, feedback, and contributions
Bug reports, feature requests, and pull requests are very welcome on GitHub Issues. PRs should target the dev branch.
BirdNET Validation Sampler
BirdNET Validation Sampler turns the raw output of a BirdNET custom classifier into a set of audio clips that a person can realistically sit down and validate — the step that decides whether a classifier’s detections mean anything in a passive acoustic monitoring study.
The pipeline selects high-confidence predictions, applies an explicit sampling design (alternate nights, balanced quotas per species, restricted time windows), and extracts reproducible .wav clips. After the manual review, it returns precision-by-confidence metrics, suggested confidence thresholds, presence/absence tables by night, and the clip lists needed to retrain the classifier.
It was developed for the FrogNet project, which monitors frog vocalisations in the Pantanal and Cerrado, but works with the output of any BirdNET custom classifier.
crywolf
crywolf fits Bayesian single-season occupancy models that correct for the false positives produced by automated detectors, such as acoustic classifiers. It implements the multiple-methods site-confirmation design of Miller et al. (2011), in which a subset of detections is verified and treated as certain, with the false-positive rate either constant or varying with site covariates.
Besides fitting the models, the package provides simulation tools and calibration checks — credible-interval coverage and guidance on how many detections need to be verified — so the design can be evaluated before going to the field. It pairs naturally with the BirdNET Validation Sampler above: the sampler produces the verified detections, crywolf uses them to correct the occupancy estimates.
# cmdstanr is distributed through the Stan r-universe
install.packages("cmdstanr", repos = c("https://stan-dev.r-universe.dev", getOption("repos")))
cmdstanr::install_cmdstan()
remotes::install_github("diogoprov/crywolf")To cite the package, use citation("crywolf"), together with the paper describing the model: Miller, D. A., et al. (2011) Ecology 92: 1422–1428, doi:10.1890/10-1396.1.
Authors: Diogo B. Provete (maintainer), Liliana Piatti, Tessa Rhinehart and Larissa Sayuri Moreira Sugai.
Introdução à Linguagem R — swirl lessons
A course for swirl, the R package that turns the console into an interactive tutor: it asks a question, the student types real R code, and swirl checks the answer and gives a hint when it is wrong. swirl has a long list of community courses, but until now none written in Portuguese for ecologists. I have also translated the whole Regression Models course (13 lessons) and three lessons of R Programming, and contributed them as pull requests to the community project swirl-Br.
The lessons follow the graduate course Introdução à Linguagem R (PPGEC/UFMS) and use the same real, published dataset as the practical classes: thermal tolerance of Atlantic Forest frogs along two elevational gradients (Bovo et al. 2023).
| Lesson | Class | Topics |
|---|---|---|
| Primeiros Passos | 01 | R as a calculator, assignment, coercion, reading and inspecting data, table(), missing values, packages |
| Curadoria de Dados | 02 | auditing a deliberately bad spreadsheet and a published file: file naming, header out of place, column types, inconsistent categories, duplicates, date formats, missing-value codes, stored derived columns, site-level variables and metadata |
| Manuseio de Dados com dplyr | 04 | the pipe (\|> and %>%), rename(), select(), mutate(), filter(), group_by() + summarise(), count() |
| Modelos Lineares | 06 | the PPDAC cycle: sampling design, exploration, lm(), diagnostics with plot() and performance, interpretation with anova() and broom |
| Rudimentos de Programação | 07 | writing functions, default arguments, scope, if/ifelse/for, functional programming with purrr::map, one model per species with split() + map() and broom |
Answers are checked by their result, not by how they are written, so both pipes, summarise() or summarize(), and arguments in any order are accepted.
install.packages("swirl")
library(swirl)
select_language("portuguese", append_rprofile = TRUE)
install_course_url("https://github.com/diogoprov/Introducao_a_Linguagem_R/zipball/main")
swirl()ecodados
ecodados is the companion R package to Análises Ecológicas no R (da Silva, Gonçalves-Souza, Paterno, Provete & Vancine, 2022), a 640-page open textbook that teaches the full workflow of ecological data analysis in R — from data organisation and visualisation to multivariate analysis, spatial ecology and phylogenetic comparative methods.
The package ships the datasets used across the book’s chapters, so every example in the text can be reproduced with a single library(ecodados) instead of hunting for files. It is what makes the book runnable rather than merely readable.
In 2026, Análises Ecológicas no R received the SORTEE Commendation Award from the Society for Open, Reliable, and Transparent Ecology and Evolutionary Biology, which recognises projects that promote open, transparent and reliable research practices in ecology and evolution.
The book is freely available online and has become a standard reference for teaching ecological data analysis in Portuguese-speaking universities.
Gustavo B. Paterno, Diogo B. Provete, Fernando R. da Silva, Thiago Gonçalves-Souza and Maurício H. Vancine.
Bayesian false-positive occupancy models for data from automated detectors