Skip to content

Processes Reproduction

Ricardo Oliveros Ramos edited this page Jun 11, 2026 · 1 revision

Reproduction

The system starts from a pristine state, with no schools in the domain. For a few years (user-defined), Osmose will release some eggs for every species. The eggs progress to different stages of the life cycle, and once the fish reach sexual maturity, the reproduction process takes over and Osmose stops the seeding, unless the spawning stock biomass is depleted. In this case Osmose resumes seeding by releasing some eggs until there are again mature individuals in the system to carry on the reproduction process. Osmose completely ceases seeding when the simulation reaches the maximal number of years for seeding (user-defined).

By following this approach:

  • No assumption is made about the structure of the populations but it emerges from individual interactions
  • it reduces computing requirements for the spin-up as the first years are the fastest to run
  • it reduces the number of time steps for the spin-up
  • it minimises the amplitude of population oscillations

There are several modes of reproduction, which are defined for each species by the species.reproduction.mode.spX parameter.

  • oviparity is the default mode, which is adapted to fish
  • viviparity, which is adapted to species like sharks

Computation of maturity

There are two possible modes of maturity computation in the classical Osmose model:

  • a "deterministic" one
  • a "stochastic" one.

This is defined by the parameter species.maturity.mode, which can take two values: stochastic or legacy

Deterministic maturity

The "deterministic" mode is the default. It is managed by either the species.maturity.size.spX or species.maturity.age.spX parameterw, which provide the size (in $cm$) or the age (in $years$) when a school becomes mature.

Caution

If both parameters exist, the maturity size will be used!

Stochastic maturity

The stochastic mode is defined by two parameters: species.maturity.l50.spX and species.maturity.l75.spX, which provides the shape of a Gaussian distribution of mean:

$$ \mu = L_{50} $$

and standard deviation:

$$ \sigma = \dfrac{L_{75} - L_{50}}{q_{75}} $$

with $q_{75}$ the inverse cumulative standard normal distribution for the 75th percentile.

First, the cumulative probability of school length after ($L_{t + \Delta t}$) and before growth ($L_{t}$) is computed based on the Gaussian distribution specified by the user. These values are $F_X(L_{t+\Delta t})$ and $F_X(L_{t+\Delta t})$, respectively.

Next, a probability is computed based on these cumulative probabilities:

$$ P = \frac{F_X(L_{t+\Delta t}) - F_X(L_{t})}{1 - F_X(L_{t})} $$

Finally, a number $\delta$ is randomly drafted using a uniform distribution.

The school will be defined as mature when $\delta \lt P$

Reproduction with oviparity mode:

In this case, reproduction will be based on the biomass of mature individuals. This mode is adpated to fish. Relative fecundity $\alpha_{rel}$ is provided with the species.relativefecundity.spX parameter.

For a given species $S$, we loop over all the schools belonging to the species and we compute the total number of eggs as follows:

$$ N_{eggs} = \sum_{i \in S} \delta_i \times F_{fem} \times \alpha_{rel} \times S(t) \times B_{i}. $$

where $\delta_i$ is used if the school is mature and 0 if not, $F_{fem}$ the fraction of females, $\alpha_{rel}$ the relative fecundity, $S(t)$ the seasonal modulation of reproduction and $B_i$ the school biomass in grams.

If the number of eggs is 0, then eggs are added by using a seeding biomass value (population.seeding.biomass.spX parameter

$$ N_{eggs} = F_{fem} \times \alpha_{rel} \times S(t) \times B^{seeding}_{i}. $$

Reproduction with oviparity mode:

In this case, reproduction will be based on the abundance of mature individuals. This mode is adpated to organisms like sharks. Absolute fecundity $\alpha_{abs}$ is provided with the species.absolutefecundity.spX parameter.

For a given species $S$, we loop over all the schools belonging to the species and we compute the total number of eggs as follows:

$$ N_{eggs} = \sum_{i \in S} \delta_i \times F_{fem} \times \alpha_{abs} \times S(t) \times N_{i}. $$

where $\delta_i$ is used if the school is mature and 0 if not, $F_{fem}$ the fraction of females, $\alpha_{abs}$ the absolute fecundity, $S(t)$ the seasonal modulation of reproduction and $N_i$ the school abundance.

If the number of eggs is 0, then eggs are added by using a seeding abundance value (population.seeding.abundance.spX parameter)

$$ N_{eggs} = F_{fem} \times \alpha_{rel} \times S(t) \times N^{seeding}_{i}. $$

Creation of new school

Finally, the number of eggs is converted into new schools as follows, depending on the number of new schools, per species, that are created every reproductive step ($N^s$, simulation.nschool.spX parameter)

If $N_{eggs} \lt N_s$:

$$ N_{sch} = 1 $$

$$ A_{sch} = N_{eggs} $$

where $A_{sch}$ is the abundance of the new school that is added to the system. In other words, all the offspring are used to create one new school.

If $N_{eggs} \gt N_s$:

$$ N_{sch} = N_s $$

$$ A_{sch} = \frac{N_{eggs}}{N_s} $$

In this case, the maximum number of schools is created ($N_s$) and the abundance of the offspring is equally distributed among all schools.

Parameter Description
simulation.nschool.sp# Number of schools of species # to create during reproduction ($N_s$)
simulation.nschool Number of schools to create during reproduction ($N_s$). Used if no species specific value provided
species.reproduction.mode.sp# Reproduction mode (oviparity or viviparity)
population.seeding.biomass.sp# Seeding biomass ($B_{seeding}$, tons). Used if oviparity mode
population.seeding.abundance.sp# Seeding abundance ($N_{seeding}$, number of individuals). Used if viparity mode
reproduction.season.file.sp# File providing the seeding distribution within a year
species.sexratio.sp# Fraction of females ($F_{fem}$)
species.relativefecundity.sp# Number of eggs per gram of mature female (relative fecundity). Used if oviparity mode
species.absolutefecundity.sp# Number of offsprings per mature female (absolute fecundity) . Used if viparity mode
population.seeding.year.max Number of years when the artificial seeding is activated

Clone this wiki locally