knitr::opts_chunk$set(eval = TRUE, echo = TRUE, message = FALSE, warning = FALSE, tidy = FALSE, cache = FALSE, include = TRUE, dpi = 72, fig.width = 9, fig.height = 6, fig.align = "center", results = "markup")
library(knitr)
options(knitr.kable.NA = "")

## tidy up column names a bit
prettier <- function(z, first_to_capital = TRUE) {
  z <- gsub("_", " ", z)
  if (first_to_capital) z <- paste0(toupper(substr(z, 1, 1)), substr(z, 2, nchar(z)))
  z
}

Overview

This R package provides access to the SCAR Southern Ocean Diet and Energetics Database, and some tools for working with these data. For more information about the database see http://data.aad.gov.au/trophic/.

Installing

install.packages("devtools")
library(devtools)
install_github("SCAR/sohungry")

Usage

Basic usage: load the desired dataset using so_isotopes(), so_energetics(), so_lipids(), so_dna_diet(), or so_diet().

Examples

library(sohungry)
library(dplyr)
library(tidyr)
library(ggplot2)

Isotopes

Load the stable isotope data, in measurement-value format (one row per measurement):

xi <- so_isotopes(format = "mv")

Filter to taxon of interest, selecting d13C and d15N records:

xi %>% dplyr::filter(taxon_name == "Electrona carlsbergi" & measurement_name %in% c("delta_13C", "delta_15N"))

Diet

Load the diet data (stomach content analyses and similar):

x <- so_diet()

A summary of what Electrona carlsbergi eats:

x %>% filter_by_predator_name("Electrona carlsbergi") %>% diet_summary(summary_type = "prey")
temp <- x %>% filter_by_predator_name("Electrona carlsbergi") %>% diet_summary(summary_type = "prey")
kable(temp, col.names = prettier(names(temp)), digits = 2)

And what eats Electrona carlsbergi:

x %>% filter_by_prey_name("Electrona carlsbergi") %>% diet_summary(summary_type = "predators")
temp <- x %>% filter_by_prey_name("Electrona carlsbergi") %>% diet_summary(summary_type = "predators")
kable(temp, col.names = prettier(names(temp)), digits = 2)

Energetics

xe <- so_energetics()

Select all single-individual records of Electrona antarctica:

edx <- xe %>% dplyr::filter(taxon_sample_count == 1 & taxon_name == "Electrona antarctica")

## discard the dry-weight energy density values
edx <- edx %>% dplyr::filter(measurement_units != "kJ/gDW")

## some data manipulation
edx <- edx %>%
  ## remove the spaces from the measurement names, for convenience
  mutate(measurement_name = gsub("[[:space:]]+", "_", measurement_name)) %>%
  ## convert to wide format
  dplyr::select(source_id, taxon_sample_id, measurement_name, measurement_mean_value) %>%
  tidyr::spread(measurement_name, measurement_mean_value)

## what does this look like?
edx

Plot the wet weight against wet-weight energy density:

p <- ggplot(edx, aes(wet_weight, energy_content))+geom_point()+theme_bw()+
  labs(x = "Wet weight (g)", y = "Energy density (kJ/g wet weight)")
plot(p)

Fit an allometric equation:

fit <- lm(log(energy_content)~log(wet_weight), data = edx)
px <- tibble(wet_weight = seq(from = min(edx$wet_weight), to = max(edx$wet_weight), length.out = 51))
px$energy_content <- exp(predict(fit, newdata = px))
p+geom_path(data = px, colour = "dodgerblue")

Lipids and fatty acids

xl <- so_lipids()

Select lipid-class data from Connan et al. (2007), and plot similar to Figure 2 from that paper:

xl <- xl %>% dplyr::filter(source_id == 126 & measurement_class == "lipid class") %>%
  mutate(measurement_name = sub(" content", "", measurement_name)) ## tidy the names a little

ggplot(xl,
  aes(measurement_name, measurement_mean_value, fill = taxon_life_stage, group = taxon_life_stage))+
  geom_col(position = "dodge")+theme_bw()+
  labs(x = "Lipid class", y = "Percentage of lipids")


SCAR/sohungry documentation built on Nov. 2, 2023, 4:19 p.m.