Class ExpData

Inheritance Relationships

Base Type

Class Documentation

class ExpData : public amici::SimulationParameters

ExpData carries all information about experimental or condition-specific data.

Public Functions

ExpData() = default

Default constructor.

ExpData(ExpData const&) = default

Copy constructor.

ExpData(int nytrue, int nztrue, int nmaxevent)

Constructor that only initializes dimensions.

Parameters:
  • nytrue – Number of observables

  • nztrue – Number of event outputs

  • nmaxevent – Maximal number of events to track

ExpData(int nytrue, int nztrue, int nmaxevent, std::vector<realtype> ts)

constructor that initializes timepoints from vectors

Parameters:
  • nytrue – Number of observables

  • nztrue – Number of event outputs

  • nmaxevent – Maximal number of events to track

  • ts – Timepoints (dimension: nt)

ExpData(int nytrue, int nztrue, int nmaxevent, std::vector<realtype> ts, std::vector<realtype> fixedParameters)

constructor that initializes timepoints and fixed parameters from vectors

Parameters:
  • nytrue – Number of observables

  • nztrue – Number of event outputs

  • nmaxevent – Maximal number of events to track

  • ts – Timepoints (dimension: nt)

  • fixedParametersModel constants (dimension: nk)

ExpData(int nytrue, int nztrue, int nmaxevent, std::vector<realtype> ts, std::vector<realtype> const &observedData, std::vector<realtype> const &observedDataStdDev, std::vector<realtype> const &observedEvents, std::vector<realtype> const &observedEventsStdDev)

constructor that initializes timepoints and data from vectors

Parameters:
  • nytrue – Number of observables

  • nztrue – Number of event outputs

  • nmaxevent – Maximal number of events to track

  • ts – Timepoints (dimension: nt)

  • observedData – observed data (dimension: nt x nytrue, row-major)

  • observedDataStdDev – standard deviation of observed data (dimension: nt x nytrue, row-major)

  • observedEvents – observed events (dimension: nmaxevents x nztrue, row-major)

  • observedEventsStdDev – standard deviation of observed events/roots (dimension: nmaxevents x nztrue, row-major)

explicit ExpData(Model const &model)

constructor that initializes with Model

Parameters:

model – pointer to model specification object

ExpData(ReturnData const &rdata, realtype sigma_y, realtype sigma_z)

constructor that initializes with returnData, adds noise according to specified sigmas

Parameters:
  • rdata – return data pointer with stored simulation results

  • sigma_y – scalar standard deviations for all observables

  • sigma_z – scalar standard deviations for all event observables

ExpData(ReturnData const &rdata, std::vector<realtype> sigma_y, std::vector<realtype> sigma_z)

constructor that initializes with returnData, adds noise according to specified sigmas

Parameters:
  • rdata – return data pointer with stored simulation results

  • sigma_y – vector of standard deviations for observables (dimension: nytrue or nt x nytrue, row-major)

  • sigma_z – vector of standard deviations for event observables (dimension: nztrue or nmaxevent x nztrue, row-major)

~ExpData() = default
int nytrue() const

number of observables of the non-augmented model

Returns:

number of observables of the non-augmented model

int nztrue() const

number of event observables of the non-augmented model

Returns:

number of event observables of the non-augmented model

int nmaxevent() const

maximal number of events to track

Returns:

maximal number of events to track

int nt() const

number of timepoints

Returns:

number of timepoints

void setTimepoints(std::vector<realtype> const &ts)

Set output timepoints.

If the number of timepoint increases, this will grow the observation/sigma matrices and fill new entries with NaN. If the number of timepoints decreases, this will shrink the observation/sigma matrices.

Note that the mapping from timepoints to measurements will not be preserved. E.g., say there are measurements at t = 2, and this function is called with [1, 2], then the old measurements will belong to t = 1.

Parameters:

ts – timepoints

std::vector<realtype> const &getTimepoints() const

Get output timepoints.

Returns:

ExpData::ts

realtype getTimepoint(int it) const

Get timepoint for the given index.

Parameters:

it – timepoint index

Returns:

timepoint timepoint at index

void setObservedData(std::vector<realtype> const &observedData)

Set all measurements.

Parameters:

observedData – observed data (dimension: nt x nytrue, row-major)

void setObservedData(std::vector<realtype> const &observedData, int iy)

Set measurements for a given observable index.

Parameters:
  • observedData – observed data (dimension: nt)

  • iy – observed data index

bool isSetObservedData(int it, int iy) const

Whether there is a measurement for the given time- and observable- index.

Parameters:
  • it – time index

  • iy – observable index

Returns:

boolean specifying if data was set

std::vector<realtype> const &getObservedData() const

Get all measurements.

Returns:

observed data (dimension: nt x nytrue, row-major)

realtype const *getObservedDataPtr(int it) const

Get measurements for a given timepoint index.

Parameters:

it – timepoint index

Returns:

pointer to observed data at index (dimension: nytrue)

void setObservedDataStdDev(std::vector<realtype> const &observedDataStdDev)

Set standard deviations for measurements.

Parameters:

observedDataStdDev – standard deviation of observed data (dimension: nt x nytrue, row-major)

void setObservedDataStdDev(realtype stdDev)

