Learn R Programming

campsismod

Installation

Install the latest stable release using 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

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

Read and show CAMPSIS model

model <- read.campsis(file="path_to_model_folder")
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

469

Version

1.2.3

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Nicolas Luyckx

Last Published

July 31st, 2025

Functions in campsismod (1.2.3)

CodeRecords

Create a list of code records.
ManualReplicationSettings

Create manual replication settings.
MainRecord

Create MAIN code record.
LineBreak

Create a new line break.
ModelStatements

Create an empty list of model statements.
InfusionDuration

Create an infusion duration.
UnknownStatement

Create a new ordinary differential equation (ODE).
InfusionRate

Create an infusion rate.
InitialCondition

Create an initial condition.
LagTime

Create a lag time for the specified compartment.
OdeRecord

Create ODE code record.
Ode

Create a new ordinary differential equation (ODE).
Theta

Create a THETA parameter.
OmegaBlocks

Create a list of OMEGA blocks.
Pattern

Create a pattern.
Sigma

Create a SIGMA parameter.
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.
addRSE

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

Create a list of parameters.
appendCodeRecords

Append code records
campsis_model-class

Campsis model class.
allNa

Check is vector has NA's only.
contains

Check if an element exists in list.
compartment_infusion_rate-class

Compartment infusion rate class.
compartment_initial_condition-class

Compartment initial condition class.
Omega

Create an OMEGA parameter.
checkMatrixIsPositiveDefinite

Check OMEGA/SIGMA matrix for positive definiteness.
convertAnyComment

Convert CAMPSIS comment style to C/C++ code. Only the first # is translated to //.
extractTextBetweenBrackets

Extract text between brackets.
f_record-class

Bioavailability record class.
getNONMEMName

Get NONMEM name.
VariablePattern

Create a variable pattern.
compartment_properties-class

Compartment properties class.
as.data.frame

As data frame method.
add

Add element to list.
UnsupportedDestException

Unknown destination engine exception.
assertSingleCharacterString

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

Compartment lag time class.
getName

Get element name.
autoDetectNONMEM

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

Create a block of OMEGA's.
auto_replication_settings-class

Auto replication settings class.
convertOutvarsToCapture

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

Get default element from list.
addODECompartment

Add ODE compartment to compartments object.
%>%

Magritt operator for piping.
addProperties

Add properties to compartments object.
getByName

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

Get element by index.
appendComment

Append comment.
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.
comment-class

Comment class. A statement starting with #.
appendCompartments

Append compartments.
delete

Delete an element from this list.
compartment-class

Compartment class.
extractLhs

Extract left-hand-side expression.
disable

Disable.
appendModel

Append model (or simply add).
compartment_infusion_duration-class

Compartment infusion duration class.
compartment_bioavailability-class

Compartment bioavailability 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)
equation-class

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

Colon-equals operator.
appendParameters

Append parameters.
getCompartmentIndex

Get the compartment index for the specified compartment name.
compartment_property-class

Compartment property class.
getRecordName

Get record name.
getRecordEquationNames

Get record equation names
compartments-class

Compartments class.
extractRhs

Extract right-hand-side expression.
duration_record-class

(Infusion)-duration record class.
export

Export function.
double_array_parameter-class

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

Export type class.
error_record-class

Error record class.
find

Find an element in list.
hasComment

Check if string contains CAMPSIS-style comments.
getOmegaIndexes

Get the indexes of the omegas.
getOmegaBlock

Get the right block of OMEGA's.
getPrefix

Get prefix.
getRecordDelimiter

Get record delimiter.
fixOmega

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

Get the name of the given parameter in the CAMPSIS model.
isMatrixPositiveDefinite

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

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

Init record class.
isBlockFixed

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

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

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

Min/max default values for the given parameter.
model_statement-class

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

Get the CAPTURE block for mrgsolve.
pmx_position_by_element-class

PMX position by element class.
mrgsolveCompartment

