Source code for laser_measles.components.base_infection
from abc import ABC
from pydantic import BaseModel
from pydantic import Field
from laser_measles.base import BasePhase
class BaseInfectionParams(BaseModel):
"""Parameters specific to the infection process component."""
beta: float = Field(
default=1, description="Base transmission rate (infections per day)", ge=0.0
) # beta = R0 / (mean infectious period)
seasonality: float = Field(default=0.0, description="Seasonality factor, default is no seasonality", ge=0.0, le=1.0)
season_start: int = Field(default=0, description="Season start tick (0-25)", ge=0, le=25)
distance_exponent: float = Field(default=1.5, description="Distance exponent", ge=0.0)
mixing_scale: float = Field(default=0.001, description="Mixing scale", ge=0.0)
[docs]
class BaseInfectionProcess(BasePhase, ABC):
"""Base class for infection (transmission and disease progression)."""