Set identical standard deviation for all measurements.

Parameters:

stdDev – standard deviation (dimension: scalar)

void setObservedDataStdDev(std::vector<realtype> const &observedDataStdDev, int iy)

Set standard deviations of observed data for a specific observable index.

Parameters:
  • observedDataStdDev – standard deviation of observed data (dimension: nt)

  • iy – observed data index

void setObservedDataStdDev(realtype stdDev, int iy)

Set all standard deviation for a given observable index to the input value.

Parameters:
  • stdDev – standard deviation (dimension: scalar)

  • iy – observed data index

bool isSetObservedDataStdDev(int it, int iy) const

Whether standard deviation for a measurement at specified timepoint- and observable index has been set.

Parameters:
  • it – time index

  • iy – observable index

Returns:

boolean specifying if standard deviation of data was set

std::vector<realtype> const &getObservedDataStdDev() const

Get measurement standard deviations.

Returns:

standard deviation of observed data

realtype const *getObservedDataStdDevPtr(int it) const

Get pointer to measurement standard deviations.

Parameters:

it – timepoint index

Returns:

pointer to standard deviation of observed data at index

void setObservedEvents(std::vector<realtype> const &observedEvents)

Set observed event data.

Parameters:

observedEvents – observed data (dimension: nmaxevent x nztrue, row-major)

void setObservedEvents(std::vector<realtype> const &observedEvents, int iz)

Set observed event data for specific event observable.

Parameters:
  • observedEvents – observed data (dimension: nmaxevent)

  • iz – observed event data index

bool isSetObservedEvents(int ie, int iz) const

Check whether event data at specified indices has been set.

Parameters:
  • ie – event index

  • iz – event observable index

Returns:

boolean specifying if data was set

std::vector<realtype> const &getObservedEvents() const

Get observed event data.

Returns:

observed event data

realtype const *getObservedEventsPtr(int ie) const

Get pointer to observed data at ie-th occurrence.

Parameters:

ie – event occurrence

Returns:

pointer to observed event data at ie-th occurrence

void setObservedEventsStdDev(std::vector<realtype> const &observedEventsStdDev)

Set standard deviation of observed event data.

Parameters:

observedEventsStdDev – standard deviation of observed event data

void setObservedEventsStdDev(realtype stdDev)

Set standard deviation of observed event data.

Parameters:

stdDev – standard deviation (dimension: scalar)

void setObservedEventsStdDev(std::vector<realtype> const &observedEventsStdDev, int iz)

Set standard deviation of observed data for a specific observable.

Parameters:
  • observedEventsStdDev – standard deviation of observed data (dimension: nmaxevent)

  • iz – observed data index

void setObservedEventsStdDev(realtype stdDev, int iz)

Set all standard deviations of a specific event-observable.

Parameters:
  • stdDev – standard deviation (dimension: scalar)

  • iz – observed data index

bool isSetObservedEventsStdDev(int ie, int iz) const

Check whether standard deviation of event data at specified indices has been set.

Parameters:
  • ie – event index

  • iz – event observable index

Returns:

boolean specifying if standard deviation of event data was set

std::vector<realtype> const &getObservedEventsStdDev() const

Get standard deviation of observed event data.

Returns:

standard deviation of observed event data

realtype const *getObservedEventsStdDevPtr(int ie) const

Get pointer to standard deviation of observed event data at ie-th occurrence.

Parameters:

ie – event occurrence

Returns:

pointer to standard deviation of observed event data at ie-th occurrence

void clear_observations()

Set all observations and their standard deviations to NaN.

Useful, e.g., after calling ExpData::setTimepoints.

Public Members

std::string id

Arbitrary (not necessarily unique) identifier.

Protected Functions

void applyDimensions()

resizes observedData, observedDataStdDev, observedEvents and observedEventsStdDev

void applyDataDimension()

resizes observedData and observedDataStdDev

void applyEventDimension()

resizes observedEvents and observedEventsStdDev

void checkDataDimension(std::vector<realtype> const &input, char const *fieldname) const

checker for dimensions of input observedData or observedDataStdDev

Parameters:
  • input – vector input to be checked

  • fieldname – name of the input

void checkEventsDimension(std::vector<realtype> const &input, char const *fieldname) const

checker for dimensions of input observedEvents or observedEventsStdDev

Parameters:
  • input – vector input to be checked

  • fieldname – name of the input

Protected Attributes

int nytrue_ = {0}

number of observables

int nztrue_ = {0}

number of event observables

int nmaxevent_ = {0}

maximal number of event occurrences

std::vector<realtype> observed_data_

observed data (dimension: nt x nytrue, row-major)

std::vector<realtype> observed_data_std_dev_

standard deviation of observed data (dimension: nt x nytrue, row-major)

std::vector<realtype> observed_events_

observed events (dimension: nmaxevents x nztrue, row-major)

std::vector<realtype> observed_events_std_dev_

standard deviation of observed events/roots (dimension: nmaxevents x nztrue, row-major)

Friends

inline friend bool operator==(ExpData const &lhs, ExpData const &rhs)

Equality operator.

Parameters:
  • lhs – some object

  • rhs – another object

Returns:

true, if both arguments are equal; false otherwise.