Learn R Programming

campsismod

Installation

You can install the released version of campsismod from CRAN with:

install.packages("campsismod")

Alternatively, the package can also be installed with devtools:

devtools::install_github("Calvagone/campsismod")

Basic examples

Load example from model library

Load 2-compartment PK model from built-in model library:

library(campsismod)
model <- model_suite$pk$`2cpt_fo`

Write Campsis model

The model can be exported to files using write.

model %>% write(file="path_to_model_folder")

In this case, the model code will be contained in the model.campsis file. Parameters (THETA, OMEGA and SIGMA) will be stored in their respective CSV file.

list.files("path_to_model_folder")
#> [1] "model.campsis" "omega.csv"     "sigma.csv"     "theta.csv"

Alternatively, the model can also be exported in JSON format into a single file:

model %>% write(file="my_model.json")

Read and show Campsis model

The model can be loaded from the previously created folder:

model <- read.campsis(file="path_to_model_folder")

Or, from the previously created JSON file:

model <- read.campsis(file="my_model.json")

The model can then be output in the console using show:

show(model)
#> [MAIN]
#> TVBIO=THETA_BIO
#> TVKA=THETA_KA
#> TVVC=THETA_VC
#> TVVP=THETA_VP
#> TVQ=THETA_Q
#> TVCL=THETA_CL
#> 
#> BIO=TVBIO
#> KA=TVKA * exp(ETA_KA)
#> VC=TVVC * exp(ETA_VC)
#> VP=TVVP * exp(ETA_VP)
#> Q=TVQ * exp(ETA_Q)
#> CL=TVCL * exp(ETA_CL)
#> 
#> [ODE]
#> d/dt(A_ABS)=-KA*A_ABS
#> d/dt(A_CENTRAL)=KA*A_ABS + Q/VP*A_PERIPHERAL - Q/VC*A_CENTRAL - CL/VC*A_CENTRAL
#> d/dt(A_PERIPHERAL)=Q/VC*A_CENTRAL - Q/VP*A_PERIPHERAL
#> 
#> [F]
#> A_ABS=BIO
#> 
#> [ERROR]
#> CONC=A_CENTRAL/VC
#> if (CONC <= 0.001) CONC=0.001
#> CONC_ERR=CONC*(1 + EPS_PROP_RUV)
#> 
#> 
#> THETA's:
#>   name index value   fix                            label unit
#> 1  BIO     1     1 FALSE                  Bioavailability <NA>
#> 2   KA     2     1 FALSE                  Absorption rate  1/h
#> 3   VC     3    10 FALSE    Volume of central compartment    L
#> 4   VP     4    40 FALSE Volume of peripheral compartment    L
#> 5    Q     5    20 FALSE           Inter-compartment flow  L/h
#> 6   CL     6     3 FALSE                        Clearance  L/h
#> OMEGA's:
#>   name index index2 value   fix type
#> 1   KA     1      1    25 FALSE  cv%
#> 2   VC     2      2    25 FALSE  cv%
#> 3   VP     3      3    25 FALSE  cv%
#> 4    Q     4      4    25 FALSE  cv%
#> 5   CL     5      5    25 FALSE  cv%
#> SIGMA's:
#>       name index index2 value   fix type
#> 1 PROP_RUV     1      1   0.1 FALSE   sd
#> No variance-covariance matrix
#> 
#> Compartments:
#> A_ABS (CMT=1)
#> A_CENTRAL (CMT=2)
#> A_PERIPHERAL (CMT=3)

Simulate with rxode2 or mrgsolve

library(campsis)

dataset <- Dataset(5) %>%
  add(Bolus(time=0, amount=1000, ii=12, addl=2)) %>%
  add(Observations(times=0:36))

rxode <- model %>% simulate(dataset=dataset, dest="rxode2", seed=0)
mrgsolve <- model %>% simulate(dataset=dataset, dest="mrgsolve", seed=0)
spaghettiPlot(rxode, "CONC")
spaghettiPlot(mrgsolve, "CONC")

Copy Link

Version

Install

install.packages('campsismod')

Monthly Downloads

345

Version

1.4.0

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Nicolas Luyckx

Last Published

July 30th, 2026

Functions in campsismod (1.4.0)

IfStatement

Create a new IF-statement.
ErrorRecord

Create ERROR code record.
LagTime

Create a lag time for the specified compartment.
LineBreak

Create a new line break.
JSONElement

Instantiate a JSON element.
InitialCondition

Create an initial condition.
InfusionDuration

Create an infusion duration.
Omega

