María Mercedes Nicolosi Gelis, Belén Sathicq, Joaquín Cochero

DiaThor calculates several diatom-based indices commonly used for water quality assesment, directly from your species’ data


The package calculates multiple biotic indices using diatoms from environmental samples. Diatom species are recognized by their species’ name using a heuristic search, and their ecological data is retrieved from multiple sources.

Morphological information about the species is retrieved from the ‘Diat.Barcode’ project:

Size class classification is obtained from:

Guild classification is obtained from:

The combined classification of size classes and guilds is obtained from:

Ecological preferences are obtained form:

Diversity index (Shannons H’) is calculated using the vegan package, following:

Species tolerance and their ecological information to calculate each biotic index is retrieved from their original sources:

Sample data included in the package is taken from:


You can install the released version of diathor from CRAN with:


And the development version from GitHub with:

# install.packages("devtools")


To demonstrate the most common use of DiaThor, the package includes sample data with the abundance of 164 diatom species in 108 sampled sites (Nicolosi Gelis et al., 2020).

Install the package and load it into the R environment

> install.packages("diathor")
> library(diathor)

Load the internally included sample data

> data("diat_sampleData")

Run diaThorAll to get all the outputs from the sample data with the default settings, and store the results into the “results” object, to also retain the output within R

> results <- diaThorAll(diat_sampleData) #If the sample data was used

Note: The package will request the Input file an Output folder through a dialog box

[1] "Select Input file"
[1] "Select Results folder"

After the Results folder is selected, all the calculations conducted will be shown in the console

Optionally, run each individual function with the results of the diat_loadData() function, for instance:

> loadedData <- diat_loadData() # load data with the diat_loadData() function
> results <- diat_ips(loadedData ) # use the diat_ips() function to calculate the IPS index with the loaded data

CRAN vs. GitHub package

The package available in the CRAN repository does not automatically update the internal diatom database from the ‘Diat.Barcode’ project. It uses the internal version of such database, which is currently v.9.0 published on 14-09-2020

The GitHub version of the package will update to the most recent database, if it is different to the current internal version.