# METHOD_OPTIONS

Type: dict_record

method options for sim_script

Example:-

    METHOD_OPTIONS:
        py_module: sim
        rand_seed: 12345
        float_format: default

## py_module

Type: one_of(sim)

Python module required to process this script file

Example:-

    py_module: sim

## rand_seed

Type: int / auto

Option to set seed to make run result reproducible -e.g. when debugging.

Example:-

    rand_seed: 12345

## float_format

Type: str

Format string for numerical output

Example:-

    float_format: default

# PARALLEL

Type: one_of_record

one of many possible servers

Example:-

    PARALLEL:
        SINGLE: {}

## SINGLE

Type: dict_record

single process server spec.

Example:-

    SINGLE: {}

## MPI_WORKERS

Type: dict_record

MPI local server spec.

Example:-

    MPI_WORKERS:
        n_workers: auto

### n_workers

Type: int / auto

Number of workers to use on this machine, defaults to number of processors, but could be more or fewer.

Example:-

    n_workers: auto

# DESCRIPTION

Type: dict_record

Description fields for script.

Example:-

    DESCRIPTION:
        name: example
        title: A PKPD model
        author: A.N. Other
        abstract: |
        keywords: []

## name

Type: str

Unique name used to distinguish script

Example:-

    name: example

## title

Type: str

A longer text string that could serve as a title

Example:-

    title: A PKPD model

## author

Type: str

Author of the model

Example:-

    author: A.N. Other

## abstract

Type: verbatim

Abstract paragraph describing model

Example:-

    abstract: |

## keywords

Type: list

Keywords list used to categorise models.

Example:-

    keywords: []

# FILE_PATHS

Type: dict_record

file paths

Example:-

    FILE_PATHS:
        input_data_file: input.csv
        extra_data_file: none
        output_folder: auto
        temp_folder: auto
        log_folder: auto
        output_file_ext: ['svg']
        solutions:
            orig: ./path_to_input_solution.pyml
            final: ./path_to_final_solution.pyml

## input_data_file

Type: input_file

path to input comma separated value file in popy data format

Example:-

    input_data_file: input.csv

## extra_data_file

Type: input_file / none

path to extra comma separated value file in popy data format

Example:-

    extra_data_file: none

## output_folder

Type: output_folder / auto

Output folder - results of computation stored here

Example:-

    output_folder: auto

## temp_folder

Type: output_folder / auto

Temp folder - temporary files stored here

Example:-

    temp_folder: auto

## log_folder

Type: output_folder / auto

Log folder - log files stored here

Example:-

    log_folder: auto

## output_file_ext

Type: list_of(pdf,png,svg)

Output file extension - determines graphical output file format.

Example:-

    output_file_ext: ['svg']

## solutions

Type: dict

Solutions to compare

Example:-

    solutions:
        orig: ./path_to_input_solution.pyml
        final: ./path_to_final_solution.pyml

# DATA_FIELDS

Type: dict_record

data fields for popy.dat.fields object

Example:-

    DATA_FIELDS:
        type_field: TYPE
        id_field: ID
        time_field: TIME

## type_field

Type: str

Field name in data file that contains row type info, e.g. obs/dose etc

Example:-

    type_field: TYPE

## id_field

Type: str

Field name in data file that contains identity string for each data row e.g. obs/dose etc

Example:-

    id_field: ID

## time_field

Type: str

Field name in data file that contains time or event for each data row

Example:-

    time_field: TIME

# PREPROCESS

Type: verbatim

Code that preprocesses the input data. Use this to filter rows and create derived covariates.

Example:-

    PREPROCESS: |

# STATES

Type: verbatim

Optional section for setting initial values of s[X] variables can also set slabel[X] text labels.

Example:-

    STATES: |

# DERIVATIVES

Type: verbatim

Define how the covariates and effects determine flows between compartments.

Example:-

    DERIVATIVES: |
        # s[DEPOT,CENTRAL,PERI] = @dep_two_cmp_cl{dose:@bolus{amt:c[AMT]}}
        d[DEPOT] = @bolus{amt:c[AMT]} - m[KA]*s[DEPOT]
        d[CENTRAL] = m[KA]*s[DEPOT] - s[CENTRAL]*m[CL]/m[V1] - s[CENTRAL]*m[Q]/m[V1]  + s[PERI]*m[Q]/m[V2]
        d[PERI] = s[CENTRAL]*m[Q]/m[V1] - s[PERI]*m[Q]/m[V2]

