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

382

Version

1.3.0

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Nicolas Luyckx

Last Published

January 27th, 2026

Functions in campsismod (1.3.0)

InfusionDuration

Create an infusion duration.
MainRecord

Create MAIN code record.
Position

Element position in list.
Sigma

Create a SIGMA parameter.
OdeRecord

Create ODE code record.
ModelStatements

Create an empty list of model statements.
Ode

Create a new ordinary differential equation (ODE).
Omega

Create an OMEGA parameter.
InfusionRate

Create an infusion rate.
ManualReplicationSettings

Create manual replication settings.
Theta

Create a THETA parameter.
compartment_lag_time-class

Compartment lag time class.
compartment_initial_condition-class

Compartment initial condition class.
add

Add element to list.
addODECompartment

Add ODE compartment to compartments object.
convertAnyComment

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

Create a list of OMEGA blocks.
OmegaBlock

Create a block of OMEGA's.
find

Find an element in list.
UnsupportedDestException

Unknown destination engine exception.
convertOutvarsToCapture

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

Create a variable pattern.
Pattern

Create a pattern.
Parameters

Create a list of parameters.
assertSingleCharacterString

Assert the given character vector is a single character string.
autoDetectNONMEM

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

Disable.
comment-class

Comment class. A statement starting with #.
:=

Colon-equals operator.
appendParameters

Append parameters.
compartment_property-class

Compartment property class.
duration_record-class

(Infusion)-duration record class.
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.
compartment_properties-class

Compartment properties class.
as.data.frame

As data frame method.
allNa

Check is vector has NA's only.
fixOmega

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

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

Append code records
InitialCondition

Create an initial condition.
JSONElement

Instantiate a JSON element.
appendCompartments

Append compartments.
appendComment

Append comment.
appendModel

Append model (or simply add).
getByIndex

Get element by index.
double_array_parameter-class

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

Check if string is a Campsis comment (i.e. not an equation).
flagSampledParameterRows

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.
exportToJSON

Export the given object to a JSON object, ready to be written to files.
f_record-class

Bioavailability record class.
getCampsismodOption

Get Campsismod option logic.
extractTextBetweenBrackets

Extract text between brackets.
compartment_infusion_rate-class

Compartment infusion rate class.
getByName

Get an element from a list by name. Never return more than 1 element.
compartment_infusion_duration-class

Compartment infusion duration class.
getRecordDelimiter

Get record delimiter.
export_type-class

Export type class.
jsonToCampsisModel

JSON to Campsis dataset.
getName

Get element name.
getPrefix

Get prefix.
getNONMEMName

Get NONMEM name.
init_record-class

Init record class.
jsonToOffDiagParameter

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

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

Check OMEGA/SIGMA matrix for positive definiteness.
compartment-class

Compartment class.
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)
UnknownStatement

Create a new ordinary differential equation (ODE).
contains

Check if an element exists in list.
compartment_bioavailability-class

Compartment bioavailability class.
compartments-class

Compartments class.
auto_replication_settings-class

Auto replication settings class.
addRSE

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

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

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

Add properties to compartments object.
isEquation

Say if line in record is an equation not.
getUncertainty

Get uncertainty on the parameters.
isEmptyLine

Check if string is an empty line.
export

Export function.
isDiag

Is diagonal.
error_record-class

Error record class.
campsis_model-class

Campsis model class.
lag_record-class

Lag record class.
length,pmx_list-method

Return the length of this list.
default

Get default element from list.
getNameInModel

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

Get the OMEGA/SIGMA matrix for mrgsolve.
mrgsolveOde

Get the ODE block for mrgsolve.
extractRhs

Extract right-hand-side expression.
delete

Delete an element from this list.
getCampsismodOptions

Get the Campsismod options (R options).
extractLhs

Extract left-hand-side expression.
getRecordEquationNames

Get record equation names
getRecordName

Get record name.
getOmegaBlock

Get the right block of OMEGA's.
getCompartmentIndex

Get the compartment index for the specified compartment name.
isIfStatement

Say if line in record is an IF-statement.
parameter-class

Parameter class. Any parameter in a pharmacometric model.
openJSON

Open JSON file.
hasOffDiagonalOmegas

Has off-diagonal omegas.
getOmegaIndexes

Get the indexes of the omegas.
getNames

Get element names from list.
processDoubleArrayArguments

Process double array arguments.
pmx_position_by_index-class

