larvaworld.lib.param.composition ================================ .. py:module:: larvaworld.lib.param.composition Attributes ---------- .. autoapisummary:: larvaworld.lib.param.composition.substrate_dict Classes ------- .. autoapisummary:: larvaworld.lib.param.composition.Compound larvaworld.lib.param.composition.Substrate larvaworld.lib.param.composition.Odor larvaworld.lib.param.composition.Epoch larvaworld.lib.param.composition.Life larvaworld.lib.param.composition.AirPuff Module Contents --------------- .. py:class:: Compound(**kwargs) Bases: :py:obj:`larvaworld.lib.param.nested_parameter_group.NestedConf` Chemical compound parameter group for nutritional composition. Defines molecular properties and elemental composition for substrate compounds used in larva nutrition modeling. Attributes: d: Density in g/cm³ w: Molecular weight in g/mol nC: Number of carbon atoms nH: Number of hydrogen atoms nO: Number of oxygen atoms nN: Number of nitrogen atoms ww: Computed weighted molecular mass Example: >>> glucose = Compound(w=180.18, nC=6, nH=12, nO=6) >>> glucose.ww # Weighted mass computed automatically .. py:attribute:: d .. py:attribute:: w .. py:attribute:: nC .. py:attribute:: nH .. py:attribute:: nO .. py:attribute:: nN .. py:attribute:: ww .. py:class:: Substrate(quality=1.0, type=None, **kwargs) Bases: :py:obj:`larvaworld.lib.param.nested_parameter_group.NestedConf` Substrate nutritional composition parameter group. Models substrate nutrition with compound concentrations, quality degradation, and molar concentration calculations for feeding/growth simulations. Attributes: composition: Dict of compound densities (g/cm³) per compound type quality: Quality factor (0-1, default: 1.0) for nutrient degradation d: Total substrate density C: Total molar concentration X: Nutrient molar concentration X_ratio: Nutrient/total concentration ratio Example: >>> substrate = Substrate(type='standard', quality=0.8) >>> substrate.get_f(K=0.1) # Feeding response function .. py:attribute:: composition .. py:attribute:: quality .. py:attribute:: d_water :value: 1 .. py:attribute:: d_yeast_drop :value: 0.125 .. py:attribute:: V_drop :value: 0.05 .. py:attribute:: d .. py:attribute:: C .. py:attribute:: X .. py:attribute:: X_ratio .. py:method:: get_d_X(compounds=None, quality=None) -> float .. py:method:: get_w_X(compounds=None) -> float .. py:method:: get_X(quality=None, compounds=None) -> float .. py:method:: get_mol(V, **kwargs) -> float .. py:method:: get_f(K, **kwargs) -> float .. py:method:: get_C(quality=None) -> float .. py:method:: get_X_ratio(**kwargs) -> float .. py:data:: substrate_dict .. py:class:: Odor(**kwargs) Bases: :py:obj:`larvaworld.lib.param.nested_parameter_group.NestedConf` Odor stimulus parameter group for olfactory experiments. Defines odorant identity, concentration gradient (Gaussian distribution), and provides concentration computation at spatial positions. Attributes: id: Unique odorant identifier intensity: Peak concentration in micromoles (optional) spread: Gradient spread (standard deviation, optional) dist: Multivariate normal distribution (auto-computed) peak_value: Peak concentration value (auto-computed) Example: >>> odor = Odor(id='odorA', intensity=2.0, spread=0.01) >>> odor.gaussian_value([0.005, 0.005]) # Concentration at position .. py:attribute:: id .. py:attribute:: intensity .. py:attribute:: spread .. py:method:: gaussian_value(pos) -> float | None .. py:method:: draw_dist() -> None .. py:method:: oG(c=1, id='Odor') :classmethod: .. py:method:: oD(c=1, id='Odor') :classmethod: .. py:method:: oO(o, **kwargs) :classmethod: .. py:class:: Epoch(**kwargs) Bases: :py:obj:`larvaworld.lib.param.nested_parameter_group.NestedConf` Life stage epoch parameter group with substrate and timing. Defines developmental epoch with age range and associated substrate nutrition, used for life history modeling. Attributes: age_range: Epoch duration in hours post-hatch (start, end) substrate: Substrate nutrition for this epoch start: Epoch start time (property) end: Epoch end time (property, can be None for final epoch) Example: >>> epoch = Epoch(age_range=(0.0, 96.0), substrate={'type': 'standard'}) >>> epoch.ticks(dt=0.1) # Simulation ticks for epoch duration .. py:attribute:: age_range .. py:attribute:: substrate .. py:property:: start :type: float .. py:property:: end :type: float | None .. py:method:: ticks(dt) -> int | float .. py:class:: Life(**kwargs: Any) Bases: :py:obj:`larvaworld.lib.param.nested_parameter_group.NestedConf` Life history parameter group for larva development. Defines complete life history with age, feeding epochs, and pupation. Supports construction from epoch ticks or pre-starvation protocols. Attributes: age: Starting age in hours post-hatch (default: 0.0, None = pupation) epochs: List of Epoch instances defining feeding schedule reach_pupation: Whether to grow to pupation (default: False) Example: >>> life = Life(age=96.0, epochs=[epoch1, epoch2]) >>> life_prestarved = Life.prestarved(age=72.0, h_starved=24.0) .. py:attribute:: age .. py:attribute:: epochs .. py:attribute:: reach_pupation .. py:method:: from_epoch_ticks(ticks=[], subs=None, reach_pupation=False) :classmethod: .. py:method:: prestarved(age=0.0, h_starved=0.0, rearing_quality=1.0, starvation_quality=0.0, final_quality=None, substrate_type='standard', reach_pupation=False) :classmethod: .. py:class:: AirPuff(**kwargs: Any) Bases: :py:obj:`larvaworld.lib.param.nested_parameter_group.NestedConf` Air puff stimulus parameter group for mechanosensory experiments. Defines air puff timing and strength for delivering mechanical stimulation during simulations. Attributes: duration: Puff duration in seconds (default: 1.0) start_time: Puff onset time in seconds (default: None) strength: Puff strength coefficient (default: 1.0) Example: >>> puff = AirPuff(duration=2.0, start_time=30.0, strength=0.8) .. py:attribute:: duration .. py:attribute:: speed .. py:attribute:: direction .. py:attribute:: start_time .. py:attribute:: N .. py:attribute:: interval