Create an OMEGA parameter.
InfusionRate

Create an infusion rate.
OdeRecord

Create ODE code record.
Parameters

Create a list of parameters.
Pattern

Create a pattern.
Position

Element position in list.
addSuffix

Generic function to add a suffix to various objects like parameters, code records, compartment names or a model (all previous objects at the same time). This makes it an extremely powerful function to combine 2 models or more (using function 'add'), that have similar equation, parameter or compartment names.
add

Add element to list.
Sigma

Create a SIGMA parameter.
ManualReplicationSettings

Create manual replication settings.
UnknownStatement

Create a new ordinary differential equation (ODE).
Theta

Create a THETA parameter.
MainRecord

Create MAIN code record.
all_na

Check is vector has NA's only.
appendCompartments

Append compartments.
add_rse

Add relative standard error (RSE) to the specified parameter.
ModelStatements

Create an empty list of model statements.
OmegaBlock

Create a block of OMEGA's.
add_properties

Add properties to compartments object.
add_ode_compartment

Add ODE compartment to compartments object.
Ode

Create a new ordinary differential equation (ODE).
compartment_infusion_duration-class

Compartment infusion duration class.
compartment_bioavailability-class

Compartment bioavailability class.
appendModel

Append model (or simply add).
append_code_records

Append code records
auto_detect_nonmem

Auto-detect special variables from NONMEM as compartment properties. Bioavailabilities, infusion durations/rates and lag times will be automatically detected.
compartment-class

Compartment class.
comment-class

Comment class. A statement starting with #.
convert_any_comment

Convert Campsis comment style to C/C++ code. Only the first # is translated to //.
contains

Check if an element exists in list.
OmegaBlocks

Create a list of OMEGA blocks.
auto_replication_settings-class

Auto replication settings class.
add_suffix

Generic function to add a suffix to various objects like parameters, code records, compartment names or a model (all previous objects at the same time). This makes it an extremely powerful function to combine 2 models or more (using function 'add'), that have similar equation, parameter or compartment names.
UnsupportedDestException

Unknown destination engine exception.
compartment_property-class

Compartment property class.
compartment_lag_time-class

Compartment lag time class.
compartment_properties-class

Compartment properties class.
double_array_parameter-class

Double-array parameter class. This parameter has 2 indexes. It can thus be used to define correlations between parameters.
as.data.frame

As data frame method.
duration_record-class

(Infusion)-duration record class.
VariablePattern

Create a variable pattern.
compartments-class

Compartments class.
export

Export function.
extract_text_between_brackets

Extract text between brackets.
extract_rhs

Extract right-hand-side expression.
extract_lhs

Extract left-hand-side expression.
f_record-class

Bioavailability record class.
compartment_infusion_rate-class

Compartment infusion rate class.
compartment_initial_condition-class

Compartment initial condition class.
assert_single_character_string

Assert the given character vector is a single character string.
export_type-class

Export type class.
append_comment

Append comment.
find

Find an element in list.
getName

Get element names from list.
append_parameters

Append parameters.
convert_outvars_to_capture

Convert outvars argument to capture. Variables that are already in error block will be discarded.
getNames

Get element names from list.
export_to_json

Export the given object to a JSON object, ready to be written to files.
fix_omega

Fix omega matrix for SAME OMEGA parameters that have NA values due to imperfections in Pharmpy import.
get_nonmem_name

Get NONMEM name.
fixOmega

Fix omega matrix for SAME OMEGA parameters that have NA values due to imperfections in Pharmpy import.
getUncertainty

Get uncertainty on the parameters.
getByName

#' Get an element from a list by name.
getCompartmentIndex

Get the compartment index for the specified compartment name.
get_record_name

Get record name.
get_by_index

Get element by index.
get_by_name

Get an element from a list by name. Never return more than 1 element.
get_uncertainty

Get uncertainty on the parameters.
default

Get default element from list.
getNameInModel

Get the name of the given parameter in the Campsis model.
if_statement_pattern_str

Return the IF-statement pattern (string form).
get_campsismod_option

Get Campsismod option logic.
campsis_model-class

Campsis model class.
get_name_in_model

Get the name of the given parameter in the Campsis model.
get_campsismod_options

Get the Campsismod options (R options).
get_prefix

Get prefix.
get_names

Get element names from list.
has_off_diagonal_omegas

Has off-diagonal omegas.
get_omega_indexes

Get the indexes of the omegas.
get_mapping_matrix