Get the compartment block for mrgsolve.
read.allparameters

Read all parameters files at once.
pmx_position-class

PMX position class.
maxIndex

Max index.
manual_replication_settings-class

Manual replication settings class.
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.
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.
getUncertainty

Get uncertainty on the parameters.
hasOffDiagonalOmegas

Has off-diagonal omegas.
isComment

Check if string is a CAMPSIS comment (i.e. not an equation).
getVarCov

Get variance-covariance matrix.
getNames

Get element names from list.
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.
ode-class

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

ODE record class.
parameters-class

Parameters class.
parseIfStatement

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

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

Check if string is an empty line.
isDiag

Is diagonal.
rate_record-class

(Infusion)-rate record class.
read

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

Read a CAMPSIS model.
replication_settings-class

Replication settings interface.
rxodeCode

Get code for rxode2
isEquation

Say if line in record is an equation not.
lag_record-class

Lag record class.
model_statements-class

Model statements class. A list of statements.
length,pmx_list-method

Return the length of this list.
line_break-class

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

Main record class.
replace

Replace element by another in list.
replaceAll

Replace all occurrences in object.
rxode_type-class

RxODE/rxode2 export type class.
minIndex

Min index.
mrgsolveOde

Get the ODE 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.
pmx_element-class

PMX element class.
mrgsolveParam

Get the parameters block for mrgsolve.
if_statement-class

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

CAMPSIS model suite.
indexOf

Get the index of an element in list.
isStrictRecordDelimiter

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

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

Get the OMEGA/SIGMA matrix for rxode2.
rxodeParams

Get the parameters vector for rxode2.
setMinMax

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

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

Get the MAIN block for mrgsolve.
pmx_position_by_index-class

PMX position by index class.
pmx_list-class

PMX list class.
read.pmxmod

Read a Campsis model (deprecated).
processDoubleArrayArguments

Process double array arguments.
shiftOmegaIndexes

Shift OMEGA indexes.
move

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

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

Read variance-covariance file.
sort

Sort the specified list.
variablePatternStr

Return the variable pattern (string form).
sampleFromInverseWishartCore

Sample from scaled inverse Wishart distribution (core method).
sampleFromInverseChiSquaredOrWishart

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

Standardise.
mrgsolveTable

Get the TABLE block for mrgsolve.
mrgsolveBlock

Convert code record for mrgsolve.
parseStatements

Parse statements code and return CAMPSIS statements.
mrgsolveMatrix

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

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

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

Mrgsolve export type class.
read.model

Read model file.
read.parameters

Read parameters file.
omega-class

Omega parameter class.
parameter-class

Parameter class. Any parameter in a pharmacometric model.
writeVarcov

Write variance-covariance matrix.
statements_record-class

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

Theta parameter class.
sigma-class

Sigma parameter class.
single_array_parameter-class

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

Get a subset of an object.
removeTrailingLineBreaks

Remove all trailing line breaks.
removeNaColumn

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

Update model parameters based on the parameters issued from the model replication.
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.
pattern-class

Pattern class.
sampleFromMultivariateNormalDistributionCore

Sample from multivariate normal distribution (core method).
trim

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

Process extra arguments.
replicate

Replicate generic object.
replicated_campsis_model-class

Replicated Campsis model class.
properties_record-class

Properties record class.
writeParameters

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

ToString generic method.
sampleFromMultivariateNormalDistribution

Sample from a multivariate normal distribution.
write

Write generic object to files.
writeRecordDelimiter

Write record delimiter line.
Compartments

Create a list of compartments
ErrorRecord

Create ERROR code record.
Compartment

Create a compartment.
IfStatement

Create a new IF-statement.
Equation

Create a new equation.
Comment

Create a new comment.
Bioavailability

Create a bioavailability for the specified compartment.
AutoReplicationSettings

Create auto replication settings.
CampsisModel

Create a new Campsis model.