Class AmiciSummedGradientFunction¶
Defined in File multiConditionProblem.h
Inheritance Relationships¶
Base Type¶
public parpe::SummedGradientFunction< int >
(Template Class SummedGradientFunction)
Class Documentation¶
-
class AmiciSummedGradientFunction : public parpe::SummedGradientFunction<int>¶
The AmiciSummedGradientFunction class represents a cost function based on simulations of an AMICI model for different datasets.
Public Types
-
using WorkPackage = AmiciSimulationRunner::AmiciWorkPackageSimple¶
-
using ResultPackage = AmiciSimulationRunner::AmiciResultPackageSimple¶
-
using ResultMap = std::map<int, ResultPackage>¶
Public Functions
-
AmiciSummedGradientFunction(MultiConditionDataProvider *dataProvider, LoadBalancerMaster *loadBalancer, OptimizationResultWriter *resultWriter)¶
-
- Parameters:
dataProvider – Provides data and settings for AMICI simulations
loadBalancer – LoadBalancerMaster for shared memory parallelism, or nullptr
resultWriter –
-
~AmiciSummedGradientFunction() override = default¶
-
virtual FunctionEvaluationStatus evaluate(gsl::span<const double> parameters, int dataset, double &fval, gsl::span<double> gradient, Logger *logger, double *cpuTime) const override¶
Evaluate on single data point.
- Parameters:
parameters – Parameter vector where the function is to be evaluated
dataset – The dataset on which to evaluate the function
fval – Output argument for f(x)
gradient – Preallocated space for the gradient of size dim(parameters). Or gsl::span<double>() for evaluation without gradient.
logger – Optional Logger instance used for output
cputime – Optional output argument to report cpuTime consumed by the the function
- Returns:
Evaluation status
-
virtual FunctionEvaluationStatus evaluate(gsl::span<const double> parameters, std::vector<int> datasets, double &fval, gsl::span<double> gradient, Logger *logger, double *cpuTime) const override¶
Evaluate on vector of data points.
- Parameters:
parameters – Parameter vector where the function is to be evaluated
datasets – The datasets on which to evaluate the function
fval – Output argument for f(x)
gradient – Preallocated space for the gradient of size dim(parameters). Or gsl::span<double>() for evaluation without gradient.
logger – Optional Logger instance used for output
cputime – Optional output argument to report cpuTime consumed by the the function
- Returns:
Evaluation status
-
virtual int numParameters() const override¶
Number of optimization parameters.
- Returns:
-
virtual std::vector<std::string> getParameterIds() const override¶
-
virtual FunctionEvaluationStatus getModelOutputsAndSigmas(gsl::span<double const> parameters, std::vector<std::vector<double>> &modelOutputs, std::vector<std::vector<double>> &modelSigmas, Logger *logger, double *cpuTime) const¶
Run simulations (no gradient) with given parameters and collect model outputs.
- Parameters:
parameters – Model parameters for simulation
modelOutput – in: some vector reference, will be resized. output: Vector of double vectors containing AMICI ReturnData::y (nt x ny, column-major)
- Returns:
Simulation status
-
virtual std::vector<std::vector<double>> getAllMeasurements() const¶
-
virtual void messageHandler(std::vector<char> &buffer, int jobId) const¶
Callback function for LoadBalancer.
- Parameters:
buffer – In/out: message buffer
jobId – In: Identifier of the job (unique up to INT_MAX)
-
virtual amici::ParameterScaling getParameterScaling(int parameterIndex) const¶
Public Members
-
bool sendStates = false¶
Include model states in result package
Protected Functions
-
AmiciSummedGradientFunction() = default¶
-
virtual int runSimulations(gsl::span<double const> optimizationParameters, double &nllh, gsl::span<double> objectiveFunctionGradient, const std::vector<int> &dataIndices, Logger *logger, double *cpuTime) const¶
Run AMICI simulations for conditions with the given indices.
- Parameters:
optimizationVariables –
logLikelihood –
objectiveFunctionGradient –
dataIndices –
numDataIndices –
- Returns:
Simulation status, != 0 indicates failure
-
int aggregateLikelihood(JobData &data, double &negLogLikelihood, gsl::span<double> negLogLikelihoodGradient, double &simulationTimeInS, gsl::span<const double> optimizationParameters) const¶
Aggregates log-likelihood received from workers.
- Parameters:
data – Simulation job result
negLogLikelihood – output argument to which negative log likelihood is added
negLogLikelihoodGradient – output argument to which negative log likelihood gradient is added
simulationTimeInS – unused
- Returns:
-
void addSimulationGradientToObjectiveFunctionGradient(int conditionIdx, gsl::span<const double> simulationGradient, gsl::span<double> objectiveFunctionGradient, gsl::span<const double> parameters) const¶
Aggregates log-likelihood gradient received from workers.
- Parameters:
conditionIdx –
simulationGradient – log-likelihood gradient from simulation
objectiveFunctionGradient – output to which negative log-likelihood gradient from simulation is added
-
void setSensitivityOptions(bool sensiRequired) const¶
-
using WorkPackage = AmiciSimulationRunner::AmiciWorkPackageSimple¶