Return a matrix filled in with OMEGA/SIGMA names to be mapped with the values. Nonexistent parameters are filled in with the empty string.
is_if_statement

Say if line in record is an IF-statement.
is_matrix_positive_definite

Is matrix positive definite. Same check as mvtnorm does.
init_record-class

Init record class.
get_omega_block

Get the right block of OMEGA's.
index_of

Get the index of an element in list.
get_name

Get element name.
get_var_cov

Get variance-covariance matrix.
check_matrix_is_positive_definite

Check OMEGA/SIGMA matrix for positive definiteness.
%>%

Magritt operator for piping.
code_record-class

Code record class. See this code record as an abstract class. 2 implementations are possible: - properties record (lag, duration, rate & bioavailability properties) - statements record (main, ode & error records)
:=

Colon-equals operator.
isDiag

Is diagonal.
if_statement-class

If-statement class. Any statement in the form if (condition) A = B.
is_empty_line

Check if string is an empty line.
delete

Delete an element from this list.
disable

Disable.
equation-class

Equation class. Any statement in the form A = B.
is_rxode

Check if the destination engine is RxODE or rxode2. Note that rxode2 is the successor of RxODE.
is_block_fixed

Say if the block is fixed (i.e. all parameters are fixed).
is_strict_record_delimiter

Is strict record delimiter. A strict record delimiter is any line starting with [...] and followed by nothing but spaces or a possible comment.
get_record_delimiter

Get record delimiter.
getByIndex

Get element by index.
get_record_equation_names

Get record equation names
error_record-class

Error record class.
get_compartment_index

Get the compartment index for the specified compartment name.
map_json_properties_to_s4_slots

Map JSON properties to S4 slots.
indexOf

Get the index of an element in list.
flag_sampled_parameter_rows

Flag all parameter rows that have at least one parameter out of the specified range or that have a non positive definite OMEGA or SIGMA matrix.
get_compartments

Detect all compartments names from the code records. Only for model instantiation. Not exported.
is_ode

Say if line(s) in record is/are ODE or not.
main_record-class

Main record class.
mrgsolve_param

Get the parameters block for mrgsolve.
manual_replication_settings-class

Manual replication settings class.
json_to_off_diag_parameter

Convert JSON correlation parameter (OMEGA or SIGMA) into a Campsis parameter.
json_to_campsis_model

JSON to Campsis dataset.
is_record_delimiter

Is record delimiter. A record delimiter is any line starting with [...].
model_statement-class

Model statement class. Any statement in a code record.
map_s4_slots_to_json_properties

Map S4 slots to JSON properties.
has_exact_method

Has exact method allows to check the existence of a S4 method in Campsis based on its signature.
has_comment

Check if string contains Campsis-style comments.
is_comment

Check if string is a Campsis comment (i.e. not an equation).
lag_record-class

Lag record class.
maxIndex

Max index.
json_to_parameter

JSON to Campsis parameter.
line_break-class

Line-break class. A linebreak in the model.
is_equation

Say if line in record is an equation not.
length,pmx_list-method

Return the length of this list.
match_double_array_parameter

Match double array parameter from list based on the name instead of the index. If a match is found, its indexes are automatically copied.
model_statements-class

Model statements class. A list of statements.
max_index

Max index.
move

Move element 'x' from object to a certain place.
mrgsolve_ode

Get the ODE block for mrgsolve.
mrgsolve_matrix

Get the OMEGA/SIGMA matrix for mrgsolve.
model_suite

Campsis model suite.
json_element-class

JSON element class.
mrgsolve_table

Get the TABLE block for mrgsolve.
parse_statements

Parse statements code and return Campsis statements.
methods_global_functions

A empty method only used to declare some of the global function definitions contained in the package 'methods', which are used intensively.
jsonToParameter

JSON to Campsis parameter.
rate_record-class

(Infusion)-rate record class.
minIndex

Min index.
is_diag

Is diagonal.
load_from_json

Fill-in S4 object from the JSON content.
min_index

Min index.
parameters-class

Parameters class.
loadFromJSON

Fill-in S4 object from the JSON content.
mapJSONPropertiesToS4Slots

Map JSON properties to S4 slots.
min_max_default

Min/max default values for the given parameter.
mapS4SlotsToJSONProperties

Map S4 slots to JSON properties.
mrgsolve_compartment

Get the compartment block for mrgsolve.
mrgsolve_main

Get the MAIN block for mrgsolve.
pmx_position-class

PMX position class.
pmx_position_by_element-class

PMX position by element class.
pmx_position_by_index-class

PMX position by index class.
processDoubleArrayArguments

