This function searches the built-in table of CMSY++ priors for the FAO species items: the
resilience of the species and, where available, the prior range of r ("Prior r = ..., 95% CL
= ...", from the "Estimates based on models" section of the FishBase or SeaLifeBase species
page). The table works offline. Every row gives the sources of its values as links, so each
value can be checked online (open = TRUE opens the species pages):
- url
the FishBase or SeaLifeBase page of the species, which shows its resilience and prior r (or a search of the database when the species was not found);
- data_url
the table of the FishBase or SeaLifeBase release the value was read from (
estimatefor prior r,stocksfor resilience);- rule_url
the CMSY++ user guide, whose Tables 1 and 2 turn these values into the r range.
Arguments
- species
Optional names to search for: English, Chinese or scientific names, or FAO 3-alpha codes, or parts of them (e.g. "Atlantic cod", "Gadus morhua", "COD", "cod" or the Chinese name). Default is NULL, all rows.
- open
A logical value. If TRUE, the FishBase or SeaLifeBase pages of the rows found (at most 10) are opened in the browser. Default is FALSE.
- lang
The language of the
species_namecolumn: "en" (English), "zh" (Chinese) or "both". Default is NULL, the language set withfao_settings(). Thespecies_enandspecies_zhcolumns always give both names.
Details
Species can be given by their English or Chinese FAO name, both together as shown with
lang = "both" (e.g. "Chinese (English)"), scientific name, FishBase valid name or FAO 3-alpha
code. Each value is first matched exactly (ignoring case); otherwise every species whose names
contain it is returned.
The table was made from FishBase and SeaLifeBase release 26.06 for the species-level items of
the FAO capture statistics. Each FAO scientific name is looked up in FishBase (fishes) or
SeaLifeBase (other animals) as a valid species name, then as a synonym in the database's own
synonym table; ambiguous synonyms and genus, family or higher groups get no values. The
match_type column tells how each item was matched.
The r range given to CMSY++ follows its user guide (Froese et al. 2021):
the 95% confidence limits of FishBase's prior r when the species has one ("Alternatively and better, get the prior range of r from the section 'Estimates based on models'", user guide Table 1);
otherwise the range of the species' resilience (user guide Table 2): High 0.6-1.5, Medium 0.2-0.8, Low 0.05-0.5, Very low 0.015-0.1;
otherwise none: the user guide gives no default, so the prior has to come from the user (e.g. r close to 2 M or 2 Fmsy, user guide Table 1); see
priorsincmsy_input().
When FishBase lists several stocks of a species with different resilience, the value of its
species-wide stock (the first stock record, shown on the species page) is used and the other
values are given in resilience_note.
References
Froese, R., Demirel, N., Coro, G. and Winker, H. (2021). User Guide for CMSY++. GEOMAR, Germany, 17 pp. https://oceanrep.geomar.de/id/eprint/52147/
Froese, R. and Pauly, D. (Eds.) (2026). FishBase. Version (06/2026). https://www.fishbase.se
Palomares, M.L.D. and Pauly, D. (Eds.) (2026). SeaLifeBase. Version (06/2026). https://www.sealifebase.se
Examples
# By scientific name, English name or FAO 3-alpha code (Chinese names work as well)
cmsy_priors("Gadus morhua")
#> species_name alpha3 species_en species_zh scientific_name major_en database
#> 1 Atlantic cod COD Atlantic cod 大西洋鳕 Gadus morhua PISCES FishBase
#> SpecCode matched_name match_type match_note resilience resilience_note
#> 1 69 Gadus morhua exact <NA> Medium <NA>
#> prior_r prior_r_lcl prior_r_ucl prior_r_n prior_r_note
#> 1 0.509 0.336 0.764 66 Based on 66 full stock assessments.
#> url release r_low r_high
#> 1 https://www.fishbase.se/summary/69 FishBase 26.06 0.336 0.764
#> r_source
#> 1 FishBase prior r, 95% CL (Based on 66 full stock assessments.)
#> data_url
#> 1 https://data.source.coop/cboettig/fishbase/fb/v26.06/parquet/estimate.parquet
#> rule_url
#> 1 https://oceanrep.geomar.de/id/eprint/52147/
cmsy_priors(c("COD", "Atlantic herring"), lang = "both")
#> species_name alpha3 species_en species_zh scientific_name
#> 1 大西洋鳕 Atlantic cod COD Atlantic cod 大西洋鳕 Gadus morhua
#> 2 大西洋鲱 Atlantic herring HER Atlantic herring 大西洋鲱 Clupea harengus
#> major_en database SpecCode matched_name match_type match_note resilience
#> 1 PISCES FishBase 69 Gadus morhua exact <NA> Medium
#> 2 PISCES FishBase 24 Clupea harengus exact <NA> Medium
#> resilience_note prior_r prior_r_lcl prior_r_ucl
#> 1 <NA> 0.509 0.336 0.764
#> 2 other stocks of the species: Medium, Low 0.436 0.288 0.654
#> prior_r_n prior_r_note
#> 1 66 Based on 66 full stock assessments.
#> 2 53 Based on 53 full stock assessments.
#> url release r_low r_high
#> 1 https://www.fishbase.se/summary/69 FishBase 26.06 0.336 0.764
#> 2 https://www.fishbase.se/summary/24 FishBase 26.06 0.288 0.654
#> r_source
#> 1 FishBase prior r, 95% CL (Based on 66 full stock assessments.)
#> 2 FishBase prior r, 95% CL (Based on 53 full stock assessments.)
#> data_url
#> 1 https://data.source.coop/cboettig/fishbase/fb/v26.06/parquet/estimate.parquet
#> 2 https://data.source.coop/cboettig/fishbase/fb/v26.06/parquet/estimate.parquet
#> rule_url
#> 1 https://oceanrep.geomar.de/id/eprint/52147/
#> 2 https://oceanrep.geomar.de/id/eprint/52147/
# Part of a name finds every matching species
cmsy_priors("sardin")[, c("alpha3", "species_en", "scientific_name", "resilience", "r_low", "r_high")]
#> alpha3 species_en scientific_name resilience
#> 1 SAM Bali sardinella Sardinella lemuru High
#> 2 BSR Brazilian sardinella Sardinella brasiliensis High
#> 3 PIL European pilchard(=Sardine) Sardina pilchardus Medium
#> 4 SAG Goldstripe sardinella Sardinella gibbosa High
#> 5 IOS Indian oil sardine Sardinella longiceps Medium
#> 6 JSS Japanese sardinella Sardinella zunasi High
#> 7 ENL Lake Malawi sardine Engraulicypris sardella High
#> 8 LTM Lake Tanganyika sardine Limnothrissa miodon High
#> 9 SAE Madeiran sardinella Sardinella maderensis Medium
#> 10 CHP Pacific sardine Sardinops sagax Medium
#> 11 RAS Rainbow sardine Dussumieria acuta High
#> 12 MSB River sardine Engraulicypris brevianalis High
#> 13 SAA Round sardinella Sardinella aurita High
#> 14 COL Sardinia coral Corallium rubrum Low
#> 15 RAL Slender rainbow sardine Dussumieria elopsoides High
#> 16 AGS Spotted sardinella Amblygaster sirm High
#> 17 SDB White sardinella Sardinella albella High
#> r_low r_high
#> 1 0.786 1.787
#> 2 0.263 0.598
#> 3 0.415 0.942
#> 4 0.705 1.603
#> 5 0.305 0.693
#> 6 0.600 1.500
#> 7 0.600 1.500
#> 8 0.600 1.500
#> 9 0.379 0.862
#> 10 0.358 0.813
#> 11 0.786 1.787
#> 12 0.600 1.500
#> 13 0.429 0.976
#> 14 0.050 0.500
#> 15 0.600 1.500
#> 16 0.600 1.500
#> 17 0.600 1.500
# The sources of a value, to check it online
cmsy_priors("Gadus morhua")[, c("url", "data_url", "rule_url")]
#> url
#> 1 https://www.fishbase.se/summary/69
#> data_url
#> 1 https://data.source.coop/cboettig/fishbase/fb/v26.06/parquet/estimate.parquet
#> rule_url
#> 1 https://oceanrep.geomar.de/id/eprint/52147/
# How the FAO names were matched, and the species without a prior for r
p <- cmsy_priors()
table(p$match_type)
#>
#> ambiguous synonym exact not a species not found
#> 3 3071 2 43
#> synonym
#> 36
head(p[is.na(p$r_source), c("alpha3", "species_en", "scientific_name")])
#> alpha3 species_en scientific_name
#> 2 GNU [Ageneiosus dentatus] Ageneiosus dentatus
#> 7 AWZ [Anodus elongatus] Anodus elongatus
#> 8 WAG [Anthothela grandiflora] Anthothela grandiflora
#> 9 FPJ [Aplodactylus punctatus] Aplodactylus punctatus
#> 11 ARL [Argonectes longiceps] Argonectes longiceps
#> 12 AIQ [Astacopsis franklinii] Astacopsis franklinii
