Skip to main content

AssayErrorModels

Struct AssayErrorModels 

pub struct AssayErrorModels { /* private fields */ }
Expand description

Collection of assay/measurement error models for all outputs.

This struct represents measurement/assay noise - the error associated with quantification of drug concentration in biological samples. Sigma is computed from the observation value.

Used by non-parametric algorithms (NPAG, NPOD, etc.).

For parametric algorithms (SAEM, FOCE), use crate::ResidualErrorModels instead, which computes sigma from the prediction.

This is a wrapper around a vector of AssayErrorModels, its size is determined by the number of outputs in the model/dataset.

Implementations§

§

impl AssayErrorModels

pub fn new() -> AssayErrorModels

Create a new reusable label-first AssayErrorModels definition.

Output labels are resolved once per equation when the error models are used through simulation or likelihood entrypoints.

This lets the same public definition be reused safely across multiple equations while keeping the dense bound representation internal to the runtime path.

let error_models = AssayErrorModels::new()
    .add("cp", AssayErrorModel::additive(ErrorPoly::new(0.0, 0.05, 0.0, 0.0), 0.0))?;

pub fn error_model( &self, outeq: usize, ) -> Result<&AssayErrorModel, ErrorModelError>

Get the error model for a specific output equation

§Arguments
  • outeq - The index of the output equation for which to retrieve the error model.
§Returns

A reference to the AssayErrorModel for the specified output equation.

§Errors

If the output equation index is invalid, an [ErrorModelError::InvalidOutputEquation] is returned.

pub fn add( self, outeq: impl ToString, model: AssayErrorModel, ) -> Result<AssayErrorModels, ErrorModelError>

Add a new error model for a specific output equation or declared label.

§Arguments
  • outeq - The output slot index or public output label.
  • model - The AssayErrorModel to add for the specified output equation.
§Returns

A new instance of AssayErrorModels with the added model.

§Errors

If the output label is unknown or if a model already exists for that output equation, an error is returned.

pub fn iter(&self) -> impl Iterator<Item = (usize, &AssayErrorModel)>

Returns an iterator over the error models in the collection.

§Returns

An iterator that yields tuples containing the index and a reference to each AssayErrorModel.

pub fn iter_mut( &mut self, ) -> impl Iterator<Item = (usize, &mut AssayErrorModel)>

Returns a mutable iterator that yields mutable references to the error models in the collection.

§Returns

An iterator that yields tuples containing the index and a mutable reference to each AssayErrorModel.

pub fn hash(&self) -> u64

Computes a hash for the error models collection. This hash is based on the output equations and their associated error models.

§Returns

A u64 hash value representing the error models collection.

pub fn len(&self) -> usize

Returns the number of error models in the collection.

pub fn is_empty(&self) -> bool

Returns whether the collection contains no error models.

pub fn errorpoly(&self, outeq: usize) -> Result<ErrorPoly, ErrorModelError>

Returns the error polynomial associated with the specified output equation.

§Arguments
  • outeq - The index of the output equation.
§Returns

The ErrorPoly for the given output equation.

pub fn factor(&self, outeq: usize) -> Result<f64, ErrorModelError>

Returns the factor value associated with the specified output equation.

§Arguments
  • outeq - The index of the output equation.
§Returns

The factor value for the given output equation.

pub fn set_errorpoly( &mut self, outeq: usize, poly: ErrorPoly, ) -> Result<(), ErrorModelError>

Sets the error polynomial for the specified output equation.

§Arguments
  • outeq - The index of the output equation.
  • poly - The new ErrorPoly to set.

pub fn set_factor( &mut self, outeq: usize, factor: f64, ) -> Result<(), ErrorModelError>

Sets the factor value for the specified output equation.

§Arguments
  • outeq - The index of the output equation.
  • factor - The new factor value to set.

pub fn factor_param(&self, outeq: usize) -> Result<Factor, ErrorModelError>

Gets the factor parameter (including fixed/variable state) for the specified output equation.

§Arguments
  • outeq - The index of the output equation.
§Returns

The [Factor] for the given output equation.

pub fn set_factor_param( &mut self, outeq: usize, param: Factor, ) -> Result<(), ErrorModelError>

Sets the factor parameter (including fixed/variable state) for the specified output equation.

§Arguments
  • outeq - The index of the output equation.
  • param - The new [Factor] to set.

pub fn is_factor_fixed(&self, outeq: usize) -> Result<bool, ErrorModelError>

Checks if the factor parameter is fixed for the specified output equation.

§Arguments
  • outeq - The index of the output equation.
§Returns

true if the factor parameter is fixed, false if it’s variable.

pub fn fix_factor(&mut self, outeq: usize) -> Result<(), ErrorModelError>

Makes the factor parameter fixed at its current value for the specified output equation.

§Arguments
  • outeq - The index of the output equation.

