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> fixed_parameters)

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)

  • fixed_parametersModel constants (dimension: nk)

ExpData(int nytrue, int nztrue, int nmaxevent, std::vector<realtype> ts, std::vector<realtype> const &observed_data, std::vector<realtype> const &observed_data_std_dev, std::vector<realtype> const &observed_events, std::vector<realtype> const &observed_events_std_dev)

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)

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

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

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

  • observed_events_std_dev – 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, int seed = -1)

Constructor that initializes with ReturnData, adds normally distributed 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

  • seed – Seed for the random number generator. If a negative number is passed, a random seed is used.

ExpData(ReturnData const &rdata, std::vector<realtype> sigma_y, std::vector<realtype> sigma_z, int seed = -1)

Constructor that initializes with ReturnData, adds normally distributed 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)

  • seed – Seed for the random number generator. If a negative number is passed, a random seed is used.

~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 set_timepoints(std::vector<realtype> const &ts)

Set output ts.

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

Note that the mapping from ts 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 – ts

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

Get output timepoints.

Returns:

ExpData::ts

realtype get_timepoint(int it) const

Get timepoint for the given index.

Parameters:

it – timepoint index

Returns:

timepoint timepoint at index

void set_observed_data(std::vector<realtype> const &observed_data)

Set all measurements.

Parameters:

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

void set_observed_data(std::vector<realtype> const &observed_data, int iy)

Set measurements for a given observable index.

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

  • iy – observed data index

bool is_set_observed_data(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 &get_observed_data() const

Get all measurements.

Returns:

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

realtype const *get_observed_data_ptr(int it) const

Get measurements for a given timepoint index.

Parameters:

it – timepoint index

Returns:

pointer to observed data at index (dimension: nytrue)

void set_observed_data_std_dev(std::vector<realtype> const &observed_data_std_dev)

Set standard deviations for measurements.

Parameters:

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

void set_observed_data_std_dev(realtype stdDev)

Set identical standard deviation for all measurements.

Parameters:

stdDev – standard deviation (dimension: scalar)

void set_observed_data_std_dev(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 set_observed_data_std_dev(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 is_set_observed_data_std_dev(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 &get_observed_data_std_dev() const

Get measurement standard deviations.

Returns:

standard deviation of observed data

realtype const *get_observed_data_std_dev_ptr(int it) const

Get pointer to measurement standard deviations.

Parameters:

it – timepoint index

Returns:

pointer to standard deviation of observed data at index

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

Set observed event data.

Parameters:

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

void set_observed_events(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 is_set_observed_events(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 &get_observed_events() const

Get observed event data.

Returns:

observed event data

realtype const *get_observed_events_ptr(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 set_observed_events_std_dev(std::vector<realtype> const &observedEventsStdDev)

Set standard deviation of observed event data.

Parameters:

observedEventsStdDev – standard deviation of observed event data

void set_observed_events_std_dev(realtype stdDev)

Set standard deviation of observed event data.

Parameters:

stdDev – standard deviation (dimension: scalar)

void set_observed_events_std_dev(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 set_observed_events_std_dev(realtype stdDev, int iz)

Set all standard deviations of a specific event-observable.

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

  • iz – observed data index

bool is_set_observed_events_std_dev(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 &get_observed_events_std_dev() const

Get standard deviation of observed event data.

Returns:

standard deviation of observed event data

realtype const *get_observed_events_std_dev_ptr(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 apply_dimensions()

resizes observedData, observedDataStdDev, observedEvents and observedEventsStdDev

void apply_data_dimension()

resizes observedData and observedDataStdDev

void apply_event_dimension()

resizes observedEvents and observedEventsStdDev

void check_data_dimension(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 check_events_dimension(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.