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

762

Version

1.3.2

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Nicolas Luyckx

Last Published

May 7th, 2026

Functions in campsismod (1.3.2)

LineBreak

Create a new line break.
InfusionRate

Create an infusion rate.
CampsisModel

Create a new Campsis model.
InfusionDuration

Create an infusion duration.
Theta

Create a THETA parameter.
Parameters

Create a list of parameters.
Position

Element position in list.
OmegaBlock

Create a block of OMEGA's.
UnknownStatement

Create a new ordinary differential equation (ODE).
Sigma

Create a SIGMA parameter.
Pattern

Create a pattern.
Omega

Create an OMEGA parameter.
OdeRecord

Create ODE code record.
OmegaBlocks

Create a list of OMEGA blocks.
allNa

Check is vector has NA's only.
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.
VariablePattern

Create a variable pattern.
addRSE

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

Add element to list.
addProperties

Add properties to compartments object.
appendCodeRecords

Append code records
UnsupportedDestException

Unknown destination engine exception.
addODECompartment

Add ODE compartment to compartments object.
auto_replication_settings-class

Auto replication settings class.
autoDetectNONMEM

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

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

Comment class. A statement starting with #.
:=

Colon-equals operator.
appendCompartments

Append compartments.
appendParameters

Append parameters.
checkMatrixIsPositiveDefinite

Check OMEGA/SIGMA matrix for positive definiteness.
appendComment

Append comment.
compartment_property-class

Compartment property 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.
compartment_initial_condition-class

Compartment initial condition class.
appendModel

Append model (or simply add).
disable

Disable.
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)
compartment-class

Compartment class.
compartment_lag_time-class

Compartment lag time class.
compartments-class

Compartments class.
equation-class

Equation class. Any statement in the form A = B.
duration_record-class

(Infusion)-duration record class.
compartment_infusion_rate-class

Compartment infusion rate class.
convertAnyComment

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

Check if an element exists in list.
compartment_bioavailability-class

Compartment bioavailability class.
default

Get default element from list.
campsis_model-class

Campsis model class.
exportToJSON

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

Compartment infusion duration class.
extractTextBetweenBrackets

Extract text between brackets.
f_record-class

Bioavailability record class.
convertOutvarsToCapture

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

Error record class.
export

Export function.
getNONMEMName

Get NONMEM name.
getName

Get element name.
getCampsismodOptions

Get the Campsismod options (R options).
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.
export_type-class

Export type class.
getCompartments

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

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

Delete an element from this list.
getByIndex

Get element by index.
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.
find

Find an element in list.
as.data.frame

As data frame method.
getNames

Get element names from list.
hasOffDiagonalOmegas

Has off-diagonal omegas.
getCompartmentIndex

Get the compartment index for the specified compartment name.
getUncertainty

Get uncertainty on the parameters.
getRecordName

Get record name.
hasExactMethod

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

Get record equation names
extractLhs

Extract left-hand-side expression.
extractRhs

Extract right-hand-side expression.
getCampsismodOption

Get Campsismod option logic.
isDiag

Is diagonal.
%>%

Magritt operator for piping.
hasComment

Check if string contains Campsis-style comments.
getByName

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

Get the indexes of the omegas.
getOmegaBlock

Get the right block of OMEGA's.
isComment

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

Check if string is an empty line.
line_break-class

Line-break class. A linebreak in the model.
length,pmx_list-method

Return the length of this list.
isBlockFixed

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

Get variance-covariance matrix.
fixOmega

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

Say if line in record is an equation not.
isIfStatement

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

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

Map JSON properties to S4 slots.
jsonToOffDiagParameter

Convert JSON correlation parameter (OMEGA or SIGMA) into a Campsis parameter.
manual_replication_settings-class

Manual replication settings class.
if_statement-class

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

JSON to Campsis parameter.
model_statements-class

Model statements class. A list of statements.
model_suite

Campsis model suite.
isRxODE

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

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

Get record delimiter.
indexOf

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

Init record class.
getPrefix

Get prefix.
mapS4SlotsToJSONProperties

Map S4 slots to JSON properties.
mrgsolveMain

Get the MAIN block for mrgsolve.
model_statement-class

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

