Nordic Microalgae is an online platform providing high-quality images, illustrations, and detailed information about aquatic microalgae and related organisms in the Nordic region, including phytoplankton, microzooplankton, and benthic microalgae (Torstensson et al. 2024). It features a comprehensive species checklist, up-to-date taxonomic data linked to WoRMS and AlgaeBase, and supplementary resources such as biovolume lists and occurrence maps. Established in 1996 and supported by long-term funding from the Swedish Research Council through the Swedish Biodiversity Data Infrastructure (SBDI).
All data on Nordic Microalgae is accessible through our API. Below are examples demonstrating how to extract data using the SHARK4R package.
A complete Nordic Microalgae taxa list can be retrieved through the API.
## # A tibble: 6,867 × 5
## scientific_name authority rank slug nua_url
## <chr> <chr> <chr> <chr> <chr>
## 1 Abollifer Vørs, 1992 Genus abol… https:…
## 2 Abollifer prolabens Vørs, 1992 Spec… abol… https:…
## 3 Acanthoceras Honigm., 1910 Genus acan… https:…
## 4 Acanthoceras zachariasii (Brun) Simonsen, 1979 Spec… acan… https:…
## 5 Acanthocerataceae Round, Crawford & Mann, 1990 Fami… acan… https:…
## 6 Acanthocorbis S.Hara & E.Takahashi, 1984 Genus acan… https:…
## 7 Acanthocorbis apoda (Leadbeater) Hara & Takahashi,… Spec… acan… https:…
## 8 Acanthocorbis asymmetrica (Thomsen) Hara & Takahashi, 19… Spec… acan… https:…
## 9 Acanthocorbis campanula (Espeland) Thomsen, 1991 Spec… acan… https:…
## 10 Acanthocorbis haurakiana Thomsen, 1991 Spec… acan… https:…
## # ℹ 6,857 more rows
The full taxonomic information can be accessed as an unparsed list by
enabling the unparsed parameter.
Each taxon sheet on Nordic Microalgae contains facts, such as links to external webpages (e.g. AlgaeBase, WoRMS and Dyntaxa). These links can be retrieved through the API.
# Randomly select 10 taxa from shark_taxon$scientific_name
slugs <- sample(taxa$slug, size = 10)
# Get external links
external_links <- get_nua_external_links(slugs,
verbose = FALSE,
unparsed = FALSE)
# Print list
print(external_links)## # A tibble: 62 × 6
## slug provider label external_id external_url collection
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 rhodomonas-chrysoidea AlgaeBase AlgaeBase 47293 https://www… External …
## 2 rhodomonas-chrysoidea Dyntaxa Dyntaxa 238067 https://art… External …
## 3 rhodomonas-chrysoidea ENA ENA 254933 https://www… External …
## 4 rhodomonas-chrysoidea GBIF GBIF 5424004 https://www… External …
## 5 rhodomonas-chrysoidea NCBI NCBI 254933 https://www… External …
## 6 rhodomonas-chrysoidea WoRMS WoRMS 573969 https://www… External …
## 7 rhodomonas-chrysoidea PR2 PR2: Rho… Rhodomonas… https://app… External …
## 8 sphaerospermopsis AlgaeBase AlgaeBase 51097 https://www… External …
## 9 sphaerospermopsis Dyntaxa Dyntaxa 1016290 https://art… External …
## 10 sphaerospermopsis ENA ENA 752201 https://www… External …
## # ℹ 52 more rows
The full list of facts can be accessed as an unparsed list by setting
the unparsed parameter to TRUE.
Taxa listed in the IOC-UNESCO Taxonomic Reference List of Harmful Microalgae contain information about harmfulness. This information can be retrieved through the API.
# Get external links
harmfulness <- get_nua_harmfulness(c("dinophysis-acuta",
"alexandrium-ostenfeldii"),
verbose = FALSE)
# Print list
print(harmfulness)## # A tibble: 11 × 6
## slug provider label external_id external_url collection
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 dinophysis-acuta IOC IOC H… 109604 https://www… Harmful a…
## 2 dinophysis-acuta IOC-UNESCO IOC-U… 6 https://tox… Harmful a…
## 3 dinophysis-acuta IOC-UNESCO IOC-U… 1 https://tox… Harmful a…
## 4 dinophysis-acuta IOC-UNESCO IOC-U… 5 https://tox… Harmful a…
## 5 alexandrium-ostenfeldii IOC IOC H… 109712 https://www… Harmful a…
## 6 alexandrium-ostenfeldii IOC-UNESCO IOC-U… 464 https://tox… Harmful a…
## 7 alexandrium-ostenfeldii IOC-UNESCO IOC-U… 463 https://tox… Harmful a…
## 8 alexandrium-ostenfeldii IOC-UNESCO IOC-U… 462 https://tox… Harmful a…
## 9 alexandrium-ostenfeldii IOC-UNESCO IOC-U… 12 https://tox… Harmful a…
## 10 alexandrium-ostenfeldii IOC-UNESCO IOC-U… 15 https://tox… Harmful a…
## 11 alexandrium-ostenfeldii IOC-UNESCO IOC-U… 17 https://tox… Harmful a…
Links to all images present on Nordic Microalgae can be retrieved through the API. The images are available in four sizes: original (o), small (s), medium (m), and large (l).
## # A tibble: 2,424 × 10
## slug image_l_url image_o_url image_s_url image_m_url contributor
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 <NA> https://no… https://no… https://no… https://no… Per Wilhel…
## 2 odontella-sinens… https://no… https://no… https://no… https://no… Ann-Turi S…
## 3 odontella-aurita https://no… https://no… https://no… https://no… Ann-Turi S…
## 4 octactis-speculum https://no… https://no… https://no… https://no… SMHI
## 5 lennoxia-faveola… https://no… https://no… https://no… https://no… Maria Karl…
## 6 <NA> https://no… https://no… https://no… https://no… Per Wilhel…
## 7 <NA> https://no… https://no… https://no… https://no… Per Wilhel…
## 8 <NA> https://no… https://no… https://no… https://no… Per Wilhel…
## 9 <NA> https://no… https://no… https://no… https://no… Per Wilhel…
## 10 <NA> https://no… https://no… https://no… https://no… Per Wilhel…
## # ℹ 2,414 more rows
## # ℹ 4 more variables: photographer_artist <chr>, copyright_holder <chr>,
## # license <chr>, galleries <chr>
Complete media information can be retrieved as an unparsed list by
setting the unparsed parameter to TRUE.
Detailed metadata for all media items on Nordic Microalgae can be retrieved through the API. This includes information such as location, sampling date, geographic coordinates, imaging technique, and contributor details.
# Get all media metadata
media_metadata <- get_nua_media_metadata(unparsed = FALSE)
# Print list
print(media_metadata)## # A tibble: 2,424 × 26
## slug taxon_slug scientific_name file type title caption license location
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 stigfj… <NA> <NA> stig… imag… Stig… "Taken… Creati… Stigfjo…
## 2 odonte… odontella… Odontella sine… odon… imag… Odon… "O. si… Creati… Kosterf…
## 3 odonte… odontella… Odontella auri… odon… imag… Odon… "Live … Creati… Havsten…
## 4 octact… octactis-… Octactis specu… octa… imag… Octa… "Two c… Creati… Danafjo…
## 5 lennox… lennoxia-… Lennoxia faveo… lenn… imag… Lenn… "" Creati… Danafjo…
## 6 bolmen… <NA> <NA> bolm… imag… Bolm… "Taken… Creati… Bolmen,…
## 7 bolmen… <NA> <NA> bolm… imag… Bolm… "Taken… Creati… Bolmen,…
## 8 bolmen… <NA> <NA> bolm… imag… Bolm… "Taken… Creati… Bolmen,…
## 9 hassle… <NA> <NA> hass… imag… Hass… "Taken… Creati… Hasslem…
## 10 hassle… <NA> <NA> hass… imag… Hass… "Taken… Creati… Hasslem…
## # ℹ 2,414 more rows
## # ℹ 17 more variables: contributor <chr>, photographer_artist <chr>,
## # copyright_holder <chr>, copyright_stamp <chr>, galleries <chr>,
## # technique <list>, contrast_enhancement <list>, preservation <list>,
## # stain <list>, sampling_date <chr>, geographic_area <chr>,
## # latitude_degree <chr>, longitude_degree <chr>, institute <chr>,
## # contributing_organisation <chr>, created_at <chr>, updated_at <chr>
Nordic Microalgae hosts images from automated imaging instruments
(e.g., IFCB) used for image labeling. Links to these images can be
retrieved through the API, similar to
get_nua_media_links().
# Get all image labeling media links
il_links <- get_nua_image_labeling_links(unparsed = FALSE)
# Print list
print(il_links)## # A tibble: 796 × 10
## slug image_l_url image_o_url image_s_url image_m_url contributor
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 tripos-muelleri https://nord… https://no… https://no… https://no… Anders Tor…
## 2 tripos-muelleri https://nord… https://no… https://no… https://no… Anders Tor…
## 3 tripos-muelleri https://nord… https://no… https://no… https://no… Anders Tor…
## 4 tripos-muelleri https://nord… https://no… https://no… https://no… Anders Tor…
## 5 tripos-muelleri https://nord… https://no… https://no… https://no… Anders Tor…
## 6 tripos-lineatus https://nord… https://no… https://no… https://no… Anders Tor…
## 7 tripos-lineatus https://nord… https://no… https://no… https://no… Anders Tor…
## 8 tripos-lineatus https://nord… https://no… https://no… https://no… Anders Tor…
## 9 tripos-lineatus https://nord… https://no… https://no… https://no… Anders Tor…
## 10 tripos-lineatus https://nord… https://no… https://no… https://no… Anders Tor…
## # ℹ 786 more rows
## # ℹ 4 more variables: copyright_holder <chr>, license <chr>,
## # imaging_instrument <chr>, priority <int>
Detailed metadata for automated imaging images can be retrieved through the API. This includes information about the imaging instrument, training dataset, location, and taxonomic details.
# Get all image labeling metadata
il_metadata <- get_nua_image_labeling_metadata(unparsed = FALSE)
# Print list
print(il_metadata)## # A tibble: 796 × 22
## slug taxon_slug scientific_name file type title caption license location
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 tripos… tripos-mu… Tripos muelleri trip… imag… Trip… "" Creati… Tångesu…
## 2 tripos… tripos-mu… Tripos muelleri trip… imag… Trip… "" Creati… Tångesu…
## 3 tripos… tripos-mu… Tripos muelleri trip… imag… Trip… "" Creati… Tångesu…
## 4 tripos… tripos-mu… Tripos muelleri trip… imag… Trip… "" Creati… Tångesu…
## 5 tripos… tripos-mu… Tripos muelleri trip… imag… Trip… "" Creati… Tångesu…
## 6 tripos… tripos-li… Tripos lineatus trip… imag… Trip… "" Creati… Tångesu…
## 7 tripos… tripos-li… Tripos lineatus trip… imag… Trip… "" Creati… Tångesu…
## 8 tripos… tripos-li… Tripos lineatus trip… imag… Trip… "" Creati… Tångesu…
## 9 tripos… tripos-li… Tripos lineatus trip… imag… Trip… "" Creati… Tångesu…
## 10 tripos… tripos-li… Tripos lineatus trip… imag… Trip… "" Creati… Tångesu…
## # ℹ 786 more rows
## # ℹ 13 more variables: contributor <chr>, copyright_holder <chr>,
## # imaging_instrument <chr>, training_dataset <chr>, sampling_date <lgl>,
## # geographic_area <chr>, latitude_degree <chr>, longitude_degree <chr>,
## # institute <chr>, contributing_organisation <chr>, priority <int>,
## # created_at <chr>, updated_at <chr>
To standardize phytoplankton monitoring efforts in the Baltic Sea,
Skagerrak, and the North Sea, various lists containing size class
information for each taxon have been established. These lists can be
retrieved directly in R using SHARK4R:
## Reading PEG biovolume Excel file for year: 2025
## # A tibble: 3,527 × 36
## Division Class Order Genus Species SFLAG STAGE Author AphiaID AphiaID_link
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
## 1 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> West … 146563 http://www.…
## 2 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> West … 146563 http://www.…
## 3 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> West … 146563 http://www.…
## 4 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> West … 146563 http://www.…
## 5 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> West … 146563 http://www.…
## 6 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> West … 146563 http://www.…
## 7 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> West … 146563 http://www.…
## 8 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> W. & … 146564 http://www.…
## 9 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> W. & … 146564 http://www.…
## 10 CYANOBACTE… Cyan… CHRO… Apha… Aphano… <NA> <NA> W. & … 146564 http://www.…
## # ℹ 3,517 more rows
## # ℹ 26 more variables: Trophy <chr>, Geometric_shape <chr>, FORMULA <chr>,
## # SizeClassNo <dbl>, Nonvalid_SIZCL <lgl>, Not_accepted_name <lgl>,
## # Unit <chr>, SizeRange <chr>, `Length(l1)µm` <dbl>, `Length(l2)µm` <dbl>,
## # `Width(w)µm` <dbl>, `Height(h)µm` <dbl>, `Diameter(d1)µm` <dbl>,
## # `Diameter(d2)µm` <dbl>, `No_of_cells/counting_unit` <dbl>,
## # `Calculated_volume_µm3 (with formula) - NOT IMPORTED, NOT handled by ICES` <dbl>, …
## File for year 2026 not available. Trying previous year...
## File for year 2025 downloaded and cached.
## # A tibble: 3,852 × 39
## List `HELCOM area` `OSPAR area` Division Class Order Genus Species SFLAG
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 2 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 3 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 4 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 5 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 6 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 7 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 8 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 9 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## 10 PEG_BVOL… x <NA> CYANOBA… Cyan… CHRO… Apha… Aphano… <NA>
## # ℹ 3,842 more rows
## # ℹ 30 more variables: STAGE <chr>, Author <chr>, AphiaID <dbl>,
## # AphiaID_link <chr>, Trophy <chr>, Geometric_shape <chr>, FORMULA <chr>,
## # SizeClassNo <dbl>, Nonvalid_SIZCL <lgl>, Not_accepted_name <chr>,
## # Unit <chr>, SizeRange <chr>, `Length(l1)µm` <dbl>, `Length(l2)µm` <dbl>,
## # `Width(w)µm` <dbl>, `Height(h)µm` <dbl>, `Diameter(d1)µm` <dbl>,
## # `Diameter(d2)µm` <dbl>, `No_of_cells/counting_unit` <dbl>, …
Please note that SHARK4R also includes a useful function
for reading exported Plankton
Toolbox data files: read_ptbx().
## To cite package 'SHARK4R' in publications use:
##
## Lindh, M. and Torstensson, A. (2026). SHARK4R: Accessing and
## Validating Marine Environmental Data from 'SHARK' and Related
## Databases. R package version 1.1.0.
## https://CRAN.R-project.org/package=SHARK4R
##
## A BibTeX entry for LaTeX users is
##
## @Manual{,
## title = {SHARK4R: Accessing and Validating Marine Environmental Data from 'SHARK' and Related Databases},
## author = {Markus Lindh and Anders Torstensson},
## year = {2026},
## note = {R package version 1.1.0},
## url = {https://CRAN.R-project.org/package=SHARK4R},
## }