Skip to contents

MSEtool 3.7.2999 - dev version

New additions

  • add MICE rel for recruitment deviates in multiMSE which can be a function of the state dynamics in either the current year or previous year
  • MICE rel for natural mortality can be age-specific in multiMSE
  • custom stock-recruit functions available for multiMSE
  • allow plusgroup to be turned off in multiMSE
  • add spawn_time_frac argument to iSCAM2OM
  • added BAM2OM


  • projections use dynGet then get to find the MPs in the R session (see function getMP). dynGet finds functions that are defined inside the function call stack but not available in the global environment.


  • fix to OMdoc
  • fixes to simulation of length comp

MSEtool 3.7.2


  • add cpars$qs to OM produce by SS2OM
  • Note: SS2OM does not return cpars$Data

MSEtool 3.7.1

CRAN release: 2024-02-06


  • modifications to calculation of selectivity and retention curves when there is high discarding


  • fix calculation of retL when retA passed in cpars
  • fix calculation of F when spawn_time_frac used in multiMSE

MSEtool 3.7.0

CRAN release: 2023-07-19


  • fix to Calc_Residuals when not estimating beta parameter
  • improve mapping of data across stocks in multiMSE
  • improve calculation of weighted mean of empirical weight-at-age for SS2OM
  • change to calculation of F in popdyn.R to include discard mortality
  • fix SPR reporting for multiMSE
  • fix SubCpars for MOM objects
  • fix year indexing for stock allocation for species complexes in multiMSE

