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/.
Basic usage: load the desired dataset using
so_isotopes()
, so_energetics()
,
so_lipids()
, so_dna_diet()
, or
so_diet()
.
Load the stable isotope data, in measurement-value format (one row per measurement):
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"))
## # A tibble: 4 × 54
## record_id source_id original_record_id location west east south north
## <dbl> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 1663. 8 Raymond et al. RECORD_ID… Kerguel… 71.2 72.2 -49.3 -49.1
## 2 1663. 8 Raymond et al. RECORD_ID… Kerguel… 71.2 72.2 -49.3 -49.1
## 3 483. 12 Raymond et al. RECORD_ID… East of… 70.3 70.3 -49.4 -49.4
## 4 483. 12 Raymond et al. RECORD_ID… East of… 70.3 70.3 -49.4 -49.4
## # ℹ 46 more variables: observation_date_start <date>,
## # observation_date_end <date>, altitude_min <dbl>, altitude_max <dbl>,
## # depth_min <dbl>, depth_max <dbl>, taxon_name <chr>,
## # taxon_name_original <chr>, taxon_aphia_id <dbl>, taxon_worms_rank <chr>,
## # taxon_worms_kingdom <chr>, taxon_worms_phylum <chr>,
## # taxon_worms_class <chr>, taxon_worms_order <chr>, taxon_worms_family <chr>,
## # taxon_worms_genus <chr>, taxon_group_soki <chr>, …
Load the diet data (stomach content analyses and similar):
A summary of what Electrona carlsbergi eats:
Prey | N fraction diet by weight | Fraction diet by weight | N fraction occurrence | Fraction occurrence | N fraction diet by prey items | Fraction diet by prey items |
---|---|---|---|---|---|---|
Euphausia superba (Antarctic krill) | 0 | 1 | 0.02 | 2 | 0.00 | |
Amphipoda (amphipods) | 1 | 0.01 | 0 | 0 | ||
Arthropoda (arthropods) | 1 | 0.11 | 1 | 0.41 | 1 | 0.15 |
Chaetognatha (arrow worms) | 1 | 0.10 | 0 | 1 | 0.33 | |
Copepoda (copepods) | 1 | 0.04 | 11 | 0.05 | 32 | 0.05 |
Euphausiids (other krill) | 2 | 0.32 | 6 | 0.10 | 17 | 0.04 |
Fish | 1 | 0.12 | 0 | 1 | 0.00 | |
Gammaridea (gammarid amphipods) | 1 | 0.04 | 1 | 0.20 | 1 | 0.25 |
Hyperiidea (hyperiid amphipods) | 1 | 0.41 | 2 | 0.20 | 9 | 0.04 |
Salps | 0 | 1 | 0.20 | 4 | 0.05 | |
Uncategorized group | 2 | 0.38 | 2 | 0.41 | 1 | 0.60 |
And what eats Electrona carlsbergi:
Predator | N fraction diet by weight | Fraction diet by weight | N fraction occurrence | Fraction occurrence | N fraction diet by prey items | Fraction diet by prey items |
---|---|---|---|---|---|---|
Aptenodytes patagonicus (king penguin) | 1 | 0.07 | 10 | 0.24 | 2 | 0.00 |
Arctocephalus spp. (Antarctic and subantarctic fur seals) | 19 | 0.00 | 35 | 0.05 | 15 | 0.03 |
Champsocephalus gunnari (mackerel icefish) | 0 | 3 | 0.00 | 3 | 0.00 | |
Dissostichus spp. (toothfish) | 0 | 2 | 0.01 | 2 | 0.00 | |
Eudyptes chrysocome (rockhopper penguin) | 0 | 3 | 0.05 | 3 | 0.00 | |
Eudyptes chrysolophus (Macaroni penguin) | 0 | 1 | 0.06 | 0 | ||
Eudyptes schlegeli (royal penguin) | 1 | 0.10 | 4 | 0.20 | 4 | 0.01 |
Mirounga leonina (southern elephant seals) | 0 | 5 | 0.09 | 0 | ||
Pygoscelis papua (gentoo penguin) | 1 | 0.28 | 3 | 0.18 | 1 | 0.49 |
Diomedeidae (albatrosses) | 3 | 0.00 | 5 | 0.03 | 3 | 0.00 |
Ommastrephidae | 0 | 1 | 0.15 | 0 | ||
Onychoteuthidae | 1 | 0.07 | 1 | 0.15 | 1 | 0.04 |
Otariidae (eared seals) | 0 | 1 | 0.04 | 0 | ||
Phalacrocoracidae (cormorants) | 0 | 6 | 0.01 | 6 | 0.00 | |
Procellariidae (procellariid seabirds) | 13 | 0.01 | 29 | 0.08 | 23 | 0.00 |
Uncategorized group | 3 | 0.19 | 1 | 0.05 | 8 | 0.09 |
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
## # A tibble: 248 × 8
## source_id taxon_sample_id dry_weight energy_content standard_length
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 64 37 1.2 8.64 70
## 2 64 38 0.0067 5.34 15
## 3 64 39 0.00675 4.51 16
## 4 64 40 0.6 6.79 58
## 5 64 41 0.307 7.84 47
## 6 64 42 0.498 8.35 56
## 7 64 43 1.52 8.73 77
## 8 64 44 2.87 9.38 90
## 9 64 47 0.089 3.76 37
## 10 64 48 0.396 7.12 53
## # ℹ 238 more rows
## # ℹ 3 more variables: total_length <dbl>, water_content <dbl>, wet_weight <dbl>
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:
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")