The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
aLBI (Assessment of
Length-Based
Indicators) is an R package developed for data-limited
fish stock assessment using catch length-frequency distributions. The
package operationalises the sustainability indicators of Froese (2004)
and the decision-tree framework of Cope & Punt (2009) to evaluate
stock status against target (\(0.40 \cdot
SB_0\)) and limit (\(0.25 \cdot
SB_0\)) spawning biomass reference points.
To overcome the sensitivity of length-based indicators to class
boundary step-functions, aLBI implements a three-tier Monte
Carlo and bootstrap uncertainty propagation framework.
FishPar): Quantifies parameter uncertainty (Tier
1: Monte Carlo on allometric regressions), catch sampling variability
(Tier 2: bootstrap resampling), and joint total uncertainty (Tier
3).FrequencyTable): Automatically selects biological
length class intervals using the Optimum Bin Size (OBS) formula of Wang
et al. (2020).FreqTM):
Aggregates multi-temporal catch data into consistent, date-indexed
length classes across months.FishSS):
Determines probabilities of falling below target and limit spawning
biomass reference points using Cope & Punt (2009) look-up tables
with robust objective trigger logic.LWR): Fits
power-law length–weight relationships (\(W = a
\cdot L^b\)) via log-log linear models with publication-ready
diagnostic plots.save_output = FALSE across functions to avoid unauthorized
disk writes during standard evaluation.| Function | Primary Purpose | Key Inputs | Key Outputs |
|---|---|---|---|
FrequencyTable() |
Constructs length-frequency tables | Raw individual fish lengths | Binned frequency distribution table
($lfqTable, $lfreq) |
FreqTM() |
Builds multi-month length-frequency tables | Monthly length observations | Harmonized monthly frequency matrices |
FishPar() |
Calculates reference lengths & Froese indicators | Length-frequency table
($lfreq) |
Three-tier CIs, derived scalars
(Pobj, LM_ratio), and diagnostic plots |
FishSS() |
Evaluates stock status & selectivity pattern | FishPar outputs +
cpdata |
Biomass probabilities
(p_below_target, p_below_limit),
selectivity |
LWR() |
Fits length–weight allometric regressions | Length and weight vectors | Regression coefficients (\(a, b, R^2\)), confidence intervals, ggplot2 object |
Install the released stable version from CRAN:
install.packages("aLBI")Install the development version from GitHub:
# install.packages("devtools")
devtools::install_github("Ataher76/aLBI")library(aLBI)
library(readxl)
# Load bundled raw length data
raw_path <- system.file("exdata", "ExData.xlsx", package = "aLBI")
raw_data <- readxl::read_excel(raw_path)
# Build frequency table using automatic bin sizing (Wang et al., 2020)
freq_res <- FrequencyTable(
data = raw_data,
bin_width = NULL,
save_output = FALSE
)
# Extract frequency distribution for FishPar
lf_table <- freq_res$lfreq
head(lf_table)# Execute FishPar with Monte Carlo and bootstrap simulations
par_res <- FishPar(
data = lf_table,
resample = 1000, # Use >= 5000 for publication
save_output = FALSE
)
# Biological reference points (Linf, Lmat, Lopt)
par_res$estimated_length_par
# Froese indicators with Tier 3 joint total uncertainty
par_res$froese_par_joint# Load Cope & Punt (2009) lookup table
cp_path <- system.file("exdata", "cpdata.xlsx", package = "aLBI")
cp_data <- readxl::read_excel(cp_path)
# Evaluate stock status probabilities
stock_eval <- FishSS(
data = cp_data,
LM_ratio = par_res$LM_ratio,
Pmat = par_res$froese_par_joint$Mean[1],
Popt = par_res$froese_par_joint$Mean[2],
Pmega = par_res$froese_par_joint$Mean[3]
)
# View stock status probabilities and selectivity pattern
stock_eval$StockStatus
stock_eval$Selectivity# Load bundled length-weight data
lw_path <- system.file("exdata", "LWdata.xlsx", package = "aLBI")
lw_data <- readxl::read_excel(lw_path)
# Model LWR with log-log linear regression
lwr_res <- LWR(
data = lw_data,
log_transform = TRUE,
save_output = FALSE
)
# Model summary parameters
lwr_res$model_summaryFishPar handles the non-differentiable step-function
transitions across length class bins by reporting three separate
uncertainty tiers:
To cite aLBI in publications, please refer to the
primary methodology paper:
Ali, A., Sarker, M. R., & Alam, M. S. (2025). Development of a simple R package (aLBI) for the estimation of stock status from the length frequency data. Fisheries Research, 288, 107467. https://doi.org/10.1016/j.fishres.2025.107467
@article{ali2025albi,
title = {Development of a simple R package (aLBI) for the estimation of stock status from the length frequency data},
author = {Ali, Ataher and Sarker, Mohammad Ruhul and Alam, Mohammed Shahidul},
journal = {Fisheries Research},
volume = {288},
pages = {107467},
year = {2025},
doi = {10.1016/j.fishres.2025.107467}
}This package is licensed under the GNU General Public License v3.0 (GPL-3).
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.