# PREDICTIONS

Type: verbatim

Define the final predicted m[X] variables to be output by the compartment model system.

Example:-

    PREDICTIONS: |
        p[DV_CENTRAL] = s[CENTRAL]/m[V1]
        var = m[ANOISE]**2 + m[PNOISE]**2 * p[DV_CENTRAL]**2
        c[DV_CENTRAL] ~ norm(p[DV_CENTRAL], var)

# POSTPROCESS

Type: verbatim

Code that postprocesses the output data. Use this to filter rows and create derived covariates, after the main data curves have been generated.

Example:-

    POSTPROCESS: |

# ODE_SOLVER

Type: one_of_record

one of many possible solvers

Example:-

    ODE_SOLVER:
        SCIPY_ODEINT: {atol: 1e-06, rtol: 1e-06, max_nsteps: 10000000, use_sens: False}

## NO_SOLVER

Type: dict_record

Null method for blank derivatives.

Example:-

    NO_SOLVER: {}

## ANALYTIC

Type: dict_record

Analytic method for solving ODE

Example:-

    ANALYTIC: {}

## SCIPY_ODEINT

Type: dict_record

odeint solver record

Example:-

    SCIPY_ODEINT:
        atol: 1e-06
        rtol: 1e-06
        max_nsteps: 10000000
        use_sens: False

### atol

Type: float

Absolute tolerance of ode solver.

Example:-

    atol: 1e-06

### rtol

Type: float

Relative tolerance of ode solver.

Example:-

    rtol: 1e-06

### max_nsteps

Type: int

Maximum number of steps allowed in ode solver.

Example:-

    max_nsteps: 10000000

### use_sens

Type: bool

Option to use sensitivity equations in ode solver.

Example:-

    use_sens: False

# OUTPUT_OPTIONS

Type: dict_record

Output options for sim_script

Example:-

    OUTPUT_OPTIONS:
        sim_time_step: -1.0

## sim_time_step

Type: float

Size of time step when creating smooth curve predictions note setting this to a negative value, results in simulated predictions for each individual ONLY at time points in the original data set.

Example:-

    sim_time_step: -1.0

# OUTPUT_SCRIPTS

Type: dict_record

scripts to output for further processing

Example:-

    OUTPUT_SCRIPTS:
        GRPH:
            output_mode: none
            grph_list: ['SPAG_GRPH', 'COMB_SPAG_GRPH']
            x_var: TIME
            x_axis_label: TIME
            y_var_list: ['DRUG_CONC', 'DRUG_CONC']
            y_var_src_list: ['observed_data', 'ground_truth']
            y_var_label_list: ['Drug conc. (units)', 'Drug conc. (units)']
            split_field: none
            split_values: []
            share_axes: False

## GRPH

Type: dict_record

Options to pass to plt_grph_script.

Example:-

    GRPH:
        output_mode: none
        grph_list: ['SPAG_GRPH', 'COMB_SPAG_GRPH']
        x_var: TIME
        x_axis_label: TIME
        y_var_list: ['DRUG_CONC', 'DRUG_CONC']
        y_var_src_list: ['observed_data', 'ground_truth']
        y_var_label_list: ['Drug conc. (units)', 'Drug conc. (units)']
        split_field: none
        split_values: []
        share_axes: False

### output_mode

Type: one_of(none,create,run)

Output options.

Example:-

    output_mode: none

### grph_list

Type: list(str)

List of graph types to generate in popy_grph script.

Example:-

    grph_list: ['SPAG_GRPH', 'COMB_SPAG_GRPH']

### x_var

Type: str

x axis variable name.

Example:-

    x_var: TIME

### x_axis_label

Type: str

x axis label

Example:-

    x_axis_label: TIME

### y_var_list

Type: list(str)

List of y variable names to be plotted on graph.

Example:-

    y_var_list: ['DRUG_CONC', 'DRUG_CONC']

### y_var_src_list

Type: list(str)

List src solutions.

Example:-

    y_var_src_list: ['observed_data', 'ground_truth']

### y_var_label_list

Type: list(str)

List of y variable labels to be plotted on graph.

Example:-

    y_var_label_list: ['Drug conc. (units)', 'Drug conc. (units)']

### split_field

Type: str / none

Field to split data over graphs.

Example:-

    split_field: none

### split_values

Type: list

Values to split data over graphs.

Example:-

    split_values: []

### share_axes

Type: bool

Option to share axes between individuals when plotting graphical data

Example:-

    share_axes: False