pub fn unfix_factor(&mut self, outeq: usize) -> Result<(), ErrorModelError>

Makes the factor parameter variable at its current value for the specified output equation.

§Arguments
  • outeq - The index of the output equation.

pub fn is_proportional(&self, outeq: usize) -> bool

Check if the error model for a specific output equation is proportional

§Arguments
  • outeq - The index of the output equation
§Returns

true if the error model for outeq is proportional, false otherwise

pub fn is_additive(&self, outeq: usize) -> bool

Check if the error model for a specific output equation is additive

§Arguments
  • outeq - The index of the output equation
§Returns

true if the error model for outeq is additive, false otherwise

pub fn sigma(&self, prediction: &Prediction) -> Result<f64, ErrorModelError>

Computes the standard deviation (sigma) for the specified output equation and prediction.

This always uses the observation value to compute sigma, which is appropriate for non-parametric algorithms (NPAG, NPOD). For parametric algorithms (SAEM, FOCE), use crate::ResidualErrorModels instead, which computes sigma from the prediction.

§Arguments
  • prediction - The Prediction to use for the calculation.
§Returns

A Result containing the computed sigma value or an [ErrorModelError] if the calculation fails.

pub fn variance(&self, prediction: &Prediction) -> Result<f64, ErrorModelError>

Computes the variance for the specified output equation and prediction.

§Arguments
  • outeq - The index of the output equation.
  • prediction - The Prediction to use for the calculation.
§Returns

A Result containing the computed variance or an [ErrorModelError] if the calculation fails.

pub fn sigma_from_value( &self, outeq: usize, value: f64, ) -> Result<f64, ErrorModelError>

Computes the standard deviation (sigma) for the specified output equation and value.

§Arguments
  • outeq - The index of the output equation.
  • value - The value to use for the calculation.
§Returns

A Result containing the computed sigma value or an [ErrorModelError] if the calculation fails.

pub fn variance_from_value( &self, outeq: usize, value: f64, ) -> Result<f64, ErrorModelError>

Computes the variance for the specified output equation and value.

§Arguments
  • outeq - The index of the output equation.
  • value - The value to use for the calculation.
§Returns

A Result containing the computed variance or an [ErrorModelError] if the calculation fails.

Trait Implementations§

§

impl Clone for AssayErrorModels

§

fn clone(&self) -> AssayErrorModels

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for AssayErrorModels

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for AssayErrorModels

§

fn default() -> AssayErrorModels

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for AssayErrorModels

§

fn deserialize<__D>( __deserializer: __D, ) -> Result<AssayErrorModels, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<ErrorModels> for AssayErrorModels

Source§

fn from(val: ErrorModels) -> Self

Converts to this type from the input type.
§

impl From<Vec<AssayErrorModel>> for AssayErrorModels

§

fn from(models: Vec<AssayErrorModel>) -> AssayErrorModels

Converts to this type from the input type.
§

impl<'a> IntoIterator for &'a AssayErrorModels

§

type Item = (usize, &'a AssayErrorModel)

The type of the elements being iterated over.
§

type IntoIter = Enumerate<Iter<'a, AssayErrorModel>>

Which kind of iterator are we turning this into?
§

fn into_iter(self) -> <&'a AssayErrorModels as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
§

impl<'a> IntoIterator for &'a mut AssayErrorModels

§

type Item = (usize, &'a mut AssayErrorModel)

The type of the elements being iterated over.
§

type IntoIter = Enumerate<IterMut<'a, AssayErrorModel>>

Which kind of iterator are we turning this into?
§

fn into_iter(self) -> <&'a mut AssayErrorModels as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
§

impl IntoIterator for AssayErrorModels

§

type Item = (usize, AssayErrorModel)

The type of the elements being iterated over.
§

type IntoIter = IntoIter<<AssayErrorModels as IntoIterator>::Item>

Which kind of iterator are we turning this into?
§

fn into_iter(self) -> <AssayErrorModels as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
§

impl Serialize for AssayErrorModels

§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> ByRef<T> for T

§

fn by_ref(&self) -> &T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> Context for T
where T: Clone + Default,

§

fn vector_from_element<V>(&self, len: usize, value: <V as VectorCommon>::T) -> V
where V: Vector<C = Self>,

§

fn vector_from_vec<V>(&self, vec: Vec<<V as VectorCommon>::T>) -> V
where V: Vector<C = Self>,

§

fn vector_zeros<V>(&self, len: usize) -> V
where V: Vector<C = Self>,

§

fn dense_mat_zeros<V>( &self, rows: usize, cols: usize, ) -> <V as DefaultDenseMatrix>::M
where V: Vector<C = Self> + DefaultDenseMatrix,

§

impl<T> DistributionExt for T
where T: ?Sized,

§

fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> T
where Self: Distribution<T>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

impl<T> SendAlias for T

§

impl<T> SyncAlias for T