PMX position by index class.
isStrictRecordDelimiter

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

Min/max default values for the given parameter.
minIndex

Min index.
jsonToParameter

JSON to Campsis parameter.
hasComment

Check if string contains Campsis-style comments.
isRxODE

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

Magritt operator for piping.
model_statement-class

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

Get the parameters block for mrgsolve.
isMatrixPositiveDefinite

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

Main record class.
model_statements-class

Model statements class. A list of statements.
mrgsolveTable

Get the TABLE block for mrgsolve.
manual_replication_settings-class

Manual replication settings class.
read

Generic read method to read data from a file or a folder.
json_element-class

JSON element class.
model_suite

Campsis model suite.
ifStatementPatternStr

Return the IF-statement pattern (string form).
read.campsis

Read a Campsis model.
isODE

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

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

Is record delimiter. A record delimiter is any line starting with [...].
loadFromJSON

Fill-in S4 object from the JSON content.
parameters-class

Parameters class.
parseIfStatement

Parse IF-statement. Assumption: isIfStatement method already called and returned TRUE.
properties_record-class

Properties record class.
replace

Replace element by another in list.
rate_record-class

(Infusion)-rate record class.
removeTrailingLineBreaks

Remove all trailing line breaks.
mrgsolveBlock

Convert code record for mrgsolve.
maxIndex

Max index.
getVarCov

Get variance-covariance matrix.
mrgsolveCapture

Get the CAPTURE block for mrgsolve.
methodsGlobalFunctions

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

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

Read all parameters files at once.
mrgsolveCompartment

Get the compartment block for mrgsolve.
move

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

Sample from scaled inverse Wishart distribution (core method).
read.model

Read model file.
pattern-class

Pattern class.
parseStatements

Parse statements code and return Campsis statements.
mrgsolveMain

Get the MAIN block for mrgsolve.
mapJSONPropertiesToS4Slots

Map JSON properties to S4 slots.
mapS4SlotsToJSONProperties

Map S4 slots to JSON properties.
indexOf

Get the index of an element in list.
theta-class

Theta parameter class.
standardise

Standardise.
sampleFromMultivariateNormalDistribution

Sample from a multivariate normal distribution.
statements_record-class

Statements record class.
replaceAll

Replace all occurrences in object.
pmx_list-class

PMX list class.
pmx_element-class

PMX element class.
read.varcov

Read variance-covariance file.
replicate

Replicate generic object.
processExtraArg

Process extra arguments.
processJSONDoubleArrayParameter

Process JSON double array parameter.
rxode_type-class

RxODE/rxode2 export type class.
rxodeParams

Get the parameters vector for rxode2.
setMinMax

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

Get a subset of an object.
replicated_campsis_model-class

Replicated Campsis model class.
trim

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

Get code for rxode2
rxodeMatrix

Get the OMEGA/SIGMA matrix for rxode2.
unknown_statement-class

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

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

Replication settings interface.
single_array_parameter-class

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

Sort the specified list.
matchSingleArrayParameter

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

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

Write generic object to files.
shiftOmegaIndexes

Shift OMEGA indexes.
sigma-class

Sigma parameter class.
sampleFromInverseChiSquaredCore

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

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

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

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.
mrgsolve_type-class

Mrgsolve export type class.
updateParameters

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

Return the variable pattern (string form), without the first character.
ode-class

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

ODE record class.
toString

ToString generic method.
writeRecordDelimiter

Write record delimiter line.
writeVarcov

Write variance-covariance matrix.
omega-class

Omega parameter class.
pmx_position-class

PMX position class.
read.parameters

Read parameters file.
pmx_position_by_element-class

PMX position by element class.
read.pmxmod

Read a Campsis model (deprecated).
writeParameters

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

Sample from multivariate normal distribution (core method).
sampleGeneric

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.
variable_pattern-class

Variable pattern class.
variablePatternStr

Return the variable pattern (string form).
ErrorRecord

Create ERROR code record.
Compartments

Create a list of compartments
AutoReplicationSettings

Create auto replication settings.
Comment

Create a new comment.
CampsisModel

Create a new Campsis model.
CodeRecords

Create a list of code records.
IfStatement

Create a new IF-statement.
Equation

Create a new equation.
Bioavailability

Create a bioavailability for the specified compartment.
Compartment

Create a compartment.
LagTime

Create a lag time for the specified compartment.
LineBreak

Create a new line break.