New additions

  • allow steepness (OM@h) to exceed 1 for Ricker stock-recruit relationship (the simulated steepness value in the Data object will be Data@steep = rlnorm(OM@nsim, log(StockPars$hs - 0.2), sdconv(1, Obs@hbiascv)) + 0.2 - 0.5 * sdconv(1, Obs@hbiascv)^2.
  • Assess2OM utilizes spawn_time_frac

MSEtool 3.6.2

CRAN release: 2023-03-28


  • important fix to a bug for projected indices when real indices are provided with NA values
  • minor fix to SS2OM when empirical weight-at-age is not available
  • minor fix to L95 calculation when all age classes are mature (defaults to 1.5)
  • minor fix to OM.Rmd

New additions

  • add ability to control timing of spawning with cpars$spawn_time_frac (default is beginning of year spawn_time_frac=0). Need to check timing on order of operations if this is used together with MICE features!
  • implemented Data@Vuln_CAL in generating CAL samples. Data@Vuln_CAA is not currently implemented
  • add ability to map CAL_nsamp and other sample size data across stocks in MOM

Minor changes

  • MSE@Hist now includes slots AtAge and TSdata when extended=FALSE
  • changed MSE@N slot to include age and area dimensions.
  • changed MMSE@N slot to include age and area dimensions.
  • added extended argument to multiMSE to report N-at-age in MMSE@Misc$extended$N
  • added optional MOM@SexPars$share_par = FALSE argument that turns off parameter mirroring of stock-recruit, depletion parameters; fleet parameters related to effort trends; and all observation/implementation parameters. This can be used to generalize a 2-sex MOM to a multi-stock model with shared spawning output (SexPars$SSBfrom) and/or movement-at-age between stocks (SexPars$Herm).


  • fix issue with calculation of indices in projections when there are NAs in the real data
  • minor fix to SS2OM when empirical weight-at-age is not available
  • minor fix to L95 calculation when all age classes are mature (defaults to 1.5)
  • minor fix to OM.Rmd

MSEtool 3.6.1

CRAN release: 2023-01-05

New additions

  • added additional indices to plot.Data
  • added option for custom stock-recruitment function (in development/testing)

Minor changes

  • Add Misc information to PPD for MMSE
  • remove devtools from Suggests and replace with remotes
  • updates to SS2MOM_plots plots


  • fix minor bugs in SS2Data
  • fix bug in calculating selectivity/retention in SSMOM2OM
  • fix bug in calculating fecundity-at-age for SS2OM in SSinternal
  • fix minor bug in SS2MOM_plots
  • fix calculation of L95array when Mat_age passed in through cpars
  • fix minor bug in SS2OM when report=TRUE

MSEtool 3.6.0

CRAN release: 2022-10-19

Major changes

  • By default, MPs are now no longer run in parallel mode when parallel=TRUE in runMSE and multiMSE. To run MPs in parallel, specify a named list with the name of the MP(s) assigned as TRUE. For example,parallel=list(AvC=TRUE).

New additions

  • added summary.MMSE generic function
  • added Lag_Data function to be used internally in custom MPs to lag all time-series data by specified number of time-steps (or optionally only some data slots). See ?Lag_Data for more information.
  • added stock and fleet names (if provided in MOM) to (multiHist)
  • added Real.Data.Map to cpars. This allows mapping of simulated data across stocks in MOMs where the real data is not stock-specific; e.g., cases where MOM includes male and female stocks but the real data in cpars$Data is not sex-specific
  • runMSE can use the split-apply-combine technique to run projections in parallel with argument parallel = "sac". Implementation details and notable issues are documented in the help doc ?runMSE. This is the fastest method for running simulations but may not be suitable for all operating models and it may be more difficult to troubleshoot errors.

Minor changes

  • minor patch to ASAP2Data
  • minor patch in Assess2OM
  • removed duplicated information in multiHist object (now only returns biological information for fleet=1)
  • patch to gettaxa function for species that are found in FishBase database but not in FishLife database
  • update joinData, joinHist, joinMSE, and addMPs functions
  • runMSE calculates vulnerable biomass from fishery weight at age cpars$Wt_age_C if provided.
  • the realized catch from TAC is no longer constrained 0.5 * VBiomass (a legacy feature which is now removed). The constraint is updated to 0.999 * Biomass.
  • increase iteration limit to 300 when solving for Baranov F during the MP projections.

MSEtool 3.5.0

CRAN release: 2022-06-07

New additions

  • added check for OM completeness and default values for some parameters
  • historical MPAs now work in multiMSE
  • argument parallel in runMSE can takes a named list of MPs
  • two new functions WHAM2OM and ASAP2OM to import assessments into operating models
  • Assess2MOM to generate a multi-fleet operating model, either for a 2-sex population where recruitment is predicted from female spawning output, or a single-sex population.
  • Assess2OM supports Ricker stock-recruit relationship.

Minor changes

  • fix to fleet-specific vulnerable biomass provided to MMPs
  • updated code for conditioning observation parameters on observed indices
  • add message showing range of estimated von Bert. parameters when OM@cpars$Len_age is provided.
  • fix bug in SSBpR for 2-sex MOM (introduced in 3.4.0)
  • pass projected OM abundance and SSB arrays to Data@Misc$StockPars (slot N_P, SSB_P, etc.) during closed-loop
  • now use usethis for console messages

MSEtool 3.4.0

CRAN release: 2022-01-05

New additions

  • new functions makeRel and makeMOM with methods for developing MICE relationships, e.g., density-dependent M.
  • depletion optimization in multiMSE uses Wt_age_C for catch fraction calculations.
  • argument parallel in runMSE can now be MP-specific by specifying a logical vector of length(MPs). This is useful to apply slow-running MPs in parallel, while avoiding the parallel overhead time for fast-running MPs.


  • fix bug in re-calculation of MSY refs points when selectivity parameters change (introduced in last version)
  • fix indexing in multiMSE when growth and natural mortality are time-varying. Internal code in HistMICE, qestMICE, popdynMICE and popdynOneMICE was updated for better readability, i.e., removing obsolete/redundant code and better references for array dimensions.

Minor changes

  • add progress bar when knitting OM.rmd in Shiny
  • edits to make compatible with latest version of rfishbase

MSEtool 3.3.0

CRAN release: 2021-11-16

New additions

  • added Awatea2OM to import MCMC output from an Awatea assessment model to openMSE
  • reference points are now calculated assuming constant stock-recruit alpha and beta parameters. Previously, constant R0 and steepness was assumed. See documentation for more details.


  • fix minor bug in calculating SSB in first year when using OMs imported from SS3
  • fix minor bug when passing movement matrix in with cpars
  • fix minor bug so that the mean of sampled recruitment deviations in SS2MOM and SS2OM is one. The issue was noticeable when the autocorrelation is high.
  • add check for missing OM slots such as interval, pstar, nyears, etc

Minor changes

  • update plot_mov for plotting movement matrices.
  • ProjectMOM and multiMSE now drop the multiHist object from the MMSE object unless argument dropHist=FALSE

MSEtool 3.2.0

CRAN release: 2021-08-13


  • fix issue in SSMOM2OM where selectivity was NA when fishing mortality was 0
  • remove debugging message that was stupidly left in last release

Minor changes

  • add silent option to SS2Data

New additions

  • add option to include fecundity-at-age used to calculate spawning biomass (cpars$Fec_age)

MSEtool 3.1.1

CRAN release: 2021-07-08


  • patch bug in generation of size composition data (introduced in v3.1.0)
  • fix minor issue with SSMOM2OM where it was generating redundant rec devs

New additions

  • added plot_SS2MOM to compare MOM dynamics with SS3 predictions

MSEtool 3.1.0

CRAN release: 2021-07-03

New additions

  • Dynamic and equilibrium spawning potential ratio (SPR) are now calculated for the historical and projection years.
  • add option to include empirical weight-at-age for the catches with cpars$Wt_age_C
  • F_crash, F_med, and other reference points have been added to Hist@Ref$ByYear
  • can now optimize for depletion in terms of SB/SBMSY with control$D <- 'SBMSY'
  • option to simulate CAL data including removals (retained + discards) with OM@cpars$control$CAL="removals". Default is to simulate only retained catch-at-length.
  • option to apply TAC to all removals with OM@cpars$control$TAC="removals". Default is to for TAC to refer to retained catch (i.e., removals will be greater than TAC if there are discards)

Minor changes

  • add more informative messages when conditioning on real data
  • add conditioning on real data for multiMSE
  • MSY calculations now in C++ for significant speed increase


  • fix the plus-group calculations in popdynOneTScpp
  • fix issue with simulated index in AddInd in the projection years

MSEtool 3.0.2

CRAN release: 2021-03-09


  • Help description has been updated for Stock, Fleet, and Obs objects (many thanks to Sarah Valencia).


  • fix minor bugs in XL2Data for importing data from CSV

MSEtool 3.0.1

CRAN release: 2021-02-02

Minor Changes

  • Add I_beta, SpI_beta, and VI_beta for the individual indices. Defaults to use OM@beta for all, unless a real index is supplied, e.g., OM@cpars$Data@Ind, OM@cpars$Data@SpInd, or OM@cpars$Data@VInd, or if supplied in cpars, e.g., OM@cpars$I_beta


  • fix bug where variability in von Bert K with OM@Ksd was not implemented correctly (5e6e8c6).
  • fix error with incorrect beta values when conditioning with real index (ie )
  • fix randomly occurring bug in C++ code that was causing crashes
  • fix issue with importing composition data with new('Data',..) (issue #33)
  • fix cpars$beta and cpars$Esd issue (issue #34)
  • fix issue with importing Data files from csv

MSEtool 3.0.0

CRAN release: 2021-01-09

This is a new major release of the MSEtool package. It is not backwards compatible with previous versions of MSEtool or DLMtool.

Major Changes

  • The most significant change in this version is that the MSEtool package now contains all code related to generating operating models, simulating fisheries dynamics, conducting management strategy evaluation, and examining the results (previously in the DLMtool package). This change was primarily done to better align the actual contents of the packages with the respective package names.
  • MSEtool now only has a set of reference management procedures (e.g., FMSYref)
  • The Data-Limited Methods Toolkit package now contains the collection of data-limited methods, and uses MSEtool V3+ as a dependency; i.e., installing and loading DLMtool will also install and load MSEtool and make all functions for generating OMs, conducting MSE, etc available.
  • The operating model has been updated and an age-0 age-class has been added to the population dynamics model; i.e., recruitment is now to age-0 (previously the OM in DLMtool had recruitment to age-1).
  • The catch-at-age (CAA) in the Data object now includes age-0 (i.e., all age data must be length maxage+1)