Process double array arguments.
replicate

Replicate generic object.
rxode_params

Get the parameters vector for rxode2.
rxode_matrix

Get the OMEGA/SIGMA matrix for rxode2.
replace_all

Replace all occurrences in object.
set_min_max

Set the minimum and maximum value on a model parameter.
parse_if_statement

Parse IF-statement. Assumption: is_if_statement method already called and returned TRUE.
pattern-class

Pattern class.
read.pmxmod

Read a Campsis model (deprecated).
variable_pattern_no_start_str

Return the variable pattern (string form), without the first character.
shift_omega_indexes

Shift OMEGA indexes.
variable_pattern-class

Variable pattern class.
read.varcov

Read variance-covariance file.
ode_record-class

ODE record class.
pmx_element-class

PMX element class.
omega-class

Omega parameter class.
pmx_list-class

PMX list class.
match_single_array_parameter

Match single array parameter from list based on the name instead of the index. If a match is found, its index is automatically copied.
rxode_type-class

RxODE/rxode2 export type class.
properties_record-class

Properties record class.
process_json_double_array_parameter

Process JSON double array parameter.
remove_na_column

Remove given column(s) if it has only NA's.
sample_from_inverse_chi_squared_or_wishart

Sample parameters from inverse scaled chi-squared or wishart distribution(s).
process_extra_arg

Process extra arguments.
mrgsolve_capture

Get the CAPTURE block for mrgsolve.
mrgsolve_block

Convert code record for mrgsolve.
mrgsolve_type-class

Mrgsolve export type class.
processExtraArg

Process extra arguments.
remove_trailing_line_breaks

Remove all trailing line breaks.
sample_from_inverse_wishart_core

Sample from scaled inverse Wishart distribution (core method).
parameter-class

Parameter class. Any parameter in a pharmacometric model.
read.allparameters

Read all parameters files at once.
ode-class

ODE class. Any statement in the form d/dt(A_CMT) = B.
read

Generic read method to read data from a file or a folder.
sample_generic

Generic function for parameter sampling according to the minimum and maximum values. This function will sample parameters a first time and check if some parameters are out of range. Based on the success rate, it will sample more parameters to reach the desired number of rows.
open_json

Open JSON file.
read.campsis

Read a Campsis model.
statements_record-class

Statements record class.
sort

Sort the specified list.
sample_from_inverse_chi_squared_core

Sample from scaled inverse chi-squared distribution (core method).
standardise

Standardise.
read.model

Read model file.
sigma-class

Sigma parameter class.
replicated_campsis_model-class

Replicated Campsis model class.
single_array_parameter-class

Single-array parameter class. This parameter has a single index value.
replication_settings-class

Replication settings interface.
read.parameters

Read parameters file.
update_omegas

Update OMEGAs that are same. Same OMEGAs are written as follows: OMEGA1 same is FALSE (first one, estimated) OMEGA2 same is TRUE OMEGA3 same is TRUE, etc. OMEGA2 and OMEGA3 will take the same value as OMEGA1.
theta-class

Theta parameter class.
sample_from_multivariate_normal_distribution

Sample from a multivariate normal distribution.
to_string

to_string generic method.
rxodeMatrix

Get the OMEGA/SIGMA matrix for rxode2.
rxode_code

Get code for rxode2
replace

Replace element by another in list.
update_compartments

Update compartments list from the persisted records. Exported especially for package campsistrans. However, this method should not be called.
variable_pattern_str

Return the variable pattern (string form).
updateCompartments

Update compartments list from the persisted records. Exported especially for package campsistrans. However, this method should not be called.
sample_from_multivariate_normal_distribution_core

Sample from multivariate normal distribution (core method).
toString

to_string generic method.
replaceAll

Replace all occurrences in object.
write_parameters

Write subset of parameters (theta, omega or sigma).
trim

Trim character vector. Remove all leading and trailing spaces.
write_varcov

Write variance-covariance matrix.
select

Get a subset of an object.
update_parameters

Update model parameters based on the parameters issued from the model replication.
write

Write generic object to files.
unknown_statement-class

Unknown statement class. Any statement not recognized by campsismod.
write_record_delimiter

Write record delimiter line.
Equation

Create a new equation.
Compartment

Create a compartment.
CampsisModel

Create a new Campsis model.
Comment

Create a new comment.
Compartments

Create a list of compartments
Bioavailability

Create a bioavailability for the specified compartment.
AutoReplicationSettings

Create auto replication settings.
CodeRecords

Create a list of code records.