Move element 'x' from object to a certain place.
lag_record-class

Lag record class.
json_element-class

JSON element class.
minMaxDefault

Min/max default values for the given parameter.
mrgsolveTable

Get the TABLE block for mrgsolve.
isStrictRecordDelimiter

Is strict record delimiter. A strict record delimiter is any line starting with [...] and followed by nothing but spaces or a possible comment.
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.
minIndex

Min index.
mrgsolveCompartment

Get the compartment block for mrgsolve.
mrgsolveCapture

Get the CAPTURE block for mrgsolve.
isMatrixPositiveDefinite

Is matrix positive definite. Same check as mvtnorm does.
mrgsolveBlock

Convert code record for mrgsolve.
omega-class

Omega parameter class.
jsonToCampsisModel

JSON to Campsis dataset.
methodsGlobalFunctions

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

Get the OMEGA/SIGMA matrix for mrgsolve.
ode_record-class

ODE record class.
ode-class

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

Mrgsolve export type class.
pmx_element-class

PMX element class.
pattern-class

Pattern class.
processExtraArg

Process extra arguments.
isODE

Say if line(s) in record is/are ODE or not.
parseStatements

Parse statements code and return Campsis statements.
processDoubleArrayArguments

Process double array arguments.
loadFromJSON

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

Main record class.
parseIfStatement

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

Get the ODE block for mrgsolve.
maxIndex

Max index.
pmx_list-class

PMX list class.
read.varcov

Read variance-covariance file.
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.
openJSON

Open JSON file.
rate_record-class

(Infusion)-rate record class.
read

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

Process JSON double array parameter.
parameter-class

Parameter class. Any parameter in a pharmacometric model.
mrgsolveParam

Get the parameters block for mrgsolve.
pmx_position_by_element-class

PMX position by element class.
read.model

Read model file.
read.parameters

Read parameters file.
pmx_position_by_index-class

PMX position by index class.
read.allparameters

Read all parameters files at once.
read.campsis

Read a Campsis model.
pmx_position-class

PMX position class.
replace

Replace element by another in list.
replaceAll

Replace all occurrences in object.
sampleFromInverseWishartCore

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

RxODE/rxode2 export type class.
read.pmxmod

Read a Campsis model (deprecated).
rxodeMatrix

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

Parameters class.
properties_record-class

Properties record class.
sort

Sort the specified list.
replicated_campsis_model-class

Replicated Campsis model class.
standardise

Standardise.
sampleFromMultivariateNormalDistribution

Sample from a multivariate normal distribution.
replicate

Replicate generic object.
sampleFromInverseChiSquaredOrWishart

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

Sigma parameter class.
replication_settings-class

Replication settings interface.
select

Get a subset of an object.
rxodeCode

Get code for rxode2
rxodeParams

Get the parameters vector for rxode2.
statements_record-class

Statements record class.
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.
setMinMax

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

Shift OMEGA indexes.
sampleFromInverseChiSquaredCore

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

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

Remove all trailing line breaks.
unknown_statement-class

Unknown statement class. Any statement not recognized by campsismod.
theta-class

Theta parameter class.
writeParameters

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

Return the variable pattern (string form).
variablePatternNoStartStr

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

Sample from multivariate normal distribution (core method).
single_array_parameter-class

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

Write record delimiter line.
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.
updateCompartments

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

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

ToString generic method.
writeVarcov

Write variance-covariance matrix.
trim

Trim character vector. Remove all leading and trailing spaces.
variable_pattern-class

Variable pattern class.
write

Write generic object to files.
AutoReplicationSettings

Create auto replication settings.
Bioavailability

Create a bioavailability for the specified compartment.
ErrorRecord

Create ERROR code record.
Comment

Create a new comment.
IfStatement

Create a new IF-statement.
Compartment

Create a compartment.
Equation

Create a new equation.
CodeRecords

Create a list of code records.
Compartments

Create a list of compartments
MainRecord

Create MAIN code record.
ModelStatements

Create an empty list of model statements.
Ode

Create a new ordinary differential equation (ODE).
LagTime

Create a lag time for the specified compartment.
JSONElement

Instantiate a JSON element.
InitialCondition

Create an initial condition.
ManualReplicationSettings

Create manual replication settings.